{
  "id": 510673,
  "title": "12th Place Solution",
  "url": "/competitions/image-matching-challenge-2024/discussion/510673",
  "author_name": "Kzk Knmt",
  "post_date": "2024-06-07T07:11:03.838000",
  "votes": 8,
  "comment_count": 0,
  "views": 0,
  "content": "<h1>Acknowledgments</h1>\n<p>First of all, I'd like to express my gratitude to all the hosts and Kaggle staff for organizing such an interesting and challenging competition!</p>\n<h1>Overview</h1>\n<ul>\n<li>Basically, I adopted the same as Baseline for getting image pairs, ALIKED for keypoints detection, and LightGlue for matcher.</li>\n<li>When detecting keypoints on the image, the image was divided into 4 images[1] and resized to a size that improved both CV and LB for transparent and non-transparent objects.</li>\n<li>When matching keypoints, one image is rotated 0°, 90°, 180°, 270°, and the image is matched in 4 divisions with the pair with the highest number of matches.</li>\n<li>The matcher_th and min_matches for matching between the 4 images were adjusted to improve CV and LB for both transparent and non-transparent objects.</li>\n</ul>\n<h1>Pipeline</h1>\n<ol>\n<li>Whether a dataset is a transparent object or not is determined by setting the threshold=0.7 for the average normalized correlation coefficient between the average image of all images in a dataset and each image.<br>\n(The threshold was adjusted in the provided data experimentally.)<br>\n<img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F12213964%2Fcedccbbe314f8084261aadf2bdd58ec7%2Fdetermine_transp.png?generation=1717744129784383&amp;alt=media\"></li>\n<li>Splits the image into 4 images, resized to a size that improves the scores for transparent(=1280) and non-transparent(=1600) objects, and detects keypoints. </li>\n<li>Select the one with the highest number of matches while rotating 0°, 90°, 180°, 270°, and select the one with the highest number of matches.</li>\n<li>Keypoints were matched by setting matcher=0.27 and min_matches=30 for transparent objects and matcher=0.7 and min_matches=28 for non-transparent objects.<br>\n<img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F12213964%2Fcb76ac5505c4573484bc09c3f0bb946c%2Fmatch_non-transp.png?generation=1717744179814964&amp;alt=media\"><br>\n<img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F12213964%2F0f58249692bfd24fe969d287c5a5016c%2Fmatch_transp.png?generation=1717744193127164&amp;alt=media\"></li>\n</ol>\n<h1>Reference</h1>\n<ul>\n<li>[1] <a href=\"https://www.kaggle.com/competitions/image-matching-challenge-2023/discussion/416918\" target=\"_blank\">https://www.kaggle.com/competitions/image-matching-challenge-2023/discussion/416918</a></li>\n</ul>",
  "messages": [
    {
      "id": 2859675,
      "postDate": "2024-06-07T07:11:03.840Z",
      "content": "<h1>Acknowledgments</h1>\n<p>First of all, I'd like to express my gratitude to all the hosts and Kaggle staff for organizing such an interesting and challenging competition!</p>\n<h1>Overview</h1>\n<ul>\n<li>Basically, I adopted the same as Baseline for getting image pairs, ALIKED for keypoints detection, and LightGlue for matcher.</li>\n<li>When detecting keypoints on the image, the image was divided into 4 images[1] and resized to a size that improved both CV and LB for transparent and non-transparent objects.</li>\n<li>When matching keypoints, one image is rotated 0°, 90°, 180°, 270°, and the image is matched in 4 divisions with the pair with the highest number of matches.</li>\n<li>The matcher_th and min_matches for matching between the 4 images were adjusted to improve CV and LB for both transparent and non-transparent objects.</li>\n</ul>\n<h1>Pipeline</h1>\n<ol>\n<li>Whether a dataset is a transparent object or not is determined by setting the threshold=0.7 for the average normalized correlation coefficient between the average image of all images in a dataset and each image.<br>\n(The threshold was adjusted in the provided data experimentally.)<br>\n<img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F12213964%2Fcedccbbe314f8084261aadf2bdd58ec7%2Fdetermine_transp.png?generation=1717744129784383&amp;alt=media\"></li>\n<li>Splits the image into 4 images, resized to a size that improves the scores for transparent(=1280) and non-transparent(=1600) objects, and detects keypoints. </li>\n<li>Select the one with the highest number of matches while rotating 0°, 90°, 180°, 270°, and select the one with the highest number of matches.</li>\n<li>Keypoints were matched by setting matcher=0.27 and min_matches=30 for transparent objects and matcher=0.7 and min_matches=28 for non-transparent objects.<br>\n<img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F12213964%2Fcb76ac5505c4573484bc09c3f0bb946c%2Fmatch_non-transp.png?generation=1717744179814964&amp;alt=media\"><br>\n<img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F12213964%2F0f58249692bfd24fe969d287c5a5016c%2Fmatch_transp.png?generation=1717744193127164&amp;alt=media\"></li>\n</ol>\n<h1>Reference</h1>\n<ul>\n<li>[1] <a href=\"https://www.kaggle.com/competitions/image-matching-challenge-2023/discussion/416918\" target=\"_blank\">https://www.kaggle.com/competitions/image-matching-challenge-2023/discussion/416918</a></li>\n</ul>",
      "rawMarkdown": "# Acknowledgments\nFirst of all, I'd like to express my gratitude to all the hosts and Kaggle staff for organizing such an interesting and challenging competition!\n\n# Overview\n* Basically, I adopted the same as Baseline for getting image pairs, ALIKED for keypoints detection, and LightGlue for matcher.\n* When detecting keypoints on the image, the image was divided into 4 images[1] and resized to a size that improved both CV and LB for transparent and non-transparent objects.\n* When matching keypoints, one image is rotated 0°, 90°, 180°, 270°, and the image is matched in 4 divisions with the pair with the highest number of matches.\n* The matcher_th and min_matches for matching between the 4 images were adjusted to improve CV and LB for both transparent and non-transparent objects.\n\n# Pipeline\n1. Whether a dataset is a transparent object or not is determined by setting the threshold=0.7 for the average normalized correlation coefficient between the average image of all images in a dataset and each image.\n(The threshold was adjusted in the provided data experimentally.)\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F12213964%2Fcedccbbe314f8084261aadf2bdd58ec7%2Fdetermine_transp.png?generation=1717744129784383&alt=media)\n2. Splits the image into 4 images, resized to a size that improves the scores for transparent(=1280) and non-transparent(=1600) objects, and detects keypoints. \n3. Select the one with the highest number of matches while rotating 0°, 90°, 180°, 270°, and select the one with the highest number of matches.\n4. Keypoints were matched by setting matcher=0.27 and min_matches=30 for transparent objects and matcher=0.7 and min_matches=28 for non-transparent objects.\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F12213964%2Fcb76ac5505c4573484bc09c3f0bb946c%2Fmatch_non-transp.png?generation=1717744179814964&alt=media)\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F12213964%2F0f58249692bfd24fe969d287c5a5016c%2Fmatch_transp.png?generation=1717744193127164&alt=media)\n\n# Reference\n* [1] [https://www.kaggle.com/competitions/image-matching-challenge-2023/discussion/416918](https://www.kaggle.com/competitions/image-matching-challenge-2023/discussion/416918)\n",
      "votes": 8
    }
  ],
  "comments": [],
  "raw_markdown_by_id": {
    "2859675": "# Acknowledgments\nFirst of all, I'd like to express my gratitude to all the hosts and Kaggle staff for organizing such an interesting and challenging competition!\n\n# Overview\n* Basically, I adopted the same as Baseline for getting image pairs, ALIKED for keypoints detection, and LightGlue for matcher.\n* When detecting keypoints on the image, the image was divided into 4 images[1] and resized to a size that improved both CV and LB for transparent and non-transparent objects.\n* When matching keypoints, one image is rotated 0°, 90°, 180°, 270°, and the image is matched in 4 divisions with the pair with the highest number of matches.\n* The matcher_th and min_matches for matching between the 4 images were adjusted to improve CV and LB for both transparent and non-transparent objects.\n\n# Pipeline\n1. Whether a dataset is a transparent object or not is determined by setting the threshold=0.7 for the average normalized correlation coefficient between the average image of all images in a dataset and each image.\n(The threshold was adjusted in the provided data experimentally.)\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F12213964%2Fcedccbbe314f8084261aadf2bdd58ec7%2Fdetermine_transp.png?generation=1717744129784383&alt=media)\n2. Splits the image into 4 images, resized to a size that improves the scores for transparent(=1280) and non-transparent(=1600) objects, and detects keypoints. \n3. Select the one with the highest number of matches while rotating 0°, 90°, 180°, 270°, and select the one with the highest number of matches.\n4. Keypoints were matched by setting matcher=0.27 and min_matches=30 for transparent objects and matcher=0.7 and min_matches=28 for non-transparent objects.\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F12213964%2Fcb76ac5505c4573484bc09c3f0bb946c%2Fmatch_non-transp.png?generation=1717744179814964&alt=media)\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F12213964%2F0f58249692bfd24fe969d287c5a5016c%2Fmatch_transp.png?generation=1717744193127164&alt=media)\n\n# Reference\n* [1] [https://www.kaggle.com/competitions/image-matching-challenge-2023/discussion/416918](https://www.kaggle.com/competitions/image-matching-challenge-2023/discussion/416918)\n"
  }
}