技术领域
[0001] 本发明属于医学图像处理领域,涉及一种基于注意力机制的柴胡种子识别方法。
相关背景技术
[0002] 中药是中医特有的药物,其质量对中医处方的疗效至关重要。而要种植出质量上乘的中药,对中药种子的高质量要求是必不可少的。目前,我国的中药种植基地普遍没有形成规范化的管理,选种、育苗没有统一的行业标准。人工筛选优质的种子种苗需要耗费大量的人力成本,筛选主观性强,难以解决中药质量参差不齐的问题。为此使用现代信息化技术推动中药种植业的规范化成为中医药发展的必然趋势。而对于柴胡来说,其不同种类的种子非常相似,而且尺寸较小。人工的筛选方法势必要耗费大量的人力物力,而且判断的效率很低,因此在大规模选种的情况下,采用深度学习辅助分类,成为亟待解决的需求。
[0003] 现有方法大多使用了一些传统的机器学习算法进行中药的分类,由于部分中药是用种子入药,因此中药分类和中药种子分类实际上是有共同点的。另外也存在专门针对种子分类的方法,往往选用的是常见的玉米、水稻种子,少见对于中药种子分类的研究。另外,基于深度学习的中药分类方式多集中在各中药大类之间,不能综合特征表现出来的全局信息,而柴胡种子尺寸很小并且不同种类的柴胡种子非常相似,需要神经网络提取细微的特征,这使得传统分类方式效果不佳。
[0004] 综上,现有的柴胡种子分类方法过于不能提取细微的特征信息,导致筛选的准确性不高。
具体实施方式
[0056] 为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
[0057] 需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0058] 下面结合附图对本发明做进一步说明。
[0059] 参见图1,本发明基于金字塔结构的深度神经网络并基于注意力机制,用于不同种类柴胡种子之间的分类目的,是首个使用注意力机制的深度神经网络完成柴胡种子分类问题的研究,主要用于建模、教学或人工智能研究等,具体地说,主要用于探究深度学习方法在中药种子分类任务的普适性,推动人工智能在中药种子筛选中的应用,包括以下步骤:
[0060] S1:通过摄像等方式获得不同种类的柴胡种子图像,通过颜色分割等技术对图像进行预处理,仅保留柴胡种子的部分,使得其余像素的颜色呈黑色。然后将进行过预处理的图片输入到一个带有多个注意力机制的深度神经网络中;
[0061] S2:通过这个带有多个注意力机制的深度神经网络将我们预处理得到的图进行若干次卷积池化复合操作,得到下一层特征图;下一层特征图也再进行若干次卷积池化复合操作,又可以得到下一层特征图,如此过程,最终可以得到四层特征图的金字塔结构,这是下采样过程。通过此过程,我们得到图像的是所提取图像的特征,共有四层特征图输出;
[0062] S3:将下采样过程得到的四层特征图进行融合,这称作是上采样过程,这其中用到了注意力机制,具体过程如下,将最后得到的尺寸最小的上层特征图做上采样操作,使它尺寸放大一倍再输入至注意力模块,然后把下采样过程中和它尺寸相同的特征图通过一个1x1的卷积层进行通道数整合后并通过横向连接也输入到注意力模块中,之后注意力模块自动的均衡这两个输入的信息权重,计算给出这一层的输出结果,这个结果将继续上采样将它尺寸放大一倍,并重复上述过程,直到得到和原始图像尺寸相同的结果,这样我们的上采样过程得到四层结果;
[0063] S4:四层结果通过全局平均池化,再将他们输入到分类层中,计算得到最后的分类结果。
[0064] 所述S1中颜色分割等技术对图像进行预处理的具体方法为:
[0065] R1:对每一种类的柴胡种子图像进行分析,将图像从RGB空间转化到HSV 空间;
[0066] R2:在HSV空间下,通过种子与周围背景颜色的色调,饱和度,明度差异分别设置色调阈值,饱和度阈值,明度阈值;
[0067] R3:通过划定阈值,将处于阈值范围之外的像素化为0,再对处理完成的图片进行人工审查,去除分割效果差且不合要求的图片;
[0068] 所述S2中卷积池化复合操作的具体方法为:
[0069] 将图像分别通过两个操作。
[0070] 操作一,先通过一个3x3的卷积层,再通过一个BN层,然后通过激活函数 relu,再通过一个3x3的卷积层,再通过一个BN层,再通过激活函数relu,得到的结果和操作一的输入相加,得到操作一的输出。
[0071] 操作二,先通过一个3x3的卷积层,再通过一个BN层,然后通过激活函数 relu,再通过一个3x3的卷积层,再通过一个BN层,再通过激活函数relu,通过一个stride为2的1x1的卷积层,得到的结果和激活函数relu相加,再使用relu函数激活,得到操作二的输出。
[0072] 本发明将有多重注意金字塔网络的多尺度建模的思想,应用于柴胡种子的分类任务与其他现有的方法相比,可以良好的分类性能,我们采用针对多分类任务的多个评价指标进行评价,分别为精度(ACC)宏准确率(Macro‑P)宏召回率(Macro‑R)和宏F1分数(Macro‑F1),并且我们在处理好的测试集上进行验证,并且和主流的其他用于分类的神经网络进行了对比。具体性能参数请参见表1表1不同方法的分类效果比较表
[0073]
[0074] 参见图2,所述S3中注意力模块自动的均衡这两个输入的信息权重具体方法为:
[0075] 第l层特征图记为 Xl通过一个1×1的卷积层转化为右边自下而上的路径称为语义流,其第l层的特征图记为
第l层的输出均为
[0076]
[0077] 其中,fk×k表示k×k的卷积层,Fup表示上采样运算,attention表示注意力模块。对P′l进行3×3的卷积运算平滑后以减小了上采样的混叠效应,得到 为l级的输出。
[0078] 注意力模块分两个模块空间协同注意力机制,通道竞争注意力机制。对于空间协同注意机制,我们把横向连接输入来得特征图Xl通过一个1×1的卷积层转化的结果称为同时我们称经过上采样运算特征图的Pl称为Ul, 首先X′l,Ul经过信道纬度的全局平均池化得到
[0079]
[0080] 将它们连接起来形成 再输入一个3×3,步长为2的卷积层,采用relu激励函数,经过resize层,在通过一个激励卷积层采用sigmoid 卷积层得到空间协同注意的结果。即
[0081]
[0082] 如此便得到了每个空间位置的注意力掩码
[0083] 对于信道方面的竞争注意,首先进行一个空间纬度上的聚合,将特征图压缩到信道纬度上,得到
[0084]
[0085] 而后将他们连接起来得到 其中[·]表示信道纬度上的连接,再经两个全1×1×2C
连接层得到信道方向的权重Sl∈R ,第一个全连接层使用relu激活函数,第二个全连接层使用的sigmoid激活函数,其中参数
[0086]
[0087] 分成之后用来结合空间协同注意。在CA和SCA结合的时候,采用张量乘法
[0088]
[0089]
[0090] 此处, 就是对语义流和空间流的重新分配的权重。
[0091]
[0092] 其中在这里 是按元素相乘,如此第l层的输出为:
[0093] Pl=f3×3(P′l)
[0094] 参见图3,本发明在柴胡种子处理图像时使用了基于形态学滤波的图像分割。
[0095] 集合B表示描述图像的像素点的集合,对集合B按照点z=(z1,z2)平移,我们称之为(B)z其定义如下
[0096] (B)z={c|c=b+z,b∈B}
[0097] (B)z其表达的意义是B中坐标(x,y)被(x+z1,y+z2)代替的点的集合。有了平移的符号描述下面介绍腐蚀和膨胀。设图面中两集合A和B,我们将B对A的腐蚀定义为[0098]
[0099] 实际应用中B是较小的结构元,A为图像的掩膜。本文中选择的B为3×3的小正方形作为结构元B。腐蚀的作用,腐蚀实际上起到了使图像按照一定规律变小的作用,在这个过程中,腐蚀客观上起到了去掉毛刺、细线的作用。
[0100] A和B是两个集合,定义B对A的膨胀操作为
[0101]
[0102] 其中A,B的与腐蚀操作指的是一样的。膨胀是按照一定的规律使得物体变大的操作,最简单的膨胀操作的应用场景就是填充细小沟壑,或者是填充比结构元B小的空洞。
[0103] 本文中使用数据处理使用形态学方法进行孔洞填充,取反的图像进行空洞填充可以使去掉小毛刺。涉及到主要的算法是计算连通分量,提取连通分量之后,再使用连通分量的面积来判断哪些是空洞,哪些是种子图像。令A为包含多个连通分量的集合,并形成一个大小与包含A的阵列的大小相同的阵列X0,X0上某些点被置为1,这些点是对应于A中某个连通分量的已知的位置,除了这些点,其他的点值均被置为1。完成这些操作后,我们按照以下公式进行计算,就可以得到我们的连通分量,并且可以计算每个连通分量的面积。
[0104]
[0105] 当Xk=Xk‑1时,则说明我们已经得到图中所有的联通分量。获得连通分量之后,设置面积阈值,则可以去掉图中的小的干扰和种子上的空洞。
[0106] 通过形态学滤波,主要是对颜色分割后的二值图像进行了修饰,该二值图像的生成规则如下,对其中每一个像素点如果原图对应位置如果其HSV空间的值在我们设置的阈值范围内则其值为1,否则设置为0,如此我们得到了一个带有毛刺和空洞的二值图像,接下来进行膨胀操作,切断种子内部的黑色和外面大面积黑色的联系,使它们成为孔洞,再利用上面介绍的形态学空洞填充算法,对其进行填充。
[0107] 经过以上的操作,我们得到了一个二值图像作为图像掩膜,然后在原图上,如果掩膜上某个像素点的值为1,那么我们保留原图上像素点RGB的值,反之如果掩膜上某个像素点的值为0,那么我们将原图上对应位置的点的RGB值置为0。
[0108] 最后有一些小的杂质点,通过编写脚本,通过人工去除。最后的得到了图像处理后的分割后的图像。
[0109] 参见图4,本发明的对柴胡种子分类完成后绘制的热力图;绘制的具体原理如下:
[0110] 为了明确网络学习柴胡种子的图片的关注点,我们选用了Grad‑Cam方法画出热力图,将训练的结果可视化,在测试集上测试时,验证每个测试图片是否聚焦在种子上。
[0111] CAM指的是class activation mapping,其可以将卷积神经网络如何完成分类任务可视化的展现在我们面前,其过程如下,我们把分类器去掉,转而在特征提取器后面添加一个全局平均池化层(Global Average Pooling,GAP)紧接着输入一个具有分类类别数n的全连接层,后面再接分类层假设共有C个类, CNN的最后一层的卷积层往往富含高层次语义信息,因此对其进行可视化。
[0112] 接下来需要对修改后的卷积神经网络进行训练,训练完成后,对于每一类(比如第c类)的在分类层的神经元,上一层的全连接层对其提供了n个权重, 另外我们假设最后一层卷积层得到的n个特征图为A1,A2,…,An, 于是热力图(class activation mapping)L可以通过加权计算的到。
[0113]
[0114] 此方法简单但是有个巨大的缺陷,每次进行画热力图的时候都要重新对卷积神经网络进行训练,往往费时费力,消耗大量的计算资源。
[0115] 为此,我们选用Grad‑cam可视化对我们的训练结果进行可视化分析。可以克服重新训练的问题。我们假设第c类的的分类的概率为Sc,GAP的权重为 特征图大小为c1×c2,Z=c1×c2,第i个特征图第k行第j列的像素值为 这样权重 用以下公式即可计算得到:
[0116]
[0117] 然后我们可以计算出grad‑cam的热力图(class activation mapping)可以按照如下公式计算:
[0118]
[0119] 使用relu激活函数的原因是我们只关注大于零的部分而不关注小于零的部分。下面我们进行grad‑cam部分的公式推导。我们称全局平均池化的输出为
[0120]
[0121] CAM计算最后的分类得分按照
[0122]
[0123] 因此
[0124]
[0125] 又因为
[0126]
[0127] 从上面的Sc定义上,我们知道
[0128]
[0129] 代入上面的式子
[0130]
[0131] 所以有
[0132]
[0133]
[0134] 得到
[0135]
[0136] 如此,可以得知,在特征图归一化的情况下,
[0137]
[0138] 利用上式,我们可以避免对网络的重新训练,快速的计算出每张图片的热力图,由于我们的APN,在最后有四个并列的卷积层,四个卷积层代表的是不同尺度的信息,最终决策是将它们之间的信息融合得到的。画热力图采取的方式是,将每个卷积层都作为最后的卷积层分别计算出梯度,进而计算出 最后取它们的均值,乘一比例因子,附加于原图上。
[0139] 以上内容仅为说明本发明的技术思想,不能以此限定本发明的保护范围,凡是按照本发明提出的技术思想,在技术方案基础上所做的任何改动,均落入本发明权利要求书的保护范围之内。