{
  "id": 563862,
  "title": "Summary of solutions (1~43)",
  "url": "/competitions/czii-cryo-et-object-identification/discussion/563862",
  "author_name": "",
  "post_date": "2025-02-19T14:36:12.140733Z",
  "votes": 30,
  "comment_count": 4,
  "views": 0,
  "content": "<p>I have summarized the solutions from several perspectives.<br>\nThere may be mistakes.</p>\n<p>My summary report in japanese.<br>\n<a href=\"https://speakerdeck.com/sugupoko/cziikonpezhen-rifan-ri-guan-xi-kagglerhui-jiao-liu-hui-in-osaka-2025-number-1\" target=\"_blank\">https://speakerdeck.com/sugupoko/cziikonpezhen-rifan-ri-guan-xi-kagglerhui-jiao-liu-hui-in-osaka-2025-number-1</a></p>\n<p>markdown table</p>\n<table>\n<thead>\n<tr>\n<th>Rank</th>\n<th>Link</th>\n<th>Architecture</th>\n<th>Task</th>\n<th>Loss</th>\n<th>Resolution</th>\n<th>Pretraining</th>\n<th>Extra Data</th>\n<th>EMA/SWA</th>\n<th>Ensemble / TTA</th>\n<th>Key Point ?</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>1st</td>\n<td>Seg：kaggle.com; Det：Kaggle</td>\n<td>3D MONAIs FlexibleUnet; 3D Yolo</td>\n<td>Seg &amp; det</td>\n<td>Seg: weighted CrossEntropy (pos256: neg 1); Det: PP-Yolo loss function with modifications</td>\n<td>inference is lager</td>\n<td>no</td>\n<td>no</td>\n<td>no</td>\n<td>merge of different types with scaling of conf</td>\n<td>diversity of strategies</td>\n</tr>\n<tr>\n<td>2nd</td>\n<td>Kaggle</td>\n<td>3D; Various</td>\n<td>seg</td>\n<td>1. Dice Loss, Tversky Loss and Cross-Entropy Loss; 2. Tversky Loss and Cross-Entropy Loss</td>\n<td>inference is lager</td>\n<td>no</td>\n<td>no</td>\n<td>no</td>\n<td>10 models; 7TTA</td>\n<td>diversity of model; Change Norm layer</td>\n</tr>\n<tr>\n<td>3rd</td>\n<td>kaggle.com</td>\n<td>3D Unet; Resnet101</td>\n<td>seg</td>\n<td>Cross Entropy loss</td>\n<td>Train: 64,128,128; Inference: 64,256,256</td>\n<td>no</td>\n<td>yes</td>\n<td>EMA; 0.995</td>\n<td>4 model (7fold中の）; flip x,y,z; rot90 for x,y</td>\n<td>Data diversity with strong models?; model soup</td>\n</tr>\n<tr>\n<td>4th</td>\n<td>Kaggle</td>\n<td>2.5D Enc - 3D dec</td>\n<td>heatmap</td>\n<td>Weighted MSE</td>\n<td>Train: 32×128×128; Inference: 32×128×128</td>\n<td>no</td>\n<td>no</td>\n<td>EMA/SWA</td>\n<td>7models(4+3); TTA: yes</td>\n<td>diversity of model</td>\n</tr>\n<tr>\n<td>5th</td>\n<td>kaggle.com</td>\n<td>3D</td>\n<td>seg</td>\n<td>Label smoothing cross-entropy</td>\n<td>Train: (128,128,128); Inference</td>\n<td>no</td>\n<td>no</td>\n<td>no</td>\n<td>4seed; TTA: flip 3, rot 3</td>\n<td>DeepFinder-like network; Make the model smaller and TTA</td>\n</tr>\n<tr>\n<td>6th</td>\n<td>カグル</td>\n<td>2.5+3D; Various</td>\n<td>seg</td>\n<td>FocalTversky++</td>\n<td>Train: 64×128×128; Inference: 64×128×128</td>\n<td>Yes</td>\n<td>Created by myself using Polnet.</td>\n<td>no</td>\n<td>10 models</td>\n<td></td>\n</tr>\n<tr>\n<td>7th</td>\n<td>kaggle.com</td>\n<td>3DUnet; resnet50d, resnet50d, efficientnetv2-m</td>\n<td>heatmap</td>\n<td>weighted BCE (heavy pos weight)</td>\n<td>Train: not mentioned; Inference: 192,128,128</td>\n<td>Yes</td>\n<td>yes</td>\n<td>ModelEMA</td>\n<td>3model, model soup; Average at logits; 4x Flip TTA</td>\n<td>Smoothing before peak detection; model soup</td>\n</tr>\n<tr>\n<td>8th</td>\n<td>Kaggle</td>\n<td>3D Unet</td>\n<td>seg</td>\n<td>DiceCELoss</td>\n<td>Train: (128,128,128); Inference: (160,384,384)</td>\n<td>Yes</td>\n<td>Yes; Only 6 tomography</td>\n<td>EMA used (decay 0.99) (Used or not used)</td>\n<td>4model, model soup; Average at logits</td>\n<td>model soup; Number of channels and data usage vary</td>\n</tr>\n<tr>\n<td>9th</td>\n<td>kaggle.com</td>\n<td>3D Unet; ConvNeXt-like</td>\n<td>seg</td>\n<td>BCE</td>\n<td>Train: (32,256,256); Inference: (32,320,320)</td>\n<td>no</td>\n<td>no</td>\n<td>no</td>\n<td>TTA Rot90, 180, 270</td>\n<td>Small radius; Convnext</td>\n</tr>\n<tr>\n<td>10th</td>\n<td>Kaggle</td>\n<td>3D Unet; monai</td>\n<td>seg</td>\n<td>Tversky loss and multiclass crossentropy</td>\n<td>Train: not mentioned; Inference: not mentioned</td>\n<td>Yes</td>\n<td>no; (include implementation bug)</td>\n<td>no</td>\n<td>Average at logits</td>\n<td>Original Post Processiung</td>\n</tr>\n<tr>\n<td>11th</td>\n<td>Kaggle</td>\n<td>3D Unet; Resnet arch</td>\n<td>seg</td>\n<td>weighted combination of cross-entropy and Tversky loss (alpha=0.5, beta=8)</td>\n<td>Train: 128x256x256?; Inference: 128x256x256</td>\n<td>no</td>\n<td>no</td>\n<td>no</td>\n<td>32models; Seed ensemble; Average at logits; NoTTA</td>\n<td>PP 2D classification; InstanceNorm to batchNorm</td>\n</tr>\n<tr>\n<td>12th</td>\n<td>Kaggle</td>\n<td>3types Unet</td>\n<td>seg</td>\n<td>dice, focal</td>\n<td>Various patch size</td>\n<td>no</td>\n<td>yes</td>\n<td>(not mentioned)</td>\n<td>10 models; different tta combinations</td>\n<td>radius * 0.5; drop path</td>\n</tr>\n<tr>\n<td>13th</td>\n<td>Kaggle</td>\n<td>3D unet with aux heads; Pixel shuffle dec; 2x r3d50, 2x r3d34, 1x r3d18 backbones</td>\n<td>seg</td>\n<td>CE?; (not mentioned)</td>\n<td>Train/Inference: ?; 32,128,128; Using center 16,64,64</td>\n<td>No</td>\n<td>no; (not mentioned)</td>\n<td>EMA</td>\n<td>??; Cutpast; 2stage training</td>\n<td>adding Stochastic Depth and DropBlock.</td>\n</tr>\n<tr>\n<td>22nd</td>\n<td>Kaggle</td>\n<td>2d-3d Unet</td>\n<td>seg</td>\n<td>BCE + 2×TverskyLoss</td>\n<td>Train/inference: 48×352×352 or 48×320×320</td>\n<td>yes</td>\n<td>no</td>\n<td>(not mentioned)</td>\n<td>WBF-based post-processing</td>\n<td>Post Processing using 2d classification</td>\n</tr>\n<tr>\n<td>23rd</td>\n<td>Kaggle</td>\n<td>3d Unet</td>\n<td>seg</td>\n<td>BCE</td>\n<td>64,64,64</td>\n<td>No</td>\n<td>no</td>\n<td>(not mentioned)</td>\n<td>5model?</td>\n<td></td>\n</tr>\n<tr>\n<td>26th</td>\n<td>Kaggle</td>\n<td>3d Unet</td>\n<td>seg</td>\n<td>Weighted BCE and Tversky</td>\n<td>184x184x184</td>\n<td>No</td>\n<td>no</td>\n<td>(not mentioned)</td>\n<td>Average at logits; Rot and flip 5TTA</td>\n<td>Val TS_99_9</td>\n</tr>\n<tr>\n<td>Only Me</td>\n<td></td>\n<td>3D Unet</td>\n<td>heatmap</td>\n<td>BCE</td>\n<td>128x128x128</td>\n<td>Yes</td>\n<td>no</td>\n<td>no</td>\n<td>10 models</td>\n<td></td>\n</tr>\n<tr>\n<td>Private about 30th</td>\n<td></td>\n<td>Resnext101 &amp; effnetb4 &amp; b5</td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td>Flip TTA</td>\n<td></td>\n</tr>\n<tr>\n<td>32nd</td>\n<td>Kaggle</td>\n<td>3D Unet; 3 arch</td>\n<td>seg</td>\n<td>Weighted Tversky Loss; Distance Loss</td>\n<td>48,256,256</td>\n<td>No</td>\n<td>no; (not mentioned)</td>\n<td>EMA</td>\n<td>8model; 7 TTA</td>\n<td></td>\n</tr>\n<tr>\n<td>33rd</td>\n<td>Kaggle</td>\n<td>3D unet + 2d yolo</td>\n<td>seg</td>\n<td>CE</td>\n<td>128x128x128</td>\n<td>No</td>\n<td>no; (not mentioned)</td>\n<td>(not mentioned)</td>\n<td>DBSCAN?</td>\n<td></td>\n</tr>\n<tr>\n<td>43rd</td>\n<td>Kaggle</td>\n<td>WMCSFB; ZhaoWenzhao/WMCSFB</td>\n<td>seg</td>\n<td>Tverski loss that supports class weights (0.25,1.0,1.0,1.0,4.0,4.0)</td>\n<td>64x64x64</td>\n<td>No</td>\n<td>no; (not mentioned)</td>\n<td>(not mentioned)</td>\n<td>DBSCAN</td>\n<td>1/3 or the particle radius</td>\n</tr>\n</tbody>\n</table>\n<p>image </p>\n<p><img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F2930242%2Fd10b3ff877cc870db49e6ad63df552e5%2F2025-02-19%20233331.jpg?generation=1739975625923694&amp;alt=media\" alt=\"\"></p>\n<p><img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F2930242%2Fd30dcae156d273d86f3bd5ad841ee566%2F2025-02-19%20233321.jpg?generation=1739975642377438&amp;alt=media\" alt=\"\"></p>",
  "messages": [
    {
      "id": "3128428",
      "postDate": "02/19/2025 14:36:12",
      "content": "<p>I have summarized the solutions from several perspectives.<br>\nThere may be mistakes.</p>\n<p>My summary report in japanese.<br>\n<a href=\"https://speakerdeck.com/sugupoko/cziikonpezhen-rifan-ri-guan-xi-kagglerhui-jiao-liu-hui-in-osaka-2025-number-1\" target=\"_blank\">https://speakerdeck.com/sugupoko/cziikonpezhen-rifan-ri-guan-xi-kagglerhui-jiao-liu-hui-in-osaka-2025-number-1</a></p>\n<p>markdown table</p>\n<table>\n<thead>\n<tr>\n<th>Rank</th>\n<th>Link</th>\n<th>Architecture</th>\n<th>Task</th>\n<th>Loss</th>\n<th>Resolution</th>\n<th>Pretraining</th>\n<th>Extra Data</th>\n<th>EMA/SWA</th>\n<th>Ensemble / TTA</th>\n<th>Key Point ?</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>1st</td>\n<td>Seg：kaggle.com; Det：Kaggle</td>\n<td>3D MONAIs FlexibleUnet; 3D Yolo</td>\n<td>Seg &amp; det</td>\n<td>Seg: weighted CrossEntropy (pos256: neg 1); Det: PP-Yolo loss function with modifications</td>\n<td>inference is lager</td>\n<td>no</td>\n<td>no</td>\n<td>no</td>\n<td>merge of different types with scaling of conf</td>\n<td>diversity of strategies</td>\n</tr>\n<tr>\n<td>2nd</td>\n<td>Kaggle</td>\n<td>3D; Various</td>\n<td>seg</td>\n<td>1. Dice Loss, Tversky Loss and Cross-Entropy Loss; 2. Tversky Loss and Cross-Entropy Loss</td>\n<td>inference is lager</td>\n<td>no</td>\n<td>no</td>\n<td>no</td>\n<td>10 models; 7TTA</td>\n<td>diversity of model; Change Norm layer</td>\n</tr>\n<tr>\n<td>3rd</td>\n<td>kaggle.com</td>\n<td>3D Unet; Resnet101</td>\n<td>seg</td>\n<td>Cross Entropy loss</td>\n<td>Train: 64,128,128; Inference: 64,256,256</td>\n<td>no</td>\n<td>yes</td>\n<td>EMA; 0.995</td>\n<td>4 model (7fold中の）; flip x,y,z; rot90 for x,y</td>\n<td>Data diversity with strong models?; model soup</td>\n</tr>\n<tr>\n<td>4th</td>\n<td>Kaggle</td>\n<td>2.5D Enc - 3D dec</td>\n<td>heatmap</td>\n<td>Weighted MSE</td>\n<td>Train: 32×128×128; Inference: 32×128×128</td>\n<td>no</td>\n<td>no</td>\n<td>EMA/SWA</td>\n<td>7models(4+3); TTA: yes</td>\n<td>diversity of model</td>\n</tr>\n<tr>\n<td>5th</td>\n<td>kaggle.com</td>\n<td>3D</td>\n<td>seg</td>\n<td>Label smoothing cross-entropy</td>\n<td>Train: (128,128,128); Inference</td>\n<td>no</td>\n<td>no</td>\n<td>no</td>\n<td>4seed; TTA: flip 3, rot 3</td>\n<td>DeepFinder-like network; Make the model smaller and TTA</td>\n</tr>\n<tr>\n<td>6th</td>\n<td>カグル</td>\n<td>2.5+3D; Various</td>\n<td>seg</td>\n<td>FocalTversky++</td>\n<td>Train: 64×128×128; Inference: 64×128×128</td>\n<td>Yes</td>\n<td>Created by myself using Polnet.</td>\n<td>no</td>\n<td>10 models</td>\n<td></td>\n</tr>\n<tr>\n<td>7th</td>\n<td>kaggle.com</td>\n<td>3DUnet; resnet50d, resnet50d, efficientnetv2-m</td>\n<td>heatmap</td>\n<td>weighted BCE (heavy pos weight)</td>\n<td>Train: not mentioned; Inference: 192,128,128</td>\n<td>Yes</td>\n<td>yes</td>\n<td>ModelEMA</td>\n<td>3model, model soup; Average at logits; 4x Flip TTA</td>\n<td>Smoothing before peak detection; model soup</td>\n</tr>\n<tr>\n<td>8th</td>\n<td>Kaggle</td>\n<td>3D Unet</td>\n<td>seg</td>\n<td>DiceCELoss</td>\n<td>Train: (128,128,128); Inference: (160,384,384)</td>\n<td>Yes</td>\n<td>Yes; Only 6 tomography</td>\n<td>EMA used (decay 0.99) (Used or not used)</td>\n<td>4model, model soup; Average at logits</td>\n<td>model soup; Number of channels and data usage vary</td>\n</tr>\n<tr>\n<td>9th</td>\n<td>kaggle.com</td>\n<td>3D Unet; ConvNeXt-like</td>\n<td>seg</td>\n<td>BCE</td>\n<td>Train: (32,256,256); Inference: (32,320,320)</td>\n<td>no</td>\n<td>no</td>\n<td>no</td>\n<td>TTA Rot90, 180, 270</td>\n<td>Small radius; Convnext</td>\n</tr>\n<tr>\n<td>10th</td>\n<td>Kaggle</td>\n<td>3D Unet; monai</td>\n<td>seg</td>\n<td>Tversky loss and multiclass crossentropy</td>\n<td>Train: not mentioned; Inference: not mentioned</td>\n<td>Yes</td>\n<td>no; (include implementation bug)</td>\n<td>no</td>\n<td>Average at logits</td>\n<td>Original Post Processiung</td>\n</tr>\n<tr>\n<td>11th</td>\n<td>Kaggle</td>\n<td>3D Unet; Resnet arch</td>\n<td>seg</td>\n<td>weighted combination of cross-entropy and Tversky loss (alpha=0.5, beta=8)</td>\n<td>Train: 128x256x256?; Inference: 128x256x256</td>\n<td>no</td>\n<td>no</td>\n<td>no</td>\n<td>32models; Seed ensemble; Average at logits; NoTTA</td>\n<td>PP 2D classification; InstanceNorm to batchNorm</td>\n</tr>\n<tr>\n<td>12th</td>\n<td>Kaggle</td>\n<td>3types Unet</td>\n<td>seg</td>\n<td>dice, focal</td>\n<td>Various patch size</td>\n<td>no</td>\n<td>yes</td>\n<td>(not mentioned)</td>\n<td>10 models; different tta combinations</td>\n<td>radius * 0.5; drop path</td>\n</tr>\n<tr>\n<td>13th</td>\n<td>Kaggle</td>\n<td>3D unet with aux heads; Pixel shuffle dec; 2x r3d50, 2x r3d34, 1x r3d18 backbones</td>\n<td>seg</td>\n<td>CE?; (not mentioned)</td>\n<td>Train/Inference: ?; 32,128,128; Using center 16,64,64</td>\n<td>No</td>\n<td>no; (not mentioned)</td>\n<td>EMA</td>\n<td>??; Cutpast; 2stage training</td>\n<td>adding Stochastic Depth and DropBlock.</td>\n</tr>\n<tr>\n<td>22nd</td>\n<td>Kaggle</td>\n<td>2d-3d Unet</td>\n<td>seg</td>\n<td>BCE + 2×TverskyLoss</td>\n<td>Train/inference: 48×352×352 or 48×320×320</td>\n<td>yes</td>\n<td>no</td>\n<td>(not mentioned)</td>\n<td>WBF-based post-processing</td>\n<td>Post Processing using 2d classification</td>\n</tr>\n<tr>\n<td>23rd</td>\n<td>Kaggle</td>\n<td>3d Unet</td>\n<td>seg</td>\n<td>BCE</td>\n<td>64,64,64</td>\n<td>No</td>\n<td>no</td>\n<td>(not mentioned)</td>\n<td>5model?</td>\n<td></td>\n</tr>\n<tr>\n<td>26th</td>\n<td>Kaggle</td>\n<td>3d Unet</td>\n<td>seg</td>\n<td>Weighted BCE and Tversky</td>\n<td>184x184x184</td>\n<td>No</td>\n<td>no</td>\n<td>(not mentioned)</td>\n<td>Average at logits; Rot and flip 5TTA</td>\n<td>Val TS_99_9</td>\n</tr>\n<tr>\n<td>Only Me</td>\n<td></td>\n<td>3D Unet</td>\n<td>heatmap</td>\n<td>BCE</td>\n<td>128x128x128</td>\n<td>Yes</td>\n<td>no</td>\n<td>no</td>\n<td>10 models</td>\n<td></td>\n</tr>\n<tr>\n<td>Private about 30th</td>\n<td></td>\n<td>Resnext101 &amp; effnetb4 &amp; b5</td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td></td>\n<td>Flip TTA</td>\n<td></td>\n</tr>\n<tr>\n<td>32nd</td>\n<td>Kaggle</td>\n<td>3D Unet; 3 arch</td>\n<td>seg</td>\n<td>Weighted Tversky Loss; Distance Loss</td>\n<td>48,256,256</td>\n<td>No</td>\n<td>no; (not mentioned)</td>\n<td>EMA</td>\n<td>8model; 7 TTA</td>\n<td></td>\n</tr>\n<tr>\n<td>33rd</td>\n<td>Kaggle</td>\n<td>3D unet + 2d yolo</td>\n<td>seg</td>\n<td>CE</td>\n<td>128x128x128</td>\n<td>No</td>\n<td>no; (not mentioned)</td>\n<td>(not mentioned)</td>\n<td>DBSCAN?</td>\n<td></td>\n</tr>\n<tr>\n<td>43rd</td>\n<td>Kaggle</td>\n<td>WMCSFB; ZhaoWenzhao/WMCSFB</td>\n<td>seg</td>\n<td>Tverski loss that supports class weights (0.25,1.0,1.0,1.0,4.0,4.0)</td>\n<td>64x64x64</td>\n<td>No</td>\n<td>no; (not mentioned)</td>\n<td>(not mentioned)</td>\n<td>DBSCAN</td>\n<td>1/3 or the particle radius</td>\n</tr>\n</tbody>\n</table>\n<p>image </p>\n<p><img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F2930242%2Fd10b3ff877cc870db49e6ad63df552e5%2F2025-02-19%20233331.jpg?generation=1739975625923694&amp;alt=media\" alt=\"\"></p>\n<p><img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F2930242%2Fd30dcae156d273d86f3bd5ad841ee566%2F2025-02-19%20233321.jpg?generation=1739975642377438&amp;alt=media\" alt=\"\"></p>",
      "rawMarkdown": "I have summarized the solutions from several perspectives.\nThere may be mistakes.\n\nMy summary report in japanese.\nhttps://speakerdeck.com/sugupoko/cziikonpezhen-rifan-ri-guan-xi-kagglerhui-jiao-liu-hui-in-osaka-2025-number-1\n\nmarkdown table\n\n| Rank | Link | Architecture | Task | Loss | Resolution | Pretraining | Extra Data | EMA/SWA | Ensemble / TTA | Key Point ? |\n| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |\n| 1st | Seg：kaggle.com; Det：Kaggle | 3D MONAIs FlexibleUnet; 3D Yolo | Seg & det | Seg: weighted CrossEntropy (pos256: neg 1); Det: PP-Yolo loss function with modifications | inference is lager | no | no | no | merge of different types with scaling of conf | diversity of strategies |\n| 2nd | Kaggle | 3D; Various | seg | 1. Dice Loss, Tversky Loss and Cross-Entropy Loss; 2. Tversky Loss and Cross-Entropy Loss | inference is lager | no | no | no | 10 models; 7TTA | diversity of model; Change Norm layer |\n| 3rd | kaggle.com | 3D Unet; Resnet101 | seg | Cross Entropy loss | Train: 64,128,128; Inference: 64,256,256 | no | yes | EMA; 0.995 | 4 model (7fold中の）; flip x,y,z; rot90 for x,y | Data diversity with strong models?; model soup |\n| 4th | Kaggle | 2.5D Enc - 3D dec | heatmap | Weighted MSE | Train: 32×128×128; Inference: 32×128×128 | no | no | EMA/SWA | 7models(4+3); TTA: yes | diversity of model |\n| 5th | kaggle.com | 3D | seg | Label smoothing cross-entropy | Train: (128,128,128); Inference | no | no | no | 4seed; TTA: flip 3, rot 3 | DeepFinder-like network; Make the model smaller and TTA |\n| 6th | カグル | 2.5+3D; Various | seg | FocalTversky++ | Train: 64×128×128; Inference: 64×128×128 | Yes | Created by myself using Polnet. | no | 10 models |  |\n| 7th | kaggle.com | 3DUnet; resnet50d, resnet50d, efficientnetv2-m | heatmap | weighted BCE (heavy pos weight) | Train: not mentioned; Inference: 192,128,128 | Yes | yes | ModelEMA | 3model, model soup; Average at logits; 4x Flip TTA | Smoothing before peak detection; model soup |\n| 8th | Kaggle | 3D Unet | seg | DiceCELoss | Train: (128,128,128); Inference: (160,384,384) | Yes | Yes; Only 6 tomography | EMA used (decay 0.99) (Used or not used) | 4model, model soup; Average at logits | model soup; Number of channels and data usage vary |\n| 9th | kaggle.com | 3D Unet; ConvNeXt-like | seg | BCE | Train: (32,256,256); Inference: (32,320,320) | no | no | no | TTA Rot90, 180, 270 | Small radius; Convnext |\n| 10th | Kaggle | 3D Unet; monai | seg | Tversky loss and multiclass crossentropy | Train: not mentioned; Inference: not mentioned | Yes | no; (include implementation bug) | no | Average at logits | Original Post Processiung |\n| 11th | Kaggle | 3D Unet; Resnet arch | seg | weighted combination of cross-entropy and Tversky loss (alpha=0.5, beta=8) | Train: 128x256x256?; Inference: 128x256x256 | no | no | no | 32models; Seed ensemble; Average at logits; NoTTA | PP 2D classification; InstanceNorm to batchNorm |\n| 12th | Kaggle | 3types Unet | seg | dice, focal | Various patch size | no | yes | (not mentioned) | 10 models; different tta combinations | radius * 0.5; drop path |\n| 13th | Kaggle | 3D unet with aux heads; Pixel shuffle dec; 2x r3d50, 2x r3d34, 1x r3d18 backbones | seg | CE?; (not mentioned) | Train/Inference: ?; 32,128,128; Using center 16,64,64 | No | no; (not mentioned) | EMA | ??; Cutpast; 2stage training | adding Stochastic Depth and DropBlock. |\n| 22nd | Kaggle | 2d-3d Unet | seg | BCE + 2×TverskyLoss | Train/inference: 48×352×352 or 48×320×320 | yes | no | (not mentioned) | WBF-based post-processing | Post Processing using 2d classification |\n| 23rd | Kaggle | 3d Unet | seg | BCE | 64,64,64 | No | no | (not mentioned) | 5model? |  |\n| 26th | Kaggle | 3d Unet | seg | Weighted BCE and Tversky | 184x184x184 | No | no | (not mentioned) | Average at logits; Rot and flip 5TTA | Val TS_99_9 |\n| Only Me |  | 3D Unet | heatmap | BCE | 128x128x128 | Yes | no | no | 10 models |  |\n| Private about 30th |  | Resnext101 & effnetb4 & b5 |  |  |  |  |  |  | Flip TTA |  |\n| 32nd | Kaggle | 3D Unet; 3 arch | seg | Weighted Tversky Loss; Distance Loss | 48,256,256 | No | no; (not mentioned) | EMA | 8model; 7 TTA |  |\n| 33rd | Kaggle | 3D unet + 2d yolo | seg | CE | 128x128x128 | No | no; (not mentioned) | (not mentioned) | DBSCAN? |  |\n| 43rd | Kaggle | WMCSFB; ZhaoWenzhao/WMCSFB | seg | Tverski loss that supports class weights (0.25,1.0,1.0,1.0,4.0,4.0) | 64x64x64 | No | no; (not mentioned) | (not mentioned) | DBSCAN | 1/3 or the particle radius |\n\n\nimage \n\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F2930242%2Fd10b3ff877cc870db49e6ad63df552e5%2F2025-02-19%20233331.jpg?generation=1739975625923694&alt=media)\n\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F2930242%2Fd30dcae156d273d86f3bd5ad841ee566%2F2025-02-19%20233321.jpg?generation=1739975642377438&alt=media)",
      "votes": null
    },
    {
      "id": "3128503",
      "postDate": "02/19/2025 16:08:45",
      "content": "<p>Thanks for this work, could you zoom a bit on the images (they are a bit hard to read for now)?</p>",
      "rawMarkdown": "Thanks for this work, could you zoom a bit on the images (they are a bit hard to read for now)?",
      "votes": null
    },
    {
      "id": "3128887",
      "postDate": "02/20/2025 02:30:17",
      "content": "<p>Replaced to markdown!</p>",
      "rawMarkdown": "Replaced to markdown!",
      "votes": null
    },
    {
      "id": "3146726",
      "postDate": "03/11/2025 07:35:03",
      "content": "<p>33rd place using Weighted Tversky Loss. Extra data was used only on 2D YOLO. Neither EMA nor SWA was applied. Ensemble / TTA, i use both. For, 3D unet, i use y and z flip. In case of 3D unet + 2d yolo, i used DBSCAN. Introduced a filtering technique to enhance accuracy by removing clusters whose standard deviation exceeded 40% of the cluster size. Specifically, clusters with standard deviations larger than 40% of their sizes were filtered out, significantly improving accuracy.</p>",
      "rawMarkdown": "33rd place using Weighted Tversky Loss. Extra data was used only on 2D YOLO. Neither EMA nor SWA was applied. Ensemble / TTA, i use both. For, 3D unet, i use y and z flip. In case of 3D unet + 2d yolo, i used DBSCAN. Introduced a filtering technique to enhance accuracy by removing clusters whose standard deviation exceeded 40% of the cluster size. Specifically, clusters with standard deviations larger than 40% of their sizes were filtered out, significantly improving accuracy.",
      "votes": null
    },
    {
      "id": "3146901",
      "postDate": "03/11/2025 11:32:33",
      "content": "<p>That's great, thanks for the table. 🫡</p>",
      "rawMarkdown": "That's great, thanks for the table. 🫡",
      "votes": null
    }
  ],
  "comments": [
    {
      "id": 3128503,
      "author_name": "yassinealouini",
      "author_url": "",
      "post_date": "02/19/2025 16:08:45",
      "content": "<p>Thanks for this work, could you zoom a bit on the images (they are a bit hard to read for now)?</p>",
      "votes": null,
      "replies": [
        {
          "id": 3128887,
          "author_name": "sugupoko",
          "author_url": "",
          "post_date": "02/20/2025 02:30:17",
          "content": "<p>Replaced to markdown!</p>",
          "votes": null,
          "replies": [
            {
              "id": 3146901,
              "author_name": "yassinealouini",
              "author_url": "",
              "post_date": "03/11/2025 11:32:33",
              "content": "<p>That's great, thanks for the table. 🫡</p>",
              "votes": null,
              "replies": []
            }
          ]
        }
      ]
    },
    {
      "id": 3146726,
      "author_name": "junhanzangai",
      "author_url": "",
      "post_date": "03/11/2025 07:35:03",
      "content": "<p>33rd place using Weighted Tversky Loss. Extra data was used only on 2D YOLO. Neither EMA nor SWA was applied. Ensemble / TTA, i use both. For, 3D unet, i use y and z flip. In case of 3D unet + 2d yolo, i used DBSCAN. Introduced a filtering technique to enhance accuracy by removing clusters whose standard deviation exceeded 40% of the cluster size. Specifically, clusters with standard deviations larger than 40% of their sizes were filtered out, significantly improving accuracy.</p>",
      "votes": null,
      "replies": []
    }
  ],
  "raw_markdown_by_id": {
    "3128428": "I have summarized the solutions from several perspectives.\nThere may be mistakes.\n\nMy summary report in japanese.\nhttps://speakerdeck.com/sugupoko/cziikonpezhen-rifan-ri-guan-xi-kagglerhui-jiao-liu-hui-in-osaka-2025-number-1\n\nmarkdown table\n\n| Rank | Link | Architecture | Task | Loss | Resolution | Pretraining | Extra Data | EMA/SWA | Ensemble / TTA | Key Point ? |\n| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |\n| 1st | Seg：kaggle.com; Det：Kaggle | 3D MONAIs FlexibleUnet; 3D Yolo | Seg & det | Seg: weighted CrossEntropy (pos256: neg 1); Det: PP-Yolo loss function with modifications | inference is lager | no | no | no | merge of different types with scaling of conf | diversity of strategies |\n| 2nd | Kaggle | 3D; Various | seg | 1. Dice Loss, Tversky Loss and Cross-Entropy Loss; 2. Tversky Loss and Cross-Entropy Loss | inference is lager | no | no | no | 10 models; 7TTA | diversity of model; Change Norm layer |\n| 3rd | kaggle.com | 3D Unet; Resnet101 | seg | Cross Entropy loss | Train: 64,128,128; Inference: 64,256,256 | no | yes | EMA; 0.995 | 4 model (7fold中の）; flip x,y,z; rot90 for x,y | Data diversity with strong models?; model soup |\n| 4th | Kaggle | 2.5D Enc - 3D dec | heatmap | Weighted MSE | Train: 32×128×128; Inference: 32×128×128 | no | no | EMA/SWA | 7models(4+3); TTA: yes | diversity of model |\n| 5th | kaggle.com | 3D | seg | Label smoothing cross-entropy | Train: (128,128,128); Inference | no | no | no | 4seed; TTA: flip 3, rot 3 | DeepFinder-like network; Make the model smaller and TTA |\n| 6th | カグル | 2.5+3D; Various | seg | FocalTversky++ | Train: 64×128×128; Inference: 64×128×128 | Yes | Created by myself using Polnet. | no | 10 models |  |\n| 7th | kaggle.com | 3DUnet; resnet50d, resnet50d, efficientnetv2-m | heatmap | weighted BCE (heavy pos weight) | Train: not mentioned; Inference: 192,128,128 | Yes | yes | ModelEMA | 3model, model soup; Average at logits; 4x Flip TTA | Smoothing before peak detection; model soup |\n| 8th | Kaggle | 3D Unet | seg | DiceCELoss | Train: (128,128,128); Inference: (160,384,384) | Yes | Yes; Only 6 tomography | EMA used (decay 0.99) (Used or not used) | 4model, model soup; Average at logits | model soup; Number of channels and data usage vary |\n| 9th | kaggle.com | 3D Unet; ConvNeXt-like | seg | BCE | Train: (32,256,256); Inference: (32,320,320) | no | no | no | TTA Rot90, 180, 270 | Small radius; Convnext |\n| 10th | Kaggle | 3D Unet; monai | seg | Tversky loss and multiclass crossentropy | Train: not mentioned; Inference: not mentioned | Yes | no; (include implementation bug) | no | Average at logits | Original Post Processiung |\n| 11th | Kaggle | 3D Unet; Resnet arch | seg | weighted combination of cross-entropy and Tversky loss (alpha=0.5, beta=8) | Train: 128x256x256?; Inference: 128x256x256 | no | no | no | 32models; Seed ensemble; Average at logits; NoTTA | PP 2D classification; InstanceNorm to batchNorm |\n| 12th | Kaggle | 3types Unet | seg | dice, focal | Various patch size | no | yes | (not mentioned) | 10 models; different tta combinations | radius * 0.5; drop path |\n| 13th | Kaggle | 3D unet with aux heads; Pixel shuffle dec; 2x r3d50, 2x r3d34, 1x r3d18 backbones | seg | CE?; (not mentioned) | Train/Inference: ?; 32,128,128; Using center 16,64,64 | No | no; (not mentioned) | EMA | ??; Cutpast; 2stage training | adding Stochastic Depth and DropBlock. |\n| 22nd | Kaggle | 2d-3d Unet | seg | BCE + 2×TverskyLoss | Train/inference: 48×352×352 or 48×320×320 | yes | no | (not mentioned) | WBF-based post-processing | Post Processing using 2d classification |\n| 23rd | Kaggle | 3d Unet | seg | BCE | 64,64,64 | No | no | (not mentioned) | 5model? |  |\n| 26th | Kaggle | 3d Unet | seg | Weighted BCE and Tversky | 184x184x184 | No | no | (not mentioned) | Average at logits; Rot and flip 5TTA | Val TS_99_9 |\n| Only Me |  | 3D Unet | heatmap | BCE | 128x128x128 | Yes | no | no | 10 models |  |\n| Private about 30th |  | Resnext101 & effnetb4 & b5 |  |  |  |  |  |  | Flip TTA |  |\n| 32nd | Kaggle | 3D Unet; 3 arch | seg | Weighted Tversky Loss; Distance Loss | 48,256,256 | No | no; (not mentioned) | EMA | 8model; 7 TTA |  |\n| 33rd | Kaggle | 3D unet + 2d yolo | seg | CE | 128x128x128 | No | no; (not mentioned) | (not mentioned) | DBSCAN? |  |\n| 43rd | Kaggle | WMCSFB; ZhaoWenzhao/WMCSFB | seg | Tverski loss that supports class weights (0.25,1.0,1.0,1.0,4.0,4.0) | 64x64x64 | No | no; (not mentioned) | (not mentioned) | DBSCAN | 1/3 or the particle radius |\n\n\nimage \n\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F2930242%2Fd10b3ff877cc870db49e6ad63df552e5%2F2025-02-19%20233331.jpg?generation=1739975625923694&alt=media)\n\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F2930242%2Fd30dcae156d273d86f3bd5ad841ee566%2F2025-02-19%20233321.jpg?generation=1739975642377438&alt=media)",
    "3128503": "Thanks for this work, could you zoom a bit on the images (they are a bit hard to read for now)?",
    "3128887": "Replaced to markdown!",
    "3146726": "33rd place using Weighted Tversky Loss. Extra data was used only on 2D YOLO. Neither EMA nor SWA was applied. Ensemble / TTA, i use both. For, 3D unet, i use y and z flip. In case of 3D unet + 2d yolo, i used DBSCAN. Introduced a filtering technique to enhance accuracy by removing clusters whose standard deviation exceeded 40% of the cluster size. Specifically, clusters with standard deviations larger than 40% of their sizes were filtered out, significantly improving accuracy.",
    "3146901": "That's great, thanks for the table. 🫡"
  },
  "source": "meta"
}