深度学习提升数字图像临床分析准确性与再现性
GPU加速全载玻片成像(WSI)的输入输出与图像处理教程,使用cuCIM和GPUDirectStorage(GDS)实现平铺数据加载、CUDA处理及回写。三个用例表明,GDS可将并行读取加速11 8倍,写入及处理性能提升约2倍,加速组织病理学工作流,助力临床分析。
GPU加速全载玻片成像(WSI)I/O与图像处理完全指南
全载玻片成像(Whole Slide Imaging,简称WSI)通过专用扫描仪将组织切片完整数字化,正在医疗领域获得广泛应用。WSI助力病理学、免疫组织化学及细胞学领域的临床医生实现以下目标:
- 运用计算手段解析图像信息
- 将深度学习模型应用于数字切片,提升临床诊断的准确性与可重复性
- 从患者数据中挖掘新的洞察
本文详细解读GPU加速工具包如何显著提升输入/输出(I/O)性能与图像处理效率,核心流程包括:将平铺数据直接从磁盘加载至GPU显存、通过CUDA执行图像处理、再将处理后的瓦片写回磁盘。加速组织病理学技术可大幅节省时间,这对疾病的快速识别与及时治疗至关重要。
一、WSI I/O与图像处理的主要挑战
将深度学习融入全切片图像分析,远不止训练和测试模型那么简单。基于深度学习的图像分析需要大量预处理与后处理步骤,例如伪影检测、颜色归一化、图像降采样以及错误预测的剔除。此外,全切片图像的分辨率往往超过100000×100000像素,必须将其分割为一系列子图(即平铺处理)。将大量平铺数据从磁盘读入内存并进行计算,通常极为耗时。
二、加速WSI I/O与图像处理的核心工具
本文用例采用以下GPU加速工具进行基准测试:
2.1 cuCIM
cuCIM(Compute Unified Device Architecture Clara IMage)是一个开源的加速计算机视觉与图像处理库,广泛应用于生物医学、地理空间、材料科学及遥感等领域。该库基于Apache 2.0许可证公开发布,欢迎社区贡献代码。
2.2 Magnum IO GPUDirect Storage (GDS)
Magnum IO GPUDirect Storage提供了存储I/O加速功能,支持GPU显存与存储设备之间的直接存储器访问(DMA)传输,从而绕过CPU的缓冲区反弹。其优势包括:
- 提升带宽、降低延迟、减少CPU与GPU负载
- 降低对CPU处理存储数据传输的依赖,减少性能影响
- 对于完全迁移至GPU的计算管道,充当性能倍增器
- 通过cuFile API支持与传统文件I/O的互操作
GDS可通过kvikIO RAPIDS包在Python中调用。KvikIO提供Python和C++ API,在GDS可用时执行读写操作,若GDS不可用则自动回退到基本POSIX与cudaMemcpy。
三、三个关键的数字病理学应用场景
以下用例使用具有以下特征的图像数据集:数字切片层数为XYZ,最高分辨率层包含2028个大小为(512,512)的RGB瓦片,总数据量为XYZ。
场景1:将WSI瓦片加载至GPU数组
在本场景中,分别测试有无GDS时,将磁盘上WSI图像的每个瓦片加载到一维GPU缓冲区。目标GPU数组预先分配,读取后经重新整形并放置到输出数组的对应位置(如图3所示)。

图3:从主机上的平铺TIFF图像读取至GPU数组
基准测试结果(图4)表明,与tifffile.imread配合cupy.asarray相比:
- 未使用GDS时,单线程加速2.0倍,并行读取加速4.2倍
- 启用GDS后,单线程加速提升至2.7倍,并行读取加速提升至11.8倍

图4:平铺TIFF图像读取性能对比
小提示:如果磁盘I/O是系统瓶颈,强烈建议开启GDS。在并行读取场景下,加速效果尤为显著(可达11.8倍)。
场景2:写入未压缩的Zarr文件
从GPU显存中的CuPy数组(例如场景1的输出)开始,以“块”形式将数据平铺写入独立的Zarr文件(分有无GDS两种情形)。写入数据总量为6084MB,各块形状及对应的文件大小如下:
- (256, 256, 3) → 768 kB
- (512, 512, 3) → 3 MB
- (1024, 1024, 3) → 12 MB
- (2048, 2048, 3) → 48 MB
图5展示了块大小为(2048,2048,3)时的结果。除最小块(256,256,3)外,启用GDS均能带来显著性能提升。

图5:GDS写入Zarr文件的相对性能(8位整数与32位浮点结果)
小提示:选择较大的块大小(例如2048×2048)能更好地发挥GDS的带宽优势。
场景3:平铺图像处理工作流
本场景将加载、处理和保存整合为单一应用程序(图6)。执行步骤:
- 将单个瓦片加载至一维GPU缓冲区
- 将瓦片放置到预分配的GPU数组的对应位置
- 使用基于CUDA的Sobel边缘检测内核进行处理
- 将单个瓦片写入Zarr文件
两种实现方式:
- 多线程全局方法:先按场景1完成所有瓦片读取,对完整数组应用CUDA内核,再按场景2进行瓦片写入。需要较高的GPU显存(完整图像需两份拷贝)。
- 多线程平铺方法:并行异步读取、处理及写入各个瓦片,GPU显存需求大幅降低(图7)。

基准测试结果(图8)显示:与禁用GDS的多线程全局方法相比,多线程平铺方法:
- 未使用GDS时性能损失约15%
- 启用GDS后性能提升约2倍,且略快于使用GDS的全局方法
注意事项:简单的平铺CUDA处理无法处理边界伪影(例如卷积操作需要边缘扩展)。建议先保存至Dask数组,再使用map_blocks执行平铺处理,并可考虑边界处理策略。
四、示例脚本与资源
用于基准测试的脚本可从cuCIM仓库的examples/python/gds_whole_slide文件夹获取。当前使用RAPIDS kvikIO实现GDS加速的读/写操作。这些演示仅供说明,尚未经过生产环境测试。未来cuCIM API将扩展原生支持平铺读写操作。
五、常见问题
Q1:GDS是否必须搭配特定硬件?
需要NVIDIA GPU支持(如V100、A100、H100等)以及支持PCIe P2P的NVMe SSD。具体配置请参考NVIDIA GPUDirect Storage文档。
Q2:cuCIM与OpenSlide有何不同?
OpenSlide主要用于读取WSI文件(CPU端),而cuCIM提供GPU加速的图像处理与I/O,两者可结合使用。cuCIM的读取性能并不依赖GDS,但GDS可进一步加速数据从磁盘到GPU的传输。
Q3:平铺处理工作流中,如何避免边界伪影?
对于涉及卷积的操作,建议在将瓦片传递给CUDA内核前,对每个瓦片进行边缘扩展(padding)。使用Dask的map_blocks时,可指定boundary='reflect'等模式处理边界。
Q4:是否支持其他WSI格式(如SVS、MRXS)?
cuCIM目前支持TIFF、Zarr格式。对于其他格式,可先通过OpenSlide读取为NumPy数组,再复制到GPU。未来cuCIM计划增加更多格式支持。
总结
本文通过三个图像分析用例证明,NVIDIA GPUDirect Storage能显著减少高分辨率WSI图像的I/O时间。结合cuCIM与kvikIO,可实现从磁盘到GPU的快速数据加载、处理与回写。加速组织病理学工作流,有助于临床医生更快地识别和治疗疾病,为精准医疗提供有力支撑。
你是一名 AI 行业编辑,请围绕下面这条热点输出一份资讯解读:
热点:深度学习提升数字图像临床分析准确性与再现性要求:
1. 先用一句话解释这条热点在讲什么
2. 再总结它为什么重要
3. 说明会影响哪些 AI 产品或内容方向
4. 最后给出 3 个适合资讯站使用的标题
游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。
相关热点佑驾创新与乐动机器人达成战略合作,围绕技术、产品、场景、数据四维度展开深度协同,旨在加速物理AI规模化落地,拓展无人车与机器人场景边界,推动具身智能商业化进程。
Meta开放AI算力租赁业务,市场反应从算力过剩转向算力商业运营。GPU从自用转向对外出租,算力从成本中心转为利润中心。AI云竞争核心从拥有GPU数量转向稳定跑满GPU的能力,依赖同步与参考时钟等底层基础设施的长期稳定运行。
针对大型多仓库工程(30+微服务、10+前端微应用),搭建包含规则、技能、子代理、13阶段工作流与门禁脚本的Harness系统,解决PRD不可信、方案与代码脱节、改完无人验证、交付环节琐碎等痛点,使AI在真实业务中稳定跑完需求。
部署MCP Toolbox前,先看清它的适用场景与安全边界,避免在权限管理不完善时接入敏感数据。 核心内容: 1 MCP Toolbox的核心功能与两种使用路线 2 项目适合与不适合的团队场景分析 3 实际验证的安全检查与关键限制 先说结论 MCP Toolbox 很适合小团队研究“让 AI
- 日榜
- 周榜
- 月榜
热点快看
