CN114463298A - 一种x光脊椎图像关键点检测与识别方法 - Google Patents
一种x光脊椎图像关键点检测与识别方法 Download PDFInfo
- Publication number
- CN114463298A CN114463298A CN202210089370.1A CN202210089370A CN114463298A CN 114463298 A CN114463298 A CN 114463298A CN 202210089370 A CN202210089370 A CN 202210089370A CN 114463298 A CN114463298 A CN 114463298A
- Authority
- CN
- China
- Prior art keywords
- vertebra
- image
- spine
- key point
- coordinates
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/0002—Inspection of images, e.g. flaw detection
- G06T7/0012—Biomedical image inspection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/048—Activation functions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10116—X-ray image
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20081—Training; Learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30004—Biomedical image processing
- G06T2207/30008—Bone
- G06T2207/30012—Spine; Backbone
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Medical Informatics (AREA)
- Nuclear Medicine, Radiotherapy & Molecular Imaging (AREA)
- Radiology & Medical Imaging (AREA)
- Quality & Reliability (AREA)
- Image Analysis (AREA)
Abstract
本发明属于医学图像处理领域,公开了一种X光脊椎图像关键点检测与识别方法。方法包括:首先获取X光脊椎图像并标注,接着利用图像和关键点坐标对脊椎关键点检测网络进行训练,然后利用图像和名称标签对脊椎识别网络进行训练,再裁剪出单节椎骨的图像,利用单节椎骨图像和关键点坐标对单节椎骨关键点检测网络进行训练,然后利用训练好的模型进行预测,预测之后还需要后处理,再构建椎骨连接图,求取最长路得到图中最有可能存在的椎骨,最终整合得到脊椎图像中关键点的坐标的椎骨名称。本发明梳理了X光脊椎图像的关键点和识别的全自动工作流程,采用先粗后细的关键点检测策略提高精度,并且考虑到了少数的情况,具有更好的泛化性。
Description
技术领域
本发明属于医学图像处理领域,具体涉及一种X光脊椎图像关键点检测与识别方法。
背景技术
脊椎是支撑人体的重要结构,脊椎由颈椎、胸椎、腰椎、骶骨和尾骨借韧带、关节及椎间盘连接而成。随着社会的发展,由于一些不好的习惯,脊椎疾病呈现出年轻化的趋势。在诊断过程中,拍摄X光片是一种重要的辅助手段,目前对于X光片中脊椎的识别多是通过人工标注的方式,存在诸多问题,比如阅片时间长、X光片噪声大、容易出现误差。所以需要有一种自动标注椎骨名称的方法。
手术机器人是治疗脊椎疾病的一种方式,要实现手术机器人,需要在手术过程中自动进行脊椎的定位,一种方式是术前需要拍摄CT,术中使用X光进行拍摄来进行定位,这就涉及到CT-X光的配准,其中,找到CT的关键点和X光的关键点来进行配准就是一种方式。
发明内容
本发明的目的是克服现有技术的不足,提供一种X光脊椎图像关键点检测与识别方法。
本发明提供的技术方案是:
(1)获取X光脊椎图像,对图像进行标注,标注每节椎骨的关键点坐标和名称,然后将数据集中的图像按照比例分为训练集、验证集和测试集,划分后针对图像中的椎骨数量不确定的使用场景进行数据集扩充;
(2)以脊椎图像作为输入,每节椎骨的关键点坐标作为标签对脊椎关键点检测网络进行训练,得到第一网络模型;
(3)以脊椎图像作为输入,每节椎骨的名称作为标签对脊椎识别网络进行训练,得到第二网络模型;
(4)在步骤(2)的基础上,为了得到更精细的关键点坐标,裁剪出单节椎骨的图像,以单节椎骨图像作为输入,该节椎骨的关键点坐标作为标签对单节椎骨关键点检测网络进行训练,得到第三网络模型;
(5)在步骤(2)的基础上,将脊椎图像输入训练好的第一网络模型,经过后处理过程后,预测出图像中的关键点坐标;
(6)在步骤(4)和步骤(5)的基础上,利用步骤(5)中预测出的每节椎骨的关键点坐标,裁剪出单节椎骨,将单节椎骨的图像输入训练好的第三网络模型,经过后处理过程后,预测出更精确的单节椎骨的关键点坐标,然后需要将这些关键点坐标变换回原图;
(7)在步骤(3)的基础上,将脊椎图像输入训练好的第二网络模型,预测出图像中各个椎骨存在的概率;
(8)在步骤(6)和步骤(7)的基础上,针对存在少数人椎骨数量排列不同的问题,构建椎骨连接图,通过求取最长路的方法来得到最准确的图像中各个椎骨的名称;
(9)在步骤(6)和步骤(8)的基础上,在脊椎图像中画出预测出的每节椎骨的关键点、标注出预测出的每节椎骨的名称。
进一步的,对于步骤(1)所述的标注每节椎骨的关键点,无论所述的数据集使用的是全脊柱X光正位片还是侧位片,选取每节椎骨的四个角的点作为关键点,并记录下它们的坐标x,y。
进一步的,对于步骤(1)所述的数据集扩充包括:从1开始枚举图像中的椎骨数量为k,然后让图像中的每节椎骨作为图像中的第一节椎骨为vn,第二节椎骨为vn+1,可以截取出包含{vn,vn+1,…,vn+k-1}的图像,截取的方法是根据所有椎骨的关键点坐标,求出其中的最小和最大的x坐标值和y坐标值,然后分别将这些值向四周扩充一段距离,就可以得到只包含一部分椎骨的图像,相应地,关键点也需要做出调整。
进一步的,对于步骤(2)所述的脊椎关键点检测网络模型的构建,具体包括:
(2.1)将输入的脊椎图像扩充成正方形;
(2.2)对训练集的图像进行在线数据增强,例如随机拉伸、随机亮度和对比度变换、随机水平镜面翻转和随机旋转,相应地,关键点的坐标也要进行变换;
(2.3)模型是encoder-decoder结构,下采样部分使用Resnet34,为了加快模型的训练速度和泛化能力,利用迁移学习的技术,在ImageNet上已经训练好的参数上进行微调,上采样部分先使用双线性插值的方式对特征图进行上采样,然后使用一个3×3,步长为1的卷积核进行操作,再用BatchNorm进行归一化,连接一个ReLU激活函数,同时采用跳跃连接来进行特征复用,让下采样的特征辅助上采样学习,在进行跳跃连接之前,先经过一个Attention Gate,假设上采样部分的跳跃连接的特征图为g,下采样部分的对应的特征图为x,首先对g和x分别做一个1×1的卷积操作,将特征图维数降为一半,然后将两个得到的特征图相加之后再进行ReLU操作,之后再用1×1的卷积将维数降为1,再进行sigmoid,最后和x相乘,把注意力权重赋到原先的特征图中,Attention出来的结果再和上采样的结果进行拼接之后用1×1的卷积将维数降到和原先一样,如此对提取的特征实现注意力机制;
(2.4)将feature分别送入三个分支,使用3×3和1×1的卷积核进行连续卷积,最终得到通道数为1的热图和维数为2的中心点坐标的偏移,对于四个角相对于中心点的坐标偏移,使用3×3和7×7的卷积核进行连续卷积得到维数为8的四个角相对于中心点的坐标偏移,其中,热图还需要sigmoid以便于计算损失和后处理;
(2.5)根据每张脊椎图像的真实关键点坐标,生成ground truth的高斯热图,首先根据真实关键点坐标求出bounding box,根据每节椎骨的bounding box大小计算高斯圆的半径R,最后在热图上,以bounding box的中心点为圆心,半径为R填充高斯函数计算值,取IOU临界值为overlap,bounding box的大小为h×w,则求取R的公式为
其中,a、b、c的取值为:
取bounding box的中心点坐标为(px,py),则高斯函数为:
对于热图,使用改进后的focal loss作为损失函数,具体计算方式为:
(2.6)经过训练之后即可得到第一网络模型。
进一步的,对于步骤(3)所述的脊椎识别网络模型的构建,具体包括:
(3.1)将输入的脊椎图像扩充成正方形;
(3.2)对训练集的图像进行在线数据增强,例如随机拉伸、随机亮度和对比度变换、随机水平镜面翻转和随机旋转;
(3.3)构建ResNeXt50模型,把在ImageNet上已经预训练好的ResNeXt50的权重参数载入模型,并利用迁移学习,将前三层的参数全部冻结,只训练模型的第四层之后的参数;
(3.4)在网络的最后加入CSRA注意力模块,CSRA注意力模块有两个分支,分别是Spatial pooling和Average pooling,然后将两者进行加权融合:
Fi=Gi+λ*Mi (5)
其中,Fi表示第i种类别的概率,Gi表示average pooling后得到的第i种类别的概率,Mi表示spatial pooling后得到的第i种类别的概率;
(3.5)因为脊椎识别可以看作是多标签分类问题,所以对每个输出神经元使用sigmoid激活函数,将预测结果映射到(0,1)的区间;
(3.6)针对数据集可能存在的类别不平衡的情况,使用focal loss作为损失函数。
(3.7)经过训练之后即可得到第二网络模型。
进一步的,对于步骤(4)所述的单节椎骨关键点检测网络的构建方法同步骤(2),只有输入网络的图像不同,即以单节椎骨图像作为输入,经过训练之后即可得到第三网络模型。
进一步的,对于步骤(5)所述的后处理过程包括:对于热图寻找极大值点,然后提取置信度大于阈值的中心点的置信度得分、索引和中心点坐标,然后利用预测出的中心点坐标的偏移和四个角相对于中心点的坐标偏移得到四个关键点的坐标;对于单节椎骨的后处理过程,则不需要阈值,直接取得最大置信度的中心点就可以。
进一步的,对于步骤(8)所述的椎骨连接图的构建包括:将每节椎骨的名称作为图中的节点,针对实际情况,将可能存在相邻关系的椎骨进行连边,将每个椎骨的概率作为每条边的权重。
与现有技术相比,本发明的优点是:
(1)梳理了X光脊椎图像的关键点和识别的全自动工作流程,可实现颈椎、胸椎和腰椎的关键点检测和识别。
(2)关键点检测的准确率更高,采用先粗后细的关键点检测策略,先对整体的图像进行关键点检测,然后对单节椎骨进行精细的关键点检测。
(3)泛化性更好,针对少部分人的脊椎排列顺序不同的情况,制定了考虑到这些情况的方案。
附图说明
图1为本发明所述的X光脊椎图像关键点检测和识别的工作原理示意图。
图2为本发明所述的脊椎关键点检测网络的结构图。
图3为本发明所述的脊椎连接图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行完整地描述,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例:
如图1所示是本发明的一个实施例,提供了一种X光脊椎图像关键点检测与识别方法,包括以下步骤:
(1)获取X光脊椎图像,对这些图像进行关键点的标注和图像内椎骨名称的标注。将每张脊椎图像的关键点坐标和椎骨名称放进字典类型的变量中,然后将这个变量写入npy文件中,即每张图像都有一个扩展名为npy的标签文件。
由于模型存在超参需要调节,所以要进行训练集、验证集和测试集的划分,然后放入不同的子文件夹中。
因为要进行数据集扩充,所以从1开始枚举图像中的椎骨数量为k,然后让图像中的每节椎骨作为图像中的第一节椎骨为vn,第二节椎骨为vn+1,可以截取出包含{vn,vn+1,…,vn+k-1}的图像。截取的方法是根据所有椎骨的关键点坐标,求出其中的最小和最大的x坐标值和y坐标值,然后分别将这些值向四周扩充15个像素,就可以得到只包含一部分椎骨的图像,相应地,关键点也需要做出调整。用这样子的方式对训练集、验证集和测试集分别进行扩充。
(2)以脊椎图像作为输入,每节椎骨的关键点坐标作为标签对脊椎关键点检测网络进行训练,得到第一网络模型。
首先,要把脊椎图像扩充成正方形,扩充的方法是取长宽中的较长边作为正方形的边长,其余部分用黑色进行填充,其中原脊椎的图像要保持在扩充后的正方形的左边或者上边,这样才可以保证原来的关键点可以在扩充后也是正确的。然后将数据集的图像都调整成相同的大小512×512。
为了提升模型的鲁棒性,要利用数据增强的技术对训练集进行一些变换,本实施例使用了随机拉伸、随机亮度和对比度变换、随机水平镜面翻转和随机旋转的数据增强策略,当然,在进行随机拉伸、随机水平镜面翻转和随机旋转变换的时候,关键点的坐标也要相应地做出变换。
构建模型的时候,网络总体是encoder-decoder架构的,网络结构如图2所示。下采样部分使用Resnet34作为主干网络,为了加快模型的训练速度和泛化能力,利用迁移学习的技术,在ImageNet上已经训练好的参数上进行微调。
上采样部分共进行3层操作,图像通道数分别设置为256、128、64,同时采用使用跳跃连接来进行特征复用,让下采样的特征辅助上采样学习。在将encoder上的特征与decoder中对应特征进行连接之前,使用了一个Attention Gate,重新调整了encoder的输出特征。该模块生成一个门控信号,用来控制不同空间位置特征的重要性。一种具体的构造是,这三层都是先使用双线性插值的方式对特征图进行上采样,然后使用一个3×3,步长为1的卷积核进行操作,再用BatchNorm进行归一化,连接一个ReLU激活函数,在进行跳跃连接之前,先经过一个Attention Gate,假设上采样部分的跳跃连接的特征图为g,下采样部分的对应的特征图为x,首先对g和x分别做一个1×1的卷积操作,将特征图维数降为一半,然后将两个得到的特征图相加之后再进行ReLU操作,之后再用1×1的卷积将维数降为1,再进行sigmoid,最后和x相乘,把注意力权重赋到原先的特征图中。Attention出来的结果再和上采样的结果进行拼接之后用1×1的卷积将维数降到和原先一样。
之后将特征图分别送入三个分支,得到热图、中心点坐标的偏移和四个角相对于中心点的坐标偏移。一种具体的构造是,为了得到热图和中心点坐标的偏移,使用3×3和1×1的卷积核进行连续卷积,最终得到通道数为1、尺寸为128×128的热图和维数为2、尺寸为128×128的中心点坐标的偏移,对于四个角相对于中心点的坐标偏移,使用3×3和7×7的卷积核进行连续卷积得到维数为8、尺寸为128×128的四个角相对于中心点的坐标偏移。其中,热图还需要sigmoid以便于计算损失和后处理。
在该实施例中,需要先生成真实的高斯热图。生成方式具体为,先将关键点缩放到128×128的尺度上,根据关键点坐标求出bounding box的大小,然后求bounding box的中心点坐标并取整,设为point,根据每节椎骨的bounding box大小计算高斯圆的半径,设为R,最后在热图上,以point为圆心,半径为R填充高斯函数计算值。其中,取IOU临界值为overlap,bounding box的大小为h×w,求取R的公式为
其中,a、b、c的取值为:
取bounding box的中心点坐标为(px,py),则高斯函数为:
在本实施例中,热图的损失函数使用的是改进后的focal loss:
中心点坐标的偏移和四个角相对于中心点的坐标偏移的损失函数使用的是L1loss。最终的loss为三者相加。
(3)以脊椎图像作为输入,每节椎骨的名称作为标签对脊椎识别网络进行训练,得到第二网络模型。
首先,要把脊椎图像扩充成正方形,扩充的方法是取长宽中的较长边作为正方形的边长,其余部分用黑色进行填充。然后将数据集的图像都调整成相同的大小512×512。
同样,要利用数据增强的技术对训练集进行一些变换,本实施例使用了随机拉伸、随机亮度和对比度变换、随机水平镜面翻转和随机旋转的数据增强策略。
网络主干部分使用ResNeXt50。把在ImageNet上已经预训练好的ResNeXt50的权重参数载入模型,并利用迁移学习,将前三层的参数全部冻结,只训练模型的第四层之后的参数。
在网络的最后加入CSRA注意力模块,CSRA注意力模块有两个分支,分别是Spatialpooling和Average pooling,然后将两者进行加权融合。在本实施例中,更具体的构造是,进行1×1的卷积操作然后推平,得到一个通道数为26的线性特征图,代表7块颈椎、12块胸椎、5块腰椎和可能出现的多一块的胸椎和多一块的腰椎。然后将特征图送入两个分支,一个进行average pooling操作,另一个进行max pooling操作,然后进行将两个结果进行加权融合:
Fi=Gi+λ*Mi (5)
其中,Fi表示第i种类别的概率,Gi表示average pooling后得到的第i种类别的概率,Mi表示max pooling后得到的第i种类别的概率。在本实施例中,超参λ取0.2。
因为脊椎识别可以看作是多标签分类问题,所以对每个输出神经元使用sigmoid激活函数,将预测结果映射到(0,1)的区间。
本实施例使用的损失函数是focal loss,以缓解数据集中可能存在的类别不平衡的问题。
(4)在步骤(2)的基础上,为了得到更精细的关键点坐标,裁剪出单节椎骨的图像,以单节椎骨图像作为输入,该节椎骨的关键点坐标作为标签对单节椎骨关键点检测网络进行训练,得到第三网络模型。
本步骤使用的网络与步骤(2)相同,不再阐述。
训练的图像为对于每张脊椎图像求取每节椎骨的四个关键点的x,y坐标的最大值和最小值,然后四周向外扩张15个像素,即可得到单节椎骨的图像。
(5)在步骤(2)的基础上,将脊椎图像输入训练好的第一网络模型,经过后处理过程后,预测出图像中的关键点坐标。
后处理过程中,首先对于热图寻找极大值点,本实施例中使用一个3×3的maxpooling来保留极大值点,然后将极大值点的值保留,非极大值点置为0,然后提取置信度大于阈值的中心点的置信度得分、索引和中心点坐标,利用预测出的中心点坐标的偏移和四个角相对于中心点的坐标偏移得到四个关键点的坐标。在本实施例中,阈值设为0.3。
(6)在步骤(4)和步骤(5)的基础上,利用步骤(5)中预测出的每节椎骨的关键点坐标,裁剪出单节椎骨,将单节椎骨的图像输入训练好的第三网络模型,经过后处理过程后,预测出更精确的单节椎骨的关键点坐标,然后需要将这些关键点坐标变换回原图。
裁剪出单节椎骨的过程为,求取步骤(5)预测出的每节椎骨的四个关键点的x,y坐标的最大值和最小值,然后向外然后四周向外扩张15个像素,即可得到单节椎骨的图像。
其中的后处理过程,除了只要提取最大置信度的中心点坐标以外,其他都和步骤(5)中的后处理过程相同。
关键点变换的过程即记录下裁剪出单节椎骨的图像的四个角在原图中的坐标,然后对于单节椎骨预测出的坐标,加上裁剪出来的图像在原图上的偏移值即可。
(7)在步骤(3)的基础上,将脊椎图像输入训练好的第二网络模型,预测出图像中各个椎骨存在的概率。
(8)在步骤(6)和步骤(7)的基础上,针对存在少数人椎骨数量排列不同的问题,构建椎骨连接图,通过求取最短路的方法来得到最准确的图像中各个椎骨的名称。
椎骨连接图如图3所示,该连接图的层数为预测出来的脊椎图像中椎骨的节数,每层都有26个节点,代表7块颈椎、12块胸椎、5块腰椎和可能出现的多一块的胸椎和多一块的腰椎。然后将预测出来每种类别的概率的负数作为边的权重。之所以要使用负数,因为这样就可以将最长路问题转化成最短路问题。
少数人椎骨数量排列不同的问题具体为可能多一块胸椎、少一块胸椎或者是多一块腰椎。对于多一块胸椎或者腰椎的问题,本实施例中,直接将这两块作为多出来的两种类别来考虑,对于少一块胸椎的问题,在本实施例中,在节点T11和节点L1之间连边。
两边要各建立一个超级源点和超级汇点,来简化问题,求取最短路。
求取最短路的方法是SPFA算法(Bellman-Ford算法的队列优化算法),因为图中存在负权边。同时也要维护最佳路径,最后即可得到图像中最可能存在的椎骨。
(9)在步骤(6)和步骤(8)的基础上,在脊椎图像中画出预测出的每节椎骨的关键点、标注出预测出的每节椎骨的名称。
以上是本发明的较佳实施例,凡依本发明技术方案所做的改变,所产生的功能作用未超出本发明技术方案的范围时,均属于本发明的保护范围。
Claims (8)
1.一种X光脊椎图像关键点检测与识别方法,其特征在于,包括以下步骤:
S1:获取X光脊椎图像,对图像进行标注,标注每节椎骨的关键点坐标和名称,然后将数据集中的图像按照比例分为训练集、验证集和测试集,划分后针对图像中的椎骨数量不确定的使用场景进行数据集扩充;
S2:以脊椎图像作为输入,每节椎骨的关键点坐标作为标签对脊椎关键点检测网络进行训练,得到第一网络模型;
S3:以脊椎图像作为输入,每节椎骨的名称作为标签对脊椎识别网络进行训练,得到第二网络模型;
S4:在步骤S2的基础上,为了得到更精细的关键点坐标,裁剪出单节椎骨的图像,以单节椎骨图像作为输入,该节椎骨的关键点坐标作为标签对单节椎骨关键点检测网络进行训练,得到第三网络模型;
S5:在步骤S2的基础上,将脊椎图像输入训练好的第一网络模型,经过后处理过程后,预测出图像中的关键点坐标;
S6:在步骤S4和步骤S5的基础上,利用步骤S5中预测出的每节椎骨的关键点坐标,裁剪出单节椎骨,将单节椎骨的图像输入训练好的第三网络模型,经过后处理过程后,预测出更精确的单节椎骨的关键点坐标,然后需要将这些关键点坐标变换回原图;
S7:在步骤S3的基础上,将脊椎图像输入训练好的第二网络模型,预测出图像中各个椎骨存在的概率;
S8:在步骤S6和步骤S7的基础上,针对存在少数人椎骨数量排列不同的问题,构建椎骨连接图,通过求取最长路的方法来得到最准确的图像中各个椎骨的名称;
S9:在步骤S6和步骤S8的基础上,在脊椎图像中画出预测出的每节椎骨的关键点、标注出预测出的每节椎骨的名称。
2.如权利要求1所述的一种X光脊椎图像关键点检测与识别方法,其特征在于,步骤S1所述的标注每节椎骨的关键点,无论所述的数据集使用的是全脊柱X光正位片还是侧位片,选取每节椎骨的四个角的点作为关键点,并记录下它们的坐标x,y。
3.如权利要求1所述的一种X光脊椎图像关键点检测与识别方法,其特征在于,步骤S1所述的数据集扩充包括:从1开始枚举图像中的椎骨数量为k,然后让图像中的每节椎骨作为图像中的第一节椎骨为vn,第二节椎骨为vn+1,可以截取出包含{vn,vn+1,…,vn+k-1}的图像,截取的方法是根据所有椎骨的关键点坐标,求出其中的最小和最大的x坐标值和y坐标值,然后分别将这些值向四周扩充一段距离,就可以得到只包含一部分椎骨的图像,相应地,关键点也需要做出调整。
4.如权利要求1所述的一种X光脊椎图像关键点检测与识别方法,其特征在于,步骤S2所述的脊椎关键点检测网络模型的构建,具体包括:
S21:将输入的脊椎图像扩充成正方形;
S22:对训练集的图像进行在线数据增强,例如随机拉伸、随机亮度和对比度变换、随机水平镜面翻转和随机旋转,相应地,关键点的坐标也要进行变换;
S23:模型是encoder-decoder结构,下采样部分使用Resnet34,为了加快模型的训练速度和泛化能力,利用迁移学习的技术,在ImageNet上已经训练好的参数上进行微调,上采样部分先使用双线性插值的方式对特征图进行上采样,然后使用一个3×3,步长为1的卷积核进行操作,再用BatchNorm进行归一化,连接一个ReLU激活函数,同时采用跳跃连接来进行特征复用,让下采样的特征辅助上采样学习,在进行跳跃连接之前,先经过一个AttentionGate,假设上采样部分的跳跃连接的特征图为g,下采样部分的对应的特征图为x,首先对g和x分别做一个1×1的卷积操作,将特征图维数降为一半,然后将两个得到的特征图相加之后再进行ReLU操作,之后再用1×1的卷积将维数降为1,再进行sigmoid,最后和x相乘,把注意力权重赋到原先的特征图中,Attention出来的结果再和上采样的结果进行拼接之后用1×1的卷积将维数降到和原先一样,如此对提取的特征实现注意力机制;
S24:将feature分别送入三个分支,使用3×3和1×1的卷积核进行连续卷积,最终得到通道数为1的热图和维数为2的中心点坐标的偏移,对于四个角相对于中心点的坐标偏移,使用3×3和7×7的卷积核进行连续卷积得到维数为8的四个角相对于中心点的坐标偏移,其中,热图还需要sigmoid以便于计算损失和后处理;
S25:根据每张脊椎图像的真实关键点坐标,生成ground truth的高斯热图,首先根据真实关键点坐标求出bounding box,根据每节椎骨的bounding box大小计算高斯圆的半径R,最后在热图上,以bounding box的中心点为圆心,半径为R填充高斯函数计算值,取IOU临界值为overlap,bounding box的大小为h×w,则求取R的公式为
其中,a、b、c的取值为:
取bounding box的中心点坐标为(px,py),则高斯函数为:
对于热图,使用改进后的focal loss作为损失函数,具体计算方式为:
S26:经过训练之后即可得到第一网络模型。
5.如权利要求1所述的一种X光脊椎图像关键点检测与识别方法,其特征在于,步骤S3所述的脊椎识别网络模型的构建,具体包括:
S31:将输入的脊椎图像扩充成正方形;
S32:对训练集的图像进行在线数据增强,例如随机拉伸、随机亮度和对比度变换、随机水平镜面翻转和随机旋转;
S33:构建ResNeXt50模型,把在ImageNet上已经预训练好的ResNeXt50的权重参数载入模型,并利用迁移学习,将前三层的参数全部冻结,只训练模型的第四层之后的参数;
S34:在网络的最后加入CSRA注意力模块,CSRA注意力模块有两个分支,分别是Spatialpooling和Average pooling,然后将两者进行加权融合:
Fi=Gi+λ*Mi (5)
其中,Fi表示第i种类别的概率,Gi表示average pooling后得到的第i种类别的概率,Mi表示spatial pooling后得到的第i种类别的概率;
S35:因为脊椎识别可以看作是多标签分类问题,所以对每个输出神经元使用sigmoid激活函数,将预测结果映射到(0,1)的区间;
S36:针对数据集可能存在的类别不平衡的情况,使用focal loss作为损失函数。
S37:经过训练之后即可得到第二网络模型。
6.如权利要求1所述的一种X光脊椎图像关键点检测与识别方法,其特征在于,步骤S4所述的单节椎骨关键点检测网络的构建方法同步骤S2,只有输入网络的图像不同,即以单节椎骨图像作为输入,经过训练之后即可得到第三网络模型。
7.如权利要求1所述的一种X光脊椎图像关键点检测与识别方法,其特征在于,步骤S5所述的后处理过程包括:对于热图寻找极大值点,然后提取置信度大于阈值的中心点的置信度得分、索引和中心点坐标,然后利用预测出的中心点坐标的偏移和四个角相对于中心点的坐标偏移得到四个关键点的坐标;对于单节椎骨的后处理过程,则不需要阈值,直接取得最大置信度的中心点就可以。
8.如权利要求1所述的一种X光脊椎图像关键点检测与识别方法,其特征在于,步骤S8所述的椎骨连接图的构建包括:将每节椎骨的名称作为图中的节点,针对实际情况,将可能存在相邻关系的椎骨进行连边,将每个椎骨的概率作为每条边的权重。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210089370.1A CN114463298A (zh) | 2022-01-25 | 2022-01-25 | 一种x光脊椎图像关键点检测与识别方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210089370.1A CN114463298A (zh) | 2022-01-25 | 2022-01-25 | 一种x光脊椎图像关键点检测与识别方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114463298A true CN114463298A (zh) | 2022-05-10 |
Family
ID=81412508
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210089370.1A Pending CN114463298A (zh) | 2022-01-25 | 2022-01-25 | 一种x光脊椎图像关键点检测与识别方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114463298A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115063410A (zh) * | 2022-08-04 | 2022-09-16 | 中建电子商务有限责任公司 | 一种基于无锚点目标检测的钢管计数方法 |
CN116958075A (zh) * | 2023-07-10 | 2023-10-27 | 宁波大学 | 一种脊柱关键点检测系统 |
-
2022
- 2022-01-25 CN CN202210089370.1A patent/CN114463298A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115063410A (zh) * | 2022-08-04 | 2022-09-16 | 中建电子商务有限责任公司 | 一种基于无锚点目标检测的钢管计数方法 |
CN116958075A (zh) * | 2023-07-10 | 2023-10-27 | 宁波大学 | 一种脊柱关键点检测系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200226474A1 (en) | Systems and methods for polygon object annotation and a method of training an object annotation system | |
Cortinhal et al. | Salsanext: Fast, uncertainty-aware semantic segmentation of lidar point clouds | |
CN110163260B (zh) | 基于残差网络的图像识别方法、装置、设备及存储介质 | |
CN112016507B (zh) | 基于超分辨率的车辆检测方法、装置、设备及存储介质 | |
CN111429460B (zh) | 图像分割方法、图像分割模型训练方法、装置和存储介质 | |
CN114463298A (zh) | 一种x光脊椎图像关键点检测与识别方法 | |
Xia et al. | MC-Net: multi-scale context-attention network for medical CT image segmentation | |
CN114004847B (zh) | 一种基于图可逆神经网络的医学图像分割方法 | |
CN113298815A (zh) | 一种半监督遥感图像语义分割方法、装置和计算机设备 | |
US20230046321A1 (en) | Medical image analysis using machine learning and an anatomical vector | |
CN113792641A (zh) | 一种结合多谱注意力机制的高分辨率轻量级的人体姿态估计方法 | |
CN114842026A (zh) | 实时的风机叶片图像分割方法及系统 | |
US20210150679A1 (en) | Using imager with on-purpose controlled distortion for inference or training of an artificial intelligence neural network | |
CN114565628B (zh) | 一种基于边界感知注意的图像分割方法及系统 | |
CN117974693B (zh) | 图像分割方法、装置、计算机设备和存储介质 | |
AU2022400601A1 (en) | Skin lesion classification system and method | |
CN115035599A (zh) | 一种融合装备与行为特征的武装人员识别方法和系统 | |
CN116934859B (zh) | 基于矢状位图的关键点识别方法及相关装置 | |
Zhang et al. | High-resolution satellite video single object tracking based on thicksiam framework | |
CN117132616A (zh) | 一种医学图像器官分割方法、系统及病灶分类系统 | |
CN113807354A (zh) | 图像语义分割方法、装置、设备和存储介质 | |
CN113327221B (zh) | 融合roi区域的图像合成方法、装置、电子设备及介质 | |
Liu et al. | A novel deep transfer learning method for sar and optical fusion imagery semantic segmentation | |
Lavreniuk et al. | Reviewing Deep Learning Methods in the Applied Problems of Economic Monitoring Based on Geospatial Data | |
CN116342582B (zh) | 基于可变形注意力机制的医学图像分类方法与医疗设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |