{
  "id": 342848,
  "title": "[place holder] style trasnfer to create new train data",
  "url": "/competitions/hubmap-organ-segmentation/discussion/342848",
  "author_name": "",
  "post_date": "2022-08-09T04:36:37.093018300Z",
  "votes": 21,
  "comment_count": 14,
  "views": 0,
  "content": "<p><img src=\"https://i.ibb.co/BczvV19/Selection-059.png\" alt=\"https://i.ibb.co/BczvV19/Selection-059.png\"></p>\n<p>if you have good style transfer model, please put the link here!<br>\ne.g. the above is generated by <br>\n[paper] StyTr^2 : Image Style Transfer with Transformers（CVPR2022）<br>\n<a href=\"https://github.com/diyiiyiii/StyTR-2\" target=\"_blank\">https://github.com/diyiiyiii/StyTR-2</a>  </p>\n<p>i want to create a thread to benchmark style transfer  augmentation results. e.g.</p>\n<table>\n<thead>\n<tr>\n<th>style-transfer method</th>\n<th>local CV</th>\n<th>LB-hubmap</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>xxx</td>\n<td>0.777</td>\n<td>0.5x</td>\n</tr>\n</tbody>\n</table>",
  "messages": [
    {
      "id": "1890811",
      "postDate": "08/09/2022 04:36:37",
      "content": "<p><img src=\"https://i.ibb.co/BczvV19/Selection-059.png\" alt=\"https://i.ibb.co/BczvV19/Selection-059.png\"></p>\n<p>if you have good style transfer model, please put the link here!<br>\ne.g. the above is generated by <br>\n[paper] StyTr^2 : Image Style Transfer with Transformers（CVPR2022）<br>\n<a href=\"https://github.com/diyiiyiii/StyTR-2\" target=\"_blank\">https://github.com/diyiiyiii/StyTR-2</a>  </p>\n<p>i want to create a thread to benchmark style transfer  augmentation results. e.g.</p>\n<table>\n<thead>\n<tr>\n<th>style-transfer method</th>\n<th>local CV</th>\n<th>LB-hubmap</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>xxx</td>\n<td>0.777</td>\n<td>0.5x</td>\n</tr>\n</tbody>\n</table>",
      "rawMarkdown": "![https://i.ibb.co/BczvV19/Selection-059.png](https://i.ibb.co/BczvV19/Selection-059.png)\n\nif you have good style transfer model, please put the link here!\ne.g. the above is generated by \n[paper] StyTr^2 : Image Style Transfer with Transformers（CVPR2022）\nhttps://github.com/diyiiyiii/StyTR-2  \n\ni want to create a thread to benchmark style transfer  augmentation results. e.g.\n| style-transfer method |local CV  |LB-hubmap  |\n| --- | --- |--- |\n| xxx |0.777  |0.5x|",
      "votes": null
    },
    {
      "id": "1890830",
      "postDate": "08/09/2022 04:49:40",
      "content": "<p>Thanks for sharing again. I just started researching adapting stains as well. I think the proper way of doing this is selecting a target image randomly from a pool of target images and augment domain image on the fly. It would probably slow down the training process though. What's your plan?  </p>",
      "rawMarkdown": "Thanks for sharing again. I just started researching adapting stains as well. I think the proper way of doing this is selecting a target image randomly from a pool of target images and augment domain image on the fly. It would probably slow down the training process though. What's your plan?",
      "votes": null
    },
    {
      "id": "1890838",
      "postDate": "08/09/2022 04:57:31",
      "content": "<p>i would do by organ.<br>\ni think i will focus on spleen first and then large-intestine.<br>\nthere will be a lot of probing.</p>\n<hr>\n<p>\" proper way of doing this is selecting a target image \" </p>\n<p>you can make sure your model do well for \"all\" your traget images first. then it is one time training</p>",
      "rawMarkdown": "i would do by organ.\ni think i will focus on spleen first and then large-intestine.\nthere will be a lot of probing.\n\n---\n\" proper way of doing this is selecting a target image \" \n\nyou can make sure your model do well for \"all\" your traget images first. then it is one time training",
      "votes": null
    },
    {
      "id": "1891808",
      "postDate": "08/09/2022 16:54:24",
      "content": "<p>there is some problem for me to upload large images to kaggle dataset. I will solve that later.<br>\nmeanwhile I put some spleen whole slide images at my public google drive as a temporary solution <br>\n<a href=\"https://drive.google.com/drive/folders/102b93H904DjrCQmTEu3ZnuJuS0Qnzllr?usp=sharing\" target=\"_blank\">https://drive.google.com/drive/folders/102b93H904DjrCQmTEu3ZnuJuS0Qnzllr?usp=sharing</a></p>\n<p>License<br>\n[1] GTEX: </p>\n<ul>\n<li>not check</li>\n</ul>\n<p>[2] HPA: </p>\n<ul>\n<li>not check</li>\n</ul>\n<p>[3] histologyslides</p>\n<ul>\n<li><a href=\"https://histology.medicine.umich.edu/full-slide-list\" target=\"_blank\">https://histology.medicine.umich.edu/full-slide-list</a><br>\nCreative Commons Attribution-Noncommercial-Share Alike 3.0 License </li>\n</ul>\n<p>each jpg file has a um=xx stage in naming, which is the pixel size in um. \"est-um\" means estimated.</p>\n<p><img src=\"https://i.ibb.co/GVW7Z34/Selection-091.png\" alt=\"https://i.ibb.co/GVW7Z34/Selection-091.png\"><br>\n(shown above are slides at same common scale)</p>\n<p>not all slides can be use for your solution because of the licenses. <br>\nplease check it yourselves.</p>\n<p>nevertheless, you are good for your internal testing, etc</p>",
      "rawMarkdown": "there is some problem for me to upload large images to kaggle dataset. I will solve that later.\nmeanwhile I put some spleen whole slide images at my public google drive as a temporary solution \nhttps://drive.google.com/drive/folders/102b93H904DjrCQmTEu3ZnuJuS0Qnzllr?usp=sharing\n\nLicense\n[1] GTEX: \n- not check\n\n[2] HPA: \n- not check\n\n[3] histologyslides\n- https://histology.medicine.umich.edu/full-slide-list\nCreative Commons Attribution-Noncommercial-Share Alike 3.0 License \n\n\neach jpg file has a um=xx stage in naming, which is the pixel size in um. \"est-um\" means estimated.\n\n\n![https://i.ibb.co/GVW7Z34/Selection-091.png](https://i.ibb.co/GVW7Z34/Selection-091.png)\n(shown above are slides at same common scale)\n\nnot all slides can be use for your solution because of the licenses. \nplease check it yourselves.\n\nnevertheless, you are good for your internal testing, etc",
      "votes": null
    },
    {
      "id": "1895906",
      "postDate": "08/12/2022 12:32:30",
      "content": "<p>i have updated the goggle drive access<br>\n<img src=\"https://i.ibb.co/rvkZpR9/Selection-076.png\" alt=\"https://i.ibb.co/rvkZpR9/Selection-076.png\"></p>",
      "rawMarkdown": "i have updated the goggle drive access\n![https://i.ibb.co/rvkZpR9/Selection-076.png](https://i.ibb.co/rvkZpR9/Selection-076.png)",
      "votes": null
    },
    {
      "id": "1896398",
      "postDate": "08/12/2022 19:40:27",
      "content": "<p><a href=\"https://www.kaggle.com/hengck23\" target=\"_blank\">@hengck23</a> please let me know if you continue to hit errors while uploading data. </p>",
      "rawMarkdown": "hengck23 please let me know if you continue to hit errors while uploading data.",
      "votes": null
    },
    {
      "id": "1896810",
      "postDate": "08/13/2022 07:02:51",
      "content": "<p>Here are some images that I generated with DALL-E 2. I probably should have queried this in a better way. Adrenal glands aren't generated on those images.</p>\n<p><img src=\"https://i.ibb.co/SQ2QTdv/Screenshot-from-2022-08-13-09-58-57.png\" alt=\"gen\"></p>",
      "rawMarkdown": "Here are some images that I generated with DALL-E 2. I probably should have queried this in a better way. Adrenal glands aren't generated on those images.\n\n![gen](https://i.ibb.co/SQ2QTdv/Screenshot-from-2022-08-13-09-58-57.png)",
      "votes": null
    },
    {
      "id": "1900410",
      "postDate": "08/16/2022 02:21:24",
      "content": "<p>Thanks for your sharing.</p>",
      "rawMarkdown": "Thanks for your sharing.",
      "votes": null
    },
    {
      "id": "1900751",
      "postDate": "08/16/2022 08:24:22",
      "content": "<p>the dataset is now out at kaggle link: <a href=\"https://www.kaggle.com/datasets/hengck23/kaggle-hubmap-hpa-competition-external-v1/settings\" target=\"_blank\">https://www.kaggle.com/datasets/hengck23/kaggle-hubmap-hpa-competition-external-v1/settings</a></p>",
      "rawMarkdown": "the dataset is now out at kaggle link: https://www.kaggle.com/datasets/hengck23/kaggle-hubmap-hpa-competition-external-v1/settings",
      "votes": null
    },
    {
      "id": "1900755",
      "postDate": "08/16/2022 08:25:43",
      "content": "<p><a href=\"https://www.kaggle.com/sohier\" target=\"_blank\">@sohier</a> thanks for the message. it is due to poor wifi connection and connection timeout at my side. I have resolved the issue and made the upload  at kaggle</p>\n<p>Thanks again!</p>",
      "rawMarkdown": "sohier thanks for the message. it is due to poor wifi connection and connection timeout at my side. I have resolved the issue and made the upload  at kaggle\n\nThanks again!",
      "votes": null
    },
    {
      "id": "1903266",
      "postDate": "08/17/2022 08:46:24",
      "content": "<p>how to check domain shift<br>\n<img src=\"https://i.ibb.co/CmwXFmx/Selection-068.png\" alt=\"https://i.ibb.co/CmwXFmx/Selection-068.png\"></p>",
      "rawMarkdown": "how to check domain shift\n![https://i.ibb.co/CmwXFmx/Selection-068.png](https://i.ibb.co/CmwXFmx/Selection-068.png)",
      "votes": null
    },
    {
      "id": "1905422",
      "postDate": "08/19/2022 04:09:14",
      "content": "<p><img src=\"https://i.ibb.co/jrQvFxD/Selection-002.png\" alt=\"https://i.ibb.co/jrQvFxD/Selection-002.png\"></p>\n<p>many kagglers are using stain tools to color color of tissue images for augmentation.<br>\nthey are missing out on the other more important aspect : texture (i.e. morphology)</p>\n<p>the above image is created using Top Hat Transform</p>\n<pre><code>from staintools.stain_extraction.macenko_stain_extractor import MacenkoStainExtractor\nfrom staintools.stain_extraction.vahadane_stain_extractor import VahadaneStainExtractor\nfrom staintools.tissue_masks.luminosity_threshold_tissue_locator import LuminosityThresholdTissueLocator\nfrom staintools.utils.get_concentrations import get_concentrations\n\n\nstain_matrix =  extractor.get_stain_matrix(image)\nsource_concentration = get_concentrations(image, stain_matrix)\ns0 = source_concentration[:,0].reshape(h,w)\ns1 = source_concentration[:,1].reshape(h,w)\n\n# Top Hat Transform\nkernel = cv2.getStructuringElement(cv2.MORPH_ELLIPSE,(15,15))\ntop_hat   = cv2.morphologyEx(s0, cv2.MORPH_TOPHAT, kernel)# Black Hat Transform\nblack_hat = cv2.morphologyEx(s0, cv2.MORPH_BLACKHAT, kernel)\ns0_aug = s0 + top_hat - black_hat\n\n\ns0s1 = np.dstack([s0,s1_aug])\ns0s1_flat = s0s1.reshape(-1,2)\n\naugment_flat = 255 * np.exp(-1 * np.dot(s0s1_flat, stain_matrix))\naugment = augment_flat.reshape((h,w,3))\n</code></pre>",
      "rawMarkdown": "![https://i.ibb.co/jrQvFxD/Selection-002.png](https://i.ibb.co/jrQvFxD/Selection-002.png)\n\nmany kagglers are using stain tools to color color of tissue images for augmentation.\nthey are missing out on the other more important aspect : texture (i.e. morphology)\n\nthe above image is created using Top Hat Transform\n\n```\nfrom staintools.stain_extraction.macenko_stain_extractor import MacenkoStainExtractor\nfrom staintools.stain_extraction.vahadane_stain_extractor import VahadaneStainExtractor\nfrom staintools.tissue_masks.luminosity_threshold_tissue_locator import LuminosityThresholdTissueLocator\nfrom staintools.utils.get_concentrations import get_concentrations\n\n\nstain_matrix =  extractor.get_stain_matrix(image)\nsource_concentration = get_concentrations(image, stain_matrix)\ns0 = source_concentration[:,0].reshape(h,w)\ns1 = source_concentration[:,1].reshape(h,w)\n\n# Top Hat Transform\nkernel = cv2.getStructuringElement(cv2.MORPH_ELLIPSE,(15,15))\ntop_hat   = cv2.morphologyEx(s0, cv2.MORPH_TOPHAT, kernel)# Black Hat Transform\nblack_hat = cv2.morphologyEx(s0, cv2.MORPH_BLACKHAT, kernel)\ns0_aug = s0 + top_hat - black_hat\n\n\ns0s1 = np.dstack([s0,s1_aug])\ns0s1_flat = s0s1.reshape(-1,2)\n\naugment_flat = 255 * np.exp(-1 * np.dot(s0s1_flat, stain_matrix))\naugment = augment_flat.reshape((h,w,3))\n\n```",
      "votes": null
    },
    {
      "id": "1905425",
      "postDate": "08/19/2022 04:12:42",
      "content": "<p>better solution:</p>\n<p>create man many augmented images. (manual generator)<br>\ntrain a discriminator the discriminate augmented images from the target H&amp;E collected images.<br>\n(this can be done online on hidden test or offline).</p>\n<p>then you know which augmentation paramters to use.</p>\n<p>there are also differential color transform, or differential morphology deep network.</p>\n<p>there are also GAN that disentangle color and shape/texture.</p>\n<p>ASK google  for the link :)</p>",
      "rawMarkdown": "better solution:\n\ncreate man many augmented images. (manual generator)\ntrain a discriminator the discriminate augmented images from the target H&E collected images.\n(this can be done online on hidden test or offline).\n\nthen you know which augmentation paramters to use.\n\nthere are also differential color transform, or differential morphology deep network.\n\nthere are also GAN that disentangle color and shape/texture.\n\nASK google  for the link :)",
      "votes": null
    },
    {
      "id": "1908781",
      "postDate": "08/22/2022 02:28:08",
      "content": "<p>[paper] Enhanced Cycle-Consistent Generative Adversarial Network for Color Normalization of H&amp;E Stained Images</p>",
      "rawMarkdown": "[paper] Enhanced Cycle-Consistent Generative Adversarial Network for Color Normalization of H&E Stained Images",
      "votes": null
    },
    {
      "id": "1916451",
      "postDate": "08/27/2022 22:46:01",
      "content": "<h1>s0s1 = np.dstack([s0,s1_aug])</h1>\n<p>s1_aug ?</p>",
      "rawMarkdown": "# s0s1 = np.dstack([s0,s1_aug])\ns1_aug ?",
      "votes": null
    }
  ],
  "comments": [
    {
      "id": 1890830,
      "author_name": "gunesevitan",
      "author_url": "",
      "post_date": "08/09/2022 04:49:40",
      "content": "<p>Thanks for sharing again. I just started researching adapting stains as well. I think the proper way of doing this is selecting a target image randomly from a pool of target images and augment domain image on the fly. It would probably slow down the training process though. What's your plan?  </p>",
      "votes": null,
      "replies": [
        {
          "id": 1890838,
          "author_name": "hengck23",
          "author_url": "",
          "post_date": "08/09/2022 04:57:31",
          "content": "<p>i would do by organ.<br>\ni think i will focus on spleen first and then large-intestine.<br>\nthere will be a lot of probing.</p>\n<hr>\n<p>\" proper way of doing this is selecting a target image \" </p>\n<p>you can make sure your model do well for \"all\" your traget images first. then it is one time training</p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 1891808,
      "author_name": "hengck23",
      "author_url": "",
      "post_date": "08/09/2022 16:54:24",
      "content": "<p>there is some problem for me to upload large images to kaggle dataset. I will solve that later.<br>\nmeanwhile I put some spleen whole slide images at my public google drive as a temporary solution <br>\n<a href=\"https://drive.google.com/drive/folders/102b93H904DjrCQmTEu3ZnuJuS0Qnzllr?usp=sharing\" target=\"_blank\">https://drive.google.com/drive/folders/102b93H904DjrCQmTEu3ZnuJuS0Qnzllr?usp=sharing</a></p>\n<p>License<br>\n[1] GTEX: </p>\n<ul>\n<li>not check</li>\n</ul>\n<p>[2] HPA: </p>\n<ul>\n<li>not check</li>\n</ul>\n<p>[3] histologyslides</p>\n<ul>\n<li><a href=\"https://histology.medicine.umich.edu/full-slide-list\" target=\"_blank\">https://histology.medicine.umich.edu/full-slide-list</a><br>\nCreative Commons Attribution-Noncommercial-Share Alike 3.0 License </li>\n</ul>\n<p>each jpg file has a um=xx stage in naming, which is the pixel size in um. \"est-um\" means estimated.</p>\n<p><img src=\"https://i.ibb.co/GVW7Z34/Selection-091.png\" alt=\"https://i.ibb.co/GVW7Z34/Selection-091.png\"><br>\n(shown above are slides at same common scale)</p>\n<p>not all slides can be use for your solution because of the licenses. <br>\nplease check it yourselves.</p>\n<p>nevertheless, you are good for your internal testing, etc</p>",
      "votes": null,
      "replies": [
        {
          "id": 1895906,
          "author_name": "hengck23",
          "author_url": "",
          "post_date": "08/12/2022 12:32:30",
          "content": "<p>i have updated the goggle drive access<br>\n<img src=\"https://i.ibb.co/rvkZpR9/Selection-076.png\" alt=\"https://i.ibb.co/rvkZpR9/Selection-076.png\"></p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 1896398,
          "author_name": "sohier",
          "author_url": "",
          "post_date": "08/12/2022 19:40:27",
          "content": "<p><a href=\"https://www.kaggle.com/hengck23\" target=\"_blank\">@hengck23</a> please let me know if you continue to hit errors while uploading data. </p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 1900751,
          "author_name": "hengck23",
          "author_url": "",
          "post_date": "08/16/2022 08:24:22",
          "content": "<p>the dataset is now out at kaggle link: <a href=\"https://www.kaggle.com/datasets/hengck23/kaggle-hubmap-hpa-competition-external-v1/settings\" target=\"_blank\">https://www.kaggle.com/datasets/hengck23/kaggle-hubmap-hpa-competition-external-v1/settings</a></p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 1900755,
          "author_name": "hengck23",
          "author_url": "",
          "post_date": "08/16/2022 08:25:43",
          "content": "<p><a href=\"https://www.kaggle.com/sohier\" target=\"_blank\">@sohier</a> thanks for the message. it is due to poor wifi connection and connection timeout at my side. I have resolved the issue and made the upload  at kaggle</p>\n<p>Thanks again!</p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 1896810,
      "author_name": "gunesevitan",
      "author_url": "",
      "post_date": "08/13/2022 07:02:51",
      "content": "<p>Here are some images that I generated with DALL-E 2. I probably should have queried this in a better way. Adrenal glands aren't generated on those images.</p>\n<p><img src=\"https://i.ibb.co/SQ2QTdv/Screenshot-from-2022-08-13-09-58-57.png\" alt=\"gen\"></p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 1900410,
      "author_name": "",
      "author_url": "",
      "post_date": "08/16/2022 02:21:24",
      "content": "<p>Thanks for your sharing.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 1903266,
      "author_name": "hengck23",
      "author_url": "",
      "post_date": "08/17/2022 08:46:24",
      "content": "<p>how to check domain shift<br>\n<img src=\"https://i.ibb.co/CmwXFmx/Selection-068.png\" alt=\"https://i.ibb.co/CmwXFmx/Selection-068.png\"></p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 1905422,
      "author_name": "hengck23",
      "author_url": "",
      "post_date": "08/19/2022 04:09:14",
      "content": "<p><img src=\"https://i.ibb.co/jrQvFxD/Selection-002.png\" alt=\"https://i.ibb.co/jrQvFxD/Selection-002.png\"></p>\n<p>many kagglers are using stain tools to color color of tissue images for augmentation.<br>\nthey are missing out on the other more important aspect : texture (i.e. morphology)</p>\n<p>the above image is created using Top Hat Transform</p>\n<pre><code>from staintools.stain_extraction.macenko_stain_extractor import MacenkoStainExtractor\nfrom staintools.stain_extraction.vahadane_stain_extractor import VahadaneStainExtractor\nfrom staintools.tissue_masks.luminosity_threshold_tissue_locator import LuminosityThresholdTissueLocator\nfrom staintools.utils.get_concentrations import get_concentrations\n\n\nstain_matrix =  extractor.get_stain_matrix(image)\nsource_concentration = get_concentrations(image, stain_matrix)\ns0 = source_concentration[:,0].reshape(h,w)\ns1 = source_concentration[:,1].reshape(h,w)\n\n# Top Hat Transform\nkernel = cv2.getStructuringElement(cv2.MORPH_ELLIPSE,(15,15))\ntop_hat   = cv2.morphologyEx(s0, cv2.MORPH_TOPHAT, kernel)# Black Hat Transform\nblack_hat = cv2.morphologyEx(s0, cv2.MORPH_BLACKHAT, kernel)\ns0_aug = s0 + top_hat - black_hat\n\n\ns0s1 = np.dstack([s0,s1_aug])\ns0s1_flat = s0s1.reshape(-1,2)\n\naugment_flat = 255 * np.exp(-1 * np.dot(s0s1_flat, stain_matrix))\naugment = augment_flat.reshape((h,w,3))\n</code></pre>",
      "votes": null,
      "replies": [
        {
          "id": 1905425,
          "author_name": "hengck23",
          "author_url": "",
          "post_date": "08/19/2022 04:12:42",
          "content": "<p>better solution:</p>\n<p>create man many augmented images. (manual generator)<br>\ntrain a discriminator the discriminate augmented images from the target H&amp;E collected images.<br>\n(this can be done online on hidden test or offline).</p>\n<p>then you know which augmentation paramters to use.</p>\n<p>there are also differential color transform, or differential morphology deep network.</p>\n<p>there are also GAN that disentangle color and shape/texture.</p>\n<p>ASK google  for the link :)</p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 1916451,
          "author_name": "rarun2596",
          "author_url": "",
          "post_date": "08/27/2022 22:46:01",
          "content": "<h1>s0s1 = np.dstack([s0,s1_aug])</h1>\n<p>s1_aug ?</p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 1908781,
      "author_name": "gray98",
      "author_url": "",
      "post_date": "08/22/2022 02:28:08",
      "content": "<p>[paper] Enhanced Cycle-Consistent Generative Adversarial Network for Color Normalization of H&amp;E Stained Images</p>",
      "votes": null,
      "replies": []
    }
  ],
  "raw_markdown_by_id": {
    "1890811": "![https://i.ibb.co/BczvV19/Selection-059.png](https://i.ibb.co/BczvV19/Selection-059.png)\n\nif you have good style transfer model, please put the link here!\ne.g. the above is generated by \n[paper] StyTr^2 : Image Style Transfer with Transformers（CVPR2022）\nhttps://github.com/diyiiyiii/StyTR-2  \n\ni want to create a thread to benchmark style transfer  augmentation results. e.g.\n| style-transfer method |local CV  |LB-hubmap  |\n| --- | --- |--- |\n| xxx |0.777  |0.5x|",
    "1890830": "Thanks for sharing again. I just started researching adapting stains as well. I think the proper way of doing this is selecting a target image randomly from a pool of target images and augment domain image on the fly. It would probably slow down the training process though. What's your plan?",
    "1890838": "i would do by organ.\ni think i will focus on spleen first and then large-intestine.\nthere will be a lot of probing.\n\n---\n\" proper way of doing this is selecting a target image \" \n\nyou can make sure your model do well for \"all\" your traget images first. then it is one time training",
    "1891808": "there is some problem for me to upload large images to kaggle dataset. I will solve that later.\nmeanwhile I put some spleen whole slide images at my public google drive as a temporary solution \nhttps://drive.google.com/drive/folders/102b93H904DjrCQmTEu3ZnuJuS0Qnzllr?usp=sharing\n\nLicense\n[1] GTEX: \n- not check\n\n[2] HPA: \n- not check\n\n[3] histologyslides\n- https://histology.medicine.umich.edu/full-slide-list\nCreative Commons Attribution-Noncommercial-Share Alike 3.0 License \n\n\neach jpg file has a um=xx stage in naming, which is the pixel size in um. \"est-um\" means estimated.\n\n\n![https://i.ibb.co/GVW7Z34/Selection-091.png](https://i.ibb.co/GVW7Z34/Selection-091.png)\n(shown above are slides at same common scale)\n\nnot all slides can be use for your solution because of the licenses. \nplease check it yourselves.\n\nnevertheless, you are good for your internal testing, etc",
    "1895906": "i have updated the goggle drive access\n![https://i.ibb.co/rvkZpR9/Selection-076.png](https://i.ibb.co/rvkZpR9/Selection-076.png)",
    "1896398": "hengck23 please let me know if you continue to hit errors while uploading data.",
    "1896810": "Here are some images that I generated with DALL-E 2. I probably should have queried this in a better way. Adrenal glands aren't generated on those images.\n\n![gen](https://i.ibb.co/SQ2QTdv/Screenshot-from-2022-08-13-09-58-57.png)",
    "1900410": "Thanks for your sharing.",
    "1900751": "the dataset is now out at kaggle link: https://www.kaggle.com/datasets/hengck23/kaggle-hubmap-hpa-competition-external-v1/settings",
    "1900755": "sohier thanks for the message. it is due to poor wifi connection and connection timeout at my side. I have resolved the issue and made the upload  at kaggle\n\nThanks again!",
    "1903266": "how to check domain shift\n![https://i.ibb.co/CmwXFmx/Selection-068.png](https://i.ibb.co/CmwXFmx/Selection-068.png)",
    "1905422": "![https://i.ibb.co/jrQvFxD/Selection-002.png](https://i.ibb.co/jrQvFxD/Selection-002.png)\n\nmany kagglers are using stain tools to color color of tissue images for augmentation.\nthey are missing out on the other more important aspect : texture (i.e. morphology)\n\nthe above image is created using Top Hat Transform\n\n```\nfrom staintools.stain_extraction.macenko_stain_extractor import MacenkoStainExtractor\nfrom staintools.stain_extraction.vahadane_stain_extractor import VahadaneStainExtractor\nfrom staintools.tissue_masks.luminosity_threshold_tissue_locator import LuminosityThresholdTissueLocator\nfrom staintools.utils.get_concentrations import get_concentrations\n\n\nstain_matrix =  extractor.get_stain_matrix(image)\nsource_concentration = get_concentrations(image, stain_matrix)\ns0 = source_concentration[:,0].reshape(h,w)\ns1 = source_concentration[:,1].reshape(h,w)\n\n# Top Hat Transform\nkernel = cv2.getStructuringElement(cv2.MORPH_ELLIPSE,(15,15))\ntop_hat   = cv2.morphologyEx(s0, cv2.MORPH_TOPHAT, kernel)# Black Hat Transform\nblack_hat = cv2.morphologyEx(s0, cv2.MORPH_BLACKHAT, kernel)\ns0_aug = s0 + top_hat - black_hat\n\n\ns0s1 = np.dstack([s0,s1_aug])\ns0s1_flat = s0s1.reshape(-1,2)\n\naugment_flat = 255 * np.exp(-1 * np.dot(s0s1_flat, stain_matrix))\naugment = augment_flat.reshape((h,w,3))\n\n```",
    "1905425": "better solution:\n\ncreate man many augmented images. (manual generator)\ntrain a discriminator the discriminate augmented images from the target H&E collected images.\n(this can be done online on hidden test or offline).\n\nthen you know which augmentation paramters to use.\n\nthere are also differential color transform, or differential morphology deep network.\n\nthere are also GAN that disentangle color and shape/texture.\n\nASK google  for the link :)",
    "1908781": "[paper] Enhanced Cycle-Consistent Generative Adversarial Network for Color Normalization of H&E Stained Images",
    "1916451": "# s0s1 = np.dstack([s0,s1_aug])\ns1_aug ?"
  },
  "source": "meta"
}