{
  "id": 583032,
  "title": "83rd Rank Solution ",
  "url": "/competitions/image-matching-challenge-2025/discussion/583032",
  "author_name": "ANANDIYA SHEEL DIWAN",
  "post_date": "2025-06-04T11:01:20.934000",
  "votes": 14,
  "comment_count": 0,
  "views": 0,
  "content": "<h1>Image Matching Challenge 2025 – Bronze Solution</h1>\n<h2>Solution Summary</h2>\n<p>This solution builds on publicly available baselines and introduces several enhancements to improve mean Average Accuracy (mAA) and clusterness scores. The focus was on improving geometric consistency, keypoint orientation, and matching robustness for large-scale scene reconstruction.</p>\n<h2>Acknowledgment</h2>\n<p>This solution was inspired by <a href=\"https://www.kaggle.com/roniheka\" target=\"_blank\">@roniheka</a> approach in the Image Matching Challenge 2023<a href=\"https://www.kaggle.com/competitions/image-matching-challenge-2023/discussion/416918#2301409\" target=\"_blank\">link</a>.</p>\n<h2>Cross-validation</h2>\n<table>\n<thead>\n<tr>\n<th>Dataset</th>\n<th>Score (%) / mAA (%) / Clusterness (%)</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>imc2023_haiper</td>\n<td>49.66 / 36.11 / 79.49</td>\n</tr>\n<tr>\n<td>imc2023_heritage</td>\n<td>44.91 / 28.96 / 100.00</td>\n</tr>\n<tr>\n<td>imc2023_theather_imc2024_church</td>\n<td>59.30 / 42.14 / 100.00</td>\n</tr>\n<tr>\n<td>imc2024_dioscuri_baalshamin</td>\n<td>66.67 / 50.00 / 100.00</td>\n</tr>\n<tr>\n<td>imc2024_lizard_pond</td>\n<td>22.22 / 12.50 / 100.00</td>\n</tr>\n<tr>\n<td>pt_brandenburg_british_buckingham</td>\n<td>46.50 / 76.85 / 33.33</td>\n</tr>\n<tr>\n<td>pt_piazzasanmarco_grandplace</td>\n<td>84.80 / 73.61 / 100.00</td>\n</tr>\n<tr>\n<td>pt_sacrecoeur_trevi_tajmahal</td>\n<td>87.45 / 78.82 / 98.21</td>\n</tr>\n<tr>\n<td>pt_stpeters_stpauls</td>\n<td>61.16 / 78.74 / 50.00</td>\n</tr>\n<tr>\n<td>amy_gardens</td>\n<td>22.92 / 12.94 / 100.00</td>\n</tr>\n<tr>\n<td>fbk_vineyard</td>\n<td>32.84 / 19.64 / 100.00</td>\n</tr>\n<tr>\n<td>ETs</td>\n<td>52.78 / 36.54 / 95.00</td>\n</tr>\n<tr>\n<td>stairs</td>\n<td>0.00 / 0.00 / 50.00</td>\n</tr>\n<tr>\n<td><strong>Average over all datasets</strong></td>\n<td><strong>48.55 / 42.07 / 85.08</strong></td>\n</tr>\n<tr>\n<td><strong>Computed metric time</strong></td>\n<td>1611.08 sec</td>\n</tr>\n</tbody>\n</table>\n<h2>Pipeline Overview</h2>\n<h3>Step 1: Image Loading</h3>\n<ul>\n<li>Images were loaded efficiently using Kornia.</li>\n</ul>\n<h3>Step 2: Image Rotation Correction</h3>\n<ul>\n<li>Edge lines that are nearly horizontal (−45° to 45°) and vertical (45° to 135°) were detected.</li>\n<li>The average direction of these lines was used to estimate the image's rotation angle.</li>\n<li>Images were then rotated to align with a horizontal landscape orientation.</li>\n</ul>\n<p><strong>Impact</strong>: Organizing keypoints in a geometrically consistent manner improved both clustering and matching performance.</p>\n<h3>Step 3: Image Pairing</h3>\n<ul>\n<li>Image descriptors were generated using DINOv2 (base).</li>\n<li>Image pairs were created based on cosine similarity with a minimum threshold of 0.3.</li>\n<li>At least 20 pairs per image were maintained to ensure reconstruction density.</li>\n</ul>\n<h3>Step 4: Feature Extraction</h3>\n<ul>\n<li>ALIKE was used for keypoint and descriptor extraction.</li>\n<li>No resizing was applied (<code>resize = None</code>) for stability.</li>\n<li>Images were cropped 25% from borders to retain the central region.</li>\n<li>Each cropped image was divided into 4 patches.</li>\n<li>ALIKE descriptors of size 4096 were extracted for each patch.</li>\n<li>Extracted keypoints were refined using a custom keypoint correction algorithm.</li>\n</ul>\n<h3>Step 5: Feature Matching &amp; COLMAP Integration</h3>\n<ul>\n<li>Keypoint matches were computed using LightGlue.</li>\n<li>Matches inserted into COLMAP database using direct SQL injection.</li>\n<li>Simple-Radial Camera model selected, improving camera parameter convergence.</li>\n</ul>\n<h3>Step 6: RANSAC Optimization</h3>\n<ul>\n<li>Keypoints were refined using RANSAC to filter robust matches.</li>\n<li>Hyperparameters of RANSAC were tuned to reduce false positives and improve accuracy.</li>\n</ul>\n<h3>Step 7: 3D Reconstruction</h3>\n<ul>\n<li>Final reconstruction performed via COLMAP SfM pipeline.</li>\n<li>Reconstructed 3D scenes validated using mAA and clusterness.</li>\n</ul>\n<p>Thank you to the organizers for crafting such a well-structured and intellectually rewarding challenge that pushed the boundaries of applied computer vision and 3D reconstruction.</p>\n<p>Looking forward to exploring the solutions shared by other participants—I’m excited to learn from your approaches and would love to read through your insights</p>",
  "messages": [
    {
      "id": 3216969,
      "postDate": "2025-06-04T11:01:20.933Z",
      "content": "<h1>Image Matching Challenge 2025 – Bronze Solution</h1>\n<h2>Solution Summary</h2>\n<p>This solution builds on publicly available baselines and introduces several enhancements to improve mean Average Accuracy (mAA) and clusterness scores. The focus was on improving geometric consistency, keypoint orientation, and matching robustness for large-scale scene reconstruction.</p>\n<h2>Acknowledgment</h2>\n<p>This solution was inspired by <a href=\"https://www.kaggle.com/roniheka\" target=\"_blank\">@roniheka</a> approach in the Image Matching Challenge 2023<a href=\"https://www.kaggle.com/competitions/image-matching-challenge-2023/discussion/416918#2301409\" target=\"_blank\">link</a>.</p>\n<h2>Cross-validation</h2>\n<table>\n<thead>\n<tr>\n<th>Dataset</th>\n<th>Score (%) / mAA (%) / Clusterness (%)</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>imc2023_haiper</td>\n<td>49.66 / 36.11 / 79.49</td>\n</tr>\n<tr>\n<td>imc2023_heritage</td>\n<td>44.91 / 28.96 / 100.00</td>\n</tr>\n<tr>\n<td>imc2023_theather_imc2024_church</td>\n<td>59.30 / 42.14 / 100.00</td>\n</tr>\n<tr>\n<td>imc2024_dioscuri_baalshamin</td>\n<td>66.67 / 50.00 / 100.00</td>\n</tr>\n<tr>\n<td>imc2024_lizard_pond</td>\n<td>22.22 / 12.50 / 100.00</td>\n</tr>\n<tr>\n<td>pt_brandenburg_british_buckingham</td>\n<td>46.50 / 76.85 / 33.33</td>\n</tr>\n<tr>\n<td>pt_piazzasanmarco_grandplace</td>\n<td>84.80 / 73.61 / 100.00</td>\n</tr>\n<tr>\n<td>pt_sacrecoeur_trevi_tajmahal</td>\n<td>87.45 / 78.82 / 98.21</td>\n</tr>\n<tr>\n<td>pt_stpeters_stpauls</td>\n<td>61.16 / 78.74 / 50.00</td>\n</tr>\n<tr>\n<td>amy_gardens</td>\n<td>22.92 / 12.94 / 100.00</td>\n</tr>\n<tr>\n<td>fbk_vineyard</td>\n<td>32.84 / 19.64 / 100.00</td>\n</tr>\n<tr>\n<td>ETs</td>\n<td>52.78 / 36.54 / 95.00</td>\n</tr>\n<tr>\n<td>stairs</td>\n<td>0.00 / 0.00 / 50.00</td>\n</tr>\n<tr>\n<td><strong>Average over all datasets</strong></td>\n<td><strong>48.55 / 42.07 / 85.08</strong></td>\n</tr>\n<tr>\n<td><strong>Computed metric time</strong></td>\n<td>1611.08 sec</td>\n</tr>\n</tbody>\n</table>\n<h2>Pipeline Overview</h2>\n<h3>Step 1: Image Loading</h3>\n<ul>\n<li>Images were loaded efficiently using Kornia.</li>\n</ul>\n<h3>Step 2: Image Rotation Correction</h3>\n<ul>\n<li>Edge lines that are nearly horizontal (−45° to 45°) and vertical (45° to 135°) were detected.</li>\n<li>The average direction of these lines was used to estimate the image's rotation angle.</li>\n<li>Images were then rotated to align with a horizontal landscape orientation.</li>\n</ul>\n<p><strong>Impact</strong>: Organizing keypoints in a geometrically consistent manner improved both clustering and matching performance.</p>\n<h3>Step 3: Image Pairing</h3>\n<ul>\n<li>Image descriptors were generated using DINOv2 (base).</li>\n<li>Image pairs were created based on cosine similarity with a minimum threshold of 0.3.</li>\n<li>At least 20 pairs per image were maintained to ensure reconstruction density.</li>\n</ul>\n<h3>Step 4: Feature Extraction</h3>\n<ul>\n<li>ALIKE was used for keypoint and descriptor extraction.</li>\n<li>No resizing was applied (<code>resize = None</code>) for stability.</li>\n<li>Images were cropped 25% from borders to retain the central region.</li>\n<li>Each cropped image was divided into 4 patches.</li>\n<li>ALIKE descriptors of size 4096 were extracted for each patch.</li>\n<li>Extracted keypoints were refined using a custom keypoint correction algorithm.</li>\n</ul>\n<h3>Step 5: Feature Matching &amp; COLMAP Integration</h3>\n<ul>\n<li>Keypoint matches were computed using LightGlue.</li>\n<li>Matches inserted into COLMAP database using direct SQL injection.</li>\n<li>Simple-Radial Camera model selected, improving camera parameter convergence.</li>\n</ul>\n<h3>Step 6: RANSAC Optimization</h3>\n<ul>\n<li>Keypoints were refined using RANSAC to filter robust matches.</li>\n<li>Hyperparameters of RANSAC were tuned to reduce false positives and improve accuracy.</li>\n</ul>\n<h3>Step 7: 3D Reconstruction</h3>\n<ul>\n<li>Final reconstruction performed via COLMAP SfM pipeline.</li>\n<li>Reconstructed 3D scenes validated using mAA and clusterness.</li>\n</ul>\n<p>Thank you to the organizers for crafting such a well-structured and intellectually rewarding challenge that pushed the boundaries of applied computer vision and 3D reconstruction.</p>\n<p>Looking forward to exploring the solutions shared by other participants—I’m excited to learn from your approaches and would love to read through your insights</p>",
      "rawMarkdown": "# Image Matching Challenge 2025 – Bronze Solution\n\n## Solution Summary\n\nThis solution builds on publicly available baselines and introduces several enhancements to improve mean Average Accuracy (mAA) and clusterness scores. The focus was on improving geometric consistency, keypoint orientation, and matching robustness for large-scale scene reconstruction.\n\n## Acknowledgment\n\nThis solution was inspired by @roniheka approach in the Image Matching Challenge 2023[link](https://www.kaggle.com/competitions/image-matching-challenge-2023/discussion/416918#2301409).\n\n## Cross-validation\n| Dataset                                 | Score (%) / mAA (%) / Clusterness (%)     |\n|-----------------------------------------|--------------------------------------------|\n| imc2023_haiper                          | 49.66 / 36.11 / 79.49                      |\n| imc2023_heritage                       | 44.91 / 28.96 / 100.00                     |\n| imc2023_theather_imc2024_church       | 59.30 / 42.14 / 100.00                     |\n| imc2024_dioscuri_baalshamin           | 66.67 / 50.00 / 100.00                     |\n| imc2024_lizard_pond                   | 22.22 / 12.50 / 100.00                     |\n| pt_brandenburg_british_buckingham     | 46.50 / 76.85 / 33.33                      |\n| pt_piazzasanmarco_grandplace          | 84.80 / 73.61 / 100.00                     |\n| pt_sacrecoeur_trevi_tajmahal          | 87.45 / 78.82 / 98.21                      |\n| pt_stpeters_stpauls                   | 61.16 / 78.74 / 50.00                      |\n| amy_gardens                           | 22.92 / 12.94 / 100.00                     |\n| fbk_vineyard                          | 32.84 / 19.64 / 100.00                     |\n| ETs                                   | 52.78 / 36.54 / 95.00                      |\n| stairs                                | 0.00 / 0.00 / 50.00                        |\n| **Average over all datasets**         | **48.55 / 42.07 / 85.08**                  |\n| **Computed metric time**              | 1611.08 sec                                |\n\n## Pipeline Overview\n\n### Step 1: Image Loading\n- Images were loaded efficiently using Kornia.\n\n### Step 2: Image Rotation Correction\n- Edge lines that are nearly horizontal (−45° to 45°) and vertical (45° to 135°) were detected.\n- The average direction of these lines was used to estimate the image's rotation angle.\n- Images were then rotated to align with a horizontal landscape orientation.\n\n**Impact**: Organizing keypoints in a geometrically consistent manner improved both clustering and matching performance.\n\n### Step 3: Image Pairing\n- Image descriptors were generated using DINOv2 (base).\n- Image pairs were created based on cosine similarity with a minimum threshold of 0.3.\n- At least 20 pairs per image were maintained to ensure reconstruction density.\n\n### Step 4: Feature Extraction\n- ALIKE was used for keypoint and descriptor extraction.\n- No resizing was applied (`resize = None`) for stability.\n- Images were cropped 25% from borders to retain the central region.\n- Each cropped image was divided into 4 patches.\n- ALIKE descriptors of size 4096 were extracted for each patch.\n- Extracted keypoints were refined using a custom keypoint correction algorithm.\n\n### Step 5: Feature Matching & COLMAP Integration\n- Keypoint matches were computed using LightGlue.\n- Matches inserted into COLMAP database using direct SQL injection.\n- Simple-Radial Camera model selected, improving camera parameter convergence.\n\n### Step 6: RANSAC Optimization\n- Keypoints were refined using RANSAC to filter robust matches.\n- Hyperparameters of RANSAC were tuned to reduce false positives and improve accuracy.\n\n### Step 7: 3D Reconstruction\n- Final reconstruction performed via COLMAP SfM pipeline.\n- Reconstructed 3D scenes validated using mAA and clusterness.\n\nThank you to the organizers for crafting such a well-structured and intellectually rewarding challenge that pushed the boundaries of applied computer vision and 3D reconstruction.\n\nLooking forward to exploring the solutions shared by other participants—I’m excited to learn from your approaches and would love to read through your insights",
      "votes": 14
    }
  ],
  "comments": [],
  "raw_markdown_by_id": {
    "3216969": "# Image Matching Challenge 2025 – Bronze Solution\n\n## Solution Summary\n\nThis solution builds on publicly available baselines and introduces several enhancements to improve mean Average Accuracy (mAA) and clusterness scores. The focus was on improving geometric consistency, keypoint orientation, and matching robustness for large-scale scene reconstruction.\n\n## Acknowledgment\n\nThis solution was inspired by @roniheka approach in the Image Matching Challenge 2023[link](https://www.kaggle.com/competitions/image-matching-challenge-2023/discussion/416918#2301409).\n\n## Cross-validation\n| Dataset                                 | Score (%) / mAA (%) / Clusterness (%)     |\n|-----------------------------------------|--------------------------------------------|\n| imc2023_haiper                          | 49.66 / 36.11 / 79.49                      |\n| imc2023_heritage                       | 44.91 / 28.96 / 100.00                     |\n| imc2023_theather_imc2024_church       | 59.30 / 42.14 / 100.00                     |\n| imc2024_dioscuri_baalshamin           | 66.67 / 50.00 / 100.00                     |\n| imc2024_lizard_pond                   | 22.22 / 12.50 / 100.00                     |\n| pt_brandenburg_british_buckingham     | 46.50 / 76.85 / 33.33                      |\n| pt_piazzasanmarco_grandplace          | 84.80 / 73.61 / 100.00                     |\n| pt_sacrecoeur_trevi_tajmahal          | 87.45 / 78.82 / 98.21                      |\n| pt_stpeters_stpauls                   | 61.16 / 78.74 / 50.00                      |\n| amy_gardens                           | 22.92 / 12.94 / 100.00                     |\n| fbk_vineyard                          | 32.84 / 19.64 / 100.00                     |\n| ETs                                   | 52.78 / 36.54 / 95.00                      |\n| stairs                                | 0.00 / 0.00 / 50.00                        |\n| **Average over all datasets**         | **48.55 / 42.07 / 85.08**                  |\n| **Computed metric time**              | 1611.08 sec                                |\n\n## Pipeline Overview\n\n### Step 1: Image Loading\n- Images were loaded efficiently using Kornia.\n\n### Step 2: Image Rotation Correction\n- Edge lines that are nearly horizontal (−45° to 45°) and vertical (45° to 135°) were detected.\n- The average direction of these lines was used to estimate the image's rotation angle.\n- Images were then rotated to align with a horizontal landscape orientation.\n\n**Impact**: Organizing keypoints in a geometrically consistent manner improved both clustering and matching performance.\n\n### Step 3: Image Pairing\n- Image descriptors were generated using DINOv2 (base).\n- Image pairs were created based on cosine similarity with a minimum threshold of 0.3.\n- At least 20 pairs per image were maintained to ensure reconstruction density.\n\n### Step 4: Feature Extraction\n- ALIKE was used for keypoint and descriptor extraction.\n- No resizing was applied (`resize = None`) for stability.\n- Images were cropped 25% from borders to retain the central region.\n- Each cropped image was divided into 4 patches.\n- ALIKE descriptors of size 4096 were extracted for each patch.\n- Extracted keypoints were refined using a custom keypoint correction algorithm.\n\n### Step 5: Feature Matching & COLMAP Integration\n- Keypoint matches were computed using LightGlue.\n- Matches inserted into COLMAP database using direct SQL injection.\n- Simple-Radial Camera model selected, improving camera parameter convergence.\n\n### Step 6: RANSAC Optimization\n- Keypoints were refined using RANSAC to filter robust matches.\n- Hyperparameters of RANSAC were tuned to reduce false positives and improve accuracy.\n\n### Step 7: 3D Reconstruction\n- Final reconstruction performed via COLMAP SfM pipeline.\n- Reconstructed 3D scenes validated using mAA and clusterness.\n\nThank you to the organizers for crafting such a well-structured and intellectually rewarding challenge that pushed the boundaries of applied computer vision and 3D reconstruction.\n\nLooking forward to exploring the solutions shared by other participants—I’m excited to learn from your approaches and would love to read through your insights"
  }
}