Kaggle competition of wheat detection
Competition https://www.kaggle.com/c/global-wheat-detection
"In this competition, you’ll detect wheat heads from outdoor images of wheat plants,
including wheat datasets from around the globe. Using worldwide data, you will focus on
a generalized solution to estimate the number and size of wheat heads."
Training baseline is very easy:
Very much augmentation + FasterRCNN (Pytorch)
Train Colab Notebook https://colab.research.google.com/drive/1Wh1YwRZaTukzNw4Y8yTji_yRLawBH98l?usp=sharing
Also a little improvement gives pseudo labeling. The point is to use trained model to label test set
and train again for a few epochs.
Pseudo labeling Colab Notebook https://colab.research.google.com/drive/1bl3ob0GpNfdHf_6dAiuUnAukpBheE-kc?usp=sharing
Inference is more complex. To get best results were used:
- Ensemble over KFold models
- TTA (Test Time Augmentation)
- WBF (Weighted Box Fusion) - better replacement of NMS (Non-Maximum Supression)
It is a code competition so inference is made on Kaggle server. Code you can see in Baseline_inference.ipynb.
The metric used in competition is RSNAObjectDetectionAP. It some slightly modified mAP.
On evaluation mAP was used.
After all this steps on score on LB on single model was 0.7171 and with ensemble 0.7262.
This result give 24 % place on leaderbord with a very simple model (FasterRCNN paper was published in 2015, such ancient time)
But in june was introduced YOLOv5 (there are some dispute about naming) https://github.com/ultralytics/yolov5
The implementation based on PyTorch but not on Darknet as other versions of YOLO.
My first try gives 0.7375 on single model.
You can check it https://www.kaggle.com/sergeisoly
Train Colab Notebook https://colab.research.google.com/drive/1fxHorYFsc68R_jCMs_YmH6Hb3WdFlKsg?usp=sharing