{
  "id": 580298,
  "title": "Submissions have been rescored due to metric bug",
  "url": "/competitions/image-matching-challenge-2025/discussion/580298",
  "author_name": "",
  "post_date": "2025-05-23T16:50:33.979249100Z",
  "votes": 19,
  "comment_count": 7,
  "views": 0,
  "content": "<p>Hi everyone,</p>\n<p>We investigated <a href=\"https://www.kaggle.com/competitions/image-matching-challenge-2025/discussion/579625\" target=\"_blank\">this report</a> and have confirmed that the competition launched with a bug in the metric code. We'll post a patched copy of the metric momentarily and will begin rescoring existing submissions later today. This metric takes quite a bit longer to evaluate than typical competition metrics so I may need to rescore submissions in batches over multiple days. <strong>Submissions will remain open but the leaderboard will not be meaningful until the process is complete</strong>. I will make a follow up post once there's more to report. </p>\n<p>In terms of what to expect: many submissions were not affected at all by the bug and will retain their existing score. Submissions that did trigger the bug will have lower scores, sometimes by a large factor (2x). </p>\n<p>As for the bug itself:</p>\n<p>The metric has two stages. First, it greedily matches the clusters provided by the user, to the ground truth clusters. Second, it computes the accuracy of the estimated image poses for each of the clusters. The issue is in the greedy assignment step. Under some conditions can lead to an improper association between a ground truth scene and the outliers cluster. This cascades into the computation of mAA and clustering score. The problem lies in the initialization of the tables used in the greedy assignment step, which are initially set to zero. When filling the table, entries corresponding to the outlier cluster are also set to 0. In some situations, the best cluster and the outliers cluster are given the same score in the greedy assignment, and the outlier cluster is wrongly selected instead. Specifically, this happens when (a) the best non-outlier cluster for a scene has a score of zero, and (b) the submission file contains \"outlier\" rows before non-outlier rows. The fix is simple: initialize the tables to -1 instead.</p>\n<p>We would like to send a great deal of thanks to the users who noticed this and reached out, especially to <a href=\"https://www.kaggle.com/gowillgo\" target=\"_blank\">@gowillgo</a> and <a href=\"https://www.kaggle.com/petermoorhouse\" target=\"_blank\">@petermoorhouse</a>.</p>\n<p>Apologies again for the disruption and thank you in advance for your patience.</p>\n<p>Edit 1: The rescores are under way. </p>\n<p>Edit 2: The rescores are now 99.9% complete. The final dozen or so submissions should be done very soon.</p>\n<p>Edit 3: You should now also see faster metric scoring times.</p>",
  "messages": [
    {
      "id": "3208075",
      "postDate": "05/23/2025 16:50:33",
      "content": "<p>Hi everyone,</p>\n<p>We investigated <a href=\"https://www.kaggle.com/competitions/image-matching-challenge-2025/discussion/579625\" target=\"_blank\">this report</a> and have confirmed that the competition launched with a bug in the metric code. We'll post a patched copy of the metric momentarily and will begin rescoring existing submissions later today. This metric takes quite a bit longer to evaluate than typical competition metrics so I may need to rescore submissions in batches over multiple days. <strong>Submissions will remain open but the leaderboard will not be meaningful until the process is complete</strong>. I will make a follow up post once there's more to report. </p>\n<p>In terms of what to expect: many submissions were not affected at all by the bug and will retain their existing score. Submissions that did trigger the bug will have lower scores, sometimes by a large factor (2x). </p>\n<p>As for the bug itself:</p>\n<p>The metric has two stages. First, it greedily matches the clusters provided by the user, to the ground truth clusters. Second, it computes the accuracy of the estimated image poses for each of the clusters. The issue is in the greedy assignment step. Under some conditions can lead to an improper association between a ground truth scene and the outliers cluster. This cascades into the computation of mAA and clustering score. The problem lies in the initialization of the tables used in the greedy assignment step, which are initially set to zero. When filling the table, entries corresponding to the outlier cluster are also set to 0. In some situations, the best cluster and the outliers cluster are given the same score in the greedy assignment, and the outlier cluster is wrongly selected instead. Specifically, this happens when (a) the best non-outlier cluster for a scene has a score of zero, and (b) the submission file contains \"outlier\" rows before non-outlier rows. The fix is simple: initialize the tables to -1 instead.</p>\n<p>We would like to send a great deal of thanks to the users who noticed this and reached out, especially to <a href=\"https://www.kaggle.com/gowillgo\" target=\"_blank\">@gowillgo</a> and <a href=\"https://www.kaggle.com/petermoorhouse\" target=\"_blank\">@petermoorhouse</a>.</p>\n<p>Apologies again for the disruption and thank you in advance for your patience.</p>\n<p>Edit 1: The rescores are under way. </p>\n<p>Edit 2: The rescores are now 99.9% complete. The final dozen or so submissions should be done very soon.</p>\n<p>Edit 3: You should now also see faster metric scoring times.</p>",
      "rawMarkdown": "Hi everyone,\n\nWe investigated [this report](https://www.kaggle.com/competitions/image-matching-challenge-2025/discussion/579625) and have confirmed that the competition launched with a bug in the metric code. We'll post a patched copy of the metric momentarily and will begin rescoring existing submissions later today. This metric takes quite a bit longer to evaluate than typical competition metrics so I may need to rescore submissions in batches over multiple days. **Submissions will remain open but the leaderboard will not be meaningful until the process is complete**. I will make a follow up post once there's more to report. \n\nIn terms of what to expect: many submissions were not affected at all by the bug and will retain their existing score. Submissions that did trigger the bug will have lower scores, sometimes by a large factor (2x). \n\nAs for the bug itself:\n\nThe metric has two stages. First, it greedily matches the clusters provided by the user, to the ground truth clusters. Second, it computes the accuracy of the estimated image poses for each of the clusters. The issue is in the greedy assignment step. Under some conditions can lead to an improper association between a ground truth scene and the outliers cluster. This cascades into the computation of mAA and clustering score. The problem lies in the initialization of the tables used in the greedy assignment step, which are initially set to zero. When filling the table, entries corresponding to the outlier cluster are also set to 0. In some situations, the best cluster and the outliers cluster are given the same score in the greedy assignment, and the outlier cluster is wrongly selected instead. Specifically, this happens when (a) the best non-outlier cluster for a scene has a score of zero, and (b) the submission file contains \"outlier\" rows before non-outlier rows. The fix is simple: initialize the tables to -1 instead.\n\nWe would like to send a great deal of thanks to the users who noticed this and reached out, especially to @gowillgo and @petermoorhouse.\n\nApologies again for the disruption and thank you in advance for your patience.\n\nEdit 1: The rescores are under way. \n\nEdit 2: The rescores are now 99.9% complete. The final dozen or so submissions should be done very soon.\n\nEdit 3: You should now also see faster metric scoring times.",
      "votes": null
    },
    {
      "id": "3208267",
      "postDate": "05/23/2025 20:38:28",
      "content": "<p>The fixed version of the metric is available at <br>\n<a href=\"https://www.kaggle.com/datasets/eduardtrulls/imc25-utils/data?select=metric.py\" target=\"_blank\">https://www.kaggle.com/datasets/eduardtrulls/imc25-utils/data?select=metric.py</a></p>",
      "rawMarkdown": "The fixed version of the metric is available at \nhttps://www.kaggle.com/datasets/eduardtrulls/imc25-utils/data?select=metric.py",
      "votes": null
    },
    {
      "id": "3208351",
      "postDate": "05/24/2025 00:27:21",
      "content": "<p>Hi, <a href=\"https://www.kaggle.com/sohier\" target=\"_blank\">@sohier</a> , <a href=\"https://www.kaggle.com/eduardtrulls\" target=\"_blank\">@eduardtrulls</a> , <a href=\"https://www.kaggle.com/oldufo\" target=\"_blank\">@oldufo</a> ,</p>\n<p>Thank you for conducting the rescoring.</p>\n<p>This might be specific to my case, but after rescoring, I’ve encountered <strong>Submission Scoring Error</strong>  on several of my previous submissions that had successfully scored before.</p>\n<p>As I mentioned earlier in [<a href=\"https://www.kaggle.com/competitions/image-matching-challenge-2025/discussion/579064#3203775]\" target=\"_blank\">https://www.kaggle.com/competitions/image-matching-challenge-2025/discussion/579064#3203775]</a>, my submissions tend to take a relatively long time during the scoring phase after the CSV has submitted, and I suspect they may be exceeding a time limit for scoring phase.<br>\n(There was a similar mention about time limits during the scoring phase in a previous competition as well: [<a href=\"https://www.kaggle.com/competitions/blood-vessel-segmentation/discussion/459969]\" target=\"_blank\">https://www.kaggle.com/competitions/blood-vessel-segmentation/discussion/459969]</a>)</p>\n<p>Additionally, I’ve observed that when I submitted the same Notebook multiple times, sometimes the scoring completed successfully, and other times it resulted in a Submission Scoring Error.<br>\nGiven that the Notebook always finishes running and the row count check for sample_submission.csv passes on rerun, I believe it’s unlikely that there’s an issue with the Notebook itself.</p>\n<p>I assume there may be a time limit of around 60 minutes currently,<br>\nbut would it be possible to consider extending it slightly (e.g. 90 minutes)?<br>\n(or if there are any other possible reasons why the same submission.csv might succeed or fail, I’d appreciate it if you could let me know.)</p>\n<p>It’s frustrating when the same submission.csv passes or fails depending on the run…🥲<br>\nI’d greatly appreciate your consideration.</p>",
      "rawMarkdown": "Hi, @sohier , @eduardtrulls , @oldufo ,\n\nThank you for conducting the rescoring.\n\nThis might be specific to my case, but after rescoring, I’ve encountered **Submission Scoring Error**  on several of my previous submissions that had successfully scored before.\n\nAs I mentioned earlier in [https://www.kaggle.com/competitions/image-matching-challenge-2025/discussion/579064#3203775], my submissions tend to take a relatively long time during the scoring phase after the CSV has submitted, and I suspect they may be exceeding a time limit for scoring phase.\n(There was a similar mention about time limits during the scoring phase in a previous competition as well: [https://www.kaggle.com/competitions/blood-vessel-segmentation/discussion/459969])\n\nAdditionally, I’ve observed that when I submitted the same Notebook multiple times, sometimes the scoring completed successfully, and other times it resulted in a Submission Scoring Error.\nGiven that the Notebook always finishes running and the row count check for sample_submission.csv passes on rerun, I believe it’s unlikely that there’s an issue with the Notebook itself.\n\nI assume there may be a time limit of around 60 minutes currently,\nbut would it be possible to consider extending it slightly (e.g. 90 minutes)?\n(or if there are any other possible reasons why the same submission.csv might succeed or fail, I’d appreciate it if you could let me know.)\n\nIt’s frustrating when the same submission.csv passes or fails depending on the run...🥲\nI’d greatly appreciate your consideration.",
      "votes": null
    },
    {
      "id": "3208366",
      "postDate": "05/24/2025 01:59:52",
      "content": "<p>There is a 60 minute metric runtime limit, yes. I can take a closer look at your case in order to confirm no unexpected issues cropped up but won't be able to dig in until after the long weekend. We did roll out a metric performance improvement so hopefully you won't run into the same problem as much going forward.</p>",
      "rawMarkdown": "There is a 60 minute metric runtime limit, yes. I can take a closer look at your case in order to confirm no unexpected issues cropped up but won't be able to dig in until after the long weekend. We did roll out a metric performance improvement so hopefully you won't run into the same problem as much going forward.",
      "votes": null
    },
    {
      "id": "3208368",
      "postDate": "05/24/2025 02:11:30",
      "content": "<p><a href=\"https://www.kaggle.com/sohier\" target=\"_blank\">@sohier</a> Thank you for your reply and taking measure for metric performance improvement.</p>\n<p>I’ll try resubmitting the notebook that encountered a Submission Scoring Error.<br>\nIf the problem continues, I’d appreciate the chance to follow up next week…</p>",
      "rawMarkdown": "sohier Thank you for your reply and taking measure for metric performance improvement.\n\nI’ll try resubmitting the notebook that encountered a Submission Scoring Error.\nIf the problem continues, I’d appreciate the chance to follow up next week...",
      "votes": null
    },
    {
      "id": "3208481",
      "postDate": "05/24/2025 07:50:38",
      "content": "<p><a href=\"https://www.kaggle.com/ryosukesaito\" target=\"_blank\">@ryosukesaito</a> This this been resolved, correct? The metric should be faster now.</p>",
      "rawMarkdown": "ryosukesaito This this been resolved, correct? The metric should be faster now.",
      "votes": null
    },
    {
      "id": "3208515",
      "postDate": "05/24/2025 09:15:17",
      "content": "<p><a href=\"https://www.kaggle.com/eduardtrulls\" target=\"_blank\">@eduardtrulls</a> <a href=\"https://www.kaggle.com/sohier\" target=\"_blank\">@sohier</a>,<br>\nI just confirmed the scoring time has been significantly reduced, and the submission now completes in time.<br>\nThank you for your prompt support!</p>",
      "rawMarkdown": "eduardtrulls @sohier,\nI just confirmed the scoring time has been significantly reduced, and the submission now completes in time.\nThank you for your prompt support!",
      "votes": null
    },
    {
      "id": "3209386",
      "postDate": "05/25/2025 17:39:52",
      "content": "<p>Thank you for conducting the rescoring.</p>",
      "rawMarkdown": "Thank you for conducting the rescoring.",
      "votes": null
    }
  ],
  "comments": [
    {
      "id": 3208267,
      "author_name": "oldufo",
      "author_url": "",
      "post_date": "05/23/2025 20:38:28",
      "content": "<p>The fixed version of the metric is available at <br>\n<a href=\"https://www.kaggle.com/datasets/eduardtrulls/imc25-utils/data?select=metric.py\" target=\"_blank\">https://www.kaggle.com/datasets/eduardtrulls/imc25-utils/data?select=metric.py</a></p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 3208351,
      "author_name": "ryosukesaito",
      "author_url": "",
      "post_date": "05/24/2025 00:27:21",
      "content": "<p>Hi, <a href=\"https://www.kaggle.com/sohier\" target=\"_blank\">@sohier</a> , <a href=\"https://www.kaggle.com/eduardtrulls\" target=\"_blank\">@eduardtrulls</a> , <a href=\"https://www.kaggle.com/oldufo\" target=\"_blank\">@oldufo</a> ,</p>\n<p>Thank you for conducting the rescoring.</p>\n<p>This might be specific to my case, but after rescoring, I’ve encountered <strong>Submission Scoring Error</strong>  on several of my previous submissions that had successfully scored before.</p>\n<p>As I mentioned earlier in [<a href=\"https://www.kaggle.com/competitions/image-matching-challenge-2025/discussion/579064#3203775]\" target=\"_blank\">https://www.kaggle.com/competitions/image-matching-challenge-2025/discussion/579064#3203775]</a>, my submissions tend to take a relatively long time during the scoring phase after the CSV has submitted, and I suspect they may be exceeding a time limit for scoring phase.<br>\n(There was a similar mention about time limits during the scoring phase in a previous competition as well: [<a href=\"https://www.kaggle.com/competitions/blood-vessel-segmentation/discussion/459969]\" target=\"_blank\">https://www.kaggle.com/competitions/blood-vessel-segmentation/discussion/459969]</a>)</p>\n<p>Additionally, I’ve observed that when I submitted the same Notebook multiple times, sometimes the scoring completed successfully, and other times it resulted in a Submission Scoring Error.<br>\nGiven that the Notebook always finishes running and the row count check for sample_submission.csv passes on rerun, I believe it’s unlikely that there’s an issue with the Notebook itself.</p>\n<p>I assume there may be a time limit of around 60 minutes currently,<br>\nbut would it be possible to consider extending it slightly (e.g. 90 minutes)?<br>\n(or if there are any other possible reasons why the same submission.csv might succeed or fail, I’d appreciate it if you could let me know.)</p>\n<p>It’s frustrating when the same submission.csv passes or fails depending on the run…🥲<br>\nI’d greatly appreciate your consideration.</p>",
      "votes": null,
      "replies": [
        {
          "id": 3208366,
          "author_name": "sohier",
          "author_url": "",
          "post_date": "05/24/2025 01:59:52",
          "content": "<p>There is a 60 minute metric runtime limit, yes. I can take a closer look at your case in order to confirm no unexpected issues cropped up but won't be able to dig in until after the long weekend. We did roll out a metric performance improvement so hopefully you won't run into the same problem as much going forward.</p>",
          "votes": null,
          "replies": [
            {
              "id": 3208368,
              "author_name": "ryosukesaito",
              "author_url": "",
              "post_date": "05/24/2025 02:11:30",
              "content": "<p><a href=\"https://www.kaggle.com/sohier\" target=\"_blank\">@sohier</a> Thank you for your reply and taking measure for metric performance improvement.</p>\n<p>I’ll try resubmitting the notebook that encountered a Submission Scoring Error.<br>\nIf the problem continues, I’d appreciate the chance to follow up next week…</p>",
              "votes": null,
              "replies": [
                {
                  "id": 3208481,
                  "author_name": "eduardtrulls",
                  "author_url": "",
                  "post_date": "05/24/2025 07:50:38",
                  "content": "<p><a href=\"https://www.kaggle.com/ryosukesaito\" target=\"_blank\">@ryosukesaito</a> This this been resolved, correct? The metric should be faster now.</p>",
                  "votes": null,
                  "replies": [
                    {
                      "id": 3208515,
                      "author_name": "ryosukesaito",
                      "author_url": "",
                      "post_date": "05/24/2025 09:15:17",
                      "content": "<p><a href=\"https://www.kaggle.com/eduardtrulls\" target=\"_blank\">@eduardtrulls</a> <a href=\"https://www.kaggle.com/sohier\" target=\"_blank\">@sohier</a>,<br>\nI just confirmed the scoring time has been significantly reduced, and the submission now completes in time.<br>\nThank you for your prompt support!</p>",
                      "votes": null,
                      "replies": []
                    }
                  ]
                }
              ]
            }
          ]
        }
      ]
    },
    {
      "id": 3209386,
      "author_name": "sharmajicoder",
      "author_url": "",
      "post_date": "05/25/2025 17:39:52",
      "content": "<p>Thank you for conducting the rescoring.</p>",
      "votes": null,
      "replies": []
    }
  ],
  "raw_markdown_by_id": {
    "3208075": "Hi everyone,\n\nWe investigated [this report](https://www.kaggle.com/competitions/image-matching-challenge-2025/discussion/579625) and have confirmed that the competition launched with a bug in the metric code. We'll post a patched copy of the metric momentarily and will begin rescoring existing submissions later today. This metric takes quite a bit longer to evaluate than typical competition metrics so I may need to rescore submissions in batches over multiple days. **Submissions will remain open but the leaderboard will not be meaningful until the process is complete**. I will make a follow up post once there's more to report. \n\nIn terms of what to expect: many submissions were not affected at all by the bug and will retain their existing score. Submissions that did trigger the bug will have lower scores, sometimes by a large factor (2x). \n\nAs for the bug itself:\n\nThe metric has two stages. First, it greedily matches the clusters provided by the user, to the ground truth clusters. Second, it computes the accuracy of the estimated image poses for each of the clusters. The issue is in the greedy assignment step. Under some conditions can lead to an improper association between a ground truth scene and the outliers cluster. This cascades into the computation of mAA and clustering score. The problem lies in the initialization of the tables used in the greedy assignment step, which are initially set to zero. When filling the table, entries corresponding to the outlier cluster are also set to 0. In some situations, the best cluster and the outliers cluster are given the same score in the greedy assignment, and the outlier cluster is wrongly selected instead. Specifically, this happens when (a) the best non-outlier cluster for a scene has a score of zero, and (b) the submission file contains \"outlier\" rows before non-outlier rows. The fix is simple: initialize the tables to -1 instead.\n\nWe would like to send a great deal of thanks to the users who noticed this and reached out, especially to @gowillgo and @petermoorhouse.\n\nApologies again for the disruption and thank you in advance for your patience.\n\nEdit 1: The rescores are under way. \n\nEdit 2: The rescores are now 99.9% complete. The final dozen or so submissions should be done very soon.\n\nEdit 3: You should now also see faster metric scoring times.",
    "3208267": "The fixed version of the metric is available at \nhttps://www.kaggle.com/datasets/eduardtrulls/imc25-utils/data?select=metric.py",
    "3208351": "Hi, @sohier , @eduardtrulls , @oldufo ,\n\nThank you for conducting the rescoring.\n\nThis might be specific to my case, but after rescoring, I’ve encountered **Submission Scoring Error**  on several of my previous submissions that had successfully scored before.\n\nAs I mentioned earlier in [https://www.kaggle.com/competitions/image-matching-challenge-2025/discussion/579064#3203775], my submissions tend to take a relatively long time during the scoring phase after the CSV has submitted, and I suspect they may be exceeding a time limit for scoring phase.\n(There was a similar mention about time limits during the scoring phase in a previous competition as well: [https://www.kaggle.com/competitions/blood-vessel-segmentation/discussion/459969])\n\nAdditionally, I’ve observed that when I submitted the same Notebook multiple times, sometimes the scoring completed successfully, and other times it resulted in a Submission Scoring Error.\nGiven that the Notebook always finishes running and the row count check for sample_submission.csv passes on rerun, I believe it’s unlikely that there’s an issue with the Notebook itself.\n\nI assume there may be a time limit of around 60 minutes currently,\nbut would it be possible to consider extending it slightly (e.g. 90 minutes)?\n(or if there are any other possible reasons why the same submission.csv might succeed or fail, I’d appreciate it if you could let me know.)\n\nIt’s frustrating when the same submission.csv passes or fails depending on the run...🥲\nI’d greatly appreciate your consideration.",
    "3208366": "There is a 60 minute metric runtime limit, yes. I can take a closer look at your case in order to confirm no unexpected issues cropped up but won't be able to dig in until after the long weekend. We did roll out a metric performance improvement so hopefully you won't run into the same problem as much going forward.",
    "3208368": "sohier Thank you for your reply and taking measure for metric performance improvement.\n\nI’ll try resubmitting the notebook that encountered a Submission Scoring Error.\nIf the problem continues, I’d appreciate the chance to follow up next week...",
    "3208481": "ryosukesaito This this been resolved, correct? The metric should be faster now.",
    "3208515": "eduardtrulls @sohier,\nI just confirmed the scoring time has been significantly reduced, and the submission now completes in time.\nThank you for your prompt support!",
    "3209386": "Thank you for conducting the rescoring."
  },
  "source": "meta"
}