{
  "id": 307669,
  "title": "37th place solution - T0m part [Segment Copy-Paste & Progressive Learning]",
  "url": "/competitions/tensorflow-great-barrier-reef/writeups/sea-of-dreams-37th-place-solution-t0m-part-segment",
  "author_name": "",
  "post_date": "2022-02-15T06:30:22.904027400Z",
  "votes": 30,
  "comment_count": 10,
  "views": 0,
  "content": "<p>Thanks to the hosts for providing an interesting competition, and congratulation to all winners.<br>\nThis is my first detection competition and it was good experience.</p>\n<p>I want to share my work's key points.</p>\n<h1>Segment Copy-Paste Augmentation</h1>\n<p>We thought it was important for the model to learn to detect a small cots. So we tried augmenting the data by attaching a small starfish. However, we thought that a simple copy-paste would result in an unnatural image and overfitting of the background. Therefore, we ( <a href=\"https://www.kaggle.com/aerdem4\" target=\"_blank\">@aerdem4</a> ) first train a segmentation model, created a segmentation mask, and then applied copy-paste augmentation using them.</p>\n<p><a href=\"https://postimg.cc/MXrry1SC\" target=\"_blank\"><img src=\"https://i.postimg.cc/dtqPc9SV/2022-02-15-14-53-57.png\" alt=\"2022-02-15-14-53-57.png\"></a></p>\n<p>As it is, the style is different, we transform style by shifting RGB value to meet the mean.<br>\nex) segment[:, :, 0] = segment[:, :, 0] - (segment[:, :, 0].mean() - background[:, :, 0].mean())</p>\n<h1>Progressive Learning</h1>\n<p>To create a model that is robust to noise and size, image size and augmentation were made larger and stronger as the epoch progresses (Progressive Learning)</p>\n<p><a href=\"https://postimg.cc/0bRXWPzn\" target=\"_blank\"><img src=\"https://i.postimg.cc/TYp8PPGz/2022-02-15-14-54-11.png\" alt=\"2022-02-15-14-54-11.png\"></a></p>\n<h1>Model</h1>\n<table>\n<thead>\n<tr>\n<th>Model</th>\n<th>image_size</th>\n<th>description</th>\n<th>PublicLB</th>\n<th>PrivateLB</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>yolov5m</td>\n<td>3200</td>\n<td>CustomCopyPaste &amp; Progressive Learning Epoch=25</td>\n<td>0.629</td>\n<td>0.699</td>\n</tr>\n<tr>\n<td>yolov5m</td>\n<td>3000</td>\n<td>Epoch=8</td>\n<td>0.662</td>\n<td>0.691</td>\n</tr>\n<tr>\n<td>yolov5x6</td>\n<td>1920</td>\n<td>Epoch=12</td>\n<td>???</td>\n<td>???</td>\n</tr>\n</tbody>\n</table>\n<p>I used TTA and Tracking.</p>\n<p>train: video-0, 1<br>\nvalid: video-2 (CV: 0.71~0.73)</p>\n<h1>Ensemble</h1>\n<p>Ensemble by using wbf.<br>\nand, weighted conf for each detected bbox size.</p>\n<p>ex)<br>\nif (bbox from model_1 and bbox_area &lt; 1000):<br>\n    conf *= 3<br>\nelif (bbox from model_1 and bbox_area &lt; 4000):<br>\n    conf *= 0.5<br>\n…<br>\nand then wbf</p>\n<table>\n<thead>\n<tr>\n<th>Description</th>\n<th>PublicLB</th>\n<th>PrivateLB</th>\n<th>sub</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>3 Model</td>\n<td>0.638</td>\n<td>0.711</td>\n<td>not selected</td>\n</tr>\n<tr>\n<td>3 Model re-train full-data</td>\n<td>0.638</td>\n<td>0.696</td>\n<td>selected</td>\n</tr>\n</tbody>\n</table>\n<p>CV: 0.77~0.78</p>\n<p>Thanks :)</p>",
  "messages": [
    {
      "id": "1690889",
      "postDate": "02/15/2022 06:30:22",
      "content": "<p>Thanks to the hosts for providing an interesting competition, and congratulation to all winners.<br>\nThis is my first detection competition and it was good experience.</p>\n<p>I want to share my work's key points.</p>\n<h1>Segment Copy-Paste Augmentation</h1>\n<p>We thought it was important for the model to learn to detect a small cots. So we tried augmenting the data by attaching a small starfish. However, we thought that a simple copy-paste would result in an unnatural image and overfitting of the background. Therefore, we ( <a href=\"https://www.kaggle.com/aerdem4\" target=\"_blank\">@aerdem4</a> ) first train a segmentation model, created a segmentation mask, and then applied copy-paste augmentation using them.</p>\n<p><a href=\"https://postimg.cc/MXrry1SC\" target=\"_blank\"><img src=\"https://i.postimg.cc/dtqPc9SV/2022-02-15-14-53-57.png\" alt=\"2022-02-15-14-53-57.png\"></a></p>\n<p>As it is, the style is different, we transform style by shifting RGB value to meet the mean.<br>\nex) segment[:, :, 0] = segment[:, :, 0] - (segment[:, :, 0].mean() - background[:, :, 0].mean())</p>\n<h1>Progressive Learning</h1>\n<p>To create a model that is robust to noise and size, image size and augmentation were made larger and stronger as the epoch progresses (Progressive Learning)</p>\n<p><a href=\"https://postimg.cc/0bRXWPzn\" target=\"_blank\"><img src=\"https://i.postimg.cc/TYp8PPGz/2022-02-15-14-54-11.png\" alt=\"2022-02-15-14-54-11.png\"></a></p>\n<h1>Model</h1>\n<table>\n<thead>\n<tr>\n<th>Model</th>\n<th>image_size</th>\n<th>description</th>\n<th>PublicLB</th>\n<th>PrivateLB</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>yolov5m</td>\n<td>3200</td>\n<td>CustomCopyPaste &amp; Progressive Learning Epoch=25</td>\n<td>0.629</td>\n<td>0.699</td>\n</tr>\n<tr>\n<td>yolov5m</td>\n<td>3000</td>\n<td>Epoch=8</td>\n<td>0.662</td>\n<td>0.691</td>\n</tr>\n<tr>\n<td>yolov5x6</td>\n<td>1920</td>\n<td>Epoch=12</td>\n<td>???</td>\n<td>???</td>\n</tr>\n</tbody>\n</table>\n<p>I used TTA and Tracking.</p>\n<p>train: video-0, 1<br>\nvalid: video-2 (CV: 0.71~0.73)</p>\n<h1>Ensemble</h1>\n<p>Ensemble by using wbf.<br>\nand, weighted conf for each detected bbox size.</p>\n<p>ex)<br>\nif (bbox from model_1 and bbox_area &lt; 1000):<br>\n    conf *= 3<br>\nelif (bbox from model_1 and bbox_area &lt; 4000):<br>\n    conf *= 0.5<br>\n…<br>\nand then wbf</p>\n<table>\n<thead>\n<tr>\n<th>Description</th>\n<th>PublicLB</th>\n<th>PrivateLB</th>\n<th>sub</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>3 Model</td>\n<td>0.638</td>\n<td>0.711</td>\n<td>not selected</td>\n</tr>\n<tr>\n<td>3 Model re-train full-data</td>\n<td>0.638</td>\n<td>0.696</td>\n<td>selected</td>\n</tr>\n</tbody>\n</table>\n<p>CV: 0.77~0.78</p>\n<p>Thanks :)</p>",
      "rawMarkdown": "Thanks to the hosts for providing an interesting competition, and congratulation to all winners.\nThis is my first detection competition and it was good experience.\n\nI want to share my work's key points.\n\n# Segment Copy-Paste Augmentation\n\nWe thought it was important for the model to learn to detect a small cots. So we tried augmenting the data by attaching a small starfish. However, we thought that a simple copy-paste would result in an unnatural image and overfitting of the background. Therefore, we ( @aerdem4 ) first train a segmentation model, created a segmentation mask, and then applied copy-paste augmentation using them.\n\n[![2022-02-15-14-53-57.png](https://i.postimg.cc/dtqPc9SV/2022-02-15-14-53-57.png)](https://postimg.cc/MXrry1SC)\n\nAs it is, the style is different, we transform style by shifting RGB value to meet the mean.\nex) segment[:, :, 0] = segment[:, :, 0] - (segment[:, :, 0].mean() - background[:, :, 0].mean())\n\n\n# Progressive Learning\n\nTo create a model that is robust to noise and size, image size and augmentation were made larger and stronger as the epoch progresses (Progressive Learning)\n\n[![2022-02-15-14-54-11.png](https://i.postimg.cc/TYp8PPGz/2022-02-15-14-54-11.png)](https://postimg.cc/0bRXWPzn)\n\n\n# Model\n| Model | image_size | description | PublicLB | PrivateLB |\n| --- | --- | --- | --- | --- |\n| yolov5m | 3200 | CustomCopyPaste & Progressive Learning Epoch=25 | 0.629 | 0.699 |\n| yolov5m | 3000 | Epoch=8 | 0.662 | 0.691 |\n| yolov5x6 | 1920 | Epoch=12 | ??? | ??? |\n\nI used TTA and Tracking.\n\ntrain: video-0, 1\nvalid: video-2 (CV: 0.71~0.73)\n\n# Ensemble\nEnsemble by using wbf.\nand, weighted conf for each detected bbox size.\n\nex)\nif (bbox from model_1 and bbox_area < 1000):\n    conf *= 3\nelif (bbox from model_1 and bbox_area < 4000):\n    conf *= 0.5\n...\nand then wbf\n\n| Description | PublicLB | PrivateLB | sub |\n| --- | --- | --- | --- |\n| 3 Model | 0.638 | 0.711 | not selected |\n| 3 Model re-train full-data| 0.638 | 0.696 | selected |\n\nCV: 0.77~0.78\n\nThanks :)",
      "votes": null
    },
    {
      "id": "1690923",
      "postDate": "02/15/2022 06:51:24",
      "content": "<p>Very nice solution! Congratulations and that you for sharing.<br>\nWhat was your batch_size during progressive learning? </p>",
      "rawMarkdown": "Very nice solution! Congratulations and that you for sharing.\nWhat was your batch_size during progressive learning?",
      "votes": null
    },
    {
      "id": "1690954",
      "postDate": "02/15/2022 07:07:05",
      "content": "<p>Congrats on getting 37th position. This progressive learning was something we missed trying out. And we also did not selected our best CV performance :)</p>",
      "rawMarkdown": "Congrats on getting 37th position. This progressive learning was something we missed trying out. And we also did not selected our best CV performance :)",
      "votes": null
    },
    {
      "id": "1690999",
      "postDate": "02/15/2022 07:23:49",
      "content": "<p>Thanks for your comment, and congrats too on getting 45th :)<br>\nI think that progressive learning has made the model more robust by applying strong augmentation.</p>",
      "rawMarkdown": "Thanks for your comment, and congrats too on getting 45th :)\nI think that progressive learning has made the model more robust by applying strong augmentation.",
      "votes": null
    },
    {
      "id": "1691005",
      "postDate": "02/15/2022 07:26:40",
      "content": "<p>Thanks for your comment, and congrats too on getting 34th.<br>\nAnd, your contribution to this comp made it possible for me to run this competition :)<br>\nin all my exps, batch_size is 4. 4 is better than 8, 16 ~.</p>",
      "rawMarkdown": "Thanks for your comment, and congrats too on getting 34th.\nAnd, your contribution to this comp made it possible for me to run this competition :)\nin all my exps, batch_size is 4. 4 is better than 8, 16 ~.",
      "votes": null
    },
    {
      "id": "1691009",
      "postDate": "02/15/2022 07:28:13",
      "content": "<p>Thank you!!! 👍👍👍</p>",
      "rawMarkdown": "Thank you!!! 👍👍👍",
      "votes": null
    },
    {
      "id": "1691275",
      "postDate": "02/15/2022 10:25:29",
      "content": "<p>Great work, grats! <br>\nCan u tell me what was the other hyps for training: initial weights, lr, optimizer? </p>",
      "rawMarkdown": "Great work, grats! \nCan u tell me what was the other hyps for training: initial weights, lr, optimizer?",
      "votes": null
    },
    {
      "id": "1691403",
      "postDate": "02/15/2022 11:49:10",
      "content": "<p>Thanks for your comment !!<br>\noptimizer=Adam, initial_lr=1e-3, warmup_epoch=1.</p>\n<p>and, I customized augmentation order like below,</p>\n<pre><code># default\nif mosaic or not:\n  image = load_mosaic_image()\n  if mixup or not:\n    image2 = load_mosaic_image()\n    image = mixup(image, image2)\nelse:\n  image = load_image()\n\nimage = augment(image)\nimage = flip(image, p)\n\n# mine\nif mosaic or not:\n  image = load_mosaic_image()\nelse:\n  image = load_image()\nimage = flip(image, p)\n\nif mixup or not:\n  if mosaic or not:\n    image2 = load_mosaic_image()\n  else:\n    image2 = load_image()\n  image2 = flip(image2, p)\n  image = mixup(image, image2)\n\nimage = augment(image)\n</code></pre>\n<p>Change<br>\nonly apply mixup when original image is mosaic augmented<br>\n-&gt; outside mixup augment<br>\nflip apply after mixup augment<br>\n-&gt; flip was applied before mixup (Probability)</p>\n<p>Sorry if this is hard to see, feel free to ask</p>",
      "rawMarkdown": "Thanks for your comment !!\noptimizer=Adam, initial_lr=1e-3, warmup_epoch=1.\n\nand, I customized augmentation order like below,\n\n```\n# default\nif mosaic or not:\n  image = load_mosaic_image()\n  if mixup or not:\n    image2 = load_mosaic_image()\n    image = mixup(image, image2)\nelse:\n  image = load_image()\n\nimage = augment(image)\nimage = flip(image, p)\n\n# mine\nif mosaic or not:\n  image = load_mosaic_image()\nelse:\n  image = load_image()\nimage = flip(image, p)\n\nif mixup or not:\n  if mosaic or not:\n    image2 = load_mosaic_image()\n  else:\n    image2 = load_image()\n  image2 = flip(image2, p)\n  image = mixup(image, image2)\n\nimage = augment(image)\n```\n\nChange\nonly apply mixup when original image is mosaic augmented\n-> outside mixup augment\nflip apply after mixup augment\n-> flip was applied before mixup (Probability)\n\nSorry if this is hard to see, feel free to ask",
      "votes": null
    },
    {
      "id": "1691561",
      "postDate": "02/15/2022 13:29:21",
      "content": "<p>Congratulations Tom and Ahmet. I see that you used Yolov5m, did you also try Yolov5m6? I didn't try any of the of the Yolo's without 6, i'm wondering how they compared in this comp.</p>",
      "rawMarkdown": "Congratulations Tom and Ahmet. I see that you used Yolov5m, did you also try Yolov5m6? I didn't try any of the of the Yolo's without 6, i'm wondering how they compared in this comp.",
      "votes": null
    },
    {
      "id": "1691611",
      "postDate": "02/15/2022 13:57:19",
      "content": "<p>Thanks for your comment, Chris. Yes, I tried yolov5s ~ yolov5x and yolov5s6 ~ yolov5x6, and finally select the above models by comparing the cv results.<br>\nBasically, based on the size of the image, I think, a model with 6 would be suitable for the scale of this competition, but that wasn't the case in my experiment.</p>",
      "rawMarkdown": "Thanks for your comment, Chris. Yes, I tried yolov5s ~ yolov5x and yolov5s6 ~ yolov5x6, and finally select the above models by comparing the cv results.\nBasically, based on the size of the image, I think, a model with 6 would be suitable for the scale of this competition, but that wasn't the case in my experiment.",
      "votes": null
    },
    {
      "id": "1692823",
      "postDate": "02/16/2022 09:04:31",
      "content": "<p>Thank you! And what about initial weights? </p>",
      "rawMarkdown": "Thank you! And what about initial weights?",
      "votes": null
    }
  ],
  "comments": [
    {
      "id": 1690923,
      "author_name": "remekkinas",
      "author_url": "",
      "post_date": "02/15/2022 06:51:24",
      "content": "<p>Very nice solution! Congratulations and that you for sharing.<br>\nWhat was your batch_size during progressive learning? </p>",
      "votes": null,
      "replies": [
        {
          "id": 1691005,
          "author_name": "tomyanabe",
          "author_url": "",
          "post_date": "02/15/2022 07:26:40",
          "content": "<p>Thanks for your comment, and congrats too on getting 34th.<br>\nAnd, your contribution to this comp made it possible for me to run this competition :)<br>\nin all my exps, batch_size is 4. 4 is better than 8, 16 ~.</p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 1691009,
          "author_name": "remekkinas",
          "author_url": "",
          "post_date": "02/15/2022 07:28:13",
          "content": "<p>Thank you!!! 👍👍👍</p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 1690954,
      "author_name": "sanchitvj",
      "author_url": "",
      "post_date": "02/15/2022 07:07:05",
      "content": "<p>Congrats on getting 37th position. This progressive learning was something we missed trying out. And we also did not selected our best CV performance :)</p>",
      "votes": null,
      "replies": [
        {
          "id": 1690999,
          "author_name": "tomyanabe",
          "author_url": "",
          "post_date": "02/15/2022 07:23:49",
          "content": "<p>Thanks for your comment, and congrats too on getting 45th :)<br>\nI think that progressive learning has made the model more robust by applying strong augmentation.</p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 1691275,
      "author_name": "artemkonshin",
      "author_url": "",
      "post_date": "02/15/2022 10:25:29",
      "content": "<p>Great work, grats! <br>\nCan u tell me what was the other hyps for training: initial weights, lr, optimizer? </p>",
      "votes": null,
      "replies": [
        {
          "id": 1691403,
          "author_name": "tomyanabe",
          "author_url": "",
          "post_date": "02/15/2022 11:49:10",
          "content": "<p>Thanks for your comment !!<br>\noptimizer=Adam, initial_lr=1e-3, warmup_epoch=1.</p>\n<p>and, I customized augmentation order like below,</p>\n<pre><code># default\nif mosaic or not:\n  image = load_mosaic_image()\n  if mixup or not:\n    image2 = load_mosaic_image()\n    image = mixup(image, image2)\nelse:\n  image = load_image()\n\nimage = augment(image)\nimage = flip(image, p)\n\n# mine\nif mosaic or not:\n  image = load_mosaic_image()\nelse:\n  image = load_image()\nimage = flip(image, p)\n\nif mixup or not:\n  if mosaic or not:\n    image2 = load_mosaic_image()\n  else:\n    image2 = load_image()\n  image2 = flip(image2, p)\n  image = mixup(image, image2)\n\nimage = augment(image)\n</code></pre>\n<p>Change<br>\nonly apply mixup when original image is mosaic augmented<br>\n-&gt; outside mixup augment<br>\nflip apply after mixup augment<br>\n-&gt; flip was applied before mixup (Probability)</p>\n<p>Sorry if this is hard to see, feel free to ask</p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 1692823,
          "author_name": "artemkonshin",
          "author_url": "",
          "post_date": "02/16/2022 09:04:31",
          "content": "<p>Thank you! And what about initial weights? </p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 1691561,
      "author_name": "cdeotte",
      "author_url": "",
      "post_date": "02/15/2022 13:29:21",
      "content": "<p>Congratulations Tom and Ahmet. I see that you used Yolov5m, did you also try Yolov5m6? I didn't try any of the of the Yolo's without 6, i'm wondering how they compared in this comp.</p>",
      "votes": null,
      "replies": [
        {
          "id": 1691611,
          "author_name": "tomyanabe",
          "author_url": "",
          "post_date": "02/15/2022 13:57:19",
          "content": "<p>Thanks for your comment, Chris. Yes, I tried yolov5s ~ yolov5x and yolov5s6 ~ yolov5x6, and finally select the above models by comparing the cv results.<br>\nBasically, based on the size of the image, I think, a model with 6 would be suitable for the scale of this competition, but that wasn't the case in my experiment.</p>",
          "votes": null,
          "replies": []
        }
      ]
    }
  ],
  "raw_markdown_by_id": {
    "1690889": "Thanks to the hosts for providing an interesting competition, and congratulation to all winners.\nThis is my first detection competition and it was good experience.\n\nI want to share my work's key points.\n\n# Segment Copy-Paste Augmentation\n\nWe thought it was important for the model to learn to detect a small cots. So we tried augmenting the data by attaching a small starfish. However, we thought that a simple copy-paste would result in an unnatural image and overfitting of the background. Therefore, we ( @aerdem4 ) first train a segmentation model, created a segmentation mask, and then applied copy-paste augmentation using them.\n\n[![2022-02-15-14-53-57.png](https://i.postimg.cc/dtqPc9SV/2022-02-15-14-53-57.png)](https://postimg.cc/MXrry1SC)\n\nAs it is, the style is different, we transform style by shifting RGB value to meet the mean.\nex) segment[:, :, 0] = segment[:, :, 0] - (segment[:, :, 0].mean() - background[:, :, 0].mean())\n\n\n# Progressive Learning\n\nTo create a model that is robust to noise and size, image size and augmentation were made larger and stronger as the epoch progresses (Progressive Learning)\n\n[![2022-02-15-14-54-11.png](https://i.postimg.cc/TYp8PPGz/2022-02-15-14-54-11.png)](https://postimg.cc/0bRXWPzn)\n\n\n# Model\n| Model | image_size | description | PublicLB | PrivateLB |\n| --- | --- | --- | --- | --- |\n| yolov5m | 3200 | CustomCopyPaste & Progressive Learning Epoch=25 | 0.629 | 0.699 |\n| yolov5m | 3000 | Epoch=8 | 0.662 | 0.691 |\n| yolov5x6 | 1920 | Epoch=12 | ??? | ??? |\n\nI used TTA and Tracking.\n\ntrain: video-0, 1\nvalid: video-2 (CV: 0.71~0.73)\n\n# Ensemble\nEnsemble by using wbf.\nand, weighted conf for each detected bbox size.\n\nex)\nif (bbox from model_1 and bbox_area < 1000):\n    conf *= 3\nelif (bbox from model_1 and bbox_area < 4000):\n    conf *= 0.5\n...\nand then wbf\n\n| Description | PublicLB | PrivateLB | sub |\n| --- | --- | --- | --- |\n| 3 Model | 0.638 | 0.711 | not selected |\n| 3 Model re-train full-data| 0.638 | 0.696 | selected |\n\nCV: 0.77~0.78\n\nThanks :)",
    "1690923": "Very nice solution! Congratulations and that you for sharing.\nWhat was your batch_size during progressive learning?",
    "1690954": "Congrats on getting 37th position. This progressive learning was something we missed trying out. And we also did not selected our best CV performance :)",
    "1690999": "Thanks for your comment, and congrats too on getting 45th :)\nI think that progressive learning has made the model more robust by applying strong augmentation.",
    "1691005": "Thanks for your comment, and congrats too on getting 34th.\nAnd, your contribution to this comp made it possible for me to run this competition :)\nin all my exps, batch_size is 4. 4 is better than 8, 16 ~.",
    "1691009": "Thank you!!! 👍👍👍",
    "1691275": "Great work, grats! \nCan u tell me what was the other hyps for training: initial weights, lr, optimizer?",
    "1691403": "Thanks for your comment !!\noptimizer=Adam, initial_lr=1e-3, warmup_epoch=1.\n\nand, I customized augmentation order like below,\n\n```\n# default\nif mosaic or not:\n  image = load_mosaic_image()\n  if mixup or not:\n    image2 = load_mosaic_image()\n    image = mixup(image, image2)\nelse:\n  image = load_image()\n\nimage = augment(image)\nimage = flip(image, p)\n\n# mine\nif mosaic or not:\n  image = load_mosaic_image()\nelse:\n  image = load_image()\nimage = flip(image, p)\n\nif mixup or not:\n  if mosaic or not:\n    image2 = load_mosaic_image()\n  else:\n    image2 = load_image()\n  image2 = flip(image2, p)\n  image = mixup(image, image2)\n\nimage = augment(image)\n```\n\nChange\nonly apply mixup when original image is mosaic augmented\n-> outside mixup augment\nflip apply after mixup augment\n-> flip was applied before mixup (Probability)\n\nSorry if this is hard to see, feel free to ask",
    "1691561": "Congratulations Tom and Ahmet. I see that you used Yolov5m, did you also try Yolov5m6? I didn't try any of the of the Yolo's without 6, i'm wondering how they compared in this comp.",
    "1691611": "Thanks for your comment, Chris. Yes, I tried yolov5s ~ yolov5x and yolov5s6 ~ yolov5x6, and finally select the above models by comparing the cv results.\nBasically, based on the size of the image, I think, a model with 6 would be suitable for the scale of this competition, but that wasn't the case in my experiment.",
    "1692823": "Thank you! And what about initial weights?"
  },
  "source": "meta"
}