• Deep Volumetric Universal Lesion Detection Using Light-Weight Pseudo 3D Convolution and Surface Point Regression(理解)


    原文链接

    扫码关注下方公众号:"Python编程与深度学习",领取配套学习资源,并有不定时深度学习相关文章及代码分享。

    今天分享一篇发表在MICCAI 2020上的论文:Deep Volumetric Universal Lesion Detection Using Light-Weight Pseudo 3D Convolution and Surface Point Regression (原文链接:[1])。

    1 研究背景

    在病人的CT扫描中准确、全面地识别、测量和报告病变,对医生来说是重要但却费时的过程,计算机辅助检测可以提高这一个过程的效率。但是在三维成像中,病变区域的外观、位置和大小分布存在巨大的差异,因此仍然具有很大的挑战。

    这篇文章提出了一种新型的anchor-free单阶段病灶定位网络 (volumetric lesion detector, VLD),可以在更少的模型参数量的前提下达到更好的效果。网络主要由如下几部分组成:
    - 伪3D卷积操作,以利用现成的2D网络架构和其预训练权重
    - 一种新的表面关键点 (surface point)回归方法,通过精确定位到病灶表面具有代表性的关键点,有效地表示病灶的三维空间范围

    2 方法

    如上图(Fig.1)所示,3D的CT扫描图作为网络的输入,通过P3DC骨干网络提取深度特征,这些特征被送入VLD的3D中心点回归网络和SPR表面关键点回归网络分别预测中心点坐标和表面关键点坐标。

    2.1 P3DC骨干网络

    P3DC骨干网络是基于DenseNet-121进行搭建的,但移除了其第四个dense模块。VLD的核心策略是在前半部分特征提取的时候保持2D网络,而仅使用P3DCs模块将DenseNet-121的第三个dense模块转换成3D网络。这个策略与[2]一致,他们发现了在高层次引入3D信息比低层次更加有效。

    2D部分:采用$N$表示卷积核的尺寸,对于前两个dense模块,其卷积核权重$(c_o,c_i,N,N)$被重构成$(c_o,c_i,1,N,N)$,以用来逐层处理3D数据。

    3D部分:第三个dense模块以及输出网络部分均采用3D的卷积网络,文中研究了P3DCs的几种不同构造,如下图(Fig.2)所示:inflated 3D (I3D), spatio-temporal 3D (ST-3D), axaial-coronal-sagittal 3D (ACS-3D)。最后选取了ACS-3D作为基本模块,并把3个分支的通道数比例设置为8:1:1。

    2.2 输出网络

    VLD有两个输出网络,一个用来定位病灶中心点,另一个用来回归表面关键点。首先将不同层次的特征通过一个由三层$(c_o,c_i,1,1,1)$卷积层构成的特征金字塔网络 (FPN)进行特征融合,以使得VLD能够检测不同尺度的病灶。而后将融合特征(对应Fig.1中deep feature)送入中心点回归网络和表面关键点回归网络。

    中心点回归网络: 由一个ACS-3D模块后接一个$(1,c_i,1,1,1)$卷积层组成,使用随机初始化。跟CenterNet类似,输出一个3D heat map $hat{Y}$,来预测病灶中心点,假设目标heat map为$Y$,使用focal loss来训练这一个网络:
    $$mathcal L_{ctr}=frac{-1}{m}sum_{xyz}left{egin{matrix}(1-hat{Y}_{xyz})^{alpha}log(hat{Y}_{xyz}) if Y_{xyz}=1\ (1-Y_{xyz})^{eta}(hat{Y}_{xyz})^{alpha}log(1-hat{Y}_{xyz}) otherwiseend{matrix} ight.$$
    其中$m$是病灶数目,$alpha=2$和$eta=4$是focal-loss中的两个超参数。heat map中除了中心点位置,其余位置的值都<1。

    表面关键点回归网络: 首先基于病灶中心点坐标预测表面关键点集:
    $$mathcal P={(x_k,y_k,z_k)}_{k=1}^n,$$
    其中$n$是关键点数目,实验表明当$n=16$时效果最好。由于$mathcal P$是基于中心点回归的,因此精度不够(长距离回归),还需要进一步修正表面关键点。因此采用具有$3n$输出的$1 imes 1 imes 1$网络,预测修正表面关键点坐标为:
    $$mathcal P_r={(x_k+ riangle x_k,y_k+ riangle y_k, z_k+ riangle z_k)}_{k=1}^n$$
    其中${( riangle x_k, riangle y_k, riangle z_k)}$就是修正网络预测的修正量。为了实际监督$mathcal P$和$mathcal P_r$的回归,通过计算它们的最小和最大坐标,并确保它们能够与bounding box的边界匹配,这部分的损失计算如下:
    $$mathcal L_{pts}=sum_{iin(x,y,z)}left |i_{blr}-min_{1leq kleq n}(i_k) ight |+left | i_{trf} - max_{1leq kleq n}(i_k) ight | + left | i_{blr}-min_{1leq kleq n}(i_k+ riangle i_k) ight | + left | i_{trf} - max_{1leq kleq n} (i_k+ riangle i_k) ight |,$$
    其中$i_{blr}$和$i_{trf}$分别标志bounding box的bottom-left-rear位置和top-right-front位置。但只有上面这个损失的监督会使得网络预测的表面关键点落在bounding box的边缘上,而实际上bounding box的很多边缘并没有病灶,因此需要再加一个triple-loss的约束,使得表面关键点的特征与病灶中心点的特征尽可能近,而与bounding box边缘特征尽可能远:
    $$mathcal L_{tri}=frac{1}{m}sum_{k=1}^nsum_{j=1}^8 maxleft (0, egin{Vmatrix}a^p-a_kend{Vmatrix}_2-egin{Vmatrix}a^p-a^n_jend{Vmatrix}_2+1 ight ),$$
    其中${a_j^n}_{j=1}^8$表示3D bounding box的8个顶点特征向量,$a^p$为表面关键点特征向量。

    综上,总的损失函数表示为:
    $$mathcal L=mathcal L_{ctr}+0.1(mathcal L_{pts}+mathcal L_{tri})$$

    3 实验结果

    这里我只给出论文中的部分实验结果,具体的实验结果分析以及实验和参数的设置请看原文。

    4 参考资料

    [1] https://link.springer.com/chapter/10.1007/978-3-030-59719-1_1
    [2] MULAN: multitask universal lesion analysis network for joint lesion detection, tagging, and segmentation

  • 相关阅读:
    服务器使用ssh秘钥登录并禁止密码登录
    c# @符号后面对双引号(")转义
    unity EditorWindow拖入文件或文件夹
    unity 生成GUID
    unity 将对象始终放在鼠标位置和指定的相机z轴位置
    unity 打开指定路径文件夹
    unity UTF8格式加载和保存xml
    VsCode 手动配置omnisharp、.NET Core Debugger、razor
    Maya 保存场景时UV和UV集丢失
    进程通信机制
  • 原文地址:https://www.cnblogs.com/CZiFan/p/13916490.html
Copyright © 2020-2023  润新知