{
  "id": 674151,
  "title": "6th place writeup (LB: 0.87, Private: 0.842)",
  "url": "/competitions/dal-shemagh-detection-challenge/writeups/7th-place-writeup",
  "author_name": "",
  "post_date": "2026-02-18T23:17:21.370Z",
  "votes": 5,
  "comment_count": 2,
  "views": 0,
  "content": "<p>السلام عليكم، رمضان مبارك جميعا واعاننا الله على صيامه وقيامه</p>\n<p>First of all, thanks to the organizers for this challenging competition.</p>\n<p>My solution was quite simple (: \nIt got 0.842 on private lb, and 0.87 on public</p>\n<p>I did multiple expermints. My highest private was following setup:</p>\n<ul>\n<li>Yolo26 and RT-DETR ensemble</li>\n<li>WBF (method=max) with class-wise confidence</li>\n<li>640px inference</li>\n<li>convnext-tiny.dinov3 for right-place classificaiton</li>\n<li>Augmentations, mainly:<ul>\n<li>Channelshuffle and ToGray</li>\n<li>Gaussian Blur: Some images only show the blurred reflection of the target on a reflective glass (coffee shop's doors or smth) which the model was struggling to get. But when blur augmentaiton is used I noticed it got them all right!</li></ul></li>\n</ul>\n<h2>Training setup</h2>\n<ul>\n<li>RT-DETR trianed for 50 epochs on AdamW</li>\n<li>YOLO models trained for 30-40 epochs using SGD optimizer for faster convergence, 30 vs 100 epochs!</li>\n<li>Frozen layers: 7</li>\n<li>Multiscale if supported by model</li>\n<li>Mosaic and other Ultralytics augs</li>\n</ul>\n<h2>Postprocessing:</h2>\n<ul>\n<li>NMS on shemagh detection: Instead of regular conf NMS, I changed the priority sorting to include area as well. \n<code>conf * sqrt(area)</code> this would give higher priority to larger shemagh bboxes. This boosted the score noticably (idk how much exactly tho). </li>\n</ul>\n<p>Example of the cases this helped reduce; The largest shemagh, which I think is the correct bbox, has lower conf:</p>\n<p><img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F17258178%2F50fe061038e13f9650b59db3c8de0ded%2F110.jpg?generation=1771455635628954&amp;alt=media\" alt=\"\"></p>\n<ul>\n<li>Width to Height ratio filter: ignore higher than 4.5 (w/h or h/w)</li>\n<li>post-wbf confidence threshold: since I used wbf with max selection, the threshold needed to be slightly high. </li>\n<li>Remove person bboxes with small area (sqrt) in comparsion to the largest person bbox in the image. </li>\n</ul>\n<h2>Right-Place classification</h2>\n<p>To create data to train the convnext, I collected data from train and pesudo labeling (heuristic right-place), in such a way that each third of the data:</p>\n<ul>\n<li>has no shemagh or no person or both</li>\n<li>has shemagh and person but not right-place (bottleneck)</li>\n<li>has shemagh and person and right-place</li>\n</ul>\n<p>Then did 5skf and inference with the fold models. </p>\n<p>The training and inference notebook is shared.</p>\n<p>That's it. Thanks for reading!</p>\n<h6>Thumbnail: NASA daily images archive of the day</h6>",
  "messages": [
    {
      "id": "3407693",
      "postDate": "02/18/2026 23:16:55",
      "content": "<p>السلام عليكم، رمضان مبارك جميعا واعاننا الله على صيامه وقيامه</p>\n<p>First of all, thanks to the organizers for this challenging competition.</p>\n<p>My solution was quite simple (: \nIt got 0.842 on private lb, and 0.87 on public</p>\n<p>I did multiple expermints. My highest private was following setup:</p>\n<ul>\n<li>Yolo26 and RT-DETR ensemble</li>\n<li>WBF (method=max) with class-wise confidence</li>\n<li>640px inference</li>\n<li>convnext-tiny.dinov3 for right-place classificaiton</li>\n<li>Augmentations, mainly:<ul>\n<li>Channelshuffle and ToGray</li>\n<li>Gaussian Blur: Some images only show the blurred reflection of the target on a reflective glass (coffee shop's doors or smth) which the model was struggling to get. But when blur augmentaiton is used I noticed it got them all right!</li></ul></li>\n</ul>\n<h2>Training setup</h2>\n<ul>\n<li>RT-DETR trianed for 50 epochs on AdamW</li>\n<li>YOLO models trained for 30-40 epochs using SGD optimizer for faster convergence, 30 vs 100 epochs!</li>\n<li>Frozen layers: 7</li>\n<li>Multiscale if supported by model</li>\n<li>Mosaic and other Ultralytics augs</li>\n</ul>\n<h2>Postprocessing:</h2>\n<ul>\n<li>NMS on shemagh detection: Instead of regular conf NMS, I changed the priority sorting to include area as well. \n<code>conf * sqrt(area)</code> this would give higher priority to larger shemagh bboxes. This boosted the score noticably (idk how much exactly tho). </li>\n</ul>\n<p>Example of the cases this helped reduce; The largest shemagh, which I think is the correct bbox, has lower conf:</p>\n<p><img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F17258178%2F50fe061038e13f9650b59db3c8de0ded%2F110.jpg?generation=1771455635628954&amp;alt=media\" alt=\"\"></p>\n<ul>\n<li>Width to Height ratio filter: ignore higher than 4.5 (w/h or h/w)</li>\n<li>post-wbf confidence threshold: since I used wbf with max selection, the threshold needed to be slightly high. </li>\n<li>Remove person bboxes with small area (sqrt) in comparsion to the largest person bbox in the image. </li>\n</ul>\n<h2>Right-Place classification</h2>\n<p>To create data to train the convnext, I collected data from train and pesudo labeling (heuristic right-place), in such a way that each third of the data:</p>\n<ul>\n<li>has no shemagh or no person or both</li>\n<li>has shemagh and person but not right-place (bottleneck)</li>\n<li>has shemagh and person and right-place</li>\n</ul>\n<p>Then did 5skf and inference with the fold models. </p>\n<p>The training and inference notebook is shared.</p>\n<p>That's it. Thanks for reading!</p>\n<h6>Thumbnail: NASA daily images archive of the day</h6>",
      "rawMarkdown": "السلام عليكم، رمضان مبارك جميعا واعاننا الله على صيامه وقيامه\n\nFirst of all, thanks to the organizers for this challenging competition.\n\nMy solution was quite simple (: \nIt got 0.842 on private lb, and 0.87 on public\n\nI did multiple expermints. My highest private was following setup:\n- Yolo26 and RT-DETR ensemble\n- WBF (method=max) with class-wise confidence\n- 640px inference\n- convnext-tiny.dinov3 for right-place classificaiton\n- Augmentations, mainly:\n      - Channelshuffle and ToGray\n      - Gaussian Blur: Some images only show the blurred reflection of the target on a reflective glass (coffee shop's doors or smth) which the model was struggling to get. But when blur augmentaiton is used I noticed it got them all right!\n\n## Training setup\n- RT-DETR trianed for 50 epochs on AdamW\n- YOLO models trained for 30-40 epochs using SGD optimizer for faster convergence, 30 vs 100 epochs!\n- Frozen layers: 7\n- Multiscale if supported by model\n- Mosaic and other Ultralytics augs\n\n## Postprocessing:\n- NMS on shemagh detection: Instead of regular conf NMS, I changed the priority sorting to include area as well. \n`conf * sqrt(area)` this would give higher priority to larger shemagh bboxes. This boosted the score noticably (idk how much exactly tho). \n\nExample of the cases this helped reduce; The largest shemagh, which I think is the correct bbox, has lower conf:\n\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F17258178%2F50fe061038e13f9650b59db3c8de0ded%2F110.jpg?generation=1771455635628954&alt=media)\n\n- Width to Height ratio filter: ignore higher than 4.5 (w/h or h/w)\n- post-wbf confidence threshold: since I used wbf with max selection, the threshold needed to be slightly high. \n- Remove person bboxes with small area (sqrt) in comparsion to the largest person bbox in the image. \n\n## Right-Place classification\nTo create data to train the convnext, I collected data from train and pesudo labeling (heuristic right-place), in such a way that each third of the data:\n- has no shemagh or no person or both\n- has shemagh and person but not right-place (bottleneck)\n- has shemagh and person and right-place\n\nThen did 5skf and inference with the fold models. \n\nThe training and inference notebook is shared.\n\nThat's it. Thanks for reading!\n\n###### Thumbnail: NASA daily images archive of the day",
      "votes": null
    },
    {
      "id": "3407702",
      "postDate": "02/19/2026 00:02:40",
      "content": "<p>Goated writeup, thanks for sharing! I'm sure if you invested more time in this comp you could've gotten 1st. Good luck in future challenges. </p>",
      "rawMarkdown": "Goated writeup, thanks for sharing! I'm sure if you invested more time in this comp you could've gotten 1st. Good luck in future challenges.",
      "votes": null
    },
    {
      "id": "3408083",
      "postDate": "02/19/2026 18:55:09",
      "content": "<p>I like how did you use NMS and ty for sharing that, good work!  im sure if you got enough time gonna grab 1st place </p>",
      "rawMarkdown": "I like how did you use NMS and ty for sharing that, good work!  im sure if you got enough time gonna grab 1st place",
      "votes": null
    }
  ],
  "comments": [
    {
      "id": 3407702,
      "author_name": "hassanalgamdi",
      "author_url": "",
      "post_date": "02/19/2026 00:02:40",
      "content": "<p>Goated writeup, thanks for sharing! I'm sure if you invested more time in this comp you could've gotten 1st. Good luck in future challenges. </p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 3408083,
      "author_name": "abdullahhalees",
      "author_url": "",
      "post_date": "02/19/2026 18:55:09",
      "content": "<p>I like how did you use NMS and ty for sharing that, good work!  im sure if you got enough time gonna grab 1st place </p>",
      "votes": null,
      "replies": []
    }
  ],
  "raw_markdown_by_id": {
    "3407693": "السلام عليكم، رمضان مبارك جميعا واعاننا الله على صيامه وقيامه\n\nFirst of all, thanks to the organizers for this challenging competition.\n\nMy solution was quite simple (: \nIt got 0.842 on private lb, and 0.87 on public\n\nI did multiple expermints. My highest private was following setup:\n- Yolo26 and RT-DETR ensemble\n- WBF (method=max) with class-wise confidence\n- 640px inference\n- convnext-tiny.dinov3 for right-place classificaiton\n- Augmentations, mainly:\n      - Channelshuffle and ToGray\n      - Gaussian Blur: Some images only show the blurred reflection of the target on a reflective glass (coffee shop's doors or smth) which the model was struggling to get. But when blur augmentaiton is used I noticed it got them all right!\n\n## Training setup\n- RT-DETR trianed for 50 epochs on AdamW\n- YOLO models trained for 30-40 epochs using SGD optimizer for faster convergence, 30 vs 100 epochs!\n- Frozen layers: 7\n- Multiscale if supported by model\n- Mosaic and other Ultralytics augs\n\n## Postprocessing:\n- NMS on shemagh detection: Instead of regular conf NMS, I changed the priority sorting to include area as well. \n`conf * sqrt(area)` this would give higher priority to larger shemagh bboxes. This boosted the score noticably (idk how much exactly tho). \n\nExample of the cases this helped reduce; The largest shemagh, which I think is the correct bbox, has lower conf:\n\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F17258178%2F50fe061038e13f9650b59db3c8de0ded%2F110.jpg?generation=1771455635628954&alt=media)\n\n- Width to Height ratio filter: ignore higher than 4.5 (w/h or h/w)\n- post-wbf confidence threshold: since I used wbf with max selection, the threshold needed to be slightly high. \n- Remove person bboxes with small area (sqrt) in comparsion to the largest person bbox in the image. \n\n## Right-Place classification\nTo create data to train the convnext, I collected data from train and pesudo labeling (heuristic right-place), in such a way that each third of the data:\n- has no shemagh or no person or both\n- has shemagh and person but not right-place (bottleneck)\n- has shemagh and person and right-place\n\nThen did 5skf and inference with the fold models. \n\nThe training and inference notebook is shared.\n\nThat's it. Thanks for reading!\n\n###### Thumbnail: NASA daily images archive of the day",
    "3407702": "Goated writeup, thanks for sharing! I'm sure if you invested more time in this comp you could've gotten 1st. Good luck in future challenges.",
    "3408083": "I like how did you use NMS and ty for sharing that, good work!  im sure if you got enough time gonna grab 1st place"
  },
  "source": "meta"
}