{
  "id": 172418,
  "title": "1st place solution [MIT-Compliant]",
  "url": "/competitions/global-wheat-detection/discussion/172418",
  "author_name": "DungNB",
  "post_date": "2020-08-05T01:23:37.248000",
  "votes": 239,
  "comment_count": 90,
  "views": 0,
  "content": "<p>Thanks to the organizers for this interesting competition!<br>\nCongratulation to all, this is my first solo gold medal. As there are lots of great public notebooks posted, I will keep my solution simple and short.<br>\nSpecial thank to <a href=\"https://www.kaggle.com/rwightman\" target=\"_blank\">@rwightman</a> for amazing repo (<a href=\"https://github.com/rwightman/efficientdet-pytorch\" target=\"_blank\">https://github.com/rwightman/efficientdet-pytorch</a>)</p>\n<p><strong>Summary</strong></p>\n<ul>\n<li>Custom mosaic data augmentation</li>\n<li>MixUp</li>\n<li>Heavy augmentation</li>\n<li>Data cleaning</li>\n<li>EfficientDet</li>\n<li>Faster RCNN FPN</li>\n<li>Ensemble multi-scale model: Weighted-Boxes-Fusion, special thank <a href=\"https://www.kaggle.com/zfturbo\" target=\"_blank\">@zfturbo</a> </li>\n<li>Test time augmentation(HorizontalFlip, VerticalFlip, Rotate90)</li>\n<li>Pseudo labeling</li>\n</ul>\n<p><strong>Data Processing</strong></p>\n<ul>\n<li><p>Custom mosaic augmentation:<br>\nMosaic is a data augmentation method that combines 4 training images into one for training (instead of 2 in CutMix). Instead of randomly cropping a piece of the image, I create custom mosaic augmentation as bellow to keep the border information:<br>\n<img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F1393170%2F6c0205c6ac7299bc0ea644811521e4c3%2Fmosaic.png?generation=1596590064167930&amp;alt=media\" alt=\"\"></p></li>\n<li><p>MixUp: <br>\n<img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F1393170%2Fda4e1aaafcc421760391e099b4ffca11%2Fmixup.png?generation=1596590747904905&amp;alt=media\" alt=\"\"></p></li>\n<li><p>Heavy augmentation:<br>\nRandomCrop, HorizontalFlip, VerticalFlip, ToGray, IAAAdditiveGaussianNoise, GaussNoise, MotionBlur, MedianBlur, Blur, CLAHE, Sharpen, Emboss, RandomBrightnessContrast, HueSaturationValue</p></li>\n</ul>\n<p>examples after apply mosaic, mixup, augmentation<br>\n<img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F1393170%2Fe226aefe53eab2e2a87a304cd2a84c5e%2Fmixup.png?generation=1596590604527225&amp;alt=media\" alt=\"\"></p>\n<ul>\n<li>External data<br>\nI use 2 external data:<br>\n*wheat spikes (<a href=\"https://www.kaggle.com/c/global-wheat-detection/discussion/164346)\" target=\"_blank\">https://www.kaggle.com/c/global-wheat-detection/discussion/164346)</a>, for license please refer (<a href=\"https://www.kaggle.com/c/global-wheat-detection/discussion/164346#928613\" target=\"_blank\">https://www.kaggle.com/c/global-wheat-detection/discussion/164346#928613</a>)<br>\n*wheat 2017 (<a href=\"https://plantimages.nottingham.ac.uk/\" target=\"_blank\">https://plantimages.nottingham.ac.uk/</a>) at post (<a href=\"https://www.kaggle.com/c/global-wheat-detection/discussion/148561#863159)\" target=\"_blank\">https://www.kaggle.com/c/global-wheat-detection/discussion/148561#863159)</a>. <br>\nI create annotations (bounding box) for all images and crop to 1024x1024. I contacted author to ensure the right without license issue.</li>\n<li>Data Cleaning<br>\n*Deleted tiny bounding boxes (width or height &lt; 10px)<br>\n*Fixed too big bounding boxes</li>\n</ul>\n<p><strong>Model</strong></p>\n<ul>\n<li>5 folds, stratified-kfold, splitted by source(usask_1, arvalis_1, arvalis_2…)</li>\n<li>Optimizer: Adam with initial LR 5e-4 for EfficientDet and SGD with initial LR 5e-3 for Faster RCNN FPN</li>\n<li>LR scheduler: cosine-annealing</li>\n<li>Mixed precision training with nvidia-apex</li>\n</ul>\n<p><strong>Performance</strong><br>\nValid AP/Public LB AP</p>\n<ul>\n<li>EfficientDet-d7 image-size 768: Fold0 0.709/0.746, Fold1 0.716/0.750, Fold 2 0.707/0.749, Fold3 0.716/0.748, Fold4 0.713/0.740</li>\n<li>EfficientDet-d7 image-size 1024: Fold1,3</li>\n<li>EfficientDet-d5 image-size 512: Fold4</li>\n<li>Faster RCNN FPN-resnet152 image-size 1024: Fold1</li>\n<li>Ensemble 9 models above using wbf can achieve <strong>0.7629 Public LB/0.7096 Private LB</strong> (old testset)</li>\n</ul>\n<p><strong>Pseudo labeling</strong></p>\n<ul>\n<li>Base: EfficientDet-d6 image-size 640 Fold1 0.716 Valid AP</li>\n<li>Round1: Train EfficientDet-d6 10 epochs with trainset + hidden testset (output of ensembling), load weight from base checkpoint<br>\nResult: [old testset] 0.7719 Public LB/0.7175 Private LB and [new testset] 0.7633 Public LB/0.6787 Private LB</li>\n<li>Round2: Continue train EfficientDet-d6 6 epochs with trainset + hidden testset (output of pseudo labeling round1), load weight from pseudo labeling round1 checkpoint<br>\nResult: [old testset]0.7754 Public LB/0.7205 Private LB and [new testset]0.7656 Public LB/0.6897 Private LB</li>\n</ul>\n<p>Github source code at <a href=\"https://github.com/dungnb1333/global-wheat-dection-2020\" target=\"_blank\">https://github.com/dungnb1333/global-wheat-dection-2020</a></p>",
  "messages": [
    {
      "id": 958423,
      "postDate": "2020-08-05T01:23:37.250Z",
      "content": "<p>Thanks to the organizers for this interesting competition!<br>\nCongratulation to all, this is my first solo gold medal. As there are lots of great public notebooks posted, I will keep my solution simple and short.<br>\nSpecial thank to <a href=\"https://www.kaggle.com/rwightman\" target=\"_blank\">@rwightman</a> for amazing repo (<a href=\"https://github.com/rwightman/efficientdet-pytorch\" target=\"_blank\">https://github.com/rwightman/efficientdet-pytorch</a>)</p>\n<p><strong>Summary</strong></p>\n<ul>\n<li>Custom mosaic data augmentation</li>\n<li>MixUp</li>\n<li>Heavy augmentation</li>\n<li>Data cleaning</li>\n<li>EfficientDet</li>\n<li>Faster RCNN FPN</li>\n<li>Ensemble multi-scale model: Weighted-Boxes-Fusion, special thank <a href=\"https://www.kaggle.com/zfturbo\" target=\"_blank\">@zfturbo</a> </li>\n<li>Test time augmentation(HorizontalFlip, VerticalFlip, Rotate90)</li>\n<li>Pseudo labeling</li>\n</ul>\n<p><strong>Data Processing</strong></p>\n<ul>\n<li><p>Custom mosaic augmentation:<br>\nMosaic is a data augmentation method that combines 4 training images into one for training (instead of 2 in CutMix). Instead of randomly cropping a piece of the image, I create custom mosaic augmentation as bellow to keep the border information:<br>\n<img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F1393170%2F6c0205c6ac7299bc0ea644811521e4c3%2Fmosaic.png?generation=1596590064167930&amp;alt=media\" alt=\"\"></p></li>\n<li><p>MixUp: <br>\n<img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F1393170%2Fda4e1aaafcc421760391e099b4ffca11%2Fmixup.png?generation=1596590747904905&amp;alt=media\" alt=\"\"></p></li>\n<li><p>Heavy augmentation:<br>\nRandomCrop, HorizontalFlip, VerticalFlip, ToGray, IAAAdditiveGaussianNoise, GaussNoise, MotionBlur, MedianBlur, Blur, CLAHE, Sharpen, Emboss, RandomBrightnessContrast, HueSaturationValue</p></li>\n</ul>\n<p>examples after apply mosaic, mixup, augmentation<br>\n<img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F1393170%2Fe226aefe53eab2e2a87a304cd2a84c5e%2Fmixup.png?generation=1596590604527225&amp;alt=media\" alt=\"\"></p>\n<ul>\n<li>External data<br>\nI use 2 external data:<br>\n*wheat spikes (<a href=\"https://www.kaggle.com/c/global-wheat-detection/discussion/164346)\" target=\"_blank\">https://www.kaggle.com/c/global-wheat-detection/discussion/164346)</a>, for license please refer (<a href=\"https://www.kaggle.com/c/global-wheat-detection/discussion/164346#928613\" target=\"_blank\">https://www.kaggle.com/c/global-wheat-detection/discussion/164346#928613</a>)<br>\n*wheat 2017 (<a href=\"https://plantimages.nottingham.ac.uk/\" target=\"_blank\">https://plantimages.nottingham.ac.uk/</a>) at post (<a href=\"https://www.kaggle.com/c/global-wheat-detection/discussion/148561#863159)\" target=\"_blank\">https://www.kaggle.com/c/global-wheat-detection/discussion/148561#863159)</a>. <br>\nI create annotations (bounding box) for all images and crop to 1024x1024. I contacted author to ensure the right without license issue.</li>\n<li>Data Cleaning<br>\n*Deleted tiny bounding boxes (width or height &lt; 10px)<br>\n*Fixed too big bounding boxes</li>\n</ul>\n<p><strong>Model</strong></p>\n<ul>\n<li>5 folds, stratified-kfold, splitted by source(usask_1, arvalis_1, arvalis_2…)</li>\n<li>Optimizer: Adam with initial LR 5e-4 for EfficientDet and SGD with initial LR 5e-3 for Faster RCNN FPN</li>\n<li>LR scheduler: cosine-annealing</li>\n<li>Mixed precision training with nvidia-apex</li>\n</ul>\n<p><strong>Performance</strong><br>\nValid AP/Public LB AP</p>\n<ul>\n<li>EfficientDet-d7 image-size 768: Fold0 0.709/0.746, Fold1 0.716/0.750, Fold 2 0.707/0.749, Fold3 0.716/0.748, Fold4 0.713/0.740</li>\n<li>EfficientDet-d7 image-size 1024: Fold1,3</li>\n<li>EfficientDet-d5 image-size 512: Fold4</li>\n<li>Faster RCNN FPN-resnet152 image-size 1024: Fold1</li>\n<li>Ensemble 9 models above using wbf can achieve <strong>0.7629 Public LB/0.7096 Private LB</strong> (old testset)</li>\n</ul>\n<p><strong>Pseudo labeling</strong></p>\n<ul>\n<li>Base: EfficientDet-d6 image-size 640 Fold1 0.716 Valid AP</li>\n<li>Round1: Train EfficientDet-d6 10 epochs with trainset + hidden testset (output of ensembling), load weight from base checkpoint<br>\nResult: [old testset] 0.7719 Public LB/0.7175 Private LB and [new testset] 0.7633 Public LB/0.6787 Private LB</li>\n<li>Round2: Continue train EfficientDet-d6 6 epochs with trainset + hidden testset (output of pseudo labeling round1), load weight from pseudo labeling round1 checkpoint<br>\nResult: [old testset]0.7754 Public LB/0.7205 Private LB and [new testset]0.7656 Public LB/0.6897 Private LB</li>\n</ul>\n<p>Github source code at <a href=\"https://github.com/dungnb1333/global-wheat-dection-2020\" target=\"_blank\">https://github.com/dungnb1333/global-wheat-dection-2020</a></p>",
      "rawMarkdown": "Thanks to the organizers for this interesting competition!\nCongratulation to all, this is my first solo gold medal. As there are lots of great public notebooks posted, I will keep my solution simple and short.\nSpecial thank to @rwightman for amazing repo (https://github.com/rwightman/efficientdet-pytorch)\n\n**Summary**\n- Custom mosaic data augmentation\n- MixUp\n- Heavy augmentation\n- Data cleaning\n- EfficientDet\n- Faster RCNN FPN\n- Ensemble multi-scale model: Weighted-Boxes-Fusion, special thank @zfturbo \n- Test time augmentation(HorizontalFlip, VerticalFlip, Rotate90)\n- Pseudo labeling\n\n**Data Processing**\n- Custom mosaic augmentation:\nMosaic is a data augmentation method that combines 4 training images into one for training (instead of 2 in CutMix). Instead of randomly cropping a piece of the image, I create custom mosaic augmentation as bellow to keep the border information:\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F1393170%2F6c0205c6ac7299bc0ea644811521e4c3%2Fmosaic.png?generation=1596590064167930&amp;alt=media)\n\n- MixUp: \n![](https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F1393170%2Fda4e1aaafcc421760391e099b4ffca11%2Fmixup.png?generation=1596590747904905&amp;alt=media)\n\n- Heavy augmentation:\nRandomCrop, HorizontalFlip, VerticalFlip, ToGray, IAAAdditiveGaussianNoise, GaussNoise, MotionBlur, MedianBlur, Blur, CLAHE, Sharpen, Emboss, RandomBrightnessContrast, HueSaturationValue\n\nexamples after apply mosaic, mixup, augmentation\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F1393170%2Fe226aefe53eab2e2a87a304cd2a84c5e%2Fmixup.png?generation=1596590604527225&amp;alt=media)\n\n- External data\nI use 2 external data:\n*wheat spikes (https://www.kaggle.com/c/global-wheat-detection/discussion/164346), for license please refer (https://www.kaggle.com/c/global-wheat-detection/discussion/164346#928613)\n*wheat 2017 (https://plantimages.nottingham.ac.uk/) at post (https://www.kaggle.com/c/global-wheat-detection/discussion/148561#863159). \nI create annotations (bounding box) for all images and crop to 1024x1024. I contacted author to ensure the right without license issue.\n- Data Cleaning\n*Deleted tiny bounding boxes (width or height < 10px)\n*Fixed too big bounding boxes\n\n**Model**\n- 5 folds, stratified-kfold, splitted by source(usask_1, arvalis_1, arvalis_2...)\n- Optimizer: Adam with initial LR 5e-4 for EfficientDet and SGD with initial LR 5e-3 for Faster RCNN FPN\n- LR scheduler: cosine-annealing\n- Mixed precision training with nvidia-apex\n\n**Performance**\nValid AP/Public LB AP\n- EfficientDet-d7 image-size 768: Fold0 0.709/0.746, Fold1 0.716/0.750, Fold 2 0.707/0.749, Fold3 0.716/0.748, Fold4 0.713/0.740\n- EfficientDet-d7 image-size 1024: Fold1,3\n- EfficientDet-d5 image-size 512: Fold4\n- Faster RCNN FPN-resnet152 image-size 1024: Fold1\n- Ensemble 9 models above using wbf can achieve **0.7629 Public LB/0.7096 Private LB** (old testset)\n\n**Pseudo labeling**\n- Base: EfficientDet-d6 image-size 640 Fold1 0.716 Valid AP\n- Round1: Train EfficientDet-d6 10 epochs with trainset + hidden testset (output of ensembling), load weight from base checkpoint\n  Result: [old testset] 0.7719 Public LB/0.7175 Private LB and [new testset] 0.7633 Public LB/0.6787 Private LB\n- Round2: Continue train EfficientDet-d6 6 epochs with trainset + hidden testset (output of pseudo labeling round1), load weight from pseudo labeling round1 checkpoint\n  Result: [old testset]0.7754 Public LB/0.7205 Private LB and [new testset]0.7656 Public LB/0.6897 Private LB\n\nGithub source code at https://github.com/dungnb1333/global-wheat-dection-2020",
      "votes": 239
    },
    {
      "id": 959409,
      "postDate": "2020-08-05T15:01:23.513Z",
      "content": "<p>Please can you share the notebook?</p>",
      "rawMarkdown": "Please can you share the notebook?",
      "votes": 9
    },
    {
      "id": 959414,
      "postDate": "2020-08-05T15:05:14.473Z",
      "content": "<p><a href=\"/nguyenbadung\">@nguyenbadung</a> Thanks for sharing and congratulations!\nWhat did you use for TTA except flips?</p>",
      "rawMarkdown": "@nguyenbadung Thanks for sharing and congratulations!\nWhat did you use for TTA except flips?",
      "votes": 1,
      "replies": [
        {
          "id": 959516,
          "postDate": "2020-08-05T16:37:43.777Z",
          "content": "<p>(horizontal flip, original image)x(vertical flip, original image)x(rot90, original image) = 8 TTA</p>",
          "rawMarkdown": "(horizontal flip, original image)x(vertical flip, original image)x(rot90, original image) = 8 TTA",
          "votes": 3
        }
      ]
    },
    {
      "id": 959394,
      "postDate": "2020-08-05T14:48:28.357Z",
      "content": "<p>Congrats! Appreciate your approach</p>",
      "rawMarkdown": "Congrats! Appreciate your approach",
      "votes": 1
    },
    {
      "id": 959386,
      "postDate": "2020-08-05T14:45:24.763Z",
      "content": "<p>Nice work!</p>",
      "rawMarkdown": "Nice work!",
      "votes": 1
    },
    {
      "id": 959241,
      "postDate": "2020-08-05T12:47:33.610Z",
      "content": "<p><a href=\"/nguyenbadung\">@nguyenbadung</a>  Congrats! How do you set WBF hyperparameters?</p>",
      "rawMarkdown": "@nguyenbadung  Congrats! How do you set WBF hyperparameters?",
      "votes": 1
    },
    {
      "id": 959168,
      "postDate": "2020-08-05T11:53:54.687Z",
      "content": "<p>Congratulations!!</p>",
      "rawMarkdown": "Congratulations!!",
      "votes": 1
    },
    {
      "id": 958991,
      "postDate": "2020-08-05T09:10:13.920Z",
      "content": "<p>thanks <a href=\"/nguyenbadung\">@nguyenbadung</a> for the solution and repo and congrats..</p>",
      "rawMarkdown": "thanks @nguyenbadung for the solution and repo and congrats..",
      "votes": 1
    },
    {
      "id": 958948,
      "postDate": "2020-08-05T08:31:07.200Z",
      "content": "<p>I have one question. What does EfficientDet-ed7/ed6/ed5 are ? \nIn Performance section there is ed7 and ed5 and in Pseudo Labeling ed6?</p>",
      "rawMarkdown": "I have one question. What does EfficientDet-ed7/ed6/ed5 are ? \nIn Performance section there is ed7 and ed5 and in Pseudo Labeling ed6?",
      "votes": 1,
      "replies": [
        {
          "id": 958959,
          "postDate": "2020-08-05T08:36:58.573Z",
          "content": "<p><a href=\"https://arxiv.org/pdf/1911.09070.pdf\">https://arxiv.org/pdf/1911.09070.pdf</a></p>",
          "rawMarkdown": "https://arxiv.org/pdf/1911.09070.pdf"
        }
      ]
    },
    {
      "id": 958943,
      "postDate": "2020-08-05T08:25:58.560Z",
      "content": "<p>Congrats!</p>",
      "rawMarkdown": "Congrats!",
      "votes": 1
    },
    {
      "id": 958891,
      "postDate": "2020-08-05T07:47:07.390Z",
      "content": "<p>The mosaic augmentation trick is very interesting. Some questions: </p>\n\n<ul>\n<li>do you know how much the additional datasets contribute to your final score? </li>\n<li>how long did it take to train everything? I guess you have more than one GPU?</li>\n</ul>\n\n<p>Congratulations on winning!</p>",
      "rawMarkdown": "The mosaic augmentation trick is very interesting. Some questions: \n\n- do you know how much the additional datasets contribute to your final score? \n- how long did it take to train everything? I guess you have more than one GPU?\n\nCongratulations on winning!",
      "votes": 1,
      "replies": [
        {
          "id": 958908,
          "postDate": "2020-08-05T08:00:16.453Z",
          "content": "<p>I didn't experiment much on the model without external dataset\n(Ed7 768 Fold0 Public LB 0.7403 without external)\nNVIDIA Tesla V100 32GB + 2080 Ti 11GB</p>",
          "rawMarkdown": "I didn't experiment much on the model without external dataset\n(Ed7 768 Fold0 Public LB 0.7403 without external)\nNVIDIA Tesla V100 32GB + 2080 Ti 11GB",
          "votes": 1
        },
        {
          "id": 958929,
          "postDate": "2020-08-05T08:14:40.017Z",
          "content": "<p>Awesome setup! I guess the V100 is from a cloud instance?</p>",
          "rawMarkdown": "Awesome setup! I guess the V100 is from a cloud instance?",
          "votes": 1
        }
      ]
    },
    {
      "id": 958861,
      "postDate": "2020-08-05T07:22:06.580Z",
      "content": "<p>A lot of  works and amazing solution! Chúc mừng anh nhé ! Thanks for sharing</p>",
      "rawMarkdown": "A lot of  works and amazing solution! Chúc mừng anh nhé ! Thanks for sharing",
      "votes": 1,
      "replies": [
        {
          "id": 958877,
          "postDate": "2020-08-05T07:39:16.840Z",
          "content": "<p>Cảm ơn em!</p>",
          "rawMarkdown": "Cảm ơn em!"
        }
      ]
    },
    {
      "id": 958804,
      "postDate": "2020-08-05T06:36:52.203Z",
      "content": "<p>Really amazing</p>",
      "rawMarkdown": "Really amazing",
      "votes": 1
    },
    {
      "id": 958802,
      "postDate": "2020-08-05T06:35:39.480Z",
      "content": "<p>Congratulations! Thanks for sharing your solution.  Marek</p>",
      "rawMarkdown": "Congratulations! Thanks for sharing your solution.  Marek",
      "votes": 1
    },
    {
      "id": 958737,
      "postDate": "2020-08-05T06:03:35.497Z",
      "content": "<p>Thanks for sharing. It's a very valuable solution. By the way one less potential Yolov5 user.</p>",
      "rawMarkdown": "Thanks for sharing. It's a very valuable solution. By the way one less potential Yolov5 user.",
      "votes": 1
    },
    {
      "id": 958612,
      "postDate": "2020-08-05T04:41:25.033Z",
      "content": "<p>Thanks for sharing your solution - creative and amazing .</p>",
      "rawMarkdown": "Thanks for sharing your solution - creative and amazing .",
      "votes": 1
    },
    {
      "id": 958596,
      "postDate": "2020-08-05T04:30:55.070Z",
      "content": "<p>lots of hard work and creativity. well-deserved.</p>",
      "rawMarkdown": "lots of hard work and creativity. well-deserved.",
      "votes": 1
    },
    {
      "id": 958548,
      "postDate": "2020-08-05T03:44:59.713Z",
      "content": "<p>Great solution, congrats!\nDid you use gradient accumulation? What was the batch size?</p>",
      "rawMarkdown": "Great solution, congrats!\nDid you use gradient accumulation? What was the batch size?",
      "votes": 1,
      "replies": [
        {
          "id": 958555,
          "postDate": "2020-08-05T03:52:15.273Z",
          "content": "<p>gradient accumulation didn't work for me\neffdet ed7 768: batch size 8\nfaster RCNN fpn resnet152 1024:  batch size 20</p>",
          "rawMarkdown": "gradient accumulation didn't work for me\neffdet ed7 768: batch size 8\nfaster RCNN fpn resnet152 1024:  batch size 20"
        }
      ]
    },
    {
      "id": 958541,
      "postDate": "2020-08-05T03:38:17.317Z",
      "content": "<p>Congratulations! I learn a lot from you.</p>",
      "rawMarkdown": "Congratulations! I learn a lot from you.",
      "votes": 1
    },
    {
      "id": 958528,
      "postDate": "2020-08-05T03:26:17.577Z",
      "content": "<p>Great job! It seems that my EfficientDet model have a consistently low LB performance across all variants despite competitive Public LB performance. Maybe my method got stuck in a local minima that is particularly unsuitable for the private board :(</p>",
      "rawMarkdown": "Great job! It seems that my EfficientDet model have a consistently low LB performance across all variants despite competitive Public LB performance. Maybe my method got stuck in a local minima that is particularly unsuitable for the private board :(",
      "votes": 1
    },
    {
      "id": 958500,
      "postDate": "2020-08-05T02:56:52.800Z",
      "content": "<p>Congrats bro! Very solid solution <a href=\"/nguyenbadung\">@nguyenbadung</a>. </p>",
      "rawMarkdown": "Congrats bro! Very solid solution @nguyenbadung. ",
      "votes": 1,
      "replies": [
        {
          "id": 958503,
          "postDate": "2020-08-05T02:58:54.203Z",
          "content": "<p>Thank you!</p>",
          "rawMarkdown": "Thank you!"
        }
      ]
    },
    {
      "id": 958495,
      "postDate": "2020-08-05T02:49:05.620Z",
      "content": "<p>sweet solution. congratulations!</p>",
      "rawMarkdown": "sweet solution. congratulations!",
      "votes": 1,
      "replies": [
        {
          "id": 958504,
          "postDate": "2020-08-05T02:58:58.933Z",
          "content": "<p>Thank you!</p>",
          "rawMarkdown": "Thank you!"
        }
      ]
    },
    {
      "id": 958485,
      "postDate": "2020-08-05T02:45:07.803Z",
      "content": "<p>Chúc mừng anh, And thanks for sharing :D </p>",
      "rawMarkdown": "Chúc mừng anh, And thanks for sharing :D ",
      "votes": 1,
      "replies": [
        {
          "id": 958489,
          "postDate": "2020-08-05T02:47:14.563Z",
          "content": "<p>Cảm ơn em.</p>",
          "rawMarkdown": "Cảm ơn em.",
          "votes": 1
        }
      ]
    },
    {
      "id": 958478,
      "postDate": "2020-08-05T02:35:25.177Z",
      "content": "<p>Thank you for the detailed explanation.\nI learn a lot from you.\nThanks!</p>",
      "rawMarkdown": "Thank you for the detailed explanation.\nI learn a lot from you.\nThanks!",
      "votes": 1,
      "replies": [
        {
          "id": 958488,
          "postDate": "2020-08-05T02:47:03.117Z",
          "content": "<p>Thank you!</p>",
          "rawMarkdown": "Thank you!"
        }
      ]
    },
    {
      "id": 958461,
      "postDate": "2020-08-05T02:18:05.013Z",
      "content": "<p>the Custom mosaic augmentation was a great idea!\nI will try it in future! thanks <a href=\"/nguyenbadung\">@nguyenbadung</a> for sharing</p>",
      "rawMarkdown": "the Custom mosaic augmentation was a great idea!\nI will try it in future! thanks @nguyenbadung for sharing",
      "votes": 1
    },
    {
      "id": 958460,
      "postDate": "2020-08-05T02:15:44.790Z",
      "content": "<p>This is really impressive! May I know if you will be releasing the codes on github?</p>",
      "rawMarkdown": "This is really impressive! May I know if you will be releasing the codes on github?",
      "votes": 1,
      "replies": [
        {
          "id": 958482,
          "postDate": "2020-08-05T02:43:15.170Z",
          "content": "<p>Thank you, I will publish later.</p>",
          "rawMarkdown": "Thank you, I will publish later.",
          "votes": 1
        },
        {
          "id": 958491,
          "postDate": "2020-08-05T02:47:28.090Z",
          "content": "<p>Thank you so much for the contribution and congrats!</p>",
          "rawMarkdown": "Thank you so much for the contribution and congrats!",
          "votes": 1
        }
      ]
    },
    {
      "id": 958454,
      "postDate": "2020-08-05T02:05:01.770Z",
      "content": "<p>Congrats!</p>",
      "rawMarkdown": "Congrats!",
      "votes": 1
    },
    {
      "id": 958453,
      "postDate": "2020-08-05T02:04:12.170Z",
      "content": "<p>Congratulations!</p>\n\n<p>Did you use <strong>mixup</strong> in your stage 1 models (models without pseudo labels)?\nIt seems like <strong>mixup</strong> gave you a huge boost to your 2nd stage models. My CenterNet without pseudo labels has similar score to your stage 1 models. I am wondering if <strong>mixup</strong> is the key to win</p>",
      "rawMarkdown": "Congratulations!\n\nDid you use **mixup** in your stage 1 models (models without pseudo labels)?\nIt seems like **mixup** gave you a huge boost to your 2nd stage models. My CenterNet without pseudo labels has similar score to your stage 1 models. I am wondering if **mixup** is the key to win",
      "votes": 1,
      "replies": [
        {
          "id": 958470,
          "postDate": "2020-08-05T02:29:13.273Z",
          "content": "<p>yes, all models are trained with mixup</p>",
          "rawMarkdown": "yes, all models are trained with mixup"
        }
      ]
    },
    {
      "id": 958443,
      "postDate": "2020-08-05T01:53:50.590Z",
      "content": "<p>Congratulations <a href=\"/nguyenbadung\">@nguyenbadung</a>!!</p>\n\n<p>Thank you for the detailed explanation.\nIt is great to deal additional data.\nI learn a lot from you.\nThanks! </p>",
      "rawMarkdown": "Congratulations @nguyenbadung!!\n\nThank you for the detailed explanation.\nIt is great to deal additional data.\nI learn a lot from you.\nThanks! \n",
      "votes": 1,
      "replies": [
        {
          "id": 958445,
          "postDate": "2020-08-05T01:56:37.530Z",
          "content": "<p>Thank you!</p>",
          "rawMarkdown": "Thank you!"
        },
        {
          "id": 958447,
          "postDate": "2020-08-05T01:58:28.940Z",
          "content": "<p>May I ask that are you willing to publish the detailed description with the code later?\n😊 </p>\n\n<p>Congrats again! <a href=\"/nguyenbadung\">@nguyenbadung</a> </p>",
          "rawMarkdown": "May I ask that are you willing to publish the detailed description with the code later?\n😊 \n\nCongrats again! @nguyenbadung "
        }
      ]
    },
    {
      "id": 958441,
      "postDate": "2020-08-05T01:51:59.547Z",
      "content": "<p><a href=\"/nguyenbadung\">@nguyenbadung</a> Congrats!!! And thanks for sharing! </p>",
      "rawMarkdown": "@nguyenbadung Congrats!!! And thanks for sharing! ",
      "votes": 1,
      "replies": [
        {
          "id": 958446,
          "postDate": "2020-08-05T01:56:44.040Z",
          "content": "<p>Thank you!</p>",
          "rawMarkdown": "Thank you!"
        }
      ]
    },
    {
      "id": 958436,
      "postDate": "2020-08-05T01:45:08.187Z",
      "content": "<p>hello，how to do hidden test?</p>",
      "rawMarkdown": "hello，how to do hidden test?",
      "votes": 1
    },
    {
      "id": 958435,
      "postDate": "2020-08-05T01:43:19.510Z",
      "content": "<p>Really a lot of work.. \nIt's amazing👍 </p>",
      "rawMarkdown": "Really a lot of work.. \nIt's amazing👍 ",
      "votes": 1,
      "replies": [
        {
          "id": 958442,
          "postDate": "2020-08-05T01:52:19.543Z",
          "content": "<p>Thank you!</p>",
          "rawMarkdown": "Thank you!"
        }
      ]
    },
    {
      "id": 958430,
      "postDate": "2020-08-05T01:38:15.210Z",
      "content": "<p>Excellent.\nMay I ask if your local CV was correlated with your LB and how you manage the difference CV/LB ?</p>",
      "rawMarkdown": "Excellent.\nMay I ask if your local CV was correlated with your LB and how you manage the difference CV/LB ?",
      "votes": 1,
      "replies": [
        {
          "id": 958434,
          "postDate": "2020-08-05T01:42:20.517Z",
          "content": "<p>There are more images without boxes in the public test set than validset, the gap between valid and public is about 0.04 for me</p>",
          "rawMarkdown": "There are more images without boxes in the public test set than validset, the gap between valid and public is about 0.04 for me"
        }
      ]
    },
    {
      "id": 965714,
      "postDate": "2020-08-10T19:43:12.647Z",
      "content": "<p><a href=\"/nguyenbadung\">@nguyenbadung</a> congrats!</p>\n\n<p>Could you elaborate on the insight behind this version of the mosaic augmentation, as opposed to the version where the images are aligned, and the random crop point is somewhere in the centre? E.g. in Alex's notebook, or yolov5 if I'm right.</p>\n\n<p>I see that you keep in the original border information in the mosaic edges inside the image. But you also create 4xedge size new borders at the edges. So it seems like the same amount of original borders and new borders are included in the image as in the other version. Why is this one better? Did you compare the two in your experiments?</p>",
      "rawMarkdown": "@nguyenbadung congrats!\n\nCould you elaborate on the insight behind this version of the mosaic augmentation, as opposed to the version where the images are aligned, and the random crop point is somewhere in the centre? E.g. in Alex's notebook, or yolov5 if I'm right.\n\nI see that you keep in the original border information in the mosaic edges inside the image. But you also create 4xedge size new borders at the edges. So it seems like the same amount of original borders and new borders are included in the image as in the other version. Why is this one better? Did you compare the two in your experiments?",
      "votes": 2
    },
    {
      "id": 965007,
      "postDate": "2020-08-10T10:18:11.817Z",
      "content": "<p>Congratulations for being 3rd place now after validation!</p>",
      "rawMarkdown": "Congratulations for being 3rd place now after validation!",
      "votes": 2
    },
    {
      "id": 962239,
      "postDate": "2020-08-08T00:21:26.817Z",
      "content": "<p><a href=\"/nguyenbadung\">@nguyenbadung</a> congrats on the 4th place.  I'd love some feedback on what you think I could add to my EfficientDet codebase given your experience with it. See (<a href=\"https://www.kaggle.com/c/global-wheat-detection/discussion/173112\">https://www.kaggle.com/c/global-wheat-detection/discussion/173112</a>) or feel free to create issues in the repository.</p>\n\n<p>I'm planning to add mosaic augmentation to my impl. Looking forward to seeing the code for your take on it. Perhaps I can make 'border mosaic' a featured mode.</p>",
      "rawMarkdown": "@nguyenbadung congrats on the 4th place.  I'd love some feedback on what you think I could add to my EfficientDet codebase given your experience with it. See (https://www.kaggle.com/c/global-wheat-detection/discussion/173112) or feel free to create issues in the repository.\n\nI'm planning to add mosaic augmentation to my impl. Looking forward to seeing the code for your take on it. Perhaps I can make 'border mosaic' a featured mode.",
      "votes": 2
    },
    {
      "id": 959128,
      "postDate": "2020-08-05T11:21:24.463Z",
      "content": "<p>i need to make a comment to get rid of novice</p>",
      "rawMarkdown": "i need to make a comment to get rid of novice",
      "votes": 2
    },
    {
      "id": 959057,
      "postDate": "2020-08-05T09:57:09.660Z",
      "content": "<p>恭喜，非常感谢您的分享，已收藏！</p>",
      "rawMarkdown": "恭喜，非常感谢您的分享，已收藏！",
      "votes": 2,
      "replies": [
        {
          "id": 959061,
          "postDate": "2020-08-05T09:59:02.447Z",
          "content": "<p>Thank you</p>",
          "rawMarkdown": "Thank you"
        },
        {
          "id": 961181,
          "postDate": "2020-08-07T01:22:31.993Z",
          "rawMarkdown": "",
          "isDeleted": true
        }
      ]
    },
    {
      "id": 958472,
      "postDate": "2020-08-05T02:30:19.453Z",
      "content": "<p>Very well done and congratulations, you absolutely deserve the gold! I tried a similar \"mosaic\" augmentation towards the start of the competition after seeing mixup working well but mine didn't improve my FRCNN model. I'm curious how much those external datasets improved your model, do you happen to know? I didn't think Wheat 2017 would help at all since they aren't outdoor images but I guess I'm wrong if you used it. Also, I noticed the labels in the SPIKE dataset was pretty bad, worse than GWHD; did you pseudolabel these or do something to fix the labels?</p>\n\n<p>Awesome work once again and thanks for sharing this workflow with us!</p>",
      "rawMarkdown": "Very well done and congratulations, you absolutely deserve the gold! I tried a similar \"mosaic\" augmentation towards the start of the competition after seeing mixup working well but mine didn't improve my FRCNN model. I'm curious how much those external datasets improved your model, do you happen to know? I didn't think Wheat 2017 would help at all since they aren't outdoor images but I guess I'm wrong if you used it. Also, I noticed the labels in the SPIKE dataset was pretty bad, worse than GWHD; did you pseudolabel these or do something to fix the labels?\n\nAwesome work once again and thanks for sharing this workflow with us!",
      "votes": 2,
      "replies": [
        {
          "id": 958486,
          "postDate": "2020-08-05T02:46:42.097Z",
          "content": "<p>Thank you!\nBecause the SPIKE dataset is very noisy, I warm-up model 20 epochs on trainset+wheat2017+spike without mixup, then train model 80 epochs on trainset+wheat2017 with mixup.</p>",
          "rawMarkdown": "Thank you!\nBecause the SPIKE dataset is very noisy, I warm-up model 20 epochs on trainset+wheat2017+spike without mixup, then train model 80 epochs on trainset+wheat2017 with mixup.",
          "votes": 2
        },
        {
          "id": 958492,
          "postDate": "2020-08-05T02:48:24.577Z",
          "content": "<p>Interesting, thank you for answering! :)</p>",
          "rawMarkdown": "Interesting, thank you for answering! :)",
          "votes": 1
        }
      ]
    },
    {
      "id": 958464,
      "postDate": "2020-08-05T02:24:22.143Z",
      "content": "<p>congratulations!! And thank you for sharing your solution!!\nYou chose different fold models in the ensemble step. May I ask you how did you determine the fold you use?</p>",
      "rawMarkdown": "congratulations!! And thank you for sharing your solution!!\nYou chose different fold models in the ensemble step. May I ask you how did you determine the fold you use?",
      "votes": 2,
      "replies": [
        {
          "id": 958525,
          "postDate": "2020-08-05T03:23:00.310Z",
          "content": "<p><a href=\"/nguyenbadung\">@nguyenbadung</a> Hi Dung, big congrats! Besides the question raised by <a href=\"/shinyafuiita\">@shinyafuiita</a>, I'm curious how you did ensemble of the 9 models mentioned above. Did you use WBF to ensemble them? Thanks!</p>",
          "rawMarkdown": "@nguyenbadung Hi Dung, big congrats! Besides the question raised by @shinyafuiita, I'm curious how you did ensemble of the 9 models mentioned above. Did you use WBF to ensemble them? Thanks!"
        }
      ]
    },
    {
      "id": 965376,
      "postDate": "2020-08-10T15:31:38.933Z",
      "content": "<p>Update title rồi nhận tiền tươi bao anh em đi nhậu thôi đại kiện tướng :)))</p>",
      "rawMarkdown": "Update title rồi nhận tiền tươi bao anh em đi nhậu thôi đại kiện tướng :)))",
      "votes": -1,
      "replies": [
        {
          "id": 965386,
          "postDate": "2020-08-10T15:39:19.947Z",
          "content": "<p>điên à, đã xong đâu :(</p>",
          "rawMarkdown": "điên à, đã xong đâu :(",
          "votes": -1
        },
        {
          "id": 965445,
          "postDate": "2020-08-10T16:35:27.203Z",
          "content": "<p>Gắt quá anh ơi <a href=\"/nguyenbadung\">@nguyenbadung</a> :))</p>",
          "rawMarkdown": "Gắt quá anh ơi @nguyenbadung :))",
          "votes": -1
        },
        {
          "id": 965875,
          "postDate": "2020-08-10T23:25:29.377Z",
          "rawMarkdown": "",
          "isDeleted": true
        }
      ]
    },
    {
      "id": 2373211,
      "postDate": "2023-08-04T07:03:28.087Z",
      "content": "<p>Kindly share notebook</p>",
      "rawMarkdown": "Kindly share notebook"
    },
    {
      "id": 1475176,
      "postDate": "2021-08-16T13:44:45.913Z",
      "content": "<p>Thank you for sharing this! I am new to Kaggle and somehow this platform suggests you to me. I'd like to follow you for more nice works.</p>",
      "rawMarkdown": "Thank you for sharing this! I am new to Kaggle and somehow this platform suggests you to me. I'd like to follow you for more nice works."
    },
    {
      "id": 1221353,
      "postDate": "2021-02-28T23:09:32.147Z",
      "content": "<p>Congratulations!</p>",
      "rawMarkdown": "Congratulations!"
    },
    {
      "id": 996718,
      "postDate": "2020-09-03T14:03:57.560Z",
      "content": "<p><a href=\"https://www.kaggle.com/nguyenbadung\" target=\"_blank\">@nguyenbadung</a> thank you for sharing and congratulations on the well deserved win! I'm very impressed with what you've done. I have a couple of questions in case you have time to get around to them:</p>\n<ol>\n<li><p>I found gradient accumulation didn't work for me either (I noticed your comment below). I wonder why that is the case though. I think a model should train the same with or without gradient accumulation as it's just a question of parallelisation. Did you ever figure it out?</p></li>\n<li><p>For me, I found that model ensembling did not work at all. It seemed that after already having a lot of TTA, adding models just kept the score the same or decreased it. Did you experience this at all and did you have any tricks to get around it? What was your logic behind selecting specific splits for the ensembling?</p></li>\n</ol>\n<p>Thanks!</p>",
      "rawMarkdown": "@nguyenbadung thank you for sharing and congratulations on the well deserved win! I'm very impressed with what you've done. I have a couple of questions in case you have time to get around to them:\n\n1. I found gradient accumulation didn't work for me either (I noticed your comment below). I wonder why that is the case though. I think a model should train the same with or without gradient accumulation as it's just a question of parallelisation. Did you ever figure it out?\n\n2. For me, I found that model ensembling did not work at all. It seemed that after already having a lot of TTA, adding models just kept the score the same or decreased it. Did you experience this at all and did you have any tricks to get around it? What was your logic behind selecting specific splits for the ensembling?\n\nThanks!"
    },
    {
      "id": 986712,
      "postDate": "2020-08-26T18:06:42.243Z",
      "content": "<p><a href=\"https://www.kaggle.com/nguyenbadung\" target=\"_blank\">@nguyenbadung</a> - or anyone else who can confirm , the MixUp being mentioned within this discussion and solution is == <a href=\"https://github.com/vikasverma1077/manifold_mixup\" target=\"_blank\">https://github.com/vikasverma1077/manifold_mixup</a> , thanks - Regards . </p>",
      "rawMarkdown": "@nguyenbadung - or anyone else who can confirm , the MixUp being mentioned within this discussion and solution is == https://github.com/vikasverma1077/manifold_mixup , thanks - Regards . "
    },
    {
      "id": 984389,
      "postDate": "2020-08-25T04:39:28.390Z",
      "content": "<p>Congrats Mate</p>",
      "rawMarkdown": "Congrats Mate"
    },
    {
      "id": 983327,
      "postDate": "2020-08-24T07:26:09.343Z",
      "content": "<p>Congrats on good work!!</p>",
      "rawMarkdown": "Congrats on good work!!"
    },
    {
      "id": 983326,
      "postDate": "2020-08-24T07:25:51.373Z",
      "content": "<p>Congrats on good work!</p>",
      "rawMarkdown": "Congrats on good work!"
    },
    {
      "id": 982644,
      "postDate": "2020-08-23T14:47:59.663Z",
      "content": "<p>Thank you for sharing! How long have you been in this field?</p>",
      "rawMarkdown": "Thank you for sharing! How long have you been in this field?"
    },
    {
      "id": 981651,
      "postDate": "2020-08-22T15:55:54.420Z",
      "content": "<p>Congrats 👍</p>",
      "rawMarkdown": "Congrats 👍"
    },
    {
      "id": 981239,
      "postDate": "2020-08-22T10:04:16.860Z",
      "content": "<p>Do you have the plan to publish the code ?</p>",
      "rawMarkdown": "Do you have the plan to publish the code ?"
    },
    {
      "id": 965877,
      "postDate": "2020-08-10T23:30:25.407Z",
      "content": "<p>hi，how to avoid out of memory when you ensemble the nine  models</p>",
      "rawMarkdown": "hi，how to avoid out of memory when you ensemble the nine  models"
    },
    {
      "id": 965876,
      "postDate": "2020-08-10T23:30:25.223Z",
      "content": "<p>hi，how to avoid out of memory when you ensemble the nine  models</p>",
      "rawMarkdown": "hi，how to avoid out of memory when you ensemble the nine  models"
    },
    {
      "id": 962945,
      "postDate": "2020-08-08T15:05:09.563Z",
      "content": "<p>Thankyou <a href=\"/nguyenbadung\">@nguyenbadung</a> for sharing your approach..  I too participated in this competition but did perform that well but looking further to implement your methodologies...  If possible for you, will you share across your resources from where you learn about all this...  </p>",
      "rawMarkdown": "Thankyou @nguyenbadung for sharing your approach..  I too participated in this competition but did perform that well but looking further to implement your methodologies...  If possible for you, will you share across your resources from where you learn about all this...  "
    },
    {
      "id": 961734,
      "postDate": "2020-08-07T13:09:45.870Z",
      "content": "<p>Good. Interesting. Please can you share the notebook?</p>",
      "rawMarkdown": "Good. Interesting. Please can you share the notebook?\n\n "
    },
    {
      "id": 959534,
      "postDate": "2020-08-05T17:07:41.783Z",
      "content": "<p><a href=\"/nguyenbadung\">@nguyenbadung</a> Can you quantify the boost of the external data?</p>",
      "rawMarkdown": "@nguyenbadung Can you quantify the boost of the external data?"
    },
    {
      "id": 3041132,
      "postDate": "2024-11-10T01:26:33.230Z",
      "content": "<p>fantasitic,help me a lot</p>",
      "rawMarkdown": "fantasitic,help me a lot",
      "isDeleted": true
    },
    {
      "id": 958456,
      "postDate": "2020-08-05T02:07:36.287Z",
      "rawMarkdown": "",
      "isDeleted": true
    },
    {
      "id": 962771,
      "postDate": "2020-08-08T12:36:38.557Z",
      "content": "<p>Thanks for sharing ...</p>",
      "rawMarkdown": "Thanks for sharing ...",
      "votes": 1
    },
    {
      "id": 960318,
      "postDate": "2020-08-06T10:00:49.660Z",
      "content": "<p>Congratulations and thanks for sharing!</p>",
      "rawMarkdown": "Congratulations and thanks for sharing!",
      "votes": 1
    },
    {
      "id": 958585,
      "postDate": "2020-08-05T04:14:21.117Z",
      "content": "<p>solution amazing, thank for share</p>",
      "rawMarkdown": "solution amazing, thank for share",
      "votes": 1
    },
    {
      "id": 959178,
      "postDate": "2020-08-05T12:02:40.463Z",
      "content": "<p>Congrats and thank you for sharing:)</p>",
      "rawMarkdown": "Congrats and thank you for sharing:)",
      "votes": 2
    },
    {
      "id": 965757,
      "postDate": "2020-08-10T20:34:53.783Z",
      "content": "<p>Thanks for sharing!</p>",
      "rawMarkdown": "Thanks for sharing!"
    },
    {
      "id": 965597,
      "postDate": "2020-08-10T18:15:35.123Z",
      "content": "<p>Nice work and thanks for sharing !</p>",
      "rawMarkdown": "Nice work and thanks for sharing !"
    }
  ],
  "comments": [
    {
      "id": 959409,
      "author_name": "Haithem Hermassi",
      "author_url": "",
      "post_date": "2020-08-05T15:01:23.513000",
      "content": "<p>Please can you share the notebook?</p>",
      "votes": 9,
      "replies": []
    },
    {
      "id": 959414,
      "author_name": "Vladimir Koltunov",
      "author_url": "",
      "post_date": "2020-08-05T15:05:14.473000",
      "content": "<p><a href=\"/nguyenbadung\">@nguyenbadung</a> Thanks for sharing and congratulations!\nWhat did you use for TTA except flips?</p>",
      "votes": 1,
      "replies": [
        {
          "id": 959516,
          "author_name": "DungNB",
          "author_url": "",
          "post_date": "2020-08-05T16:37:43.777000",
          "content": "<p>(horizontal flip, original image)x(vertical flip, original image)x(rot90, original image) = 8 TTA</p>",
          "votes": 3,
          "replies": []
        }
      ]
    },
    {
      "id": 959394,
      "author_name": "Ghulam Ahmed",
      "author_url": "",
      "post_date": "2020-08-05T14:48:28.357000",
      "content": "<p>Congrats! Appreciate your approach</p>",
      "votes": 1,
      "replies": []
    },
    {
      "id": 959386,
      "author_name": "Vedant Vajpayee",
      "author_url": "",
      "post_date": "2020-08-05T14:45:24.763000",
      "content": "<p>Nice work!</p>",
      "votes": 1,
      "replies": []
    },
    {
      "id": 959241,
      "author_name": "Chihaoui007",
      "author_url": "",
      "post_date": "2020-08-05T12:47:33.610000",
      "content": "<p><a href=\"/nguyenbadung\">@nguyenbadung</a>  Congrats! How do you set WBF hyperparameters?</p>",
      "votes": 1,
      "replies": []
    },
    {
      "id": 959168,
      "author_name": "Rehapriadarsini Manikandasamy",
      "author_url": "",
      "post_date": "2020-08-05T11:53:54.687000",
      "content": "<p>Congratulations!!</p>",
      "votes": 1,
      "replies": []
    },
    {
      "id": 958991,
      "author_name": "SAURABH THAKUR",
      "author_url": "",
      "post_date": "2020-08-05T09:10:13.920000",
      "content": "<p>thanks <a href=\"/nguyenbadung\">@nguyenbadung</a> for the solution and repo and congrats..</p>",
      "votes": 1,
      "replies": []
    },
    {
      "id": 958948,
      "author_name": "Marcin Czelej",
      "author_url": "",
      "post_date": "2020-08-05T08:31:07.200000",
      "content": "<p>I have one question. What does EfficientDet-ed7/ed6/ed5 are ? \nIn Performance section there is ed7 and ed5 and in Pseudo Labeling ed6?</p>",
      "votes": 1,
      "replies": [
        {
          "id": 958959,
          "author_name": "DungNB",
          "author_url": "",
          "post_date": "2020-08-05T08:36:58.573000",
          "content": "<p><a href=\"https://arxiv.org/pdf/1911.09070.pdf\">https://arxiv.org/pdf/1911.09070.pdf</a></p>",
          "votes": 0,
          "replies": []
        }
      ]
    },
    {
      "id": 958943,
      "author_name": "kubilay işen",
      "author_url": "",
      "post_date": "2020-08-05T08:25:58.560000",
      "content": "<p>Congrats!</p>",
      "votes": 1,
      "replies": []
    },
    {
      "id": 958891,
      "author_name": "Yassine Alouini",
      "author_url": "",
      "post_date": "2020-08-05T07:47:07.390000",
      "content": "<p>The mosaic augmentation trick is very interesting. Some questions: </p>\n\n<ul>\n<li>do you know how much the additional datasets contribute to your final score? </li>\n<li>how long did it take to train everything? I guess you have more than one GPU?</li>\n</ul>\n\n<p>Congratulations on winning!</p>",
      "votes": 1,
      "replies": [
        {
          "id": 958908,
          "author_name": "DungNB",
          "author_url": "",
          "post_date": "2020-08-05T08:00:16.453000",
          "content": "<p>I didn't experiment much on the model without external dataset\n(Ed7 768 Fold0 Public LB 0.7403 without external)\nNVIDIA Tesla V100 32GB + 2080 Ti 11GB</p>",
          "votes": 1,
          "replies": []
        },
        {
          "id": 958929,
          "author_name": "Yassine Alouini",
          "author_url": "",
          "post_date": "2020-08-05T08:14:40.017000",
          "content": "<p>Awesome setup! I guess the V100 is from a cloud instance?</p>",
          "votes": 1,
          "replies": []
        }
      ]
    },
    {
      "id": 958861,
      "author_name": "Manh Lab",
      "author_url": "",
      "post_date": "2020-08-05T07:22:06.580000",
      "content": "<p>A lot of  works and amazing solution! Chúc mừng anh nhé ! Thanks for sharing</p>",
      "votes": 1,
      "replies": [
        {
          "id": 958877,
          "author_name": "DungNB",
          "author_url": "",
          "post_date": "2020-08-05T07:39:16.840000",
          "content": "<p>Cảm ơn em!</p>",
          "votes": 0,
          "replies": []
        }
      ]
    },
    {
      "id": 958804,
      "author_name": "MD. Imran",
      "author_url": "",
      "post_date": "2020-08-05T06:36:52.203000",
      "content": "<p>Really amazing</p>",
      "votes": 1,
      "replies": []
    },
    {
      "id": 958802,
      "author_name": "Marek Nurzynski",
      "author_url": "",
      "post_date": "2020-08-05T06:35:39.480000",
      "content": "<p>Congratulations! Thanks for sharing your solution.  Marek</p>",
      "votes": 1,
      "replies": []
    },
    {
      "id": 958737,
      "author_name": "Vadim Timakin",
      "author_url": "",
      "post_date": "2020-08-05T06:03:35.497000",
      "content": "<p>Thanks for sharing. It's a very valuable solution. By the way one less potential Yolov5 user.</p>",
      "votes": 1,
      "replies": []
    },
    {
      "id": 958612,
      "author_name": "Prachi",
      "author_url": "",
      "post_date": "2020-08-05T04:41:25.033000",
      "content": "<p>Thanks for sharing your solution - creative and amazing .</p>",
      "votes": 1,
      "replies": []
    },
    {
      "id": 958596,
      "author_name": "johnny",
      "author_url": "",
      "post_date": "2020-08-05T04:30:55.070000",
      "content": "<p>lots of hard work and creativity. well-deserved.</p>",
      "votes": 1,
      "replies": []
    },
    {
      "id": 958548,
      "author_name": "Aguiar",
      "author_url": "",
      "post_date": "2020-08-05T03:44:59.713000",
      "content": "<p>Great solution, congrats!\nDid you use gradient accumulation? What was the batch size?</p>",
      "votes": 1,
      "replies": [
        {
          "id": 958555,
          "author_name": "DungNB",
          "author_url": "",
          "post_date": "2020-08-05T03:52:15.273000",
          "content": "<p>gradient accumulation didn't work for me\neffdet ed7 768: batch size 8\nfaster RCNN fpn resnet152 1024:  batch size 20</p>",
          "votes": 0,
          "replies": []
        }
      ]
    },
    {
      "id": 958541,
      "author_name": "YummyCocopalm",
      "author_url": "",
      "post_date": "2020-08-05T03:38:17.317000",
      "content": "<p>Congratulations! I learn a lot from you.</p>",
      "votes": 1,
      "replies": []
    },
    {
      "id": 958528,
      "author_name": "Peiyuan Liao",
      "author_url": "",
      "post_date": "2020-08-05T03:26:17.577000",
      "content": "<p>Great job! It seems that my EfficientDet model have a consistently low LB performance across all variants despite competitive Public LB performance. Maybe my method got stuck in a local minima that is particularly unsuitable for the private board :(</p>",
      "votes": 1,
      "replies": []
    },
    {
      "id": 958500,
      "author_name": "KhanhVD",
      "author_url": "",
      "post_date": "2020-08-05T02:56:52.800000",
      "content": "<p>Congrats bro! Very solid solution <a href=\"/nguyenbadung\">@nguyenbadung</a>. </p>",
      "votes": 1,
      "replies": [
        {
          "id": 958503,
          "author_name": "DungNB",
          "author_url": "",
          "post_date": "2020-08-05T02:58:54.203000",
          "content": "<p>Thank you!</p>",
          "votes": 0,
          "replies": []
        }
      ]
    },
    {
      "id": 958495,
      "author_name": "Kupchanski",
      "author_url": "",
      "post_date": "2020-08-05T02:49:05.620000",
      "content": "<p>sweet solution. congratulations!</p>",
      "votes": 1,
      "replies": [
        {
          "id": 958504,
          "author_name": "DungNB",
          "author_url": "",
          "post_date": "2020-08-05T02:58:58.933000",
          "content": "<p>Thank you!</p>",
          "votes": 0,
          "replies": []
        }
      ]
    },
    {
      "id": 958485,
      "author_name": "Trung Thanh Nguyen ",
      "author_url": "",
      "post_date": "2020-08-05T02:45:07.803000",
      "content": "<p>Chúc mừng anh, And thanks for sharing :D </p>",
      "votes": 1,
      "replies": [
        {
          "id": 958489,
          "author_name": "DungNB",
          "author_url": "",
          "post_date": "2020-08-05T02:47:14.563000",
          "content": "<p>Cảm ơn em.</p>",
          "votes": 1,
          "replies": []
        }
      ]
    },
    {
      "id": 958478,
      "author_name": "Monster-H7",
      "author_url": "",
      "post_date": "2020-08-05T02:35:25.177000",
      "content": "<p>Thank you for the detailed explanation.\nI learn a lot from you.\nThanks!</p>",
      "votes": 1,
      "replies": [
        {
          "id": 958488,
          "author_name": "DungNB",
          "author_url": "",
          "post_date": "2020-08-05T02:47:03.117000",
          "content": "<p>Thank you!</p>",
          "votes": 0,
          "replies": []
        }
      ]
    },
    {
      "id": 958461,
      "author_name": "Kamal Das",
      "author_url": "",
      "post_date": "2020-08-05T02:18:05.013000",
      "content": "<p>the Custom mosaic augmentation was a great idea!\nI will try it in future! thanks <a href=\"/nguyenbadung\">@nguyenbadung</a> for sharing</p>",
      "votes": 1,
      "replies": []
    },
    {
      "id": 958460,
      "author_name": "gao-hongnan",
      "author_url": "",
      "post_date": "2020-08-05T02:15:44.790000",
      "content": "<p>This is really impressive! May I know if you will be releasing the codes on github?</p>",
      "votes": 1,
      "replies": [
        {
          "id": 958482,
          "author_name": "DungNB",
          "author_url": "",
          "post_date": "2020-08-05T02:43:15.170000",
          "content": "<p>Thank you, I will publish later.</p>",
          "votes": 1,
          "replies": []
        },
        {
          "id": 958491,
          "author_name": "gao-hongnan",
          "author_url": "",
          "post_date": "2020-08-05T02:47:28.090000",
          "content": "<p>Thank you so much for the contribution and congrats!</p>",
          "votes": 1,
          "replies": []
        }
      ]
    },
    {
      "id": 958454,
      "author_name": "",
      "author_url": "",
      "post_date": "2020-08-05T02:05:01.770000",
      "content": "<p>Congrats!</p>",
      "votes": 1,
      "replies": []
    },
    {
      "id": 958453,
      "author_name": "Darkate",
      "author_url": "",
      "post_date": "2020-08-05T02:04:12.170000",
      "content": "<p>Congratulations!</p>\n\n<p>Did you use <strong>mixup</strong> in your stage 1 models (models without pseudo labels)?\nIt seems like <strong>mixup</strong> gave you a huge boost to your 2nd stage models. My CenterNet without pseudo labels has similar score to your stage 1 models. I am wondering if <strong>mixup</strong> is the key to win</p>",
      "votes": 1,
      "replies": [
        {
          "id": 958470,
          "author_name": "DungNB",
          "author_url": "",
          "post_date": "2020-08-05T02:29:13.273000",
          "content": "<p>yes, all models are trained with mixup</p>",
          "votes": 0,
          "replies": []
        }
      ]
    },
    {
      "id": 958443,
      "author_name": "Heroseo",
      "author_url": "",
      "post_date": "2020-08-05T01:53:50.590000",
      "content": "<p>Congratulations <a href=\"/nguyenbadung\">@nguyenbadung</a>!!</p>\n\n<p>Thank you for the detailed explanation.\nIt is great to deal additional data.\nI learn a lot from you.\nThanks! </p>",
      "votes": 1,
      "replies": [
        {
          "id": 958445,
          "author_name": "DungNB",
          "author_url": "",
          "post_date": "2020-08-05T01:56:37.530000",
          "content": "<p>Thank you!</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 958447,
          "author_name": "Heroseo",
          "author_url": "",
          "post_date": "2020-08-05T01:58:28.940000",
          "content": "<p>May I ask that are you willing to publish the detailed description with the code later?\n😊 </p>\n\n<p>Congrats again! <a href=\"/nguyenbadung\">@nguyenbadung</a> </p>",
          "votes": 0,
          "replies": []
        }
      ]
    },
    {
      "id": 958441,
      "author_name": "Zikai",
      "author_url": "",
      "post_date": "2020-08-05T01:51:59.547000",
      "content": "<p><a href=\"/nguyenbadung\">@nguyenbadung</a> Congrats!!! And thanks for sharing! </p>",
      "votes": 1,
      "replies": [
        {
          "id": 958446,
          "author_name": "DungNB",
          "author_url": "",
          "post_date": "2020-08-05T01:56:44.040000",
          "content": "<p>Thank you!</p>",
          "votes": 0,
          "replies": []
        }
      ]
    },
    {
      "id": 958436,
      "author_name": "",
      "author_url": "",
      "post_date": "2020-08-05T01:45:08.187000",
      "content": "",
      "votes": 1,
      "replies": []
    },
    {
      "id": 958435,
      "author_name": "",
      "author_url": "",
      "post_date": "2020-08-05T01:43:19.510000",
      "content": "",
      "votes": 1,
      "replies": [
        {
          "id": 958442,
          "author_name": "",
          "author_url": "",
          "post_date": "2020-08-05T01:52:19.543000",
          "content": "",
          "votes": 0,
          "replies": []
        }
      ]
    },
    {
      "id": 958430,
      "author_name": "",
      "author_url": "",
      "post_date": "2020-08-05T01:38:15.210000",
      "content": "",
      "votes": 1,
      "replies": [
        {
          "id": 958434,
          "author_name": "",
          "author_url": "",
          "post_date": "2020-08-05T01:42:20.517000",
          "content": "",
          "votes": 0,
          "replies": []
        }
      ]
    },
    {
      "id": 965714,
      "author_name": "",
      "author_url": "",
      "post_date": "2020-08-10T19:43:12.647000",
      "content": "",
      "votes": 2,
      "replies": []
    },
    {
      "id": 965007,
      "author_name": "",
      "author_url": "",
      "post_date": "2020-08-10T10:18:11.817000",
      "content": "",
      "votes": 2,
      "replies": []
    },
    {
      "id": 962239,
      "author_name": "",
      "author_url": "",
      "post_date": "2020-08-08T00:21:26.817000",
      "content": "",
      "votes": 2,
      "replies": []
    },
    {
      "id": 959128,
      "author_name": "",
      "author_url": "",
      "post_date": "2020-08-05T11:21:24.463000",
      "content": "",
      "votes": 2,
      "replies": []
    },
    {
      "id": 959057,
      "author_name": "",
      "author_url": "",
      "post_date": "2020-08-05T09:57:09.660000",
      "content": "",
      "votes": 2,
      "replies": [
        {
          "id": 959061,
          "author_name": "",
          "author_url": "",
          "post_date": "2020-08-05T09:59:02.447000",
          "content": "",
          "votes": 0,
          "replies": []
        },
        {
          "id": 961181,
          "author_name": "",
          "author_url": "",
          "post_date": "2020-08-07T01:22:31.993000",
          "content": "",
          "votes": 0,
          "replies": []
        }
      ]
    },
    {
      "id": 958472,
      "author_name": "",
      "author_url": "",
      "post_date": "2020-08-05T02:30:19.453000",
      "content": "",
      "votes": 2,
      "replies": [
        {
          "id": 958486,
          "author_name": "",
          "author_url": "",
          "post_date": "2020-08-05T02:46:42.097000",
          "content": "",
          "votes": 2,
          "replies": []
        },
        {
          "id": 958492,
          "author_name": "",
          "author_url": "",
          "post_date": "2020-08-05T02:48:24.577000",
          "content": "",
          "votes": 1,
          "replies": []
        }
      ]
    },
    {
      "id": 958464,
      "author_name": "",
      "author_url": "",
      "post_date": "2020-08-05T02:24:22.143000",
      "content": "",
      "votes": 2,
      "replies": [
        {
          "id": 958525,
          "author_name": "",
          "author_url": "",
          "post_date": "2020-08-05T03:23:00.310000",
          "content": "",
          "votes": 0,
          "replies": []
        }
      ]
    },
    {
      "id": 965376,
      "author_name": "",
      "author_url": "",
      "post_date": "2020-08-10T15:31:38.933000",
      "content": "",
      "votes": -1,
      "replies": [
        {
          "id": 965386,
          "author_name": "",
          "author_url": "",
          "post_date": "2020-08-10T15:39:19.947000",
          "content": "",
          "votes": -1,
          "replies": []
        },
        {
          "id": 965445,
          "author_name": "",
          "author_url": "",
          "post_date": "2020-08-10T16:35:27.203000",
          "content": "",
          "votes": -1,
          "replies": []
        },
        {
          "id": 965875,
          "author_name": "",
          "author_url": "",
          "post_date": "2020-08-10T23:25:29.377000",
          "content": "",
          "votes": 0,
          "replies": []
        }
      ]
    },
    {
      "id": 2373211,
      "author_name": "",
      "author_url": "",
      "post_date": "2023-08-04T07:03:28.087000",
      "content": "",
      "votes": 0,
      "replies": []
    },
    {
      "id": 1475176,
      "author_name": "",
      "author_url": "",
      "post_date": "2021-08-16T13:44:45.913000",
      "content": "",
      "votes": 0,
      "replies": []
    },
    {
      "id": 1221353,
      "author_name": "",
      "author_url": "",
      "post_date": "2021-02-28T23:09:32.147000",
      "content": "",
      "votes": 0,
      "replies": []
    },
    {
      "id": 996718,
      "author_name": "",
      "author_url": "",
      "post_date": "2020-09-03T14:03:57.560000",
      "content": "",
      "votes": 0,
      "replies": []
    },
    {
      "id": 986712,
      "author_name": "",
      "author_url": "",
      "post_date": "2020-08-26T18:06:42.243000",
      "content": "",
      "votes": 0,
      "replies": []
    },
    {
      "id": 984389,
      "author_name": "",
      "author_url": "",
      "post_date": "2020-08-25T04:39:28.390000",
      "content": "",
      "votes": 0,
      "replies": []
    },
    {
      "id": 983327,
      "author_name": "",
      "author_url": "",
      "post_date": "2020-08-24T07:26:09.343000",
      "content": "",
      "votes": 0,
      "replies": []
    },
    {
      "id": 983326,
      "author_name": "",
      "author_url": "",
      "post_date": "2020-08-24T07:25:51.373000",
      "content": "",
      "votes": 0,
      "replies": []
    },
    {
      "id": 982644,
      "author_name": "",
      "author_url": "",
      "post_date": "2020-08-23T14:47:59.663000",
      "content": "",
      "votes": 0,
      "replies": []
    },
    {
      "id": 981651,
      "author_name": "",
      "author_url": "",
      "post_date": "2020-08-22T15:55:54.420000",
      "content": "",
      "votes": 0,
      "replies": []
    },
    {
      "id": 981239,
      "author_name": "",
      "author_url": "",
      "post_date": "2020-08-22T10:04:16.860000",
      "content": "",
      "votes": 0,
      "replies": []
    },
    {
      "id": 965877,
      "author_name": "",
      "author_url": "",
      "post_date": "2020-08-10T23:30:25.407000",
      "content": "",
      "votes": 0,
      "replies": []
    },
    {
      "id": 965876,
      "author_name": "",
      "author_url": "",
      "post_date": "2020-08-10T23:30:25.223000",
      "content": "",
      "votes": 0,
      "replies": []
    },
    {
      "id": 962945,
      "author_name": "",
      "author_url": "",
      "post_date": "2020-08-08T15:05:09.563000",
      "content": "",
      "votes": 0,
      "replies": []
    },
    {
      "id": 961734,
      "author_name": "",
      "author_url": "",
      "post_date": "2020-08-07T13:09:45.870000",
      "content": "",
      "votes": 0,
      "replies": []
    },
    {
      "id": 959534,
      "author_name": "",
      "author_url": "",
      "post_date": "2020-08-05T17:07:41.783000",
      "content": "",
      "votes": 0,
      "replies": []
    },
    {
      "id": 3041132,
      "author_name": "",
      "author_url": "",
      "post_date": "2024-11-10T01:26:33.230000",
      "content": "",
      "votes": 0,
      "replies": []
    },
    {
      "id": 958456,
      "author_name": "",
      "author_url": "",
      "post_date": "2020-08-05T02:07:36.287000",
      "content": "",
      "votes": 0,
      "replies": []
    },
    {
      "id": 962771,
      "author_name": "",
      "author_url": "",
      "post_date": "2020-08-08T12:36:38.557000",
      "content": "",
      "votes": 1,
      "replies": []
    },
    {
      "id": 960318,
      "author_name": "",
      "author_url": "",
      "post_date": "2020-08-06T10:00:49.660000",
      "content": "",
      "votes": 1,
      "replies": []
    },
    {
      "id": 958585,
      "author_name": "",
      "author_url": "",
      "post_date": "2020-08-05T04:14:21.117000",
      "content": "",
      "votes": 1,
      "replies": []
    },
    {
      "id": 959178,
      "author_name": "",
      "author_url": "",
      "post_date": "2020-08-05T12:02:40.463000",
      "content": "",
      "votes": 2,
      "replies": []
    },
    {
      "id": 965757,
      "author_name": "",
      "author_url": "",
      "post_date": "2020-08-10T20:34:53.783000",
      "content": "",
      "votes": 0,
      "replies": []
    },
    {
      "id": 965597,
      "author_name": "",
      "author_url": "",
      "post_date": "2020-08-10T18:15:35.123000",
      "content": "",
      "votes": 0,
      "replies": []
    }
  ],
  "raw_markdown_by_id": {
    "958423": "Thanks to the organizers for this interesting competition!\nCongratulation to all, this is my first solo gold medal. As there are lots of great public notebooks posted, I will keep my solution simple and short.\nSpecial thank to @rwightman for amazing repo (https://github.com/rwightman/efficientdet-pytorch)\n\n**Summary**\n- Custom mosaic data augmentation\n- MixUp\n- Heavy augmentation\n- Data cleaning\n- EfficientDet\n- Faster RCNN FPN\n- Ensemble multi-scale model: Weighted-Boxes-Fusion, special thank @zfturbo \n- Test time augmentation(HorizontalFlip, VerticalFlip, Rotate90)\n- Pseudo labeling\n\n**Data Processing**\n- Custom mosaic augmentation:\nMosaic is a data augmentation method that combines 4 training images into one for training (instead of 2 in CutMix). Instead of randomly cropping a piece of the image, I create custom mosaic augmentation as bellow to keep the border information:\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F1393170%2F6c0205c6ac7299bc0ea644811521e4c3%2Fmosaic.png?generation=1596590064167930&amp;alt=media)\n\n- MixUp: \n![](https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F1393170%2Fda4e1aaafcc421760391e099b4ffca11%2Fmixup.png?generation=1596590747904905&amp;alt=media)\n\n- Heavy augmentation:\nRandomCrop, HorizontalFlip, VerticalFlip, ToGray, IAAAdditiveGaussianNoise, GaussNoise, MotionBlur, MedianBlur, Blur, CLAHE, Sharpen, Emboss, RandomBrightnessContrast, HueSaturationValue\n\nexamples after apply mosaic, mixup, augmentation\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F1393170%2Fe226aefe53eab2e2a87a304cd2a84c5e%2Fmixup.png?generation=1596590604527225&amp;alt=media)\n\n- External data\nI use 2 external data:\n*wheat spikes (https://www.kaggle.com/c/global-wheat-detection/discussion/164346), for license please refer (https://www.kaggle.com/c/global-wheat-detection/discussion/164346#928613)\n*wheat 2017 (https://plantimages.nottingham.ac.uk/) at post (https://www.kaggle.com/c/global-wheat-detection/discussion/148561#863159). \nI create annotations (bounding box) for all images and crop to 1024x1024. I contacted author to ensure the right without license issue.\n- Data Cleaning\n*Deleted tiny bounding boxes (width or height < 10px)\n*Fixed too big bounding boxes\n\n**Model**\n- 5 folds, stratified-kfold, splitted by source(usask_1, arvalis_1, arvalis_2...)\n- Optimizer: Adam with initial LR 5e-4 for EfficientDet and SGD with initial LR 5e-3 for Faster RCNN FPN\n- LR scheduler: cosine-annealing\n- Mixed precision training with nvidia-apex\n\n**Performance**\nValid AP/Public LB AP\n- EfficientDet-d7 image-size 768: Fold0 0.709/0.746, Fold1 0.716/0.750, Fold 2 0.707/0.749, Fold3 0.716/0.748, Fold4 0.713/0.740\n- EfficientDet-d7 image-size 1024: Fold1,3\n- EfficientDet-d5 image-size 512: Fold4\n- Faster RCNN FPN-resnet152 image-size 1024: Fold1\n- Ensemble 9 models above using wbf can achieve **0.7629 Public LB/0.7096 Private LB** (old testset)\n\n**Pseudo labeling**\n- Base: EfficientDet-d6 image-size 640 Fold1 0.716 Valid AP\n- Round1: Train EfficientDet-d6 10 epochs with trainset + hidden testset (output of ensembling), load weight from base checkpoint\n  Result: [old testset] 0.7719 Public LB/0.7175 Private LB and [new testset] 0.7633 Public LB/0.6787 Private LB\n- Round2: Continue train EfficientDet-d6 6 epochs with trainset + hidden testset (output of pseudo labeling round1), load weight from pseudo labeling round1 checkpoint\n  Result: [old testset]0.7754 Public LB/0.7205 Private LB and [new testset]0.7656 Public LB/0.6897 Private LB\n\nGithub source code at https://github.com/dungnb1333/global-wheat-dection-2020",
    "959409": "Please can you share the notebook?",
    "959414": "@nguyenbadung Thanks for sharing and congratulations!\nWhat did you use for TTA except flips?",
    "959394": "Congrats! Appreciate your approach",
    "959386": "Nice work!",
    "959241": "@nguyenbadung  Congrats! How do you set WBF hyperparameters?",
    "959168": "Congratulations!!",
    "958991": "thanks @nguyenbadung for the solution and repo and congrats..",
    "958948": "I have one question. What does EfficientDet-ed7/ed6/ed5 are ? \nIn Performance section there is ed7 and ed5 and in Pseudo Labeling ed6?",
    "958943": "Congrats!",
    "958891": "The mosaic augmentation trick is very interesting. Some questions: \n\n- do you know how much the additional datasets contribute to your final score? \n- how long did it take to train everything? I guess you have more than one GPU?\n\nCongratulations on winning!",
    "958861": "A lot of  works and amazing solution! Chúc mừng anh nhé ! Thanks for sharing",
    "958804": "Really amazing",
    "958802": "Congratulations! Thanks for sharing your solution.  Marek",
    "958737": "Thanks for sharing. It's a very valuable solution. By the way one less potential Yolov5 user.",
    "958612": "Thanks for sharing your solution - creative and amazing .",
    "958596": "lots of hard work and creativity. well-deserved.",
    "958548": "Great solution, congrats!\nDid you use gradient accumulation? What was the batch size?",
    "958541": "Congratulations! I learn a lot from you.",
    "958528": "Great job! It seems that my EfficientDet model have a consistently low LB performance across all variants despite competitive Public LB performance. Maybe my method got stuck in a local minima that is particularly unsuitable for the private board :(",
    "958500": "Congrats bro! Very solid solution @nguyenbadung. ",
    "958495": "sweet solution. congratulations!",
    "958485": "Chúc mừng anh, And thanks for sharing :D ",
    "958478": "Thank you for the detailed explanation.\nI learn a lot from you.\nThanks!",
    "958461": "the Custom mosaic augmentation was a great idea!\nI will try it in future! thanks @nguyenbadung for sharing",
    "958460": "This is really impressive! May I know if you will be releasing the codes on github?",
    "958454": "Congrats!",
    "958453": "Congratulations!\n\nDid you use **mixup** in your stage 1 models (models without pseudo labels)?\nIt seems like **mixup** gave you a huge boost to your 2nd stage models. My CenterNet without pseudo labels has similar score to your stage 1 models. I am wondering if **mixup** is the key to win",
    "958443": "Congratulations @nguyenbadung!!\n\nThank you for the detailed explanation.\nIt is great to deal additional data.\nI learn a lot from you.\nThanks! \n",
    "958441": "@nguyenbadung Congrats!!! And thanks for sharing! ",
    "958436": "hello，how to do hidden test?",
    "958435": "Really a lot of work.. \nIt's amazing👍 ",
    "958430": "Excellent.\nMay I ask if your local CV was correlated with your LB and how you manage the difference CV/LB ?",
    "965714": "@nguyenbadung congrats!\n\nCould you elaborate on the insight behind this version of the mosaic augmentation, as opposed to the version where the images are aligned, and the random crop point is somewhere in the centre? E.g. in Alex's notebook, or yolov5 if I'm right.\n\nI see that you keep in the original border information in the mosaic edges inside the image. But you also create 4xedge size new borders at the edges. So it seems like the same amount of original borders and new borders are included in the image as in the other version. Why is this one better? Did you compare the two in your experiments?",
    "965007": "Congratulations for being 3rd place now after validation!",
    "962239": "@nguyenbadung congrats on the 4th place.  I'd love some feedback on what you think I could add to my EfficientDet codebase given your experience with it. See (https://www.kaggle.com/c/global-wheat-detection/discussion/173112) or feel free to create issues in the repository.\n\nI'm planning to add mosaic augmentation to my impl. Looking forward to seeing the code for your take on it. Perhaps I can make 'border mosaic' a featured mode.",
    "959128": "i need to make a comment to get rid of novice",
    "959057": "恭喜，非常感谢您的分享，已收藏！",
    "958472": "Very well done and congratulations, you absolutely deserve the gold! I tried a similar \"mosaic\" augmentation towards the start of the competition after seeing mixup working well but mine didn't improve my FRCNN model. I'm curious how much those external datasets improved your model, do you happen to know? I didn't think Wheat 2017 would help at all since they aren't outdoor images but I guess I'm wrong if you used it. Also, I noticed the labels in the SPIKE dataset was pretty bad, worse than GWHD; did you pseudolabel these or do something to fix the labels?\n\nAwesome work once again and thanks for sharing this workflow with us!",
    "958464": "congratulations!! And thank you for sharing your solution!!\nYou chose different fold models in the ensemble step. May I ask you how did you determine the fold you use?",
    "965376": "Update title rồi nhận tiền tươi bao anh em đi nhậu thôi đại kiện tướng :)))",
    "2373211": "Kindly share notebook",
    "1475176": "Thank you for sharing this! I am new to Kaggle and somehow this platform suggests you to me. I'd like to follow you for more nice works.",
    "1221353": "Congratulations!",
    "996718": "@nguyenbadung thank you for sharing and congratulations on the well deserved win! I'm very impressed with what you've done. I have a couple of questions in case you have time to get around to them:\n\n1. I found gradient accumulation didn't work for me either (I noticed your comment below). I wonder why that is the case though. I think a model should train the same with or without gradient accumulation as it's just a question of parallelisation. Did you ever figure it out?\n\n2. For me, I found that model ensembling did not work at all. It seemed that after already having a lot of TTA, adding models just kept the score the same or decreased it. Did you experience this at all and did you have any tricks to get around it? What was your logic behind selecting specific splits for the ensembling?\n\nThanks!",
    "986712": "@nguyenbadung - or anyone else who can confirm , the MixUp being mentioned within this discussion and solution is == https://github.com/vikasverma1077/manifold_mixup , thanks - Regards . ",
    "984389": "Congrats Mate",
    "983327": "Congrats on good work!!",
    "983326": "Congrats on good work!",
    "982644": "Thank you for sharing! How long have you been in this field?",
    "981651": "Congrats 👍",
    "981239": "Do you have the plan to publish the code ?",
    "965877": "hi，how to avoid out of memory when you ensemble the nine  models",
    "965876": "hi，how to avoid out of memory when you ensemble the nine  models",
    "962945": "Thankyou @nguyenbadung for sharing your approach..  I too participated in this competition but did perform that well but looking further to implement your methodologies...  If possible for you, will you share across your resources from where you learn about all this...  ",
    "961734": "Good. Interesting. Please can you share the notebook?\n\n ",
    "959534": "@nguyenbadung Can you quantify the boost of the external data?",
    "3041132": "fantasitic,help me a lot",
    "958456": "",
    "962771": "Thanks for sharing ...",
    "960318": "Congratulations and thanks for sharing!",
    "958585": "solution amazing, thank for share",
    "959178": "Congrats and thank you for sharing:)",
    "965757": "Thanks for sharing!",
    "965597": "Nice work and thanks for sharing !"
  }
}