医疗影像中DR的骨抑制

1 背景

在DR的拍摄中,根据肺部和脊肋骨两种组织,在不同能量X射线的照射下,衰减的系数不同的特点,可以通过两次不同剂量的曝光后,通过算法,得到一张骨骼的图像和一张肺部图像。

通过一些机构的统计,双能剪影的后的肺部影像对结节,特别是小结节的检出率有不同程度的提高。统计表明,对3mm一下的结节的检出率,在双能剪影的肺部检出率有47%,而一张普通的胸片的检出率仅仅为22%。但是,双能剪影也有明显的缺点,第一是患者受到两次X光照剂量;第二,双能剪影在拍摄的时候,一般需要病人憋气更长时间,导致拍片失败。

这个时候,骨抑制算法,就是替代两次曝光的一个很好的方案;另外,在现在DR行业如此内卷的时期,骨抑制算法也能算作智能DR设备的亮点功能之一。

2. AI骨抑制算法(Bone Suppress)

整个算法大概分为以下3个步骤,可以给大家一点参考

2.1 对图像中的肺部区域进行裁剪

对DICOM的胸片图像,使用Unet网络,来分割肺部区域蒙板。对分割后的肺部蒙板中,区域较小的区域进行去除。得到如下的图像

2.2 对图像的肋骨进行Unet分割

注意这里分割出脊肋的mask,不是阈值后,然后再将mask二值化的图像,而是阈值后,保留mask的0到1的值,做为第三步中的其中一路初始输入图像,如下图所示:

2.3 将2步中标记的mask作为噪声在原图上进行抑制

将原始图像和第二步中的输出,两个通道,作为输入,目标图作为输出;将脊肋骨视为图像中的噪声信息,使用图像去噪的方法来完成肋骨抑制的任务,采用深度卷积网络作为基础模型,分析并尝试多种策略来提升模型性能,最终,使用Unet网络结构,并且,通过跳跃连接以及残差策略增强网络细节表现能力。 为了在计算中减少对图像的细节纹理的损失,模型采用在原图大小直接计算, 但是,考虑到显存压力,使用1024*1024滑动窗口计算,并采用Overlap-tile策略减少计算边缘信息损失。 这些策略有效的保证了输出结果的准确性,精确性。 模型可以在保留肺部纹理细节清晰同时也能有效的抑制骨影。最终得到的结果如下

3 最后算法可以通过onnx进行工程化,供DR Console工作站调用

为了能提供给设备采集软件进行调用,需要将算法修改为动态库的形式,另外,也可以提高效率。以下是头文件定义,可以输入和输出的接口是很容易集成的。

#ifndef _BONE_SUPRESS_API
#define _BONE_SUPRESS_API
#ifndef DLLAPI_FILTER
#define BONE_SUPRESS_DLLAPI extern "C" __declspec(dllimport)
#endif
enum BoneSupressResult
{
    BoneSupressResultOK = 0,
    BoneSupressResultImgErr,
    BoneSupressResultIniErr, 
};
BONE_SUPRESS_DLLAPI bool IntializeInstance(bool beGpu);
BONE_SUPRESS_DLLAPI BoneSupressResult  ChestBoneSupress(unsigned short* imageData, int imgW, int imgH,
    unsigned short* resultData, int resultDataLen);
BONE_SUPRESS_DLLAPI bool ReleaseInstance();

#endif

最后运算一张4000 * 4000 ,2个字节的输入图像后,在1050Ti的显卡上,计算共需13s的时间,3060Ti上,计算花费8s中,实际应用中,可以满足设备的需求。

相关推荐

  1. 深度学习在医学影像分析应用

    2023-12-24 08:14:03       36 阅读
  2. 图像分割在医学影像应用

    2023-12-24 08:14:03       20 阅读
  3. 在Oracle SQL Plus抑制SQL命令输出

    2023-12-24 08:14:03       35 阅读
  4. 计算机视觉NMS非极大值抑制

    2023-12-24 08:14:03       17 阅读
  5. 医疗图像图像语义理解

    2023-12-24 08:14:03       7 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-24 08:14:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-24 08:14:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-24 08:14:03       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-24 08:14:03       20 阅读

热门阅读

  1. Kafka怎么保证消息发送不丢失

    2023-12-24 08:14:03       29 阅读
  2. 【docker笔记】docker常用命令

    2023-12-24 08:14:03       34 阅读
  3. Python知识(3/20):Python运算符全解

    2023-12-24 08:14:03       42 阅读
  4. mobx-react快速入门使用

    2023-12-24 08:14:03       50 阅读
  5. 详解Keras3.0 KerasNLP Models: GPT2 GPT2Tokenizer

    2023-12-24 08:14:03       29 阅读
  6. MySQL8主主搭建

    2023-12-24 08:14:03       29 阅读
  7. SQL进阶:多表查询

    2023-12-24 08:14:03       40 阅读