{
  "id": 51270,
  "title": "Stain deconvolution?",
  "url": "/competitions/data-science-bowl-2018/discussion/51270",
  "author_name": "",
  "post_date": "2018-03-07T07:20:15.849922900Z",
  "votes": 9,
  "comment_count": 13,
  "views": 0,
  "content": "<p>I read that stain deconvolution is a color normlisation process used in histology. Did anyonje has experience with that. will it be useful for this challenege?</p>",
  "messages": [
    {
      "id": "291989",
      "postDate": "03/07/2018 07:20:15",
      "content": "<p>I read that stain deconvolution is a color normlisation process used in histology. Did anyonje has experience with that. will it be useful for this challenege?</p>",
      "rawMarkdown": "I read that stain deconvolution is a color normlisation process used in histology. Did anyonje has experience with that. will it be useful for this challenege?",
      "votes": null
    },
    {
      "id": "292203",
      "postDate": "03/07/2018 16:08:51",
      "content": "<p>You got me interested in that topic.  Are you referring to things like this: <a href=\"http://scikit-image.org/docs/dev/auto_examples/color_exposure/plot_ihc_color_separation.html\">http://scikit-image.org/docs/dev/auto_examples/color_exposure/plot_ihc_color_separation.html</a> ?</p>",
      "rawMarkdown": "You got me interested in that topic.  Are you referring to things like this: http://scikit-image.org/docs/dev/auto_examples/color_exposure/plot_ihc_color_separation.html ?",
      "votes": null
    },
    {
      "id": "292206",
      "postDate": "03/07/2018 16:15:34",
      "content": "<p>I implemented snmf algorithm to normalize color images. There is not much improvement in LB score. I will share the code in a kernel notebook.</p>",
      "rawMarkdown": "I implemented snmf algorithm to normalize color images. There is not much improvement in LB score. I will share the code in a kernel notebook.",
      "votes": null
    },
    {
      "id": "292253",
      "postDate": "03/07/2018 18:11:44",
      "content": "<p>yes, something like that. It can be used to decolorised stain image so that everything will be mapped to grayscale. </p>\n\n<p>another example:\n<a href=\"https://digitalslidearchive.github.io/HistomicsTK/examples.html\">https://digitalslidearchive.github.io/HistomicsTK/examples.html</a></p>",
      "rawMarkdown": "yes, something like that. It can be used to decolorised stain image so that everything will be mapped to grayscale. \n\nanother example:\nhttps://digitalslidearchive.github.io/HistomicsTK/examples.html",
      "votes": null
    },
    {
      "id": "292255",
      "postDate": "03/07/2018 18:16:21",
      "content": "<p>i am thinking of the pipeline:</p>\n\n<ol>\n<li><p>construct color histogram using pixel colors of the input image</p></li>\n<li><p>this color histogram is feed into a network. the network will look for peaks in the color histogram and learn a color transform matrix or transform curve to map to another color space for best nuclei detection.</p></li>\n<li><p>it is like spatial transformer network but we are doing color transformer network.</p></li>\n<li><p>it is trained end to end</p></li>\n</ol>\n\n<p><a href=\"http://imagejdocu.tudor.lu/doku.php?id=plugin:color:colour_deconvolution:optimizing_selection_of_unitary_optical_density_vectors:start\">http://imagejdocu.tudor.lu/doku.php?id=plugin:color:colour_deconvolution:optimizing_selection_of_unitary_optical_density_vectors:start</a></p>",
      "rawMarkdown": "i am thinking of the pipeline:\n\n1. construct color histogram using pixel colors of the input image\n\n2. this color histogram is feed into a network. the network will look for peaks in the color histogram and learn a color transform matrix or transform curve to map to another color space for best nuclei detection.\n\n3. it is like spatial transformer network but we are doing color transformer network.\n\n4. it is trained end to end\n\n\nhttp://imagejdocu.tudor.lu/doku.php?id=plugin:color:colour_deconvolution:optimizing_selection_of_unitary_optical_density_vectors:start",
      "votes": null
    },
    {
      "id": "292257",
      "postDate": "03/07/2018 18:18:47",
      "content": "<p>I tried to do the same. the problem is that we do not know for sure which color is the one we want to work with.</p>",
      "rawMarkdown": "I tried to do the same. the problem is that we do not know for sure which color is the one we want to work with.",
      "votes": null
    },
    {
      "id": "292258",
      "postDate": "03/07/2018 18:22:13",
      "content": "<p>you can randomly augment the train set with different color. The network can learn by itself to find color peaks.</p>",
      "rawMarkdown": "you can randomly augment the train set with different color. The network can learn by itself to find color peaks.",
      "votes": null
    },
    {
      "id": "292261",
      "postDate": "03/07/2018 18:26:57",
      "content": "<p><img src=\"https://www.spiedigitallibrary.org/ContentImages/Proceedings/9420/942004/FigureImages/00003_psisdg9420_942004_page_3_2.jpg\" alt=\"enter image description here\"></p>\n\n<p><img src=\"https://media.springernature.com/lw785/springer-static/image/chp%3A10.1007%2F978-3-319-66179-7_50/MediaObjects/455908_1_En_50_Fig2_HTML.gif\" alt=\"enter image description here\"></p>",
      "rawMarkdown": "![enter image description here][1]\n\n\n  ![enter image description here][2]\n\n\n  [1]: https://www.spiedigitallibrary.org/ContentImages/Proceedings/9420/942004/FigureImages/00003_psisdg9420_942004_page_3_2.jpg\n  [2]: https://media.springernature.com/lw785/springer-static/image/chp%3A10.1007%2F978-3-319-66179-7_50/MediaObjects/455908_1_En_50_Fig2_HTML.gif",
      "votes": null
    },
    {
      "id": "292264",
      "postDate": "03/07/2018 18:29:49",
      "content": "<p><img src=\"https://www.nature.com/article-assets/npg/srep/2017/170424/srep46769/images_hires/m685/srep46769-f4.jpg\" alt=\"enter image description here\"></p>",
      "rawMarkdown": "![enter image description here][1]\n\n\n  [1]: https://www.nature.com/article-assets/npg/srep/2017/170424/srep46769/images_hires/m685/srep46769-f4.jpg",
      "votes": null
    },
    {
      "id": "292268",
      "postDate": "03/07/2018 18:33:04",
      "content": "<p>Here is my implementation if it helps: </p>\n\n<p><a href=\"https://www.kaggle.com/mrtzmilani/snmf-stain-seperation\">https://www.kaggle.com/mrtzmilani/snmf-stain-seperation</a></p>",
      "rawMarkdown": "Here is my implementation if it helps: \n\nhttps://www.kaggle.com/mrtzmilani/snmf-stain-seperation",
      "votes": null
    },
    {
      "id": "292387",
      "postDate": "03/07/2018 21:52:58",
      "content": "<p>I was looking into stain normalization as well, found these resources, maybe they can be helpful</p>\n\n<p><a href=\"https://github.com/Peter554/Stain_Normalization\">https://github.com/Peter554/Stain_Normalization</a>\n<a href=\"https://digitalslidearchive.github.io/HistomicsTK/examples/nuclei-segmentation.html\">https://digitalslidearchive.github.io/HistomicsTK/examples/nuclei-segmentation.html</a></p>",
      "rawMarkdown": "I was looking into stain normalization as well, found these resources, maybe they can be helpful\n\nhttps://github.com/Peter554/Stain_Normalization\nhttps://digitalslidearchive.github.io/HistomicsTK/examples/nuclei-segmentation.html",
      "votes": null
    },
    {
      "id": "292506",
      "postDate": "03/08/2018 03:57:17",
      "content": "<p><a href=\"https://www.slideshare.net/hyunseokmin/applying-deep-learning-to-medical-data\">https://www.slideshare.net/hyunseokmin/applying-deep-learning-to-medical-data</a></p>\n\n<p><img src=\"https://image.slidesharecdn.com/applyingdeeplearningtomedicaldata-170909145609/95/applying-deep-learning-to-medical-data-31-638.jpg?cb=1505057197\" alt=\"enter image description here\"></p>",
      "rawMarkdown": "https://www.slideshare.net/hyunseokmin/applying-deep-learning-to-medical-data\n\n  \n![enter image description here][1]\n\n\n  [1]: https://image.slidesharecdn.com/applyingdeeplearningtomedicaldata-170909145609/95/applying-deep-learning-to-medical-data-31-638.jpg?cb=1505057197",
      "votes": null
    },
    {
      "id": "302444",
      "postDate": "03/24/2018 03:58:27",
      "content": "<p>WOW! GAN based stain color normalisation</p>\n\n<p><a href=\"https://arxiv.org/abs/1710.08543\">https://arxiv.org/abs/1710.08543</a></p>\n\n<p>Neural Stain-Style Transfer Learning using GAN for Histopathological Images\nHyungjoo Cho, Sungbin Lim, Gunho Choi, Hyunseok Min</p>\n\n<p>Performance of data-driven network for tumor classification varies with stain-style of histopathological images. This article proposes the stain-style transfer (SST) model based on conditional generative adversarial networks (GANs) which is to learn not only the certain color distribution but also the corresponding histopathological pattern. Our model considers feature-preserving loss in addition to well-known GAN loss. Consequently our model does not only transfers initial stain-styles to the desired one but also prevent the degradation of tumor classifier on transferred images. The model is examined using the CAMELYON16 dataset.</p>",
      "rawMarkdown": "WOW! GAN based stain color normalisation\n\nhttps://arxiv.org/abs/1710.08543\n\nNeural Stain-Style Transfer Learning using GAN for Histopathological Images\nHyungjoo Cho, Sungbin Lim, Gunho Choi, Hyunseok Min\n \nPerformance of data-driven network for tumor classification varies with stain-style of histopathological images. This article proposes the stain-style transfer (SST) model based on conditional generative adversarial networks (GANs) which is to learn not only the certain color distribution but also the corresponding histopathological pattern. Our model considers feature-preserving loss in addition to well-known GAN loss. Consequently our model does not only transfers initial stain-styles to the desired one but also prevent the degradation of tumor classifier on transferred images. The model is examined using the CAMELYON16 dataset.",
      "votes": null
    },
    {
      "id": "309044",
      "postDate": "04/04/2018 14:58:02",
      "content": "<p>Hi I made a simple notebook explaining what I think is an improved greyscaling technique.\n<a href=\"https://www.kaggle.com/jakubczakon/extracting-he-channels-instead-of-greyscaling\">https://www.kaggle.com/jakubczakon/extracting-he-channels-instead-of-greyscaling</a></p>\n\n<p>It seems to extract a cleaner <em>intensity</em> . What do you guys think?</p>",
      "rawMarkdown": "Hi I made a simple notebook explaining what I think is an improved greyscaling technique.\nhttps://www.kaggle.com/jakubczakon/extracting-he-channels-instead-of-greyscaling\n\nIt seems to extract a cleaner *intensity* . What do you guys think?",
      "votes": null
    }
  ],
  "comments": [
    {
      "id": 292203,
      "author_name": "cpmpml",
      "author_url": "",
      "post_date": "03/07/2018 16:08:51",
      "content": "<p>You got me interested in that topic.  Are you referring to things like this: <a href=\"http://scikit-image.org/docs/dev/auto_examples/color_exposure/plot_ihc_color_separation.html\">http://scikit-image.org/docs/dev/auto_examples/color_exposure/plot_ihc_color_separation.html</a> ?</p>",
      "votes": null,
      "replies": [
        {
          "id": 292253,
          "author_name": "hengck23",
          "author_url": "",
          "post_date": "03/07/2018 18:11:44",
          "content": "<p>yes, something like that. It can be used to decolorised stain image so that everything will be mapped to grayscale. </p>\n\n<p>another example:\n<a href=\"https://digitalslidearchive.github.io/HistomicsTK/examples.html\">https://digitalslidearchive.github.io/HistomicsTK/examples.html</a></p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 292206,
      "author_name": "mrtzmilani",
      "author_url": "",
      "post_date": "03/07/2018 16:15:34",
      "content": "<p>I implemented snmf algorithm to normalize color images. There is not much improvement in LB score. I will share the code in a kernel notebook.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 292255,
      "author_name": "hengck23",
      "author_url": "",
      "post_date": "03/07/2018 18:16:21",
      "content": "<p>i am thinking of the pipeline:</p>\n\n<ol>\n<li><p>construct color histogram using pixel colors of the input image</p></li>\n<li><p>this color histogram is feed into a network. the network will look for peaks in the color histogram and learn a color transform matrix or transform curve to map to another color space for best nuclei detection.</p></li>\n<li><p>it is like spatial transformer network but we are doing color transformer network.</p></li>\n<li><p>it is trained end to end</p></li>\n</ol>\n\n<p><a href=\"http://imagejdocu.tudor.lu/doku.php?id=plugin:color:colour_deconvolution:optimizing_selection_of_unitary_optical_density_vectors:start\">http://imagejdocu.tudor.lu/doku.php?id=plugin:color:colour_deconvolution:optimizing_selection_of_unitary_optical_density_vectors:start</a></p>",
      "votes": null,
      "replies": [
        {
          "id": 292257,
          "author_name": "mrtzmilani",
          "author_url": "",
          "post_date": "03/07/2018 18:18:47",
          "content": "<p>I tried to do the same. the problem is that we do not know for sure which color is the one we want to work with.</p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 292258,
          "author_name": "hengck23",
          "author_url": "",
          "post_date": "03/07/2018 18:22:13",
          "content": "<p>you can randomly augment the train set with different color. The network can learn by itself to find color peaks.</p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 292261,
      "author_name": "hengck23",
      "author_url": "",
      "post_date": "03/07/2018 18:26:57",
      "content": "<p><img src=\"https://www.spiedigitallibrary.org/ContentImages/Proceedings/9420/942004/FigureImages/00003_psisdg9420_942004_page_3_2.jpg\" alt=\"enter image description here\"></p>\n\n<p><img src=\"https://media.springernature.com/lw785/springer-static/image/chp%3A10.1007%2F978-3-319-66179-7_50/MediaObjects/455908_1_En_50_Fig2_HTML.gif\" alt=\"enter image description here\"></p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 292264,
      "author_name": "hengck23",
      "author_url": "",
      "post_date": "03/07/2018 18:29:49",
      "content": "<p><img src=\"https://www.nature.com/article-assets/npg/srep/2017/170424/srep46769/images_hires/m685/srep46769-f4.jpg\" alt=\"enter image description here\"></p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 292268,
      "author_name": "mrtzmilani",
      "author_url": "",
      "post_date": "03/07/2018 18:33:04",
      "content": "<p>Here is my implementation if it helps: </p>\n\n<p><a href=\"https://www.kaggle.com/mrtzmilani/snmf-stain-seperation\">https://www.kaggle.com/mrtzmilani/snmf-stain-seperation</a></p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 292387,
      "author_name": "jamesrequa",
      "author_url": "",
      "post_date": "03/07/2018 21:52:58",
      "content": "<p>I was looking into stain normalization as well, found these resources, maybe they can be helpful</p>\n\n<p><a href=\"https://github.com/Peter554/Stain_Normalization\">https://github.com/Peter554/Stain_Normalization</a>\n<a href=\"https://digitalslidearchive.github.io/HistomicsTK/examples/nuclei-segmentation.html\">https://digitalslidearchive.github.io/HistomicsTK/examples/nuclei-segmentation.html</a></p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 292506,
      "author_name": "hengck23",
      "author_url": "",
      "post_date": "03/08/2018 03:57:17",
      "content": "<p><a href=\"https://www.slideshare.net/hyunseokmin/applying-deep-learning-to-medical-data\">https://www.slideshare.net/hyunseokmin/applying-deep-learning-to-medical-data</a></p>\n\n<p><img src=\"https://image.slidesharecdn.com/applyingdeeplearningtomedicaldata-170909145609/95/applying-deep-learning-to-medical-data-31-638.jpg?cb=1505057197\" alt=\"enter image description here\"></p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 302444,
      "author_name": "hengck23",
      "author_url": "",
      "post_date": "03/24/2018 03:58:27",
      "content": "<p>WOW! GAN based stain color normalisation</p>\n\n<p><a href=\"https://arxiv.org/abs/1710.08543\">https://arxiv.org/abs/1710.08543</a></p>\n\n<p>Neural Stain-Style Transfer Learning using GAN for Histopathological Images\nHyungjoo Cho, Sungbin Lim, Gunho Choi, Hyunseok Min</p>\n\n<p>Performance of data-driven network for tumor classification varies with stain-style of histopathological images. This article proposes the stain-style transfer (SST) model based on conditional generative adversarial networks (GANs) which is to learn not only the certain color distribution but also the corresponding histopathological pattern. Our model considers feature-preserving loss in addition to well-known GAN loss. Consequently our model does not only transfers initial stain-styles to the desired one but also prevent the degradation of tumor classifier on transferred images. The model is examined using the CAMELYON16 dataset.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 309044,
      "author_name": "jakubczakon",
      "author_url": "",
      "post_date": "04/04/2018 14:58:02",
      "content": "<p>Hi I made a simple notebook explaining what I think is an improved greyscaling technique.\n<a href=\"https://www.kaggle.com/jakubczakon/extracting-he-channels-instead-of-greyscaling\">https://www.kaggle.com/jakubczakon/extracting-he-channels-instead-of-greyscaling</a></p>\n\n<p>It seems to extract a cleaner <em>intensity</em> . What do you guys think?</p>",
      "votes": null,
      "replies": []
    }
  ],
  "raw_markdown_by_id": {
    "291989": "I read that stain deconvolution is a color normlisation process used in histology. Did anyonje has experience with that. will it be useful for this challenege?",
    "292203": "You got me interested in that topic.  Are you referring to things like this: http://scikit-image.org/docs/dev/auto_examples/color_exposure/plot_ihc_color_separation.html ?",
    "292206": "I implemented snmf algorithm to normalize color images. There is not much improvement in LB score. I will share the code in a kernel notebook.",
    "292253": "yes, something like that. It can be used to decolorised stain image so that everything will be mapped to grayscale. \n\nanother example:\nhttps://digitalslidearchive.github.io/HistomicsTK/examples.html",
    "292255": "i am thinking of the pipeline:\n\n1. construct color histogram using pixel colors of the input image\n\n2. this color histogram is feed into a network. the network will look for peaks in the color histogram and learn a color transform matrix or transform curve to map to another color space for best nuclei detection.\n\n3. it is like spatial transformer network but we are doing color transformer network.\n\n4. it is trained end to end\n\n\nhttp://imagejdocu.tudor.lu/doku.php?id=plugin:color:colour_deconvolution:optimizing_selection_of_unitary_optical_density_vectors:start",
    "292257": "I tried to do the same. the problem is that we do not know for sure which color is the one we want to work with.",
    "292258": "you can randomly augment the train set with different color. The network can learn by itself to find color peaks.",
    "292261": "![enter image description here][1]\n\n\n  ![enter image description here][2]\n\n\n  [1]: https://www.spiedigitallibrary.org/ContentImages/Proceedings/9420/942004/FigureImages/00003_psisdg9420_942004_page_3_2.jpg\n  [2]: https://media.springernature.com/lw785/springer-static/image/chp%3A10.1007%2F978-3-319-66179-7_50/MediaObjects/455908_1_En_50_Fig2_HTML.gif",
    "292264": "![enter image description here][1]\n\n\n  [1]: https://www.nature.com/article-assets/npg/srep/2017/170424/srep46769/images_hires/m685/srep46769-f4.jpg",
    "292268": "Here is my implementation if it helps: \n\nhttps://www.kaggle.com/mrtzmilani/snmf-stain-seperation",
    "292387": "I was looking into stain normalization as well, found these resources, maybe they can be helpful\n\nhttps://github.com/Peter554/Stain_Normalization\nhttps://digitalslidearchive.github.io/HistomicsTK/examples/nuclei-segmentation.html",
    "292506": "https://www.slideshare.net/hyunseokmin/applying-deep-learning-to-medical-data\n\n  \n![enter image description here][1]\n\n\n  [1]: https://image.slidesharecdn.com/applyingdeeplearningtomedicaldata-170909145609/95/applying-deep-learning-to-medical-data-31-638.jpg?cb=1505057197",
    "302444": "WOW! GAN based stain color normalisation\n\nhttps://arxiv.org/abs/1710.08543\n\nNeural Stain-Style Transfer Learning using GAN for Histopathological Images\nHyungjoo Cho, Sungbin Lim, Gunho Choi, Hyunseok Min\n \nPerformance of data-driven network for tumor classification varies with stain-style of histopathological images. This article proposes the stain-style transfer (SST) model based on conditional generative adversarial networks (GANs) which is to learn not only the certain color distribution but also the corresponding histopathological pattern. Our model considers feature-preserving loss in addition to well-known GAN loss. Consequently our model does not only transfers initial stain-styles to the desired one but also prevent the degradation of tumor classifier on transferred images. The model is examined using the CAMELYON16 dataset.",
    "309044": "Hi I made a simple notebook explaining what I think is an improved greyscaling technique.\nhttps://www.kaggle.com/jakubczakon/extracting-he-channels-instead-of-greyscaling\n\nIt seems to extract a cleaner *intensity* . What do you guys think?"
  },
  "source": "meta"
}