{
  "id": 22666,
  "title": "10th place solution",
  "url": "/competitions/state-farm-distracted-driver-detection/writeups/toshi-k-10th-place-solution",
  "author_name": "",
  "post_date": "2017-03-16T03:23:25.543Z",
  "votes": 23,
  "comment_count": 14,
  "views": 1942,
  "content": "<p>Hi Everyone,</p>\n\n<p>Ending final validation, I share my solution.<br>\nMy approach is very simple. Detect driver's body and Classify with cropped image.<br>\nI don's use semi-supervised learning.</p>\n\n<p>Code: <a href=\"https://github.com/toshi-k/kaggle-distracted-driver-detection\">https://github.com/toshi-k/kaggle-distracted-driver-detection</a></p>\n\n<p><img src=\"https://raw.githubusercontent.com/toshi-k/kaggle-distracted-driver-detection/master/img/solution.png\" alt=\"conceptual diagram\" title=\"\"></p>",
  "messages": [
    {
      "id": "130020",
      "postDate": "08/03/2016 11:24:35",
      "content": "<p>Hi Everyone,</p>\n\n<p>Ending final validation, I share my solution.<br>\nMy approach is very simple. Detect driver's body and Classify with cropped image.<br>\nI don's use semi-supervised learning.</p>\n\n<p>Code: <a href=\"https://github.com/toshi-k/kaggle-distracted-driver-detection\">https://github.com/toshi-k/kaggle-distracted-driver-detection</a></p>\n\n<p><img src=\"https://raw.githubusercontent.com/toshi-k/kaggle-distracted-driver-detection/master/img/solution.png\" alt=\"conceptual diagram\" title=\"\"></p>",
      "rawMarkdown": "Hi Everyone,\n\nEnding final validation, I share my solution.<br>\nMy approach is very simple. Detect driver's body and Classify with cropped image.<br>\nI don's use semi-supervised learning.\n\nCode: https://github.com/toshi-k/kaggle-distracted-driver-detection\n\n![conceptual diagram][1]\n\n[1]: https://raw.githubusercontent.com/toshi-k/kaggle-distracted-driver-detection/master/img/solution.png",
      "votes": null
    },
    {
      "id": "130023",
      "postDate": "08/03/2016 12:25:54",
      "content": "<p>@toshi_k thanks for sharing, could you provide a more verbose explanation about the detector part?</p>",
      "rawMarkdown": "toshi_k thanks for sharing, could you provide a more verbose explanation about the detector part?",
      "votes": null
    },
    {
      "id": "130027",
      "postDate": "08/03/2016 12:40:31",
      "content": "<p>Hi Ed53,</p>\n\n<p>In this competition, hand-labeling to train data is allowed.<br>\nI annotated drivers body in 520 train images. <br>\n<a href=\"https://github.com/toshi-k/kaggle-distracted-driver-detection/tree/master/dataset/train_mask\">https://github.com/toshi-k/kaggle-distracted-driver-detection/tree/master/dataset/train_mask</a></p>\n\n<p>I trained detector model as image segmentation. This is also simple supervised learning.</p>",
      "rawMarkdown": "Hi Ed53,\r\n\r\nIn this competition, hand-labeling to train data is allowed.<br>\r\nI annotated drivers body in 520 train images. <br>\r\nhttps://github.com/toshi-k/kaggle-distracted-driver-detection/tree/master/dataset/train_mask\r\n\r\nI trained detector model as image segmentation. This is also simple supervised learning.",
      "votes": null
    },
    {
      "id": "130029",
      "postDate": "08/03/2016 12:41:32",
      "content": "<p>Congratulations for 10th position and thanks for sharing. \nBut may I ask about more details about the detector ? Did you do any annotations to train it ?</p>",
      "rawMarkdown": "Congratulations for 10th position and thanks for sharing. \r\nBut may I ask about more details about the detector ? Did you do any annotations to train it ?",
      "votes": null
    },
    {
      "id": "130030",
      "postDate": "08/03/2016 12:44:15",
      "content": "<p>Hi HeshamEraqi,</p>\n\n<p>Is your question same with Ed53's one ? I answered his question now. Look here.<br>\n <a href=\"https://www.kaggle.com/c/state-farm-distracted-driver-detection/forums/t/22666/10th-place-solution/130027#post130027\">https://www.kaggle.com/c/state-farm-distracted-driver-detection/forums/t/22666/10th-place-solution/130027#post130027</a></p>",
      "rawMarkdown": "Hi HeshamEraqi,\r\n\r\nIs your question same with Ed53's one ? I answered his question now. Look here.<br>\r\n https://www.kaggle.com/c/state-farm-distracted-driver-detection/forums/t/22666/10th-place-solution/130027#post130027",
      "votes": null
    },
    {
      "id": "130033",
      "postDate": "08/03/2016 12:57:22",
      "content": "<p>Hi thank you for the solution. I Was wondering instead of 2 stage method, if we directly segment into dfferent class, would it be better? It is like making pxel claasifier for 10 actions.</p>",
      "rawMarkdown": "Hi thank you for the solution. I Was wondering instead of 2 stage method, if we directly segment into dfferent class, would it be better? It is like making pxel claasifier for 10 actions.",
      "votes": null
    },
    {
      "id": "130037",
      "postDate": "08/03/2016 13:06:18",
      "content": "<p>Hi Heng CherKeng,</p>\n\n<p>I didn't have such idea. I don't know if your idea works.<br>\nMy approach is inspired by <a href=\"https://www.kaggle.com/c/noaa-right-whale-recognition/details/creating-a-face-detector-for-whales\">Right Whale Recognition</a>.<br>\nIn this competition, everyone used 2 stage (or 3 stage) method.</p>",
      "rawMarkdown": "Hi Heng CherKeng,\r\n\r\nI didn't have such idea. I don't know if your idea works.<br>\r\nMy approach is inspired by [Right Whale Recognition][1].<br>\r\nIn this competition, everyone used 2 stage (or 3 stage) method.\r\n\r\n\r\n  [1]: https://www.kaggle.com/c/noaa-right-whale-recognition/details/creating-a-face-detector-for-whales",
      "votes": null
    },
    {
      "id": "130043",
      "postDate": "08/03/2016 13:41:19",
      "content": "<p>Hi toshi_k,</p>\n\n<p>Congratulations for winning a gold medal!\nI'm not familiar with the DL platform you used. When I looked into your train_mask folder, I found you annotated the exact human body, but in your figure it looks that you were looking for the bounding-box only. So did you do bounding-box regression or exact segmentation in your detector?</p>",
      "rawMarkdown": "Hi toshi_k,\r\n\r\nCongratulations for winning a gold medal!\r\nI'm not familiar with the DL platform you used. When I looked into your train_mask folder, I found you annotated the exact human body, but in your figure it looks that you were looking for the bounding-box only. So did you do bounding-box regression or exact segmentation in your detector?",
      "votes": null
    },
    {
      "id": "130046",
      "postDate": "08/03/2016 13:52:27",
      "content": "<p>Hi Guanshuo Xu,</p>\n\n<p>My detector model is segmentation model. We can get bouding-box from the segmentation result easily.</p>\n\n<p>I tried both approach; <em>(1) cropping by humanbody</em>  and <em>(2) crppping by bouding-box</em>.<br>\nI found that (2) is better experimentally.</p>",
      "rawMarkdown": "Hi Guanshuo Xu,\r\n\r\nMy detector model is segmentation model. We can get bouding-box from the segmentation result easily.\r\n\r\nI tried both approach; *(1) cropping by humanbody*  and *(2) crppping by bouding-box*.<br>\r\nI found that (2) is better experimentally.",
      "votes": null
    },
    {
      "id": "130047",
      "postDate": "08/03/2016 13:59:06",
      "content": "<p>Hi Toshi_k,</p>\n\n<p>Thanks for sharing, especially this method does not use semi-supervised learning.\nIf possible, could you provide some information about your hardware settings and how long it takes for training?</p>",
      "rawMarkdown": "Hi Toshi_k,\r\n\r\nThanks for sharing, especially this method does not use semi-supervised learning.\r\nIf possible, could you provide some information about your hardware settings and how long it takes for training?",
      "votes": null
    },
    {
      "id": "130048",
      "postDate": "08/03/2016 13:59:46",
      "content": "<p>[quote=toshi_k;130046]</p>\n\n<p>Hi Guanshuo Xu,</p>\n\n<p>My detector model is segmentation model. We can get bouding-box from the segmentation result easily.</p>\n\n<p>I tried both approach; <em>(1) cropping by humanbody</em>  and <em>(2) crppping by bouding-box</em>.<br>\nI found that (2) is better experimentally.</p>\n\n<p>[/quote]</p>\n\n<p>Thanks. I feel I have figured out the reason behind. The exact segmentation could miss important part for example cell phones, cups, steer wheels...</p>",
      "rawMarkdown": "[quote=toshi_k;130046]\r\n\r\nHi Guanshuo Xu,\r\n\r\nMy detector model is segmentation model. We can get bouding-box from the segmentation result easily.\r\n\r\nI tried both approach; *(1) cropping by humanbody*  and *(2) crppping by bouding-box*.<br>\r\nI found that (2) is better experimentally.\r\n\r\n\r\n[/quote]\r\n\r\nThanks. I feel I have figured out the reason behind. The exact segmentation could miss important part for example cell phones, cups, steer wheels...",
      "votes": null
    },
    {
      "id": "130053",
      "postDate": "08/03/2016 14:07:12",
      "content": "<p>Hi Wind Bear,</p>\n\n<p>My hardware setting is here.<br></p>\n\n<pre><code>CPU: Intel Core i7-4790K@4.00 GHz\nMemory: 32GB\nGPU: NVIDIA GTX 980 (device memory 4GB)\n</code></pre>\n\n<p>It takes about 1 week to train all models.</p>",
      "rawMarkdown": "Hi Wind Bear,\r\n\r\nMy hardware setting is here.<br>\r\n\r\n    CPU: Intel Core i7-4790K@4.00 GHz\r\n    Memory: 32GB\r\n    GPU: NVIDIA GTX 980 (device memory 4GB)\r\n\r\nIt takes about 1 week to train all models.",
      "votes": null
    },
    {
      "id": "130055",
      "postDate": "08/03/2016 14:15:34",
      "content": "<p>[quote=Guanshuo Xu;130048]</p>\n\n<p>Thanks. I feel I have figured out the reason behind. The exact segmentation could miss important part for example cell phones, cups, steer wheels...</p>\n\n<p>[/quote]</p>\n\n<p>Yes, I thought exact segmentation missed some important things.<br>\nHeng's method may help us to understand this problem.<br>\n<a href=\"https://www.kaggle.com/c/state-farm-distracted-driver-detection/forums/t/21994/heat-map-of-cnn-output\">https://www.kaggle.com/c/state-farm-distracted-driver-detection/forums/t/21994/heat-map-of-cnn-output</a></p>",
      "rawMarkdown": "[quote=Guanshuo Xu;130048]\r\n\r\nThanks. I feel I have figured out the reason behind. The exact segmentation could miss important part for example cell phones, cups, steer wheels...\r\n\r\n[/quote]\r\n\r\nYes, I thought exact segmentation missed some important things.<br>\r\nHeng's method may help us to understand this problem.<br>\r\nhttps://www.kaggle.com/c/state-farm-distracted-driver-detection/forums/t/21994/heat-map-of-cnn-output",
      "votes": null
    },
    {
      "id": "130081",
      "postDate": "08/03/2016 17:28:01",
      "content": "<p>how many models are you used in total for ensembling? I tried similar ideas, but the result is not as good as yours, maybe with that idea, I can only get about around 0.3 in accuracy.</p>",
      "rawMarkdown": "how many models are you used in total for ensembling? I tried similar ideas, but the result is not as good as yours, maybe with that idea, I can only get about around 0.3 in accuracy.",
      "votes": null
    },
    {
      "id": "130104",
      "postDate": "08/03/2016 21:07:37",
      "content": "<p>Hi frankman,</p>\n\n<p>Finally, I use 20 models for ensembling. Look at line 17 in this file.<br>\n<a href=\"https://github.com/toshi-k/kaggle-distracted-driver-detection/blob/master/source/03_averaging.r\">https://github.com/toshi-k/kaggle-distracted-driver-detection/blob/master/source/03_averaging.r</a></p>",
      "rawMarkdown": "Hi frankman,\r\n\r\nFinally, I use 20 models for ensembling. Look at line 17 in this file.<br>\r\nhttps://github.com/toshi-k/kaggle-distracted-driver-detection/blob/master/source/03_averaging.r",
      "votes": null
    }
  ],
  "comments": [
    {
      "id": 130023,
      "author_name": "hauserquaid",
      "author_url": "",
      "post_date": "08/03/2016 12:25:54",
      "content": "<p>@toshi_k thanks for sharing, could you provide a more verbose explanation about the detector part?</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 130027,
      "author_name": "toshik",
      "author_url": "",
      "post_date": "08/03/2016 12:40:31",
      "content": "<p>Hi Ed53,</p>\n\n<p>In this competition, hand-labeling to train data is allowed.<br>\nI annotated drivers body in 520 train images. <br>\n<a href=\"https://github.com/toshi-k/kaggle-distracted-driver-detection/tree/master/dataset/train_mask\">https://github.com/toshi-k/kaggle-distracted-driver-detection/tree/master/dataset/train_mask</a></p>\n\n<p>I trained detector model as image segmentation. This is also simple supervised learning.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 130029,
      "author_name": "heshameraqi",
      "author_url": "",
      "post_date": "08/03/2016 12:41:32",
      "content": "<p>Congratulations for 10th position and thanks for sharing. \nBut may I ask about more details about the detector ? Did you do any annotations to train it ?</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 130030,
      "author_name": "toshik",
      "author_url": "",
      "post_date": "08/03/2016 12:44:15",
      "content": "<p>Hi HeshamEraqi,</p>\n\n<p>Is your question same with Ed53's one ? I answered his question now. Look here.<br>\n <a href=\"https://www.kaggle.com/c/state-farm-distracted-driver-detection/forums/t/22666/10th-place-solution/130027#post130027\">https://www.kaggle.com/c/state-farm-distracted-driver-detection/forums/t/22666/10th-place-solution/130027#post130027</a></p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 130033,
      "author_name": "hengck23",
      "author_url": "",
      "post_date": "08/03/2016 12:57:22",
      "content": "<p>Hi thank you for the solution. I Was wondering instead of 2 stage method, if we directly segment into dfferent class, would it be better? It is like making pxel claasifier for 10 actions.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 130037,
      "author_name": "toshik",
      "author_url": "",
      "post_date": "08/03/2016 13:06:18",
      "content": "<p>Hi Heng CherKeng,</p>\n\n<p>I didn't have such idea. I don't know if your idea works.<br>\nMy approach is inspired by <a href=\"https://www.kaggle.com/c/noaa-right-whale-recognition/details/creating-a-face-detector-for-whales\">Right Whale Recognition</a>.<br>\nIn this competition, everyone used 2 stage (or 3 stage) method.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 130043,
      "author_name": "wowfattie",
      "author_url": "",
      "post_date": "08/03/2016 13:41:19",
      "content": "<p>Hi toshi_k,</p>\n\n<p>Congratulations for winning a gold medal!\nI'm not familiar with the DL platform you used. When I looked into your train_mask folder, I found you annotated the exact human body, but in your figure it looks that you were looking for the bounding-box only. So did you do bounding-box regression or exact segmentation in your detector?</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 130046,
      "author_name": "toshik",
      "author_url": "",
      "post_date": "08/03/2016 13:52:27",
      "content": "<p>Hi Guanshuo Xu,</p>\n\n<p>My detector model is segmentation model. We can get bouding-box from the segmentation result easily.</p>\n\n<p>I tried both approach; <em>(1) cropping by humanbody</em>  and <em>(2) crppping by bouding-box</em>.<br>\nI found that (2) is better experimentally.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 130047,
      "author_name": "yangyang",
      "author_url": "",
      "post_date": "08/03/2016 13:59:06",
      "content": "<p>Hi Toshi_k,</p>\n\n<p>Thanks for sharing, especially this method does not use semi-supervised learning.\nIf possible, could you provide some information about your hardware settings and how long it takes for training?</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 130048,
      "author_name": "wowfattie",
      "author_url": "",
      "post_date": "08/03/2016 13:59:46",
      "content": "<p>[quote=toshi_k;130046]</p>\n\n<p>Hi Guanshuo Xu,</p>\n\n<p>My detector model is segmentation model. We can get bouding-box from the segmentation result easily.</p>\n\n<p>I tried both approach; <em>(1) cropping by humanbody</em>  and <em>(2) crppping by bouding-box</em>.<br>\nI found that (2) is better experimentally.</p>\n\n<p>[/quote]</p>\n\n<p>Thanks. I feel I have figured out the reason behind. The exact segmentation could miss important part for example cell phones, cups, steer wheels...</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 130053,
      "author_name": "toshik",
      "author_url": "",
      "post_date": "08/03/2016 14:07:12",
      "content": "<p>Hi Wind Bear,</p>\n\n<p>My hardware setting is here.<br></p>\n\n<pre><code>CPU: Intel Core i7-4790K@4.00 GHz\nMemory: 32GB\nGPU: NVIDIA GTX 980 (device memory 4GB)\n</code></pre>\n\n<p>It takes about 1 week to train all models.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 130055,
      "author_name": "toshik",
      "author_url": "",
      "post_date": "08/03/2016 14:15:34",
      "content": "<p>[quote=Guanshuo Xu;130048]</p>\n\n<p>Thanks. I feel I have figured out the reason behind. The exact segmentation could miss important part for example cell phones, cups, steer wheels...</p>\n\n<p>[/quote]</p>\n\n<p>Yes, I thought exact segmentation missed some important things.<br>\nHeng's method may help us to understand this problem.<br>\n<a href=\"https://www.kaggle.com/c/state-farm-distracted-driver-detection/forums/t/21994/heat-map-of-cnn-output\">https://www.kaggle.com/c/state-farm-distracted-driver-detection/forums/t/21994/heat-map-of-cnn-output</a></p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 130081,
      "author_name": "frankmanbb",
      "author_url": "",
      "post_date": "08/03/2016 17:28:01",
      "content": "<p>how many models are you used in total for ensembling? I tried similar ideas, but the result is not as good as yours, maybe with that idea, I can only get about around 0.3 in accuracy.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 130104,
      "author_name": "toshik",
      "author_url": "",
      "post_date": "08/03/2016 21:07:37",
      "content": "<p>Hi frankman,</p>\n\n<p>Finally, I use 20 models for ensembling. Look at line 17 in this file.<br>\n<a href=\"https://github.com/toshi-k/kaggle-distracted-driver-detection/blob/master/source/03_averaging.r\">https://github.com/toshi-k/kaggle-distracted-driver-detection/blob/master/source/03_averaging.r</a></p>",
      "votes": null,
      "replies": []
    }
  ],
  "raw_markdown_by_id": {
    "130020": "Hi Everyone,\n\nEnding final validation, I share my solution.<br>\nMy approach is very simple. Detect driver's body and Classify with cropped image.<br>\nI don's use semi-supervised learning.\n\nCode: https://github.com/toshi-k/kaggle-distracted-driver-detection\n\n![conceptual diagram][1]\n\n[1]: https://raw.githubusercontent.com/toshi-k/kaggle-distracted-driver-detection/master/img/solution.png",
    "130023": "toshi_k thanks for sharing, could you provide a more verbose explanation about the detector part?",
    "130027": "Hi Ed53,\r\n\r\nIn this competition, hand-labeling to train data is allowed.<br>\r\nI annotated drivers body in 520 train images. <br>\r\nhttps://github.com/toshi-k/kaggle-distracted-driver-detection/tree/master/dataset/train_mask\r\n\r\nI trained detector model as image segmentation. This is also simple supervised learning.",
    "130029": "Congratulations for 10th position and thanks for sharing. \r\nBut may I ask about more details about the detector ? Did you do any annotations to train it ?",
    "130030": "Hi HeshamEraqi,\r\n\r\nIs your question same with Ed53's one ? I answered his question now. Look here.<br>\r\n https://www.kaggle.com/c/state-farm-distracted-driver-detection/forums/t/22666/10th-place-solution/130027#post130027",
    "130033": "Hi thank you for the solution. I Was wondering instead of 2 stage method, if we directly segment into dfferent class, would it be better? It is like making pxel claasifier for 10 actions.",
    "130037": "Hi Heng CherKeng,\r\n\r\nI didn't have such idea. I don't know if your idea works.<br>\r\nMy approach is inspired by [Right Whale Recognition][1].<br>\r\nIn this competition, everyone used 2 stage (or 3 stage) method.\r\n\r\n\r\n  [1]: https://www.kaggle.com/c/noaa-right-whale-recognition/details/creating-a-face-detector-for-whales",
    "130043": "Hi toshi_k,\r\n\r\nCongratulations for winning a gold medal!\r\nI'm not familiar with the DL platform you used. When I looked into your train_mask folder, I found you annotated the exact human body, but in your figure it looks that you were looking for the bounding-box only. So did you do bounding-box regression or exact segmentation in your detector?",
    "130046": "Hi Guanshuo Xu,\r\n\r\nMy detector model is segmentation model. We can get bouding-box from the segmentation result easily.\r\n\r\nI tried both approach; *(1) cropping by humanbody*  and *(2) crppping by bouding-box*.<br>\r\nI found that (2) is better experimentally.",
    "130047": "Hi Toshi_k,\r\n\r\nThanks for sharing, especially this method does not use semi-supervised learning.\r\nIf possible, could you provide some information about your hardware settings and how long it takes for training?",
    "130048": "[quote=toshi_k;130046]\r\n\r\nHi Guanshuo Xu,\r\n\r\nMy detector model is segmentation model. We can get bouding-box from the segmentation result easily.\r\n\r\nI tried both approach; *(1) cropping by humanbody*  and *(2) crppping by bouding-box*.<br>\r\nI found that (2) is better experimentally.\r\n\r\n\r\n[/quote]\r\n\r\nThanks. I feel I have figured out the reason behind. The exact segmentation could miss important part for example cell phones, cups, steer wheels...",
    "130053": "Hi Wind Bear,\r\n\r\nMy hardware setting is here.<br>\r\n\r\n    CPU: Intel Core i7-4790K@4.00 GHz\r\n    Memory: 32GB\r\n    GPU: NVIDIA GTX 980 (device memory 4GB)\r\n\r\nIt takes about 1 week to train all models.",
    "130055": "[quote=Guanshuo Xu;130048]\r\n\r\nThanks. I feel I have figured out the reason behind. The exact segmentation could miss important part for example cell phones, cups, steer wheels...\r\n\r\n[/quote]\r\n\r\nYes, I thought exact segmentation missed some important things.<br>\r\nHeng's method may help us to understand this problem.<br>\r\nhttps://www.kaggle.com/c/state-farm-distracted-driver-detection/forums/t/21994/heat-map-of-cnn-output",
    "130081": "how many models are you used in total for ensembling? I tried similar ideas, but the result is not as good as yours, maybe with that idea, I can only get about around 0.3 in accuracy.",
    "130104": "Hi frankman,\r\n\r\nFinally, I use 20 models for ensembling. Look at line 17 in this file.<br>\r\nhttps://github.com/toshi-k/kaggle-distracted-driver-detection/blob/master/source/03_averaging.r"
  },
  "source": "meta"
}