A KEYPOINT TRANSFORMER TO DISCOVER SPINE STRUCTURE FOR COBB ANGLE ESTIMATION

用于Cobb角估计的发现脊椎结构的关键点变换

摘要

由于X射线图像中椎骨的模糊性和多变性,精确测量Cobb角变得非常困难。目前的研究主要集中在语义分割模型或关键点估计器的直接迁移学习上。我们认为这些方法忽略了局部椎骨形状和整体脊柱结构之间的关系。针对上述问题,我们提出了一种多任务方法来保证语义掩码和关键点的一致性并提出了一个关键点转换器来发现脊椎结构。在AASCE MICCAI 2019挑战赛的前后(AP)X射线图像上的广泛实验表明,与其他最先进的模型相比,我们提出的方法具有优越性。

关键词 关键点变换、多任务学习、高分辨率特征图、柯布角估计

1、介绍

脊柱侧弯是一种脊柱侧弯,多见于儿童晚期和青少年早期,目前评估脊柱侧凸的金标准是从X射线图像手动测量Cobb角。然而,这种方法费时费力,其结果严重依赖于观察者的经验。因此,最近的研究兴趣转向Cobb角的自动估计[1,2,3]。
局部椎骨形状和全局脊柱结构之间的隔离是一个限制因素,因为传统的自动测量方法直接根据椎骨关键点或语义掩码确定脊柱的全局曲率。由于没有任何空间约束的先验知识,所有的脊椎位置都被直接用来表示脊柱。因此,当卷积特征映射没有完全捕捉到侧向曲线的结构时,Cobb角可能不准确。
本文提出了一种端到端训练的多任务方法,用于隐式对齐关键点和语义掩码之间的一致性。该方法利用多任务中分支之间的相互作用,通过反向传递整体损失函数来影响特征提取,从而将关键点和掩码之间的语义一致性监督集成到损失函数中。由于Transformer[4]是一个简单而强大的模型,可以在自然语言处理中捕获标记之间复杂的顺序关系,因此它的构建是为了优化预测的脊椎关键点的中心偏移。然后将训练好的模型应用于AASCE MICCAI 2019挑战赛的前后(AP)X射线图像,其性能不断提高,将成为新的尖端技术。

2、 相关工作

最近的一些方法与我们的任务有关,大致可以分为两类:柯布角度估计和地标检测。

2.1、cobb 角估计

计算Cobb角的表示法包括脊椎曲率[1,5]、椎骨地标[2,3]和椎骨区域[6]。
具体地说,总体结构曲率由操作员辅助方法[1]确定,或者使用CNN[5]从捕获的莫尔Moire 图像中提取。脊椎地标可以直接通过学习边界脊柱特征来定位,或者通过DenseNet从更快的R-CNN给出包围盒来回归。分离完整的脊椎区域后,用残存的UNET分割脊椎区域[6]。

  • 【1】A semiautomatic algorithm for estimating cobb angle
    一种估计Cobb角的半自动算法 (2019)
  • 【5】Cnn-based spine and cobb angle estimator using moire images基于CNN的莫尔图像脊椎和柯布角度估计器(2017)
  • 【2】An automated and accurate spine curve analysis system(2019 access)
  • 【3】Automatic cobb angle detection using vertebra detector and vertebra corners regression基于椎体检测器和椎角回归的Cobb角自动检测(2019 ASSCE)
  • 【6】Cobb angle measurement of spine from x-ray images using convolutional neural network基于卷积神经网络的X射线图像脊柱Cobb角测量(2019)

2.2、地标检测

近年来,人脸和人体上的标志点检测引起了研究者的极大关注,这一领域的检测方法大致可以分为五个分支:

  • 从全局输入到局部区域的检测[7,8]、
  • 直接定位[9]、
  • 辅助输入[10,11,12]
  • 和特征细化[13,14,15,16]。

具体地说,
使用hourglass网络用下采样图像检测地标,并使用类似模型从输入图像中用裁剪的局部区域进行细化[7];
使用完全卷积网络生成低分辨率响应图,并在局部区域上生成高分辨率响应图以输出更准确的地标[8]。
Centernet直接从一个中心关键点热图和两个带有卷积主干的角点热图输出地标[9]。
类别标签是辅助属性,用于指导未标记数据上的地标定位[10];
对被操纵的人脸使用对抗性攻击,并聚集输出地标以进行稳健的地标检测[11],并使用CycleGAN[12]生成样式聚集图像。
针对遮挡或丢失的对象对准特征地图或关键点:使用布局图推理layout-graph reasoning层[13]、低阶学习模块[14]或与扩张的网络级联的完全卷积网络[15]来增强卷积特征地图;
使用图形编码器-解码器网络[16]预测遮挡的关键点,或者使用关键点分布之间的几何一致性来校正遮挡的关键点[17]。

  • 【7】Attentiondriven cropping for very high resolution facial landmark detection用于极高分辨率人脸标志点检测的注意力驱动裁剪 2020
  • 【8】Facial landmark machines: A backbone-branches architecture with progressive representation learning 面部标志性机器:一种具有渐进式表征学习的主干-分支结构
  • 【9】Centernet: Keypoint triplets for object detection中心网:用于目标检测的关键点三元组
  • 【10】Improving landmark localization with semi-supervised learning基于半监督学习的地标定位改进
  • 【11】Robust facial landmark detection via aggregation on geometrically manipulated faces基于几何处理人脸聚集的鲁棒人脸标志点检测
  • 【12】Style aggregated network for facial landmark detection一种用于人脸标志点检测的风格聚合网络
  • 【13】Layout-graph reasoning for fashion landmark detection用于时尚标志检测的布局图推理
    -【14】Robust facial landmark detection via occlusion-adaptive deep networks基于遮挡自适应深度网络的鲁棒人脸标志点检测
  • 【15】Robust facial landmark detection via a fully-convolutional local-global context networ基于全卷积局部-全局上下文网络的鲁棒人脸标志点检测
  • 【16】Occlusionnet: 2d/3d occluded keypoint localization using graph networks遮挡网络:基于图形网络的2D/3D遮挡关键点定位
  • 【17】Monet: Multiview semi-supervised keypoint detection via epipolar divergence MONET:基于核线散度的多视点半监督关键点检测

3、方法

3.1、关键点估计

柯布角由椎骨的关键点决定。与前人的关键点估计策略一致[18],X射线图像中的每个脊椎都由四个关键点(本任务中为17个)组成,每个脊椎包含四个关键点(左上角、右上角、左下角和右下角),因此,用中心点来分离脊椎,然后根据每个中心点的位置,计算出对应的四个关键点。

  • 【18】V ertebra-focused landmark detection for scoliosis assessment

我们的关键点评估框架不仅包含关键点评估分支,还包含语义分段分支,如图2所示。

图2:提出的关键点估计框架:给定一个输入X射线图像。
HRNet-18用于提取卷积图,该卷积图稍后用于预测中心热图、中心偏移图、角偏移图和分段掩码。
中心坐标由中心图中的峰值和中心偏移图中的相应值确定,然后用关键点变换器细化中心偏移,最后用角偏移坐标和细化中心位置计算输出角坐标。

3.1.1 特征提取

为了提取高分辨率特征,HRNet[19]被集成为我们的关键点估计器的主干,因为重复的多分辨率融合可以通过与较低分辨率的特征地图交换信息来获得语义上更强的高分辨率表示,而不是通过串联低分辨率表示(例如,U-Net、沙漏和编解码器)来恢复高分辨率表示。

给定一幅固定尺寸nh×nw的灰度X射线图像,其分辨率首先通过两个步长为2的3×3卷积降低 1/4 以降低运算量,第一级的流继承该分辨率,较低分辨率的流逐渐相加形成新的级,所有的流并行连接,其中下采样和上采样分别是一个步长为2的3×3卷积和双线性上采样,然后是一个1×1卷积。因此,从四个流中提取多分辨率的特征地图。

3.1.2 关键点预测

构造生成中心热图、中心偏移量、角点偏移量和语义掩码的多个分支,以输出特征提取层后的关键点,每个分支是一个两层卷积网络,其中RELU是第一层的激活函数。

3.1.3 中心热图

为了生成地面真实中心点的热图,以输入图像中位于pc=(xc,yc)的一个中心点为例,则特征图中对应的坐标为(Xc/4,Yc/4,并且对于图像(x,y)中的任何其他像素,应用高斯核如下:

其中σc 是取决于椎骨大小的标准偏差。当两个中心点的高斯重叠时,采用元素最大值。

3.1.4 中心点偏移

利用特征地图中中心点的偏移量来补偿下采样带来的定位误差。具体地说,来自HRnet的特征地图的大小是输入图像的四分之一,因此输入图像中的中心pk=(xc,yc)的坐标在上述特征地图中变为([ Xc /4 ],[ Yc /4 ]),因此中心偏移量是( Xc /4 - [ Xc /4 ], Yc /4 - [ Yc /4 ])。
每个脊柱包含椎骨的二维坐标,因此中心偏移图中有 t×2 通道。

3.1.5 角偏移

与中心偏移类似,角的位置通过它们在输入图像中的偏移被恢复。每个椎骨都用四个二维的角坐标来描述,所以角偏移图中有4×2个通道。所有关键点分支的要素都来自分辨率最高的要素地图。

3.1.6 从地图到关键点

收集中心热图中预测值不小于其八连通邻域的所有点,并选择顶峰:{p1,p2,…,pt},pi=(xi,yi),然后在相同大小的中心偏移图中找到中心偏移量:{∆p1,∆p2,…,∆pt},∆pi=(∆xi,∆yi),因此输入图像中的中心位置为{p1+∆p1,p2+∆p2,…,pt+∆pt}并且拐角的位置是通过将中心的位置与其对应的拐角偏移相加来计算的。

3.1.7 椎体分割

为了使卷积特征图更加关注脊椎,将语义分割任务作为辅助分支。为了获得多分辨率的特征表示,所有的特征映射被连接起来,然后进行1×1卷积。

3.2、关键点转换器 Keypoint Transformer

根据我们的观察,即使使用上面的关键点估计策略,有时中心点的偏移仍然会发生。因此,从上到下X射线图像中的椎骨中心点可以看作是一个小物体在不同时间步长上的运动。为了解决这样的序列求精问题,提出了一种关键点转换器来捕捉脊椎独立中心点和代表脊柱结构的不连续曲线中心点之间的全局依赖关系。
给定包含t中心点偏移的序列{p1,p2,…,pt},关键点转换器应输出相同长度的序列{p‘1,p‘2,…,p‘t}。这种模型包括编码器和解码器。

编码器中有n个相同的层,每个层都有一个多头自关注模块,后面跟着一个逐点全连接的前馈网络。
每个模块的输入和输出都添加了残差连接,并经过了层归一化。与图像中像素位置的真实尺寸相同,嵌入层de的输出尺寸为2,直接将图像中中心点的嵌入替换为其像素坐标。
解码器具有与编码器相同的层数,但它有一个额外的多头关注层,该层考虑来自编码器的潜在代码。与每个模块外部的操作一致,其输入和输出添加了剩余连接,并通过层归一化。为了确保当前时间步长的输出嵌入只依赖于过去的时间步长,掩蔽的时间步长比输出嵌入的时间步长早一。与自然语言处理中表征句子开头的EOS不同,直接使用顶椎中心点坐标作为序列的起点。
Transformer中最重要的模块是多头注意,其中多个注意功能并行处理,串联和投影。具体而言,给定dk维度查询Q和键K以及dv维度值V,值V的注意权重由查询Q和键V之间的点积计算,元素方式除以√dk和softmax函数。

第二个模块是逐点全连接的前馈网络。具体地说,在NF维输入的每个位置,应用具有相同权重的前馈网络,并且其仅包含具有作为第一层的激活函数的RELU的两个线性层。
为了利用序列顺序,在编码器和解码器中都增加了固定正弦位置编码作为每一层的输入,因为它似乎比vanilla 变压器中的学习序列更适合生成更长的序列。

3.3 多任务损失

为了在该任务中端到端地训练关键点估计器,定义了总体损失函数以优化所有分支的权重:

其中Lctr,Hm,Lctr,of f,Lcnr,of f和Lvtb分别表示中心热图、精化中心偏移、角点偏移和椎骨分割的损失。Focal losses Lctr,f cl和Lvtb,f cl用于中心热图和椎骨分割的优化,而L1损失Lctr,1和Lcnr,1用于训练偏移图,所有局部损失的详细信息如下所示:

  • qx,y和qx,y(hat)分别是地面实况中心热图和预测热图中像素位置(x,y)的值
  • C∈{0,1}是指示像素属于脊椎或背景的类别索引。

4、实验

用于评估的数据集来自AASCE MICCAI 2019挑战赛的数据集16。具体地说,每个脊椎由17个脊椎组成,定义了4个关键点来描述一个脊椎,因此在一幅输入图像中有17×4个关键点。所有的关键点都是人工标记的,为了避免患者出现在不同的子集中,临床医生已经对数据集进行了划分:481张用于训练的AP X射线图像和128张用于测试的X光图像。根据关键点,按照子挑战赛组织者提供的固定规则计算柯布角度。

4.2、实施细节

与基线Cobb角度估计器[18]一致,数据增强包括裁剪、随机扩展和对比度-亮度失真。RESNET-34采用预先训练好的权重作为基准主干,而HRNet18和我们一样集成。由于数据集很小,因此在训练集上使用了15倍交叉验证。所有模型训练50个周期,以批大小2和ADAM为优化器(初始学习率为1.25×10−4),只保存当前分裂验证数据误差最小的权值用于测试。此外,m、n、nh、nw、nf、K、α,β,γ分别设置为2、3、1024、512、1、30、2、4和2。

5、评估指标

对称平均绝对百分比误差(SMAPE)用于评估Cobb角估计器的性能:

其中ˆa和a分别表示从模型和地面实况预测的Cobb角,NI表示测试集中的图像数量,并且在每幅图像中,评估近侧胸部(PT)、主侧胸段(MT)和胸段(TL)中的三个Cobb角,缩写为SMAPEPT、SMAPEMT和SMAPETL,它们分别被称为SMAPEPT、SMAPEMT和SMAPETL。在每个图像中,近侧胸段(PT)、主胸段(MT)和胸段(TL)中的三个Cobb角被评估,缩写为SMAPEPT、SMAPEMT和SMAPETL。
均方误差(MSE)还用于测量预测关键点与地面真实关键点之间的距离:

测试集由np个关键点,pi是第i个关键点。

6、消融实验

消融研究是针对关键点估计器中的组件进行的,如表1所示。

具体地说,位于前三行的“Multi-view Extrapolation Net”、“Residual U-Net”和“Landmark Detection Network”的结果来自于前人工作的表格。为了保证实验环境的一致性,我们选择了“Landmark Detection Network”作为基准进行再实验,其主干和“Keypoint Estimator”中的主干分别是ResNet34和HRNet-18。当增加多任务时,椎骨分割成为“关键点估计器”中的另一个输出分支;当使用“Transformer”时,集成了一个关键点转换器来细化中心点偏移。

6.1、HRnet的有效性

与ResNet-34相比,HRNet-18显著改善了关键点位置。与“地标检测网”的最小均方误差相比,“关键点估计器”的这一度量从61.90降至56.04,尽管FPS降低了1.82。

6.2、多任务学习的有效性

与简单的任务优化相比,脊椎分割分支降低了关键点估计的性能,但使预测的Cobb角更接近于地面真实的Cobb角。例如,增加“多任务”后,“Keypoint Estimator”的MSE从56.04上升到62.35,但SMAPE从9.97下降到8.78。

6.3、Keypoint Transformer的有效性

KeyPoint Transformer持续提高SMAPE和MSE的性能。具体地说,整合“变压器”进行训练后,“关键点估值器+多任务”获得了最低的SMAPE(8.40)、SMAPET L(18.00)和MSE(55.56),没有“变压器”进行测试,FPS保持稳定。需要注意的是,“Keypoint Estimator”的SMAPE从9.97下降到8.78,但MSE却增加到62.35,这表明定位单个椎体中心点可能在一定程度上与获取全局脊柱结构相冲突。

7、总结

在本文中,我们提出了一种学习语义掩码和关键点一致性的混合方法和一个关键点转换器来发现脊椎结构。与单任务关键点估计器相比,我们的方法包含一个语义分割分支,用于在图像级别通过辅助语义掩码约束关键点偏移,以及一个关键点转换器,用于捕获中心点级别的脊椎结构。对AASCE MICCAI 2019挑战赛X射线图像的广泛评估表明,我们的方法比其他最先进的Cobb角度估计器性能更好。

图3:定性关键点估计结果遵循与图1相同的注释规则:使用我们的方法可以显著减少关键点偏移量,而使用Landmark Detection Network无法避免这些偏移量。具体地说,我们的方法和基线的关键点位置都接近子图(A)和子图©中的地面真实标签。然而,基线变得不稳定,特别是在预测脊柱底部视觉模糊的脊椎关键点时,如图©和图(D)所示。在某些情况下(如子图(E)),关键点与基线之间会发生较大的垂直偏移,即使它们对估计的Cobb角度有轻微影响。

图1:测试X射线图像上的关键点预测:红色、蓝色和绿色的圆圈分别表示基线、我们的方法和GT标签中的关键点。为了直观地显示估计的关键点与地面真相的偏差有多大,所有这些关键点都使用自己的颜色连接到相应的地面真相圆。如黄色区域所示,使用我们的方法可以减少戏剧性的关键点偏移。

论文阅读:A KEYPOINT TRANSFORMER TO DISCOVER SPINE STRUCTURE FOR COBB ANGLE ESTIMATION相关推荐

  1. [论文阅读:姿态识别Transformer] TransPose: Keypoint Localization via Transformer 2021 ICCV

    [论文阅读:姿态识别&Transformer] TransPose: Keypoint Localization via Transformer 2021 ICCV 文章目录 [论文阅读:姿态 ...

  2. [论文阅读:姿态识别Transformer] Attend to Who You Are: Supervising Self-Attention for Keypoint Detection...

    [论文阅读:姿态识别&Transformer] Attend to Who You Are: Supervising Self-Attention for Keypoint Detection ...

  3. [论文阅读:姿态识别Transformer] POET: End-to-End Trainable Multi-Instance Pose Estimation with Transformers

    [论文阅读:姿态识别&Transformer] 2103 POET: End-to-End Trainable Multi-Instance Pose Estimation with Tran ...

  4. 《论文阅读》Knowledge-Enriched Transformer for Emotion Detection in Textual Conversations

    <论文阅读>Knowledge-Enriched Transformer for Emotion Detection in Textual Conversations 简介 论文试图解决什 ...

  5. 【论文阅读】Decision Transformer: Reinforcement Learning via Sequence Modeling

    [论文阅读]Decision Transformer: Reinforcement Learning via Sequence Modeling 1 本文解决了什么问题? 本文将强化学习抽象为一个序列 ...

  6. [论文阅读:姿态识别Transformer] TFPose: Direct Human Pose Estimation with Transformers

    [论文阅读:姿态识别&Transformer] TFPose: Direct Human Pose Estimation with Transformers 文章目录 [论文阅读:姿态识别&a ...

  7. 【论文阅读】Swin Transformer Embedding UNet用于遥感图像语义分割

    [论文阅读]Swin Transformer Embedding UNet用于遥感图像语义分割 文章目录 [论文阅读]Swin Transformer Embedding UNet用于遥感图像语义分割 ...

  8. 毫米波目标检测论文 阅读笔记 | Radar Transformer: An Object Classification Network Based on 4D MMW Imaging Radar

    毫米波目标检测论文 | Radar Transformer: An Object Classification Network Based on 4D MMW Imaging Radar Jie Ba ...

  9. 论文阅读 - Video Swin Transformer

    文章目录 1 概述 2 模型介绍 2.1 整体架构 2.1.1 backbone 2.1.2 head 2.2 模块详述 2.2.1 Patch Partition 2.2.2 3D Patch Me ...

最新文章

  1. 吉大c语言程序设计作业一,吉林大学历年C语言程序设计试题及答案.doc
  2. Webpack4 学习笔记 - 01:webpack的安装和简单配置
  3. Wiener Filter维纳滤波器halcon算子,持续更新
  4. Linux中执行shell脚本的5种方法总结
  5. 英特尔开源计算机视觉数据标签工具CVAT,加速数据注释
  6. opencv中的resize函数实现图像插值缩放
  7. [DSF] Devices Syndication Foundation Architecture V1
  8. idea ssm html增删改,intellij idea采用ssm框架实现的数据库增删查改demo
  9. Ubantu16.04,利用vsftpd搭建ftp服务器,修改vsftpd.conf后,无法连接服务器
  10. python声音模拟_5秒钟让python克隆别人的声音
  11. html数字自动滚动代码,HTML+JS实现滚动数字的时钟
  12. python写身份证_python 关于身份证号码的相关操作
  13. jQuery入门(一)--jQuery中的选择器
  14. 《C语言程序设计》江宝钏主编-习题6-8-斐波那契部分和!!!!!
  15. 计算机组成原理之计算机最基本的工作原理
  16. LDO上电瞬间微过冲问题解决和讨论
  17. STM32实现德飞莱LED滚动效果
  18. 效用最大化问题中的三个函数——需求函数、间接效用函数、支出函数
  19. 华为2015年实习招聘机试
  20. Pauling学编程打卡

热门文章

  1. 模型评估 | 机器学习回归模型评价(RMSE、MAE、MAPE)
  2. Window10中音频驱动的相关更新
  3. 营销费用预算管理的IT应用之路
  4. 高中会考计算机试题学科网,高中物理会考复习资料
  5. 如何带领团队?各位指点江山吧!
  6. VC C运行时库(CRTL)的几个版本及选用
  7. IDEA软件CRTL+SHIFT+F快捷键失效,原因是因为搜狗输入法的热键冲突
  8. 【Linux】生产者消费者模型-基于环形队列实现
  9. SpringCloud搭建
  10. linux屏幕滑动效果实现代码,使用swipe方法模拟屏幕滑动与手势密码绘制