{
  "id": 645643,
  "title": "2nd Place Solution",
  "url": "/competitions/grand-xray-slam-division-a/discussion/645643",
  "author_name": "Masry1",
  "post_date": "2025-11-30T12:10:15.320000",
  "votes": 3,
  "comment_count": 2,
  "views": 0,
  "content": "<h1>Solution Summary</h1>\n<p>My solution is based on a two-model ensemble combining EVA-X and CheXFound, each trained separately for Division A and Division B.\nThe pipeline focuses on optimized preprocessing, strong augmentations, checkpoint averaging, and EMA to achieve stable and high-performing predictions.</p>\n<h1>Approach</h1>\n<p>I used a 600×600 preprocessing pipeline for all images to reduce I/O overhead and improve training speed.\nThen, I trained two independent high-performance vision models:</p>\n<h1>EVA-X (448×448)</h1>\n<ul>\n<li><p>6 training epochs</p></li>\n<li><p>Layer-wise learning rates</p></li>\n<li><p>Strong geometric + photometric augmentations</p></li>\n<li><p>Focal Loss + BCE</p></li>\n<li><p>Mixed Precision (AMP)</p></li>\n<li><p>Exponential Moving Average (EMA)</p></li>\n<li><p>Checkpoint averaging (epochs 5 + 6)</p></li>\n</ul>\n<h1>CheXFound (512×512)</h1>\n<ul>\n<li><p>6 epochs (3 + 3)</p></li>\n<li><p>Only the GLoRIA head fine-tuned</p></li>\n<li><p>Backbone frozen</p></li>\n<li><p>Same augmentations and optimizers as EVA-X</p></li>\n</ul>\n<h1>The final prediction is a simple average of:</h1>\n<p><strong>EVA-X (epoch 5 + TTA), \nEVA-X (epoch 6 + TTA), \nCheXFound (epoch 5), \nCheXFound (epoch 6)</strong></p>\n<p>This ensemble produced the best and most stable leaderboard performance in both divisions.</p>\n<p>For the full explanation, preprocessing, training notebooks, inference code, and model configurations, please see the complete GitHub repository:</p>\n<p>👉 GitHub Repository: <a href=\"https://github.com/Masry5/Grand-X-Ray-Slam-competition\" target=\"_blank\">https://github.com/Masry5/Grand-X-Ray-Slam-competition</a></p>",
  "messages": [
    {
      "id": 3354701,
      "postDate": "2025-11-30T12:10:15.320Z",
      "content": "<h1>Solution Summary</h1>\n<p>My solution is based on a two-model ensemble combining EVA-X and CheXFound, each trained separately for Division A and Division B.\nThe pipeline focuses on optimized preprocessing, strong augmentations, checkpoint averaging, and EMA to achieve stable and high-performing predictions.</p>\n<h1>Approach</h1>\n<p>I used a 600×600 preprocessing pipeline for all images to reduce I/O overhead and improve training speed.\nThen, I trained two independent high-performance vision models:</p>\n<h1>EVA-X (448×448)</h1>\n<ul>\n<li><p>6 training epochs</p></li>\n<li><p>Layer-wise learning rates</p></li>\n<li><p>Strong geometric + photometric augmentations</p></li>\n<li><p>Focal Loss + BCE</p></li>\n<li><p>Mixed Precision (AMP)</p></li>\n<li><p>Exponential Moving Average (EMA)</p></li>\n<li><p>Checkpoint averaging (epochs 5 + 6)</p></li>\n</ul>\n<h1>CheXFound (512×512)</h1>\n<ul>\n<li><p>6 epochs (3 + 3)</p></li>\n<li><p>Only the GLoRIA head fine-tuned</p></li>\n<li><p>Backbone frozen</p></li>\n<li><p>Same augmentations and optimizers as EVA-X</p></li>\n</ul>\n<h1>The final prediction is a simple average of:</h1>\n<p><strong>EVA-X (epoch 5 + TTA), \nEVA-X (epoch 6 + TTA), \nCheXFound (epoch 5), \nCheXFound (epoch 6)</strong></p>\n<p>This ensemble produced the best and most stable leaderboard performance in both divisions.</p>\n<p>For the full explanation, preprocessing, training notebooks, inference code, and model configurations, please see the complete GitHub repository:</p>\n<p>👉 GitHub Repository: <a href=\"https://github.com/Masry5/Grand-X-Ray-Slam-competition\" target=\"_blank\">https://github.com/Masry5/Grand-X-Ray-Slam-competition</a></p>",
      "rawMarkdown": "# Solution Summary\n\nMy solution is based on a two-model ensemble combining EVA-X and CheXFound, each trained separately for Division A and Division B.\nThe pipeline focuses on optimized preprocessing, strong augmentations, checkpoint averaging, and EMA to achieve stable and high-performing predictions.\n\n# Approach\n\nI used a 600×600 preprocessing pipeline for all images to reduce I/O overhead and improve training speed.\nThen, I trained two independent high-performance vision models:\n\n# EVA-X (448×448)\n\n-  6 training epochs\n\n- Layer-wise learning rates\n\n- Strong geometric + photometric augmentations\n\n- Focal Loss + BCE\n\n- Mixed Precision (AMP)\n\n- Exponential Moving Average (EMA)\n\n- Checkpoint averaging (epochs 5 + 6)\n\n# CheXFound (512×512)\n\n- 6 epochs (3 + 3)\n\n- Only the GLoRIA head fine-tuned\n\n- Backbone frozen\n\n- Same augmentations and optimizers as EVA-X\n\n\n# The final prediction is a simple average of:\n\n**EVA-X (epoch 5 + TTA), \nEVA-X (epoch 6 + TTA), \nCheXFound (epoch 5), \nCheXFound (epoch 6)**\n\n\nThis ensemble produced the best and most stable leaderboard performance in both divisions.\n\n\nFor the full explanation, preprocessing, training notebooks, inference code, and model configurations, please see the complete GitHub repository:\n\n👉 GitHub Repository: https://github.com/Masry5/Grand-X-Ray-Slam-competition",
      "votes": 3
    },
    {
      "id": 3413000,
      "postDate": "2026-02-24T04:07:40.290Z",
      "content": "<p>how did you handle Frontal and Lateral image, I have train a model to predict lateral and frontal, and then train frontal only and lateral only, if a patient have both frontal and lateral in a study, I overwrite lateral by frontal. Sorry for late question, today I accidentally read this competition</p>",
      "rawMarkdown": "how did you handle Frontal and Lateral image, I have train a model to predict lateral and frontal, and then train frontal only and lateral only, if a patient have both frontal and lateral in a study, I overwrite lateral by frontal. Sorry for late question, today I accidentally read this competition",
      "replies": [
        {
          "id": 3413589,
          "postDate": "2026-02-24T22:35:29.163Z",
          "content": "<p>I experimented with several strategies, but training on both frontal and lateral images together gave me the best results.</p>",
          "rawMarkdown": "I experimented with several strategies, but training on both frontal and lateral images together gave me the best results."
        }
      ]
    }
  ],
  "comments": [
    {
      "id": 3413000,
      "author_name": "Duong Nguyen",
      "author_url": "",
      "post_date": "2026-02-24T04:07:40.290000",
      "content": "<p>how did you handle Frontal and Lateral image, I have train a model to predict lateral and frontal, and then train frontal only and lateral only, if a patient have both frontal and lateral in a study, I overwrite lateral by frontal. Sorry for late question, today I accidentally read this competition</p>",
      "votes": 0,
      "replies": [
        {
          "id": 3413589,
          "author_name": "Masry1",
          "author_url": "",
          "post_date": "2026-02-24T22:35:29.163000",
          "content": "<p>I experimented with several strategies, but training on both frontal and lateral images together gave me the best results.</p>",
          "votes": 0,
          "replies": []
        }
      ]
    }
  ],
  "raw_markdown_by_id": {
    "3354701": "# Solution Summary\n\nMy solution is based on a two-model ensemble combining EVA-X and CheXFound, each trained separately for Division A and Division B.\nThe pipeline focuses on optimized preprocessing, strong augmentations, checkpoint averaging, and EMA to achieve stable and high-performing predictions.\n\n# Approach\n\nI used a 600×600 preprocessing pipeline for all images to reduce I/O overhead and improve training speed.\nThen, I trained two independent high-performance vision models:\n\n# EVA-X (448×448)\n\n-  6 training epochs\n\n- Layer-wise learning rates\n\n- Strong geometric + photometric augmentations\n\n- Focal Loss + BCE\n\n- Mixed Precision (AMP)\n\n- Exponential Moving Average (EMA)\n\n- Checkpoint averaging (epochs 5 + 6)\n\n# CheXFound (512×512)\n\n- 6 epochs (3 + 3)\n\n- Only the GLoRIA head fine-tuned\n\n- Backbone frozen\n\n- Same augmentations and optimizers as EVA-X\n\n\n# The final prediction is a simple average of:\n\n**EVA-X (epoch 5 + TTA), \nEVA-X (epoch 6 + TTA), \nCheXFound (epoch 5), \nCheXFound (epoch 6)**\n\n\nThis ensemble produced the best and most stable leaderboard performance in both divisions.\n\n\nFor the full explanation, preprocessing, training notebooks, inference code, and model configurations, please see the complete GitHub repository:\n\n👉 GitHub Repository: https://github.com/Masry5/Grand-X-Ray-Slam-competition",
    "3413000": "how did you handle Frontal and Lateral image, I have train a model to predict lateral and frontal, and then train frontal only and lateral only, if a patient have both frontal and lateral in a study, I overwrite lateral by frontal. Sorry for late question, today I accidentally read this competition"
  }
}