{
  "id": 150781,
  "title": "Petition to modify the competition evaluation metric",
  "url": "/competitions/global-wheat-detection/discussion/150781",
  "author_name": "",
  "post_date": "2020-05-13T10:44:46.789278Z",
  "votes": 21,
  "comment_count": 8,
  "views": 0,
  "content": "<p>I'd like to suggest to my fellow competitors, and competition organisers, that a slight modification be made to the evaluation metric.</p>\n\n<p>Right now we take the average of the AP evaluated at IoU thresholds: 0.50, 0.55, 0.60, 0.65, 0.70, 0.75</p>\n\n<p>I argue that we should only evaluate AP at the lower few thresholds or even just at 0.50. Here are the reasons:</p>\n\n<ol>\n<li><p><strong>The proposed metric will be less sensitive to inconsistencies in labelling</strong> - I have noticed that the labelling in the dataset has some inconsistency over whether the awns are included in the bounding boxes or not (see below for image examples).</p></li>\n<li><p><strong>It is more sensible in the context of the real world problem being solved</strong> - From the competition description: <em>\"These images are used to estimate the density and size of wheat heads in different varieties”</em>. I think that perfectly accurate bounding boxes won’t affect the ability to do so. What’s most important is that the wheat heads are more or less localised with high precision and recall. </p></li>\n</ol>\n\n<p><strong>If the competition outcome is indeed impacted by the aforementioned labelling inconsistency, it's possible that a final evaluation will not put the \"best\" solutions at the top. Furthermore, it could be more difficult for competitors to zone in on the \"best\" solutions using the competition metric for feedback. This wouldn't do any favours to the hosts either!</strong></p>\n\n<p>It should be further noted that the benchmark set up in the <a href=\"https://arxiv.org/pdf/2005.02162.pdf\">GWHD paper</a> only uses the 0.50 IOU threshold. </p>\n\n<p>Please upvote if you agree.</p>\n\n<h2>Supporting examples</h2>\n\n<p>Example of labelling where awns are included. Notice that my bounding boxes (blue) tend to be smaller than the ground truths (green)\nMy measured AP: <code>@0.50</code> = 0.33, <code>@0.55</code> = 0.22, <code>@0.60</code> = 0.09, <code>@0.65</code> = 0.06, <code>@0.70</code> = 0.05, <code>@0.75</code> = 0.04</p>\n\n<p><img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F4256010%2F752dc301c06a0616dd8d2fa7fe9073f3%2Fexample-include.png?generation=1589366225178771&amp;alt=media\" alt=\"\"></p>\n\n<p>Example of labelling where awns are not included. Notice that my bounding boxes (blue) tend to be larger than the ground truths (green).\nMy measured AP: <code>@0.50</code> = 0.56, <code>@0.55</code> = 0.34, <code>@0.60</code> = 0.23, <code>@0.65</code> = 0.19, <code>@0.70</code> = 0.14, <code>@0.75</code> = 0.07</p>\n\n<p><img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F4256010%2Fe49c41543583ab8b14efcae054a74adb%2Fexample-not-include.png?generation=1589366417661117&amp;alt=media\" alt=\"\"></p>\n\n<p>Finally, examine the difference between the <code>@0.50</code> scores and <code>@0.75</code> scores. Of course these are supposed to be different, but we're talking a factor of nearly 10.</p>",
  "messages": [
    {
      "id": "845645",
      "postDate": "05/13/2020 10:44:46",
      "content": "<p>I'd like to suggest to my fellow competitors, and competition organisers, that a slight modification be made to the evaluation metric.</p>\n\n<p>Right now we take the average of the AP evaluated at IoU thresholds: 0.50, 0.55, 0.60, 0.65, 0.70, 0.75</p>\n\n<p>I argue that we should only evaluate AP at the lower few thresholds or even just at 0.50. Here are the reasons:</p>\n\n<ol>\n<li><p><strong>The proposed metric will be less sensitive to inconsistencies in labelling</strong> - I have noticed that the labelling in the dataset has some inconsistency over whether the awns are included in the bounding boxes or not (see below for image examples).</p></li>\n<li><p><strong>It is more sensible in the context of the real world problem being solved</strong> - From the competition description: <em>\"These images are used to estimate the density and size of wheat heads in different varieties”</em>. I think that perfectly accurate bounding boxes won’t affect the ability to do so. What’s most important is that the wheat heads are more or less localised with high precision and recall. </p></li>\n</ol>\n\n<p><strong>If the competition outcome is indeed impacted by the aforementioned labelling inconsistency, it's possible that a final evaluation will not put the \"best\" solutions at the top. Furthermore, it could be more difficult for competitors to zone in on the \"best\" solutions using the competition metric for feedback. This wouldn't do any favours to the hosts either!</strong></p>\n\n<p>It should be further noted that the benchmark set up in the <a href=\"https://arxiv.org/pdf/2005.02162.pdf\">GWHD paper</a> only uses the 0.50 IOU threshold. </p>\n\n<p>Please upvote if you agree.</p>\n\n<h2>Supporting examples</h2>\n\n<p>Example of labelling where awns are included. Notice that my bounding boxes (blue) tend to be smaller than the ground truths (green)\nMy measured AP: <code>@0.50</code> = 0.33, <code>@0.55</code> = 0.22, <code>@0.60</code> = 0.09, <code>@0.65</code> = 0.06, <code>@0.70</code> = 0.05, <code>@0.75</code> = 0.04</p>\n\n<p><img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F4256010%2F752dc301c06a0616dd8d2fa7fe9073f3%2Fexample-include.png?generation=1589366225178771&amp;alt=media\" alt=\"\"></p>\n\n<p>Example of labelling where awns are not included. Notice that my bounding boxes (blue) tend to be larger than the ground truths (green).\nMy measured AP: <code>@0.50</code> = 0.56, <code>@0.55</code> = 0.34, <code>@0.60</code> = 0.23, <code>@0.65</code> = 0.19, <code>@0.70</code> = 0.14, <code>@0.75</code> = 0.07</p>\n\n<p><img src=\"https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F4256010%2Fe49c41543583ab8b14efcae054a74adb%2Fexample-not-include.png?generation=1589366417661117&amp;alt=media\" alt=\"\"></p>\n\n<p>Finally, examine the difference between the <code>@0.50</code> scores and <code>@0.75</code> scores. Of course these are supposed to be different, but we're talking a factor of nearly 10.</p>",
      "rawMarkdown": "I'd like to suggest to my fellow competitors, and competition organisers, that a slight modification be made to the evaluation metric.\n\nRight now we take the average of the AP evaluated at IoU thresholds: 0.50, 0.55, 0.60, 0.65, 0.70, 0.75\n\nI argue that we should only evaluate AP at the lower few thresholds or even just at 0.50. Here are the reasons:\n\n1. **The proposed metric will be less sensitive to inconsistencies in labelling** - I have noticed that the labelling in the dataset has some inconsistency over whether the awns are included in the bounding boxes or not (see below for image examples).\n\n2. **It is more sensible in the context of the real world problem being solved** - From the competition description: _\"These images are used to estimate the density and size of wheat heads in different varieties”_. I think that perfectly accurate bounding boxes won’t affect the ability to do so. What’s most important is that the wheat heads are more or less localised with high precision and recall. \n\n**If the competition outcome is indeed impacted by the aforementioned labelling inconsistency, it's possible that a final evaluation will not put the \"best\" solutions at the top. Furthermore, it could be more difficult for competitors to zone in on the \"best\" solutions using the competition metric for feedback. This wouldn't do any favours to the hosts either!**\n\nIt should be further noted that the benchmark set up in the [GWHD paper](https://arxiv.org/pdf/2005.02162.pdf) only uses the 0.50 IOU threshold. \n\nPlease upvote if you agree.\n\n## Supporting examples\n\nExample of labelling where awns are included. Notice that my bounding boxes (blue) tend to be smaller than the ground truths (green)\nMy measured AP: `@0.50` = 0.33, `@0.55` = 0.22, `@0.60` = 0.09, `@0.65` = 0.06, `@0.70` = 0.05, `@0.75` = 0.04\n\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F4256010%2F752dc301c06a0616dd8d2fa7fe9073f3%2Fexample-include.png?generation=1589366225178771&amp;alt=media)\n\nExample of labelling where awns are not included. Notice that my bounding boxes (blue) tend to be larger than the ground truths (green).\nMy measured AP: `@0.50` = 0.56, `@0.55` = 0.34, `@0.60` = 0.23, `@0.65` = 0.19, `@0.70` = 0.14, `@0.75` = 0.07\n\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F4256010%2Fe49c41543583ab8b14efcae054a74adb%2Fexample-not-include.png?generation=1589366417661117&amp;alt=media)\n\nFinally, examine the difference between the `@0.50` scores and `@0.75` scores. Of course these are supposed to be different, but we're talking a factor of nearly 10.",
      "votes": null
    },
    {
      "id": "845836",
      "postDate": "05/13/2020 12:57:41",
      "content": "<p>I understand your point that the score decreases abruptly and makes the good score from <code>@0.5</code> less important. But the evaluation metric is usually selected carefully by the organizers for specific reasons that matter the most for them.</p>\n\n<p>For example, maybe in this competition, they care more about the <code>@0.75</code> than <code>@0.5</code>.</p>",
      "rawMarkdown": "I understand your point that the score decreases abruptly and makes the good score from `@0.5` less important. But the evaluation metric is usually selected carefully by the organizers for specific reasons that matter the most for them.\n\nFor example, maybe in this competition, they care more about the `@0.75` than `@0.5`.",
      "votes": null
    },
    {
      "id": "845841",
      "postDate": "05/13/2020 12:59:09",
      "content": "<p>Also there is a long way toward the end of this competition, and until then, there will probably be good discussions for the higher thresholds.</p>",
      "rawMarkdown": "Also there is a long way toward the end of this competition, and until then, there will probably be good discussions for the higher thresholds.",
      "votes": null
    },
    {
      "id": "845864",
      "postDate": "05/13/2020 13:12:35",
      "content": "<p>Hmm, I think my point here is less about finding a way to get a good score at the higher threshold and more about making the competition more aligned towards the end goal.</p>\n\n<p>Don't get me wrong, I think the organizers are doing a fantastic job, but it's the competitors who are most likely to catch out issues like these - after all that's what we are for! And it won't be the first time a metric has been modified during a Kaggle competition.</p>",
      "rawMarkdown": "Hmm, I think my point here is less about finding a way to get a good score at the higher threshold and more about making the competition more aligned towards the end goal.\n\nDon't get me wrong, I think the organizers are doing a fantastic job, but it's the competitors who are most likely to catch out issues like these - after all that's what we are for! And it won't be the first time a metric has been modified during a Kaggle competition.",
      "votes": null
    },
    {
      "id": "884658",
      "postDate": "06/13/2020 14:24:53",
      "content": "<p>So now you're the second and probably don't want to change metric anymore. :)</p>",
      "rawMarkdown": "So now you're the second and probably don't want to change metric anymore. :)",
      "votes": null
    },
    {
      "id": "884688",
      "postDate": "06/13/2020 14:56:25",
      "content": "<p>If that were true, it would make me kind of a scumbag wouldn't it</p>",
      "rawMarkdown": "If that were true, it would make me kind of a scumbag wouldn't it",
      "votes": null
    },
    {
      "id": "885358",
      "postDate": "06/14/2020 06:07:11",
      "content": "<p>Sorry, that was just a joke.\nI think good models would be still at the top. But you're right, comparing them can be noisy because of the noise bboxes.</p>",
      "rawMarkdown": "Sorry, that was just a joke.\nI think good models would be still at the top. But you're right, comparing them can be noisy because of the noise bboxes.",
      "votes": null
    },
    {
      "id": "896963",
      "postDate": "06/22/2020 14:42:33",
      "content": "<p>Thank you so much for your feedback <a href=\"/alexandersoare\">@alexandersoare</a> </p>\n\n<p>We choose 0.75 to be more discriminative. I acknowledge the fact that this dataset is labeled slightly differently than the rest. In the test set, the bbox are tight to the wheat head (you need to trust me on this one ^^). </p>\n\n<p>Could changing the metric to 0.5 only allow noisy models to win against more accurate ones ?</p>",
      "rawMarkdown": "Thank you so much for your feedback @alexandersoare \n\nWe choose 0.75 to be more discriminative. I acknowledge the fact that this dataset is labeled slightly differently than the rest. In the test set, the bbox are tight to the wheat head (you need to trust me on this one ^^). \n\nCould changing the metric to 0.5 only allow noisy models to win against more accurate ones ?",
      "votes": null
    },
    {
      "id": "897068",
      "postDate": "06/22/2020 15:45:25",
      "content": "<p>I see what you're saying and it makes sense. I wouldn't change it to just 0.5 but I would raise the question of whether to remove 0.75 and 0.70.</p>\n\n<p>Because of the label noise, if I have enough time on my hands I can figure out some heuristic which will help me fix it. And if you hadn't said anything about the test set, I might have even made one of my two final submissions alter the bbox size of wheat heads with awns - maybe I could win by blind luck. No one here wants to spend their time doing that as it doesn't add real value.</p>\n\n<p>In any case, without an overwhelming number of upvotes on this topic, I'll leave it at that.</p>",
      "rawMarkdown": "I see what you're saying and it makes sense. I wouldn't change it to just 0.5 but I would raise the question of whether to remove 0.75 and 0.70.\n\nBecause of the label noise, if I have enough time on my hands I can figure out some heuristic which will help me fix it. And if you hadn't said anything about the test set, I might have even made one of my two final submissions alter the bbox size of wheat heads with awns - maybe I could win by blind luck. No one here wants to spend their time doing that as it doesn't add real value.\n\nIn any case, without an overwhelming number of upvotes on this topic, I'll leave it at that.",
      "votes": null
    }
  ],
  "comments": [
    {
      "id": 845836,
      "author_name": "",
      "author_url": "",
      "post_date": "05/13/2020 12:57:41",
      "content": "<p>I understand your point that the score decreases abruptly and makes the good score from <code>@0.5</code> less important. But the evaluation metric is usually selected carefully by the organizers for specific reasons that matter the most for them.</p>\n\n<p>For example, maybe in this competition, they care more about the <code>@0.75</code> than <code>@0.5</code>.</p>",
      "votes": null,
      "replies": [
        {
          "id": 845841,
          "author_name": "",
          "author_url": "",
          "post_date": "05/13/2020 12:59:09",
          "content": "<p>Also there is a long way toward the end of this competition, and until then, there will probably be good discussions for the higher thresholds.</p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 845864,
          "author_name": "alexandersoare",
          "author_url": "",
          "post_date": "05/13/2020 13:12:35",
          "content": "<p>Hmm, I think my point here is less about finding a way to get a good score at the higher threshold and more about making the competition more aligned towards the end goal.</p>\n\n<p>Don't get me wrong, I think the organizers are doing a fantastic job, but it's the competitors who are most likely to catch out issues like these - after all that's what we are for! And it won't be the first time a metric has been modified during a Kaggle competition.</p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 884658,
      "author_name": "sergeyzlobin",
      "author_url": "",
      "post_date": "06/13/2020 14:24:53",
      "content": "<p>So now you're the second and probably don't want to change metric anymore. :)</p>",
      "votes": null,
      "replies": [
        {
          "id": 884688,
          "author_name": "alexandersoare",
          "author_url": "",
          "post_date": "06/13/2020 14:56:25",
          "content": "<p>If that were true, it would make me kind of a scumbag wouldn't it</p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 885358,
          "author_name": "sergeyzlobin",
          "author_url": "",
          "post_date": "06/14/2020 06:07:11",
          "content": "<p>Sorry, that was just a joke.\nI think good models would be still at the top. But you're right, comparing them can be noisy because of the noise bboxes.</p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 896963,
      "author_name": "bendvd",
      "author_url": "",
      "post_date": "06/22/2020 14:42:33",
      "content": "<p>Thank you so much for your feedback <a href=\"/alexandersoare\">@alexandersoare</a> </p>\n\n<p>We choose 0.75 to be more discriminative. I acknowledge the fact that this dataset is labeled slightly differently than the rest. In the test set, the bbox are tight to the wheat head (you need to trust me on this one ^^). </p>\n\n<p>Could changing the metric to 0.5 only allow noisy models to win against more accurate ones ?</p>",
      "votes": null,
      "replies": [
        {
          "id": 897068,
          "author_name": "alexandersoare",
          "author_url": "",
          "post_date": "06/22/2020 15:45:25",
          "content": "<p>I see what you're saying and it makes sense. I wouldn't change it to just 0.5 but I would raise the question of whether to remove 0.75 and 0.70.</p>\n\n<p>Because of the label noise, if I have enough time on my hands I can figure out some heuristic which will help me fix it. And if you hadn't said anything about the test set, I might have even made one of my two final submissions alter the bbox size of wheat heads with awns - maybe I could win by blind luck. No one here wants to spend their time doing that as it doesn't add real value.</p>\n\n<p>In any case, without an overwhelming number of upvotes on this topic, I'll leave it at that.</p>",
          "votes": null,
          "replies": []
        }
      ]
    }
  ],
  "raw_markdown_by_id": {
    "845645": "I'd like to suggest to my fellow competitors, and competition organisers, that a slight modification be made to the evaluation metric.\n\nRight now we take the average of the AP evaluated at IoU thresholds: 0.50, 0.55, 0.60, 0.65, 0.70, 0.75\n\nI argue that we should only evaluate AP at the lower few thresholds or even just at 0.50. Here are the reasons:\n\n1. **The proposed metric will be less sensitive to inconsistencies in labelling** - I have noticed that the labelling in the dataset has some inconsistency over whether the awns are included in the bounding boxes or not (see below for image examples).\n\n2. **It is more sensible in the context of the real world problem being solved** - From the competition description: _\"These images are used to estimate the density and size of wheat heads in different varieties”_. I think that perfectly accurate bounding boxes won’t affect the ability to do so. What’s most important is that the wheat heads are more or less localised with high precision and recall. \n\n**If the competition outcome is indeed impacted by the aforementioned labelling inconsistency, it's possible that a final evaluation will not put the \"best\" solutions at the top. Furthermore, it could be more difficult for competitors to zone in on the \"best\" solutions using the competition metric for feedback. This wouldn't do any favours to the hosts either!**\n\nIt should be further noted that the benchmark set up in the [GWHD paper](https://arxiv.org/pdf/2005.02162.pdf) only uses the 0.50 IOU threshold. \n\nPlease upvote if you agree.\n\n## Supporting examples\n\nExample of labelling where awns are included. Notice that my bounding boxes (blue) tend to be smaller than the ground truths (green)\nMy measured AP: `@0.50` = 0.33, `@0.55` = 0.22, `@0.60` = 0.09, `@0.65` = 0.06, `@0.70` = 0.05, `@0.75` = 0.04\n\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F4256010%2F752dc301c06a0616dd8d2fa7fe9073f3%2Fexample-include.png?generation=1589366225178771&amp;alt=media)\n\nExample of labelling where awns are not included. Notice that my bounding boxes (blue) tend to be larger than the ground truths (green).\nMy measured AP: `@0.50` = 0.56, `@0.55` = 0.34, `@0.60` = 0.23, `@0.65` = 0.19, `@0.70` = 0.14, `@0.75` = 0.07\n\n![](https://www.googleapis.com/download/storage/v1/b/kaggle-user-content/o/inbox%2F4256010%2Fe49c41543583ab8b14efcae054a74adb%2Fexample-not-include.png?generation=1589366417661117&amp;alt=media)\n\nFinally, examine the difference between the `@0.50` scores and `@0.75` scores. Of course these are supposed to be different, but we're talking a factor of nearly 10.",
    "845836": "I understand your point that the score decreases abruptly and makes the good score from `@0.5` less important. But the evaluation metric is usually selected carefully by the organizers for specific reasons that matter the most for them.\n\nFor example, maybe in this competition, they care more about the `@0.75` than `@0.5`.",
    "845841": "Also there is a long way toward the end of this competition, and until then, there will probably be good discussions for the higher thresholds.",
    "845864": "Hmm, I think my point here is less about finding a way to get a good score at the higher threshold and more about making the competition more aligned towards the end goal.\n\nDon't get me wrong, I think the organizers are doing a fantastic job, but it's the competitors who are most likely to catch out issues like these - after all that's what we are for! And it won't be the first time a metric has been modified during a Kaggle competition.",
    "884658": "So now you're the second and probably don't want to change metric anymore. :)",
    "884688": "If that were true, it would make me kind of a scumbag wouldn't it",
    "885358": "Sorry, that was just a joke.\nI think good models would be still at the top. But you're right, comparing them can be noisy because of the noise bboxes.",
    "896963": "Thank you so much for your feedback @alexandersoare \n\nWe choose 0.75 to be more discriminative. I acknowledge the fact that this dataset is labeled slightly differently than the rest. In the test set, the bbox are tight to the wheat head (you need to trust me on this one ^^). \n\nCould changing the metric to 0.5 only allow noisy models to win against more accurate ones ?",
    "897068": "I see what you're saying and it makes sense. I wouldn't change it to just 0.5 but I would raise the question of whether to remove 0.75 and 0.70.\n\nBecause of the label noise, if I have enough time on my hands I can figure out some heuristic which will help me fix it. And if you hadn't said anything about the test set, I might have even made one of my two final submissions alter the bbox size of wheat heads with awns - maybe I could win by blind luck. No one here wants to spend their time doing that as it doesn't add real value.\n\nIn any case, without an overwhelming number of upvotes on this topic, I'll leave it at that."
  },
  "source": "meta"
}