深度学习中如何处理整张幻灯片图像
Posted
技术标签:
【中文标题】深度学习中如何处理整张幻灯片图像【英文标题】:How are Whole Slide Images handled in Deep Learning 【发布时间】:2020-02-29 02:21:28 【问题描述】:我正计划对整个幻灯片图像进行一些分类/分割。由于图像很大,我想知道可以用来处理它们的方法。到目前为止,我遇到了将图像拆分为多个部分、处理这些部分并组合结果的技术。但是,我想更多地了解其他更好的方法,以及它是否是好的方法。任何对现有文献的参考都会有很大帮助。
【问题讨论】:
【参考方案1】:pyvips 具有从幻灯片图像高效生成补丁的功能。
这个基准测试显示了它是如何工作的。它可以从一个 SVS 文件中以 8 个基本方向每秒生成大约 25,000 个 64x64 补丁:
https://github.com/libvips/pyvips/issues/100#issuecomment-493960943
便于训练。我不知道这与人们使用的其他补丁生成系统相比如何。
【讨论】:
【参考方案2】:要阅读这些图像,标准库是“open-slide”[https://openslide.org/api/python/]。通过“打开幻灯片”,您可以阅读补丁或缩略图等内容。
对于过滤等基本图像处理操作,“libvips”及其python绑定“pyvips”使用起来既快捷又方便[https://libvips.github.io/pyvips/vimage.html]。
如果您需要将数据(如随机补丁)传递给机器学习模型,我个人建议使用“PyDmed”。在训练时,例如分类器或生成模型,“PyDmed”的加载速度适合将批量数据馈送到 GPU。
这里是 PyDmed 公共回购的链接: https://github.com/amirakbarnejad/PyDmed
这里是 PyDmed 快速入门的链接: https://amirakbarnejad.github.io/Tutorial/tutorial_section1.html
【讨论】:
【参考方案3】:正如 akbarnejad 所说,我更喜欢使用 openslide。
我通常最终编写定制的数据加载器来输入 pytorch 模型,这些模型使用 openslide 首先使用幻灯片的低分辨率(缩略图)图像的各种阈值进行一些简单的分割,以获取补丁坐标,然后提取相关补丁用于输入训练模型的组织。
有一些很好的例子和工具试图让 pytorch 和 Keras 更简单 -
Pytorch wsi-preprocessing
Keras Deeplearning-digital-pathology
两者 deep-openslide
【讨论】:
以上是关于深度学习中如何处理整张幻灯片图像的主要内容,如果未能解决你的问题,请参考以下文章