{
  "id": 76281,
  "title": "[0.82 IoU] Fluke detection using fastai",
  "url": "/competitions/humpback-whale-identification/discussion/76281",
  "author_name": "Radek Osmulski",
  "post_date": "2018-12-31T14:43:45.178000",
  "votes": 42,
  "comment_count": 13,
  "views": 0,
  "content": "<p>I added <a href=\"https://github.com/radekosmulski/whale/blob/master/fluke_detection.ipynb\">a notebook</a> to my github repository for detecting flukes. </p>\n\n<p>Here are a couple of detections:\n<img src=\"https://pbs.twimg.com/media/Dvvl-ICXcAISMWQ.jpg:large\" alt=\"enter image description here\"></p>\n\n<p>I annotated images using <a href=\"https://github.com/cvhciKIT/sloth\">sloth</a> (more details along with a config file in the NB).</p>\n\n<p>I used 300 images for training and 100 as a validation set. The annotations can be found <a href=\"https://github.com/radekosmulski/whale/blob/master/data/boxes.json\">here</a>.</p>\n\n<p><strong>EDIT:</strong> added new <a href=\"https://github.com/radekosmulski/whale/blob/master/fluke_detection_redux.ipynb\">notebook</a> for this, less code, better IoU (0.85).</p>",
  "messages": [
    {
      "id": 448231,
      "postDate": "2018-12-31T14:43:45.180Z",
      "content": "<p>I added <a href=\"https://github.com/radekosmulski/whale/blob/master/fluke_detection.ipynb\">a notebook</a> to my github repository for detecting flukes. </p>\n\n<p>Here are a couple of detections:\n<img src=\"https://pbs.twimg.com/media/Dvvl-ICXcAISMWQ.jpg:large\" alt=\"enter image description here\"></p>\n\n<p>I annotated images using <a href=\"https://github.com/cvhciKIT/sloth\">sloth</a> (more details along with a config file in the NB).</p>\n\n<p>I used 300 images for training and 100 as a validation set. The annotations can be found <a href=\"https://github.com/radekosmulski/whale/blob/master/data/boxes.json\">here</a>.</p>\n\n<p><strong>EDIT:</strong> added new <a href=\"https://github.com/radekosmulski/whale/blob/master/fluke_detection_redux.ipynb\">notebook</a> for this, less code, better IoU (0.85).</p>",
      "rawMarkdown": "I added [a notebook](https://github.com/radekosmulski/whale/blob/master/fluke_detection.ipynb) to my github repository for detecting flukes. \n\nHere are a couple of detections:\n![enter image description here][1]\n\nI annotated images using [sloth](https://github.com/cvhciKIT/sloth) (more details along with a config file in the NB).\n\nI used 300 images for training and 100 as a validation set. The annotations can be found [here](https://github.com/radekosmulski/whale/blob/master/data/boxes.json).\n\n**EDIT:** added new [notebook](https://github.com/radekosmulski/whale/blob/master/fluke_detection_redux.ipynb) for this, less code, better IoU (0.85).\n\n  [1]: https://pbs.twimg.com/media/Dvvl-ICXcAISMWQ.jpg:large",
      "votes": 42
    },
    {
      "id": 450741,
      "postDate": "2019-01-05T16:12:40.147Z",
      "content": "<p>Thanks for sharing. After rerunning some more epochs, I was able to reach 0.921 IoU</p>",
      "rawMarkdown": "Thanks for sharing. After rerunning some more epochs, I was able to reach 0.921 IoU",
      "votes": 3,
      "replies": [
        {
          "id": 455150,
          "postDate": "2019-01-13T04:27:00.903Z",
          "content": "<p>Wow\nHow to do can reach 0.921</p>",
          "rawMarkdown": "Wow\nHow to do can reach 0.921",
          "votes": 1
        }
      ]
    },
    {
      "id": 448491,
      "postDate": "2019-01-01T10:28:56.157Z",
      "content": "<p>Thanks, Radek! \nI have a silly question, how can fluke detection help in this competition?</p>",
      "rawMarkdown": "Thanks, Radek! \nI have a silly question, how can fluke detection help in this competition?",
      "votes": 1,
      "replies": [
        {
          "id": 448526,
          "postDate": "2019-01-01T12:20:40.887Z",
          "content": "<p>Might be someone will want to incorporate this into their solution. For instance, you could predict the bounding box for each image in the dataset, extract it and then train a classification model on the cutouts. There is good chance that this might perform better than training on uncropped images (effective area of fluke will be bigger).</p>\n\n<p>It might also be that bounding boxes could be useful for some other form of a more complex solution. For instance, predicting bounding boxes was one of the steps in the winning solution to the playground version of this competition.</p>",
          "rawMarkdown": "Might be someone will want to incorporate this into their solution. For instance, you could predict the bounding box for each image in the dataset, extract it and then train a classification model on the cutouts. There is good chance that this might perform better than training on uncropped images (effective area of fluke will be bigger).\n\nIt might also be that bounding boxes could be useful for some other form of a more complex solution. For instance, predicting bounding boxes was one of the steps in the winning solution to the playground version of this competition.",
          "votes": 6
        },
        {
          "id": 448532,
          "postDate": "2019-01-01T12:29:46.577Z",
          "content": "<p>Cool! \nWill try to use it in some way.</p>",
          "rawMarkdown": "Cool! \nWill try to use it in some way.",
          "votes": 1
        }
      ]
    },
    {
      "id": 448409,
      "postDate": "2019-01-01T03:50:11.593Z",
      "content": "<p>Thanks for adding annotations, will give this a try.</p>",
      "rawMarkdown": "Thanks for adding annotations, will give this a try.",
      "votes": 1
    },
    {
      "id": 582487,
      "postDate": "2019-07-23T08:36:18.900Z",
      "content": "<p>Hello. Can you please tell me if i have 3 output channels in an image segmentation network for 3 different classes, should I calculate total intersection divided by total union per page or should I average the IoUs of the indivisual channels? Which one is considered to be standard and mostly followed? Also, what if one channel has zero union? Should it be included? If yes, in what way? Should epsilon be added on numerator and denominator in IoU?</p>",
      "rawMarkdown": "Hello. Can you please tell me if i have 3 output channels in an image segmentation network for 3 different classes, should I calculate total intersection divided by total union per page or should I average the IoUs of the indivisual channels? Which one is considered to be standard and mostly followed? Also, what if one channel has zero union? Should it be included? If yes, in what way? Should epsilon be added on numerator and denominator in IoU?"
    },
    {
      "id": 450951,
      "postDate": "2019-01-06T06:03:09.643Z",
      "content": "<p>thank you！Could I ask a silly question that how to use sloth?</p>",
      "rawMarkdown": "thank you！Could I ask a silly question that how to use sloth?",
      "replies": [
        {
          "id": 455208,
          "postDate": "2019-01-13T08:48:22.003Z",
          "content": "<p>It's the internet :) I think you would be best asking your question and maybe someone will know / have the time to answer. In my experience if a question is asked precisely, I generally can get a good answer. But if you require the reader to go through a bunch of code or read a lot of text, well, mileage can vary.</p>\n\n<p>Best of luck in getting your question answered :)</p>",
          "rawMarkdown": "It's the internet :) I think you would be best asking your question and maybe someone will know / have the time to answer. In my experience if a question is asked precisely, I generally can get a good answer. But if you require the reader to go through a bunch of code or read a lot of text, well, mileage can vary.\n\nBest of luck in getting your question answered :)"
        },
        {
          "id": 455538,
          "postDate": "2019-01-14T06:14:28.510Z",
          "content": "<p>You can find the latest documentation at <a href=\"http://sloth.readthedocs.org\">http://sloth.readthedocs.org</a>.</p>",
          "rawMarkdown": "You can find the latest documentation at http://sloth.readthedocs.org."
        }
      ]
    },
    {
      "id": 456092,
      "postDate": "2019-01-15T05:57:48.813Z",
      "rawMarkdown": "",
      "votes": 1,
      "isDeleted": true,
      "replies": [
        {
          "id": 456128,
          "postDate": "2019-01-15T07:32:40.870Z",
          "content": "<p>Intersection over union, the area the detections and ground truth share divided by combined area.</p>",
          "rawMarkdown": "Intersection over union, the area the detections and ground truth share divided by combined area.",
          "votes": 1
        }
      ]
    },
    {
      "id": 448257,
      "postDate": "2018-12-31T15:47:17.940Z",
      "content": "<p>Thanks for sharing, It helped me.</p>",
      "rawMarkdown": "Thanks for sharing, It helped me.",
      "votes": 1
    }
  ],
  "comments": [
    {
      "id": 450741,
      "author_name": "gurvinder",
      "author_url": "",
      "post_date": "2019-01-05T16:12:40.147000",
      "content": "<p>Thanks for sharing. After rerunning some more epochs, I was able to reach 0.921 IoU</p>",
      "votes": 3,
      "replies": [
        {
          "id": 455150,
          "author_name": "",
          "author_url": "",
          "post_date": "2019-01-13T04:27:00.903000",
          "content": "<p>Wow\nHow to do can reach 0.921</p>",
          "votes": 1,
          "replies": []
        }
      ]
    },
    {
      "id": 448491,
      "author_name": "Nazim Girach",
      "author_url": "",
      "post_date": "2019-01-01T10:28:56.157000",
      "content": "<p>Thanks, Radek! \nI have a silly question, how can fluke detection help in this competition?</p>",
      "votes": 1,
      "replies": [
        {
          "id": 448526,
          "author_name": "Radek Osmulski",
          "author_url": "",
          "post_date": "2019-01-01T12:20:40.887000",
          "content": "<p>Might be someone will want to incorporate this into their solution. For instance, you could predict the bounding box for each image in the dataset, extract it and then train a classification model on the cutouts. There is good chance that this might perform better than training on uncropped images (effective area of fluke will be bigger).</p>\n\n<p>It might also be that bounding boxes could be useful for some other form of a more complex solution. For instance, predicting bounding boxes was one of the steps in the winning solution to the playground version of this competition.</p>",
          "votes": 6,
          "replies": []
        },
        {
          "id": 448532,
          "author_name": "Nazim Girach",
          "author_url": "",
          "post_date": "2019-01-01T12:29:46.577000",
          "content": "<p>Cool! \nWill try to use it in some way.</p>",
          "votes": 1,
          "replies": []
        }
      ]
    },
    {
      "id": 448409,
      "author_name": "Edwin Villanueva",
      "author_url": "",
      "post_date": "2019-01-01T03:50:11.593000",
      "content": "<p>Thanks for adding annotations, will give this a try.</p>",
      "votes": 1,
      "replies": []
    },
    {
      "id": 582487,
      "author_name": "Srishti Srivastava",
      "author_url": "",
      "post_date": "2019-07-23T08:36:18.900000",
      "content": "<p>Hello. Can you please tell me if i have 3 output channels in an image segmentation network for 3 different classes, should I calculate total intersection divided by total union per page or should I average the IoUs of the indivisual channels? Which one is considered to be standard and mostly followed? Also, what if one channel has zero union? Should it be included? If yes, in what way? Should epsilon be added on numerator and denominator in IoU?</p>",
      "votes": 0,
      "replies": []
    },
    {
      "id": 450951,
      "author_name": "liehong_sz",
      "author_url": "",
      "post_date": "2019-01-06T06:03:09.643000",
      "content": "<p>thank you！Could I ask a silly question that how to use sloth?</p>",
      "votes": 0,
      "replies": [
        {
          "id": 455208,
          "author_name": "Radek Osmulski",
          "author_url": "",
          "post_date": "2019-01-13T08:48:22.003000",
          "content": "<p>It's the internet :) I think you would be best asking your question and maybe someone will know / have the time to answer. In my experience if a question is asked precisely, I generally can get a good answer. But if you require the reader to go through a bunch of code or read a lot of text, well, mileage can vary.</p>\n\n<p>Best of luck in getting your question answered :)</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 455538,
          "author_name": "Amil Gentili",
          "author_url": "",
          "post_date": "2019-01-14T06:14:28.510000",
          "content": "<p>You can find the latest documentation at <a href=\"http://sloth.readthedocs.org\">http://sloth.readthedocs.org</a>.</p>",
          "votes": 0,
          "replies": []
        }
      ]
    },
    {
      "id": 456092,
      "author_name": "",
      "author_url": "",
      "post_date": "2019-01-15T05:57:48.813000",
      "content": "",
      "votes": 1,
      "replies": [
        {
          "id": 456128,
          "author_name": "Radek Osmulski",
          "author_url": "",
          "post_date": "2019-01-15T07:32:40.870000",
          "content": "<p>Intersection over union, the area the detections and ground truth share divided by combined area.</p>",
          "votes": 1,
          "replies": []
        }
      ]
    },
    {
      "id": 448257,
      "author_name": "Bharat",
      "author_url": "",
      "post_date": "2018-12-31T15:47:17.940000",
      "content": "<p>Thanks for sharing, It helped me.</p>",
      "votes": 1,
      "replies": []
    }
  ],
  "raw_markdown_by_id": {
    "448231": "I added [a notebook](https://github.com/radekosmulski/whale/blob/master/fluke_detection.ipynb) to my github repository for detecting flukes. \n\nHere are a couple of detections:\n![enter image description here][1]\n\nI annotated images using [sloth](https://github.com/cvhciKIT/sloth) (more details along with a config file in the NB).\n\nI used 300 images for training and 100 as a validation set. The annotations can be found [here](https://github.com/radekosmulski/whale/blob/master/data/boxes.json).\n\n**EDIT:** added new [notebook](https://github.com/radekosmulski/whale/blob/master/fluke_detection_redux.ipynb) for this, less code, better IoU (0.85).\n\n  [1]: https://pbs.twimg.com/media/Dvvl-ICXcAISMWQ.jpg:large",
    "450741": "Thanks for sharing. After rerunning some more epochs, I was able to reach 0.921 IoU",
    "448491": "Thanks, Radek! \nI have a silly question, how can fluke detection help in this competition?",
    "448409": "Thanks for adding annotations, will give this a try.",
    "582487": "Hello. Can you please tell me if i have 3 output channels in an image segmentation network for 3 different classes, should I calculate total intersection divided by total union per page or should I average the IoUs of the indivisual channels? Which one is considered to be standard and mostly followed? Also, what if one channel has zero union? Should it be included? If yes, in what way? Should epsilon be added on numerator and denominator in IoU?",
    "450951": "thank you！Could I ask a silly question that how to use sloth?",
    "456092": "",
    "448257": "Thanks for sharing, It helped me."
  }
}