{
  "id": 511507,
  "title": "47th Place Solution: A Novel Transparent Scene Trick!",
  "url": "/competitions/image-matching-challenge-2024/discussion/511507",
  "author_name": "Chainey",
  "post_date": "2024-06-11T02:16:17.530000",
  "votes": 8,
  "comment_count": 0,
  "views": 0,
  "content": "<p>Thank you to the organizers for holding this competition; we have learned a lot from it!</p>\n<p>Our approach to handling categories other than glass cups is not much different from before; We made a mistake which led to overfitting of the non-glass cup categories on the public leaderboard <strong>[LB: 11, PB: 47]</strong>, <strong>but</strong> our technique for handling glass cup categories is novel and has improved a lot. below is the flowchart of our method.</p>\n<p><img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F8171978%2Fcd89e82b063b7e91eb3bdf735ccb6c84%2Fcccccccccccccc.png?generation=1718069477532311&amp;alt=media\"></p>\n<p><strong>Transparent Scene Trick</strong></p>\n<p>Through experimentation, we have discovered that the key to constructing a <strong>rotational matrix</strong> is to determine the relative positional relationships of each image. We hypothesize that images with a higher number of matching feature points are in closer proximity. However, it is not always the case that the two images with the most matching feature points are necessarily adjacent. We need to seek a <strong>globally optimal arrangement</strong>.</p>\n<p><img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F8171978%2F9b8e624ac1dbfbe79784d1cbf41ea907%2Fdddddddddd.png?generation=1718070248811134&amp;alt=media\"></p>\n<p>We have reformulated the issue of determining the relative positioning of a set of images into a <strong>closed-loop graph search algorithm problem</strong>. Images that have a higher number of matching points are more likely to be adjacent to each other. Furthermore, the first and last images in the sorted sequence are positioned next to each other, as the photographs were taken surrounding the object.</p>\n<p><img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F8171978%2F42a05336d38de5794dc54334a42ce48f%2Fffffffffffffffff.png?generation=1718072070196206&amp;alt=media\"></p>\n<p>In the course of our experimentation, we have combined the <strong>MST (Minimum Spanning Tree)</strong> and <strong>DFS (Depth-First Search)</strong> methods to find the optimal solution for our problem. The MST is a tree structure that connects all vertices in a graph at the minimum total edge weights without forming a cycle. A commonly used algorithm for constructing MSTs is Kruskal's algorithm. By employing MST, we can identify the least costly way to connect all nodes within a graph. DFS is a graph traversal algorithm that uses recursion or stacks to explore along a branch of the graph until it reaches the last node, then backtracks to other branch extremities until all nodes have been visited. DFS can be utilized to search for possible paths or to check for the presence of cycles within the graph. <strong>In summary, MST is employed to find the shortest path, while DFS is utilized to impose closed-loop constraints on the shortest path.</strong></p>\n<table>\n<thead>\n<tr>\n<th>object</th>\n<th>CV</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>glass_cup</td>\n<td>0.601</td>\n</tr>\n<tr>\n<td>glass_cylinder</td>\n<td>0.783</td>\n</tr>\n</tbody>\n</table>\n<table>\n<thead>\n<tr>\n<th>object</th>\n<th>LB</th>\n<th>PB</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>+MST&amp;DFS</td>\n<td>+0.03</td>\n<td>+0.02</td>\n</tr>\n</tbody>\n</table>\n<p>The following is our code</p>\n<p><img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F8171978%2Fcfd7ef715beee12cce0a1fd148579e56%2Feeeeeeeeee.png?generation=1718071637946770&amp;alt=media\"></p>",
  "messages": [
    {
      "id": 2865805,
      "postDate": "2024-06-11T02:16:17.530Z",
      "content": "<p>Thank you to the organizers for holding this competition; we have learned a lot from it!</p>\n<p>Our approach to handling categories other than glass cups is not much different from before; We made a mistake which led to overfitting of the non-glass cup categories on the public leaderboard <strong>[LB: 11, PB: 47]</strong>, <strong>but</strong> our technique for handling glass cup categories is novel and has improved a lot. below is the flowchart of our method.</p>\n<p><img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F8171978%2Fcd89e82b063b7e91eb3bdf735ccb6c84%2Fcccccccccccccc.png?generation=1718069477532311&amp;alt=media\"></p>\n<p><strong>Transparent Scene Trick</strong></p>\n<p>Through experimentation, we have discovered that the key to constructing a <strong>rotational matrix</strong> is to determine the relative positional relationships of each image. We hypothesize that images with a higher number of matching feature points are in closer proximity. However, it is not always the case that the two images with the most matching feature points are necessarily adjacent. We need to seek a <strong>globally optimal arrangement</strong>.</p>\n<p><img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F8171978%2F9b8e624ac1dbfbe79784d1cbf41ea907%2Fdddddddddd.png?generation=1718070248811134&amp;alt=media\"></p>\n<p>We have reformulated the issue of determining the relative positioning of a set of images into a <strong>closed-loop graph search algorithm problem</strong>. Images that have a higher number of matching points are more likely to be adjacent to each other. Furthermore, the first and last images in the sorted sequence are positioned next to each other, as the photographs were taken surrounding the object.</p>\n<p><img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F8171978%2F42a05336d38de5794dc54334a42ce48f%2Fffffffffffffffff.png?generation=1718072070196206&amp;alt=media\"></p>\n<p>In the course of our experimentation, we have combined the <strong>MST (Minimum Spanning Tree)</strong> and <strong>DFS (Depth-First Search)</strong> methods to find the optimal solution for our problem. The MST is a tree structure that connects all vertices in a graph at the minimum total edge weights without forming a cycle. A commonly used algorithm for constructing MSTs is Kruskal's algorithm. By employing MST, we can identify the least costly way to connect all nodes within a graph. DFS is a graph traversal algorithm that uses recursion or stacks to explore along a branch of the graph until it reaches the last node, then backtracks to other branch extremities until all nodes have been visited. DFS can be utilized to search for possible paths or to check for the presence of cycles within the graph. <strong>In summary, MST is employed to find the shortest path, while DFS is utilized to impose closed-loop constraints on the shortest path.</strong></p>\n<table>\n<thead>\n<tr>\n<th>object</th>\n<th>CV</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>glass_cup</td>\n<td>0.601</td>\n</tr>\n<tr>\n<td>glass_cylinder</td>\n<td>0.783</td>\n</tr>\n</tbody>\n</table>\n<table>\n<thead>\n<tr>\n<th>object</th>\n<th>LB</th>\n<th>PB</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>+MST&amp;DFS</td>\n<td>+0.03</td>\n<td>+0.02</td>\n</tr>\n</tbody>\n</table>\n<p>The following is our code</p>\n<p><img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F8171978%2Fcfd7ef715beee12cce0a1fd148579e56%2Feeeeeeeeee.png?generation=1718071637946770&amp;alt=media\"></p>",
      "rawMarkdown": "Thank you to the organizers for holding this competition; we have learned a lot from it!\n\nOur approach to handling categories other than glass cups is not much different from before; We made a mistake which led to overfitting of the non-glass cup categories on the public leaderboard **[LB: 11, PB: 47]**, **but** our technique for handling glass cup categories is novel and has improved a lot. below is the flowchart of our method.\n\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F8171978%2Fcd89e82b063b7e91eb3bdf735ccb6c84%2Fcccccccccccccc.png?generation=1718069477532311&alt=media)\n\n**Transparent Scene Trick**\n\nThrough experimentation, we have discovered that the key to constructing a **rotational matrix** is to determine the relative positional relationships of each image. We hypothesize that images with a higher number of matching feature points are in closer proximity. However, it is not always the case that the two images with the most matching feature points are necessarily adjacent. We need to seek a **globally optimal arrangement**.\n\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F8171978%2F9b8e624ac1dbfbe79784d1cbf41ea907%2Fdddddddddd.png?generation=1718070248811134&alt=media)\n\nWe have reformulated the issue of determining the relative positioning of a set of images into a **closed-loop graph search algorithm problem**. Images that have a higher number of matching points are more likely to be adjacent to each other. Furthermore, the first and last images in the sorted sequence are positioned next to each other, as the photographs were taken surrounding the object.\n\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F8171978%2F42a05336d38de5794dc54334a42ce48f%2Fffffffffffffffff.png?generation=1718072070196206&alt=media)\n\nIn the course of our experimentation, we have combined the **MST (Minimum Spanning Tree)** and **DFS (Depth-First Search)** methods to find the optimal solution for our problem. The MST is a tree structure that connects all vertices in a graph at the minimum total edge weights without forming a cycle. A commonly used algorithm for constructing MSTs is Kruskal's algorithm. By employing MST, we can identify the least costly way to connect all nodes within a graph. DFS is a graph traversal algorithm that uses recursion or stacks to explore along a branch of the graph until it reaches the last node, then backtracks to other branch extremities until all nodes have been visited. DFS can be utilized to search for possible paths or to check for the presence of cycles within the graph. **In summary, MST is employed to find the shortest path, while DFS is utilized to impose closed-loop constraints on the shortest path.**\n\n|  object  |  CV   |\n|---- | ---- | \n|  glass_cup  |   0.601   | \n|  glass_cylinder  |  0.783    |\n\n\n|  object  | LB   | PB   |\n|---- | ---- | ---- |\n|  +MST&DFS |     +0.03   |   +0.02   |\n\n\nThe following is our code\n\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F8171978%2Fcfd7ef715beee12cce0a1fd148579e56%2Feeeeeeeeee.png?generation=1718071637946770&alt=media)",
      "votes": 8
    }
  ],
  "comments": [],
  "raw_markdown_by_id": {
    "2865805": "Thank you to the organizers for holding this competition; we have learned a lot from it!\n\nOur approach to handling categories other than glass cups is not much different from before; We made a mistake which led to overfitting of the non-glass cup categories on the public leaderboard **[LB: 11, PB: 47]**, **but** our technique for handling glass cup categories is novel and has improved a lot. below is the flowchart of our method.\n\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F8171978%2Fcd89e82b063b7e91eb3bdf735ccb6c84%2Fcccccccccccccc.png?generation=1718069477532311&alt=media)\n\n**Transparent Scene Trick**\n\nThrough experimentation, we have discovered that the key to constructing a **rotational matrix** is to determine the relative positional relationships of each image. We hypothesize that images with a higher number of matching feature points are in closer proximity. However, it is not always the case that the two images with the most matching feature points are necessarily adjacent. We need to seek a **globally optimal arrangement**.\n\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F8171978%2F9b8e624ac1dbfbe79784d1cbf41ea907%2Fdddddddddd.png?generation=1718070248811134&alt=media)\n\nWe have reformulated the issue of determining the relative positioning of a set of images into a **closed-loop graph search algorithm problem**. Images that have a higher number of matching points are more likely to be adjacent to each other. Furthermore, the first and last images in the sorted sequence are positioned next to each other, as the photographs were taken surrounding the object.\n\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F8171978%2F42a05336d38de5794dc54334a42ce48f%2Fffffffffffffffff.png?generation=1718072070196206&alt=media)\n\nIn the course of our experimentation, we have combined the **MST (Minimum Spanning Tree)** and **DFS (Depth-First Search)** methods to find the optimal solution for our problem. The MST is a tree structure that connects all vertices in a graph at the minimum total edge weights without forming a cycle. A commonly used algorithm for constructing MSTs is Kruskal's algorithm. By employing MST, we can identify the least costly way to connect all nodes within a graph. DFS is a graph traversal algorithm that uses recursion or stacks to explore along a branch of the graph until it reaches the last node, then backtracks to other branch extremities until all nodes have been visited. DFS can be utilized to search for possible paths or to check for the presence of cycles within the graph. **In summary, MST is employed to find the shortest path, while DFS is utilized to impose closed-loop constraints on the shortest path.**\n\n|  object  |  CV   |\n|---- | ---- | \n|  glass_cup  |   0.601   | \n|  glass_cylinder  |  0.783    |\n\n\n|  object  | LB   | PB   |\n|---- | ---- | ---- |\n|  +MST&DFS |     +0.03   |   +0.02   |\n\n\nThe following is our code\n\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-forum-message-attachments/o/inbox%2F8171978%2Fcfd7ef715beee12cce0a1fd148579e56%2Feeeeeeeeee.png?generation=1718071637946770&alt=media)"
  }
}