pathology-whole-slide-data:提供高效病理切片数据处理
项目介绍
在数字病理学领域,病理切片图像(Whole Slide Images,WSI)的解析和处理是核心任务之一。pathology-whole-slide-data 是一个开源项目,旨在为研究人员提供一套强大的工具,用于处理来自不同厂商和注释软件的完整切片图像和注释。该项目的主要贡献是一个批处理迭代器(batch iterator),它能够高效、快速且轻松地从数据中采样片段。
项目技术分析
pathology-whole-slide-data 的设计理念集中在效率、速度和易用性上。以下是对其技术构成的简要分析:
- 内部数据结构:项目使用 JSON 格式保存注释,并利用 Shapely 库进行基础几何运算。这种设计比将注释转换为掩膜更为节省内存。
- 动态生成:该包允许动态生成片段和标签,避免了将它们保存到磁盘上的需要。
- 多线程加速:利用 Concurrent Buffer 技术,通过共享内存和多个工作线程快速加载片段,克服了从完整切片图像中逐个提取片段的慢速问题。
项目及技术应用场景
pathology-whole-slide-data 的主要应用场景包括:
- 医学图像处理:病理学家和研究人员可以使用这个工具快速高效地处理和标注大量切片图像。
- 数据预处理:在深度学习模型训练前,使用这个工具进行图像的预处理和标准化操作。
- 模型评估:通过批处理迭代器,研究人员可以方便地生成用于模型评估的测试集。
项目特点
以下是 pathology-whole-slide-data 的几个主要特点:
效率
通过内部使用 JSON 格式和 Shapely 库,pathology-whole-slide-data 在内存使用上非常高效。这允许研究人员处理大量数据而不会耗尽系统资源。
速度
通过并发缓冲技术,pathology-whole-slide-data 大大提升了图像片段的提取速度,这对于需要快速迭代和测试的研究尤为重要。
易用性
项目采用 Dicfg 配置系统,用户可以通过一个简单的配置文件来定制批处理迭代器的行为。这使得项目易于配置和扩展。
安装
安装 pathology-whole-slide-data 非常简单:
pip install git+https://github.com/DIAGNijmegen/pathology-whole-slide-data@main
此外,项目支持多种图像后端,包括 ASAP、openslide、pyvips、tiffslide 和 cucim。用户可以在配置文件中轻松切换不同的图像后端。
使用示例
以下是使用 pathology-whole-slide-data 的基本示例:
from wholeslidedata.image.wholeslideimage import WholeSlideImage
wsi = WholeSlideImage('path_to_image.tif')
patch = wsi.get_patch(x, y, width, height, spacing)
对于注释,项目支持多种软件的注释格式:
from wholeslidedata.annotation.wholeslideannotation import WholeSlideAnnotation
wsa = WholeSlideAnnotation('path_to_annotation.xml')
annotations = wsa.select_annotations(x, y, width, height)
最后,通过批处理迭代器,用户可以方便地生成训练和测试批次:
from wholeslidedata.iterators import create_batch_iterator
with create_batch_iterator(mode='training',
user_config='user_config.yml',
number_of_batches=10,
cpus=4) as training_iterator:
for x_batch, y_batch, batch_info in training_iterator:
pass
总结来说,pathology-whole-slide-data 是一个功能强大的工具,它为病理切片图像的处理提供了一个高效、快速且易用的解决方案。无论您是病理学家还是机器学习工程师,这个项目都值得您的关注和使用。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考