
1.本发明属于医学影像技术领域,具体涉及一种基于改进自注意力机制的目标检测方法及装置。
背景技术:2.近年来,目标检测技术在图像处理领域取得了巨大成功。基于深度学习技术,学者们提出了多种目标检测算法。从结构上来看,主要分为两大类:一类算法是基于候选区域的,如r-cnn,fastr-cnn和fasterr-cnn等;另一类是无候选区域的单阶段方法,如centernet,ssd等。相比于自然图像领域,在医学图像中,病变区域与整个图像相比可能非常小;而且通常图像结构复杂,仅根据单帧图像无法判断病灶。因此,在自然图像领域效果很好的2d目标检测方法在医学图像上通常无法达到预期效果。而如果在医学图像上采用全卷积网络,利用3d卷积获取上下文信息,则通常感受野不够大,而且显存占用很高。另外,为了快速地扩大感受野,cnn中往往使用大量的下采样操作,这使得最终得到的包含语义特征的特征图分辨率较低,不利于小物体检测。
3.自注意力是目前应用最广泛的注意力机制之一。自注意力是基于特征图本身的关注而提取的注意力。对于卷积而言,卷积核的设置限制了感受野的大小,导致网络往往需要多层的堆叠才能关注到整个特征图。而自注意的优势就是它的关注是全局的,它能通过简单的查询与赋值就能获取到特征图的全局空间信息。对于自注意力机制来说,相当于模型自己决定感受野的形状和类型。然而自注意力机制通常是针对2d的,没有办法像3d卷积一样融合3维信息。为此,本发明提出一种改进的自注意力机制模型,能够利用图像的3维信息提高目标检测精度。
技术实现要素:4.为了解决现有技术中存在的上述问题,本发明提供一种基于改进自注意力机制的目标检测方法及装置。
5.为了实现上述目的,本发明采用以下技术方案。
6.第一方面,本发明提供一种改进自注意力机制的目标检测方法,包括以下步骤:
7.获取维度为1*d*h*w的3d医学图像,d、h、w分别为深度、高度和宽度;
8.将所述图像输入到3d卷积神经网络进行特征提取,得到一个维度为c*d*h*w的特征图,c为通道数;
9.将所述特征图分成两个c/2*d*h*w的特征图,并将两个特征图分别沿横向和纵向划分为大小为d*c/2*h/n*w的n个方块和大小为d*c/2*h*w/m的m个方块,然后对划分后的两个特征图分别进行横向自注意力机制操作和纵向自注意力机制操作;
10.将横向自注意力机制和纵向自注意力机制的输出拼接后进行特征融合,并将融合特征输入分类器,得到目标类别及位置大小。
11.进一步地,所述医学图像为ct或mri。
12.进一步地,横向自注意力机制操作表示为:
13.输入为:
[0014][0015]
输出为:
[0016][0017][0018]
式中,分别为沿q、k、v的投影矩阵,均为可学习参数,q、k、v分别为查询向量、键向量和值向量。
[0019]
更进一步地,纵向自注意力机制操作表示为:
[0020]
输入为:
[0021][0022]
输出为:
[0023][0024][0025]
式中,分别为沿q、k、v的投影矩阵,均为可学习参数,q、k、v分别为查询向量、键向量和值向量。
[0026]
更进一步地,横向自注意力机制和纵向自注意力机制的输出拼接后得到:
[0027]
attention=concat(head1,head2,
…
,headk,
…
,headc)w0[0028][0029]
式中,k=1,2,
…
,c,w0为可学习参数,w0∈r
c*c
。
[0030]
进一步地,所述横向自注意力机制和纵向自注意力机制均增加了位置编码权重。
[0031]
第二方面,本发明提供一种基于改进自注意力机制的目标检测装置,包括:
[0032]
图像获取模块,用于获取维度为1*d*h*w的3d医学图像,d、h、w分别为深度、高度和宽度;
[0033]
特征提取模块,用于将所述图像输入到3d卷积神经网络进行特征提取,得到一个维度为c*d*h*w的特征图,c为通道数;
[0034]
自注意力模块,用于将所述特征图分成两个c/2*d*h*w的特征图,并将两个特征图分别沿横向和纵向划分为大小为d*c/2*h/n*w的n个方块和大小为d*c/2*h*w/m的m个方块,然后对划分后的两个特征图分别进行横向自注意力机制操作和纵向自注意力机制操作;
[0035]
目标分类模块,用于将横向自注意力机制和纵向自注意力机制的输出拼接后进行特征融合,并将融合特征输入分类器,得到目标类别及位置大小。
[0036]
进一步地,所述医学图像为ct或mri。
[0037]
进一步地,横向自注意力机制操作表示为:
[0038]
输入为:
[0039][0040]
输出为:
[0041][0042][0043]
式中,分别为沿q、k、v的投影矩阵,均为可学习参数,q、k、v分别为查询向量、键向量和值向量。
[0044]
更进一步地,纵向自注意力机制操作表示为:
[0045]
输入为:
[0046][0047]
输出为:
[0048][0049][0050]
式中,分别为沿q、k、v的投影矩阵,均为可学习参数,q、k、v分别为查询向量、键向量和值向量。
[0051]
更进一步地,横向自注意力机制和纵向自注意力机制的输出拼接后得到:
[0052]
attention=concat(head1,head2,
…
,headk,
…
,headc)w0[0053][0054]
式中,k=1,2,
…
,c,w0为可学习参数,w0∈r
c*c
。
[0055]
进一步地,所述横向自注意力机制和纵向自注意力机制均增加了位置编码权重。
[0056]
与现有技术相比,本发明具有以下有益效果。
[0057]
本发明通过获取3d医学图像,将所述图像输入到3d卷积神经网络进行特征提取,将得到的特征图在维度通道分成两个特征图,并将两个特征图分别沿横向和纵向划分为n个和m个相同的方块,然后对划分后的两个特征图分别进行横向自注意力机制操作和纵向自注意力机制操作,将两个自注意力机制的输出拼接后进行特征融合,并将融合特征输入分类器,得到目标类别及位置大小,实现了目标的自动检测和定位。本发明由于采用改进的自注意力机制,即横向自注意力机制操作和纵向自注意力机制,提高了感受野,降低了内存占有量和计算量,提高了运行速度。
附图说明
[0058]
图1为本发明实施例一种基于改进自注意力机制的目标检测方法的流程图。
[0059]
图2为本发明实施例网络结构示意图。
[0060]
图3为金字塔结构示意图。
[0061]
图4为增加位置编码权重的自注意力机制示意图。
[0062]
图5为本发明实施例一种基于改进自注意力机制的目标检测装置的方框图。
具体实施方式
[0063]
为使本发明的目的、技术方案及优点更加清楚、明白,以下结合附图及具体实施方式对本发明作进一步说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0064]
图1为本发明实施例一种基于改进自注意力机制的目标检测方法的流程图,包括以下步骤:
[0065]
步骤101,获取维度为1*d*h*w的3d医学图像,d、h、w分别为深度、高度和宽度;
[0066]
步骤102,将所述图像输入到3d卷积神经网络进行特征提取,得到一个维度为c*d*h*w的特征图,c为通道数;
[0067]
步骤103,将所述特征图分成两个c/2*d*h*w的特征图,并将两个特征图分别沿横向和纵向划分为大小为d*c/2*h/n*w的n个方块和大小为d*c/2*h*w/m的m个方块,然后对划分后的两个特征图分别进行横向自注意力机制操作和纵向自注意力机制操作;
[0068]
步骤104,将横向自注意力机制和纵向自注意力机制的输出拼接后进行特征融合,并将融合特征输入分类器,得到目标类别及位置大小。
[0069]
本实施例中,步骤101主要用于获取3d医学图像。所述医学图像可以是计算机体层摄影(computed tomography,简称ct),也可以是磁共振成像(magnetic resonance imaging,简称mri)等等。3d图像也称为立体图像,其空间大小用三个维度的尺寸长、宽、高决定。3d医学图像的尺寸一般用深度d、高度h和宽度w三个维度的尺寸表示。
[0070]
本实施例中,步骤102主要用于进行特征提取。本实施例通过将获得的3d医学图像输入到一个或多个3d卷积神经网络(或类似resnet的残差结构)实现特征提取,得到一个维度为c*d*h*w的特征图。卷积神经网络cnn是基于生物学上的感受野机制提出来的。cnn是一种前馈神经网络,但与一般的全连接前馈神经网络不同的是,它的卷积层具有局部连接和权重共享的特性,因此能够大大减小权重参数的数量,从而减小模型的复杂程度和提高运行速度。一个典型的cnn是由卷积层、汇聚层(或池化层、下采样层)、全连接层交叉堆叠而成的。卷积层的作用是通过卷积核与输入图像的卷积运算提取一个局部区域的特征,不同的卷积核相当于不同的特征提取器。汇聚层的作用是进行特征选择,降低特征数量,从而进一步减少参数数量。全连接层用于对得到的不同特征进行融合。二维卷积是在单通道的一帧图像上进行滑窗操作,输入是高度h*宽度w的二维矩阵。三维卷积输入多了深度d这个维度,输入是高度h*宽度w*深度d的三维矩阵。
[0071]
本实施例中,步骤103主要用于对获得的特征图进行改进的自注意力机制操作。注意力机制是在计算机能力有限的情况下,借鉴人脑的注意力机制,只关心一些关键的信息输入进行处理,来提高神经网络的效率。注意力机制的计算可分为两步:一是在所有输入信息上计算注意力分布;二是根据注意力分布计算输入信息的加权求和。自注意力机制是注意力机制的变体,只有一个输入,将序列中的每个单元和该序列中的所有单元进行注意力计算,减少了对外部信息的依赖,有利于捕捉数据或特征的内部相关性。自注意力机制是利用三个可学习的变量将输入线性映射为k、q与v,然后将q与k相乘得到k对q的注意力权重后,利用归一化的权重和v来生成输入的上下文信息。自注意力机制的优势是通过简单的查询与赋值就能获取到特征图的全局空间信息。对于自注意力机制来说,相当于模型自己决
定感受野是怎样的形状和类型。然而自注意力机制通常只针对2d图像特征,不能像3d卷积一样融合3维信息。为此,本实施例提出一种改进的自注意力机制,将输入特征图在通道维度一分为二,得到两个c/2*d*h*w的特征图,对这两个特征图分别从纵向和横向划分出n个和m个相同大小的小方块,大小分别为d*c/2*h/n*w和d*c/2*h*w/m。浅层特征图,方块比较窄;深层特征图,方块稍微宽一些,在实际中,对于前3层特征图,h/n和w/m一般取1、2、7。然后分别对两个特征图进行横向自注意力机制操作和纵向自注意力机制操作,如图2所示。
[0072]
值得说明的是,划分结果的n和m可以不等,但须保证h/n=w/m。由于输入图像一般为正方形,即h=w,因此一般情况下n=m。
[0073]
本实施例提出的改进的自注意力机制,将自注意力机制的n*m个方块变为n+m个方块,使计算量大大减小,运行速度明显提高。通过把特征图分成两部分并进行不同的自注意力机制,能够明显扩展每个区域的感受野。另外,本实施例两个方向(横纵)的自注意力机制并行运算,可进一步提高速度。
[0074]
本实施例中,步骤104主要用于基于特征融合得到目标类别和位置。对横、纵向自注意力机制的输出进行拼接,再对拼接后的特征图作3d卷积,融合3d方向的信息,并进行下采样,得到金字塔结构的特征图。将金字塔中的每个分支接上一个分类层和一个回归层,从而得到目标类别和检测框(表示目标位置大小)。如图3所示。
[0075]
作为一可选实施例,所述医学图像为ct或mri。
[0076]
本实施例对输入医学图像进行了限定。本实施例中,医学图像可以是ct,也可以是mri。ct和mri是最常用的两种医学影像。两种图像各有优劣,ct图像具有较高的密度分辨力,在密度分辨率上,ct具有较高的优势。mri图像具有较高的软组织分辨力,在显示中枢神经系统及关节内结构与病变方面明显优于ct。
[0077]
作为一可选实施例,横向自注意力机制操作表示为:
[0078]
输入为:
[0079][0080]
输出为:
[0081][0082][0083]
式中,分别为q、k、v的投影矩阵,均为可学习参数,q、k、v分别为查询向量、键向量和值向量。
[0084]
本实施例给出了横向自注意力机制的计算方法。横向自注意力机制的计算方法与一般的自注意力机制的计算方法相同,所不同的是输入变量为横向划分后的n个小方块,即
[0085]
作为一可选实施例,纵向自注意力机制操作表示为:
[0086]
输入为:
[0087][0088]
输出为:
[0089][0090][0091]
式中,分别为沿q、k、v的投影矩阵,均为可学习参数,q、k、v分别为查询向量、键向量和值向量。
[0092]
本实施例给出了纵向自注意力机制的计算方法。纵向自注意力机制的计算方法与一般的自注意力机制的计算方法相同,所不同的是输入变量为纵向划分后的m个小方块,即
[0093]
作为一可选实施例,横向自注意力机制和纵向自注意力机制的输出拼接后得到:
[0094]
attention=concat(head1,head2,
…
,headk,
…
,headc)w0[0095][0096]
式中,k=1,2,
…
,c,w0为可学习参数,w0∈r
c*c
。
[0097]
本实施例给出了横向自注意力机制的输出与纵向自注意力机制的输出拼接后的特征向量表达式。两个自注意力机制的输出在通道维度上叠加,得到一个维度为c*d*h*w的特征图。
[0098]
作为一可选实施例,所述横向自注意力机制和纵向自注意力机制均增加了位置编码权重。
[0099]
本实施例是对自注意力机制的又一改进。一般的自注意力机制不考虑输入序列中各个方块的位置信息,相当于将各个方块的位置打乱后“一视同仁”,得到的权重与位置无关,但实际上不同位置的图像特征所起的作用不同。为此,本实施例在横向自注意力机制和纵向自注意力机制操作中均增加了位置编码权重,如图4所示。具体地,在原自注意力机制权重的基础上加一个位置编码权重,表示如下:
[0100]
输入为x=(x1,x2,
…
,xn),输出为z=(z1,z2,
…
,zn),其中:
[0101][0102]
式中,为zi的第k个元素,为原自注意力权重,为位置编码权重,是一个可学习参数。
[0103]
本实施例通过增加一个位置编码权重,可使自注意力机制更有效地提取图像特征,从而提高目标检测的精度。
[0104]
图5为本发明实施例一种基于改进自注意力机制的目标检测装置的组成示意图,所述装置包括:
[0105]
图像获取模块11,用于获取维度为1*d*h*w的3d医学图像,d、h、w分别为深度、高度和宽度;
[0106]
特征提取模块12,用于将所述图像输入到3d卷积神经网络进行特征提取,得到一个维度为c*d*h*w的特征图,c为通道数;
[0107]
自注意力模块13,用于将所述特征图分成两个c/2*d*h*w的特征图,并将两个特征
图分别沿横向和纵向划分为大小为d*c/2*h/n*w的n个方块和大小为d*c/2*h*w/m的m个方块,然后对划分后的两个特征图分别进行横向自注意力机制操作和纵向自注意力机制操作;
[0108]
目标分类模块14,用于将横向自注意力机制和纵向自注意力机制的输出拼接后进行特征融合,并将融合特征输入分类器,得到目标类别及位置大小。
[0109]
本实施例的装置,可以用于执行图1所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。后面的实施例也是如此,均不再展开说明。
[0110]
作为一可选实施例,所述医学图像为ct或mri。
[0111]
作为一可选实施例,横向自注意力机制操作表示为:
[0112]
输入为:
[0113][0114]
输出为:
[0115][0116][0117]
式中,分别为沿q、k、v的投影矩阵,均为可学习参数,q、k、v分别为查询向量、键向量和值向量。
[0118]
作为一可选实施例,纵向自注意力机制操作表示为:
[0119]
输入为:
[0120][0121]
输出为:
[0122][0123][0124]
式中,分别为沿q、k、v的投影矩阵,均为可学习参数,q、k、v分别为查询向量、键向量和值向量。
[0125]
作为一可选实施例,横向自注意力机制和纵向自注意力机制的输出拼接后得到:
[0126]
attention=concat(head1,head2,
…
,headk,
…
,headc)w0[0127][0128]
式中,k=1,2,
…
,c,w0为可学习参数,w0∈r
c*c
。
[0129]
作为一可选实施例,所述横向自注意力机制和纵向自注意力机制均增加了位置编码权重。
[0130]
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。