{
  "id": 221181,
  "title": "Submission for nothing detected or no cells?",
  "url": "/competitions/hpa-single-cell-image-classification/discussion/221181",
  "author_name": "MPWARE",
  "post_date": "2021-02-21T18:21:10.781000",
  "votes": 10,
  "comment_count": 6,
  "views": 0,
  "content": "<p>Hi all,</p>\n<p>I'm just joining,  what should we have in <code>submission.csv</code> in the following cases:</p>\n<ul>\n<li>HPA segmentation detects zero cells (and zero nuclei). I assume we fill in <code>PredictionString</code> with empty string?</li>\n<li>HPA segmentation detects cells but our model detects nothing. I assume then we have to fill in with class 18 (Negative) for all cells.</li>\n</ul>\n<p>Thanks.</p>",
  "messages": [
    {
      "id": 1212930,
      "postDate": "2021-02-21T18:21:10.783Z",
      "content": "<p>Hi all,</p>\n<p>I'm just joining,  what should we have in <code>submission.csv</code> in the following cases:</p>\n<ul>\n<li>HPA segmentation detects zero cells (and zero nuclei). I assume we fill in <code>PredictionString</code> with empty string?</li>\n<li>HPA segmentation detects cells but our model detects nothing. I assume then we have to fill in with class 18 (Negative) for all cells.</li>\n</ul>\n<p>Thanks.</p>",
      "rawMarkdown": "Hi all,\n\nI'm just joining,  what should we have in `submission.csv` in the following cases:\n\n- HPA segmentation detects zero cells (and zero nuclei). I assume we fill in `PredictionString` with empty string?\n- HPA segmentation detects cells but our model detects nothing. I assume then we have to fill in with class 18 (Negative) for all cells.\n\nThanks.",
      "votes": 10
    },
    {
      "id": 1217648,
      "postDate": "2021-02-25T08:10:19.997Z",
      "content": "<p>The next question is about border cells. Is it recommended or not to remove them? It does not seem to affect mAP score.<br>\n<a href=\"https://www.kaggle.com/c/hpa-single-cell-image-classification/discussion/221099\" target=\"_blank\">https://www.kaggle.com/c/hpa-single-cell-image-classification/discussion/221099</a><br>\nWhat about if annotator:</p>\n<ul>\n<li>Discard border cell and we provide prediction in our submission? It does not affect score?</li>\n<li>Keep border cell and we removed it in our submission? It affects score.</li>\n</ul>",
      "rawMarkdown": "The next question is about border cells. Is it recommended or not to remove them? It does not seem to affect mAP score.\nhttps://www.kaggle.com/c/hpa-single-cell-image-classification/discussion/221099\nWhat about if annotator:\n- Discard border cell and we provide prediction in our submission? It does not affect score?\n- Keep border cell and we removed it in our submission? It affects score."
    },
    {
      "id": 1213565,
      "postDate": "2021-02-22T07:50:32Z",
      "content": "<p>I've submitted with these 2 assumptions and I did not get any \"<code>Submission scoring error</code>\". But I'm still wondering if class 18 should be set (or not) on cells with nothing detected by model. It depends how the ground truth is built. What does the annotator/expert do with cells without 0 to 17 labels. Is it 18 by default? If so all HPA segmented cells must have a label.</p>\n<p>There are some info in this thread: <a href=\"https://www.kaggle.com/c/hpa-single-cell-image-classification/discussion/215141\" target=\"_blank\">https://www.kaggle.com/c/hpa-single-cell-image-classification/discussion/215141</a><br>\nbut not on class 18.</p>\n<p><a href=\"https://www.kaggle.com/lnhtrang\" target=\"_blank\">@lnhtrang</a> or <a href=\"https://www.kaggle.com/emmalumpan\" target=\"_blank\">@emmalumpan</a> Could you shed some light on this?</p>\n<p>Thanks a lot.</p>",
      "rawMarkdown": "I've submitted with these 2 assumptions and I did not get any \"`Submission scoring error`\". But I'm still wondering if class 18 should be set (or not) on cells with nothing detected by model. It depends how the ground truth is built. What does the annotator/expert do with cells without 0 to 17 labels. Is it 18 by default? If so all HPA segmented cells must have a label.\n\nThere are some info in this thread: https://www.kaggle.com/c/hpa-single-cell-image-classification/discussion/215141\nbut not on class 18.\n\n@lnhtrang or @emmalumpan Could you shed some light on this?\n\nThanks a lot.",
      "replies": [
        {
          "id": 1214398,
          "postDate": "2021-02-22T20:13:18.267Z",
          "content": "<p>I think label 18 is treated the same way as any other label. If your model   has found a cell  and it predicts with some confidence that the cell doesn't belong to any of the usual labels 0,…17 then it could just  predict label 18 with that confidence score. And it can still predict any of the other labels 0, ..,17 for the same cell with their confidence scores.</p>\n<p>The segmentation models sometimes make mistakes. In that case the human annotator makes a correction. There are also some cells that are at the boundary of the image that have no labels and are not used for scoring.  So it would be  OK not giving any prediction for a cell that the segmentation tool has found. That would be equivalent to just saying  that your model thinks that there is no significant cell there. </p>",
          "rawMarkdown": "I think label 18 is treated the same way as any other label. If your model   has found a cell  and it predicts with some confidence that the cell doesn't belong to any of the usual labels 0,...17 then it could just  predict label 18 with that confidence score. And it can still predict any of the other labels 0, ..,17 for the same cell with their confidence scores.\n\nThe segmentation models sometimes make mistakes. In that case the human annotator makes a correction. There are also some cells that are at the boundary of the image that have no labels and are not used for scoring.  So it would be  OK not giving any prediction for a cell that the segmentation tool has found. That would be equivalent to just saying  that your model thinks that there is no significant cell there. \n\n\n",
          "votes": 3,
          "isDeleted": true
        },
        {
          "id": 1215069,
          "postDate": "2021-02-23T10:17:47.123Z",
          "content": "<p>Thanks, my concern is related to data description:</p>\n<blockquote>\n  <p>As the training labels are a <strong>collective label for all the cells in an image</strong>, it means that each labeled pattern can be seen in the image but <strong>not necessarily that each cell within the image expresses the pattern</strong>. This imprecise labeling is what we refer to as weak.</p>\n</blockquote>\n<p>I understand that if an image is labeled with, for example, class 16 only, then it does not mean that all cells have class 16 pattern. Some cells have no pattern and are not labeled with class 18. So image-level label is not [16, 18] but 16 only.</p>\n<p>Is it the same for ground truth? I understand the border cells could be ignored but the question is for non-border cells.</p>\n<p><a href=\"https://www.kaggle.com/lnhtrang\" target=\"_blank\">@lnhtrang</a> or <a href=\"https://www.kaggle.com/emmalumpan\" target=\"_blank\">@emmalumpan</a> Could you clarify? In other word, shoud we provide a label for each segmented cell? If a model detects class 16 pattern for 5 cells on an image with 8 non-border segmented cells. What should we set for the 3 other cells? Nothing or class 18?</p>\n<p><strong>Update</strong>: It looks the answer is yes, all segmented cells (except border cells or cells with less than half-size) must be labeled in <code>submission.csv</code>.  Cells with no pattern detected must be labeled with class 18 (Negative). A cell labeled with class 18 cannot have additional labels:<br>\n<a href=\"https://www.kaggle.com/c/hpa-single-cell-image-classification/discussion/216924#1187646\" target=\"_blank\">https://www.kaggle.com/c/hpa-single-cell-image-classification/discussion/216924#1187646</a> </p>\n<p>If someone can confirm all the above, I will be happy :-)</p>",
          "rawMarkdown": "Thanks, my concern is related to data description:\n> As the training labels are a **collective label for all the cells in an image**, it means that each labeled pattern can be seen in the image but **not necessarily that each cell within the image expresses the pattern**. This imprecise labeling is what we refer to as weak.\n\nI understand that if an image is labeled with, for example, class 16 only, then it does not mean that all cells have class 16 pattern. Some cells have no pattern and are not labeled with class 18. So image-level label is not [16, 18] but 16 only.\n\nIs it the same for ground truth? I understand the border cells could be ignored but the question is for non-border cells.\n\n @lnhtrang or @emmalumpan Could you clarify? In other word, shoud we provide a label for each segmented cell? If a model detects class 16 pattern for 5 cells on an image with 8 non-border segmented cells. What should we set for the 3 other cells? Nothing or class 18?\n\n**Update**: It looks the answer is yes, all segmented cells (except border cells or cells with less than half-size) must be labeled in `submission.csv`.  Cells with no pattern detected must be labeled with class 18 (Negative). A cell labeled with class 18 cannot have additional labels:\nhttps://www.kaggle.com/c/hpa-single-cell-image-classification/discussion/216924#1187646 \n\nIf someone can confirm all the above, I will be happy :-)",
          "votes": 1
        },
        {
          "id": 1215527,
          "postDate": "2021-02-23T17:40:38.943Z",
          "content": "<p>I've submitted the same predictions twice: one with <code>class 18</code> for cells without detected pattern and another with nothing for such cells. Both worked but the second one was lower. So it confirms that <code>class 18</code> have to be used in that case.</p>",
          "rawMarkdown": "I've submitted the same predictions twice: one with `class 18` for cells without detected pattern and another with nothing for such cells. Both worked but the second one was lower. So it confirms that `class 18` have to be used in that case."
        },
        {
          "id": 1215929,
          "postDate": "2021-02-24T04:00:38.040Z",
          "content": "<p>It would be interesting to see what happens if you submit <code>class 0</code> for these cells (the most frequent class). Would that increase or lower your score? </p>",
          "rawMarkdown": "It would be interesting to see what happens if you submit `class 0` for these cells (the most frequent class). Would that increase or lower your score? ",
          "votes": 2
        }
      ]
    }
  ],
  "comments": [
    {
      "id": 1217648,
      "author_name": "MPWARE",
      "author_url": "",
      "post_date": "2021-02-25T08:10:19.997000",
      "content": "<p>The next question is about border cells. Is it recommended or not to remove them? It does not seem to affect mAP score.<br>\n<a href=\"https://www.kaggle.com/c/hpa-single-cell-image-classification/discussion/221099\" target=\"_blank\">https://www.kaggle.com/c/hpa-single-cell-image-classification/discussion/221099</a><br>\nWhat about if annotator:</p>\n<ul>\n<li>Discard border cell and we provide prediction in our submission? It does not affect score?</li>\n<li>Keep border cell and we removed it in our submission? It affects score.</li>\n</ul>",
      "votes": 0,
      "replies": []
    },
    {
      "id": 1213565,
      "author_name": "MPWARE",
      "author_url": "",
      "post_date": "2021-02-22T07:50:32",
      "content": "<p>I've submitted with these 2 assumptions and I did not get any \"<code>Submission scoring error</code>\". But I'm still wondering if class 18 should be set (or not) on cells with nothing detected by model. It depends how the ground truth is built. What does the annotator/expert do with cells without 0 to 17 labels. Is it 18 by default? If so all HPA segmented cells must have a label.</p>\n<p>There are some info in this thread: <a href=\"https://www.kaggle.com/c/hpa-single-cell-image-classification/discussion/215141\" target=\"_blank\">https://www.kaggle.com/c/hpa-single-cell-image-classification/discussion/215141</a><br>\nbut not on class 18.</p>\n<p><a href=\"https://www.kaggle.com/lnhtrang\" target=\"_blank\">@lnhtrang</a> or <a href=\"https://www.kaggle.com/emmalumpan\" target=\"_blank\">@emmalumpan</a> Could you shed some light on this?</p>\n<p>Thanks a lot.</p>",
      "votes": 0,
      "replies": [
        {
          "id": 1214398,
          "author_name": "",
          "author_url": "",
          "post_date": "2021-02-22T20:13:18.267000",
          "content": "<p>I think label 18 is treated the same way as any other label. If your model   has found a cell  and it predicts with some confidence that the cell doesn't belong to any of the usual labels 0,…17 then it could just  predict label 18 with that confidence score. And it can still predict any of the other labels 0, ..,17 for the same cell with their confidence scores.</p>\n<p>The segmentation models sometimes make mistakes. In that case the human annotator makes a correction. There are also some cells that are at the boundary of the image that have no labels and are not used for scoring.  So it would be  OK not giving any prediction for a cell that the segmentation tool has found. That would be equivalent to just saying  that your model thinks that there is no significant cell there. </p>",
          "votes": 3,
          "replies": []
        },
        {
          "id": 1215069,
          "author_name": "MPWARE",
          "author_url": "",
          "post_date": "2021-02-23T10:17:47.123000",
          "content": "<p>Thanks, my concern is related to data description:</p>\n<blockquote>\n  <p>As the training labels are a <strong>collective label for all the cells in an image</strong>, it means that each labeled pattern can be seen in the image but <strong>not necessarily that each cell within the image expresses the pattern</strong>. This imprecise labeling is what we refer to as weak.</p>\n</blockquote>\n<p>I understand that if an image is labeled with, for example, class 16 only, then it does not mean that all cells have class 16 pattern. Some cells have no pattern and are not labeled with class 18. So image-level label is not [16, 18] but 16 only.</p>\n<p>Is it the same for ground truth? I understand the border cells could be ignored but the question is for non-border cells.</p>\n<p><a href=\"https://www.kaggle.com/lnhtrang\" target=\"_blank\">@lnhtrang</a> or <a href=\"https://www.kaggle.com/emmalumpan\" target=\"_blank\">@emmalumpan</a> Could you clarify? In other word, shoud we provide a label for each segmented cell? If a model detects class 16 pattern for 5 cells on an image with 8 non-border segmented cells. What should we set for the 3 other cells? Nothing or class 18?</p>\n<p><strong>Update</strong>: It looks the answer is yes, all segmented cells (except border cells or cells with less than half-size) must be labeled in <code>submission.csv</code>.  Cells with no pattern detected must be labeled with class 18 (Negative). A cell labeled with class 18 cannot have additional labels:<br>\n<a href=\"https://www.kaggle.com/c/hpa-single-cell-image-classification/discussion/216924#1187646\" target=\"_blank\">https://www.kaggle.com/c/hpa-single-cell-image-classification/discussion/216924#1187646</a> </p>\n<p>If someone can confirm all the above, I will be happy :-)</p>",
          "votes": 1,
          "replies": []
        },
        {
          "id": 1215527,
          "author_name": "MPWARE",
          "author_url": "",
          "post_date": "2021-02-23T17:40:38.943000",
          "content": "<p>I've submitted the same predictions twice: one with <code>class 18</code> for cells without detected pattern and another with nothing for such cells. Both worked but the second one was lower. So it confirms that <code>class 18</code> have to be used in that case.</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 1215929,
          "author_name": "Darek Kłeczek",
          "author_url": "",
          "post_date": "2021-02-24T04:00:38.040000",
          "content": "<p>It would be interesting to see what happens if you submit <code>class 0</code> for these cells (the most frequent class). Would that increase or lower your score? </p>",
          "votes": 2,
          "replies": []
        }
      ]
    }
  ],
  "raw_markdown_by_id": {
    "1212930": "Hi all,\n\nI'm just joining,  what should we have in `submission.csv` in the following cases:\n\n- HPA segmentation detects zero cells (and zero nuclei). I assume we fill in `PredictionString` with empty string?\n- HPA segmentation detects cells but our model detects nothing. I assume then we have to fill in with class 18 (Negative) for all cells.\n\nThanks.",
    "1217648": "The next question is about border cells. Is it recommended or not to remove them? It does not seem to affect mAP score.\nhttps://www.kaggle.com/c/hpa-single-cell-image-classification/discussion/221099\nWhat about if annotator:\n- Discard border cell and we provide prediction in our submission? It does not affect score?\n- Keep border cell and we removed it in our submission? It affects score.",
    "1213565": "I've submitted with these 2 assumptions and I did not get any \"`Submission scoring error`\". But I'm still wondering if class 18 should be set (or not) on cells with nothing detected by model. It depends how the ground truth is built. What does the annotator/expert do with cells without 0 to 17 labels. Is it 18 by default? If so all HPA segmented cells must have a label.\n\nThere are some info in this thread: https://www.kaggle.com/c/hpa-single-cell-image-classification/discussion/215141\nbut not on class 18.\n\n@lnhtrang or @emmalumpan Could you shed some light on this?\n\nThanks a lot."
  }
}