-
-
Notifications
You must be signed in to change notification settings - Fork 16.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
YOLOv5 License Issues with Kaggle Wheat Competition: GPL vs MIT #317
Comments
Hello @chabir, thank you for your interest in our work! Please visit our Custom Training Tutorial to get started, and see our Jupyter Notebook , Docker Image, and Google Cloud Quickstart Guide for example environments. If this is a bug report, please provide screenshots and minimum viable code to reproduce your issue, otherwise we can not help you. If this is a custom model or data training question, please note that Ultralytics does not provide free personal support. As a leader in vision ML and AI, we do offer professional consulting, from simple expert advice up to delivery of fully customized, end-to-end production solutions for our clients, such as:
For more information please visit https://www.ultralytics.com. |
@chabir can you elaborate on the issue? We were considering switching to European Union Public Licence (EUPL) 1.2 for it's multi-language translation and GPL compatibility, but we are not currently considering MIT. |
@glenn-jocher : thanks for your quick feedback. |
@chabir ok I see! Do you have a link to the kaggle license guidelines we could look at? |
@glenn-jocher Maybe this could help. |
@glenn-jocher : For this particular competition, global wheat detection, (rules changed from one competition to another), the rules are here. The sponsor in this competition is a Canadian university. |
Hi glenn, Thank you for the replying. To be concise, MIT/Apache/BSD license are allowed, but GPL-based libraries won't be permitted as final submission in Kaggle... |
@sokazaki thanks for providing the links. I had no idea there was such an active discussion on the topic! I'm excited people are finding YOLOv5 useful, and especially excited to see it performing so well in the Kaggle Global Wheat Detection competition. I've posted a response. I understand this may be unfortunate for many competition participants, but ultimately we believe a greater good rests in ensuring the continuation of open-source works so that all people may benefit from advancements, not just single commercial entities. Please note It's also possible I don't have a complete grasp of all the licensing aspects as I'm not a legal expert, so if new information comes to light in the future we may update our position as appropriate. All feedback is appreciated! https://www.kaggle.com/c/global-wheat-detection/discussion/163433#920645
|
@glenn-jocher Thumbs up for your reply! Actually, I am not so concerned about the final score. The experience of learning is the best thing I get from the compete. |
@ChristopherSTAN actually I'm really interested in the pseudo labeling part of this: https://www.kaggle.com/nvnnghia/yolov5-pseudo-labeling I think a more complete training pipeline needs to somehow incorporate/anticipate human labelling errors, and treat the dataset more flexibly by adding/removing/adjusting labels as appropriate as training progresses. EDIT: After reading the pseudo labeling notebook I realize I had misunderstood. I thought the notebook was relabeling the training data, but it is labelling the unlabelled test data (using a pretrained model) and aggregating it to the train set, and finetuning the pretrained model on the larger mixed dataset to improve the score from 0.75 to 0.7644. Very inventive strategy! |
@glenn-jocher Yes! I used this trick too! And got the 4th place before (24th now). And I also apply more interesting data augmentation: https://www.kaggle.com/khoongweihao/insect-augmentation-with-efficientdet-d6/comments Though it is only specific for this dataset, it is really interesting. Thanks for your help again. |
@ChristopherSTAN insects are a very interesting idea! I thought that augmentations only helped if similar effects are at least somewhat observable in the val set. So perhaps there are insects naturally in the images, or perhaps the bees are acting more as small cutouts. WBF sounds a bit like our Merge NMS. By coincidence I just recently updated YOLOv5 to allow Model Ensembles and Test Time Augmentation (TTA). These two, combined with Merge NMS, would probably be of interest to any competition participants. The tutorials are:
For Merge NMS, it is turned on in the code here by passing Lines 543 to 544 in 1b9e28e
|
@glenn-jocher Excited to see that! |
@glenn-jocher thank you for replying and considering this topic! ok, I see. I respect your mind and I think so too. However, GPL-based codes are too risky not only in Kaggle, so realistically I won't be able to use your codebases in everywhere... but I love your concise and smart coding style, and learned some tips like apex. Thanks! |
In addition, pseudo-labeling are promising approaches for semi-supervised / unsupervised / transfer learning. [Unsupervised / Self-Supervised] Deep Clustering for Unsupervised Learning |
@glenn-jocher Happy to see my model get a higher score after using CIOU and bee-augmentations! |
@sokazaki Thanks for your sharing! I sometimes consider pseudo-labeling is a kind of "Cheat" in compete. Your references just solve my puzzle! |
@ChristopherSTAN do you think it would help if we switched the default box loss to CIoU from GIoU? We have this implemented already, we simply have not switched over the default because we did not observe performance increases on COCO. It possible other datasets stand more to gain from the switch than COCO however, as their anchors may not be as closely aligned to the data as the default anchors are to COCO, even with AutoAnchor switched on now by default. Lines 295 to 296 in e16e9e4
|
@glenn-jocher I found CIoU can help loss converge more quickly. But only in Wheat compete. I don't remember converging epoch in VOC dataset. We can test it together. As you said to me before, GIoU do not improve much. But I found that training times of each epoch don't differ between three kind of IoU loss. Again, from my observe on Wheat. |
@ChristopherSTAN yes, I also observed on COCO than G/D/CIoU all have nearly identical epoch training times. I suppose in that respect there is really no downside to converting it to the default. If it doesn't harm COCO, and it helps the custom datasets converge faster... but wait final mAP is more important than convergence speed. Did you find it to also help final wheat mAP compared to GIoU? |
@glenn-jocher Not always... But my best model is trained with CIoU, and focal loss helps improve. I have to read more paper to explain this... |
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. |
would you be open to change the licence to MIT licence in order to be able to use yolov5 on Kaggle and elsewhere ?
The text was updated successfully, but these errors were encountered: