发明内容
针对现有技术的以上缺陷或改进需求,本发明提供了一种基于改进RA- CNN的细粒度图像检测方法与***,基于改进的RA-CNN模型和强监督微调,在对细粒度目标分类进行改进的同时让其输出预测的边界框信息,并经过强监督学习,调整窗口位置,提高目标定位的准确性。
为实现上述目的,按照本发明的一个方面,提供了一种基于改进RA- CNN的细粒度图像检测方法,包括:
S1、对训练图像进行预处理得到其图像向量编码和类别向量编码;
S2、根据训练图像的图像向量编码和类别向量编码,使用改进的RA- CNN模型进行弱监督训练,得到预测的边界框信息;
S3、使用标注有边界框的训练图片作为输入,用步骤S2中预测的边界框与标注的边界框进行对比,计算损失函数进行强监督训练,得到经训练的图像检测模型;
S4、对待检测图像进行灰度处理和向量归一化处理,得到待检测图像的图像向量编码,将待检测图像的图像向量编码输入上述经训练的图像检测模型,得到待检测图像中的物体类别和边界框信息。
本发明的一个实施例中,所述步骤S2中的改进的RA-CNN模型具体为:
改进的RA-CNN模型分为三个尺度,每个尺度都是由一个分类网络和一个定位网络构成;其中,
分类网络的输入是训练图像的图像向量编码,通过提取训练图像的特征并进行分类,输出图片中包含的物体类别;
定位网络负责定位注意力集中的特征区域,然后将该特征区域进行放大操作,送入下一尺度。
本发明的一个实施例中,第一尺度中的定位网络为多注意力建议网络 MAPN,以生成多个空间注意力区域,将这多个空间注意力区域作为预测的边界框信息,第二尺度和第三尺度中的定位网络为注意力建议网络APN。
本发明的一个实施例中,所述三个尺度的训练过程为:
将经过步骤S1处理后的训练图片的图像向量编码送入第一尺度分类网络提取特征,将第一尺度分类网络得到的池化层的特征输出送入第一尺度定位网络得到预测位置信息,再重新输入到第一尺度分类网络,第一尺度分类网络依据预测位置信息经过全连接层后得到第一尺度的预测标签Y1;
将第一尺度输出的多个注意力区域经过放大操作后送入第二尺度的分类网络提取特征,并同样将其得到的池化层的特征输出送入第二尺度定位网络,融合M个图像的预测概率,得到第二尺度的预测标签Y2;
将第二尺度输出的M个注意力区域再经过放大操作后送入第三尺度,具体操作与第二尺度保持一致,得到第三尺度的预测标签Y3;
按照Yi=max{Y1i,Y2i,Y3i}加权三个尺度的预测标签值,得到最终预测,i表示物体类别。
本发明的一个实施例中,所述步骤S2中通过对损失函数求偏导来训练弱监督学习,使用梯度下降法来逐层更新参数,所述损失函数Loss由两部分组成。分别是预测类别损失L1和尺度变换损失L2。
本发明的一个实施例中,所述预测类别损失L
1具体为
其中
其中n是类别数,即训练数据中有n个类别的待检测物体,Y
i (s)表示第s尺度预测原图第i类别出现的概率,
表示第s尺度经过放大后形成的M张图片的第j张图片预测为i类别的概率,取最大值作为该类别的预测值,Y
i *表示图像是否真实含有第i类物体,含有则为1不含则为0,Y
i *的值由步骤S1中的类别向量编码确定。
本发明的一个实施例中,所述尺度变换损失L
2具体为
其中,
代表第s尺度的第m个注意力区域预测正确的准确度P值,加入margin防止损失停滞不更新。
本发明的一个实施例中,所述步骤S3具体为:
目标函数表示为
其中Φ(P)是输入建议边界框的特征向量,w
*是要学习的参数,*表示x、y、w、h,d
*(P)是得到的预测值,以步骤S2中求得的边界框作为初始值,损失函数为
要让预测值跟边界框真实值T
*=(T
x,T
y,T
w,T
h)差距最小,利用梯度下降法对模型进行微调,其中T
x,T
y,分别为真实边界框的中心点的x、y坐标,T
w,T
h分别为真实边界框的长和宽。
本发明的一个实施例中,所述步骤S1具体为:
对训练图像进行灰度处理和向量归一化处理,得到训练图像的图像向量编码;
对训练图像的标签信息,按照所检测类别的one-hot编码进行标注,得到训练图像的类别向量编码;若图片含有该类别,则向量中该类别标注为1,否则为0。
按照本发明的另一方面,还提供了一种基于改进RA-CNN的细粒度图像检测***,包括图像预处理模块、弱监督训练模块、强监督训练模块和图像检测模块,其中:
所述图像预处理模块,用于对训练图像进行预处理得到其图像向量编码和类别向量编码;
所述弱监督训练模块,用于根据训练图像的图像向量编码和类别向量编码,使用改进的RA-CNN模型进行弱监督训练,得到预测的边界框信息;
所述强监督训练模块,用于使用标注有边界框的训练图片作为输入,用所述弱监督训练模块预测的边界框与标注的边界框进行对比,计算损失函数进行强监督训练,得到经训练的图像检测模型;
所述图像检测模块,用于对待检测图像进行灰度处理和向量归一化处理,得到待检测图像的图像向量编码,将待检测图像的图像向量编码输入上述经训练的图像检测模型,得到待检测图像中的物理类别。
本发明的一个实施例中,所述弱监督训练模块中改进的RA-CNN模型具体为:
改进的RA-CNN模型分为三个尺度,每个尺度都是由一个分类网络和一个定位网络构成;其中,
分类网络的输入是训练图像的图像向量编码,通过提取训练图像的特征并进行分类,输出图片中包含的物体类别;
定位网络负责定位注意力集中的特征区域,然后将该特征区域进行放大操作,送入下一尺度。
本发明的一个实施例中,第一尺度中的定位网络为多注意力建议网络 MAPN,以生成多个空间注意力区域,将这多个空间注意力区域作为预测的边界框信息,第二尺度和第三尺度中的定位网络为注意力建议网络APN。
本发明的一个实施例中,所述三个尺度的训练过程为:
将经过图像预处理模块处理后的训练图片的图像向量编码送入第一尺度分类网络提取特征,将第一尺度分类网络得到的池化层的特征输出送入第一尺度定位网络得到预测位置信息,再重新输入到第一尺度分类网络,第一尺度分类网络依据预测位置信息经过全连接层后得到第一尺度的预测标签Y1;
将第一尺度输出的多个注意力区域经过放大操作后送入第二尺度的分类网络提取特征,并同样将其得到的池化层的特征输出送入第二尺度定位网络,融合M个图像的预测概率,得到第二尺度的预测标签Y2;
将第二尺度输出的M个注意力区域再经过放大操作后送入第三尺度,具体操作与第二尺度保持一致,得到第三尺度的预测标签Y3;
按照Yi=max{Y1i,Y2i,Y3i}加权三个尺度的预测标签值,得到最终预测,i表示物体类别。
本发明的一个实施例中,所述弱监督训练模块通过对损失函数求偏导来训练弱监督学习,使用梯度下降法来逐层更新参数,所述损失函数Loss 由两部分组成。分别是预测类别损失L1和尺度变换损失L2。
本发明的一个实施例中,所述预测类别损失L
1具体为
其中
其中n是类别数,即训练数据中有n个类别的待检测物体,Y
i (s)表示第s尺度预测原图第i类别出现的概率,
表示第s尺度经过放大后形成的M张图片的第j张图片预测为i类别的概率,取最大值作为该类别的预测值,Y
i *表示图像是否真实含有第i类物体,含有则为1不含则为0,Y
i *的值由步骤S1中的类别向量编码确定。
本发明的一个实施例中,所述尺度变换损失L
2具体为
其中,
代表第s尺度的第m个注意力区域预测正确的准确度P值,加入margin防止损失停滞不更新。
本发明的一个实施例中,所述强监督训练模块的训练过程具体为:
目标函数表示为
其中Φ(P)是输入建议边界框的特征向量,w
*是要学习的参数,*表示x、y、w、h,d
*(P)是得到的预测值,以所述弱监督训练模块求得的边界框作为初始值,损失函数为
要让预测值跟边界框真实值T
*= (T
x,T
y,T
w,T
h)差距最小,利用梯度下降法对模型进行微调,其中T
x,T
y,分别为真实边界框的中心点的x、y坐标,T
w,T
h分别为真实边界框的长和宽。
本发明的一个实施例中,所述图像预处理模块包括图像向量编码单元和类别向量编码单元,其中:
所述图像向量编码单元,用于对训练图像进行灰度处理和向量归一化处理,得到训练图像的图像向量编码;
所述类别向量编码单元,用于对训练图像的标签信息,按照所检测类别的one-hot编码进行标注,得到训练图像的类别向量编码;若图片含有该类别,则向量中该类别标注为1,否则为0。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,具有如下有益效果:
(1)本发明只需要大量标签数据和少量边界框标注数据就可以训练模型,减轻了现有算法对人工标注边界框的依赖;
(2)本发明可实现多目标检测,通过将第一尺度的定位网络改为 MAPN(MultiAttention network),生成多个空间注意力区域,从而改进了原始RA-CNN只适用于单目标检测的问题。并且由于加入attention机制,机器可以学习到更加细微不同,实现细粒图像分类,使得模型更适合工业应用场景;
(3)原始的RA-CNN模型仅用于分类,本发明通过让第一尺度定位网络输出位置信息,从而对目标进行粗略定位。但是这种粗定位其实有很大的误差,因为仅有类别的弱标注不能够得到充分的信息,无法输出精确的预测位置。于是在改进后的RA-CNN模型后再加入强监督学习对预测的边界框进行微调,从而调整窗口的位置,提高目标定位准确性;
(4)本发明中为了使图片放大具有意义,修改了APN的损失函数,增大了放大图像前后正确预测准确度的差异,并且能够更快收敛。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
目前工业生产如自动光学检测场景和APP超市场景等实际运用,检测目标往往是同一大类的不同子类,例如需要检测不同品牌的可乐时,都同属检测瓶子这个大类,但是需要进一步检测瓶子的外观包装。因此需要运用细粒度识别方法。传统的细粒度图像分类只能输出主体类别,不能解决一个图片包含多个主体信息的场景,且无目标定位能力。针对现有技术的以上缺陷和改进需求,本发明提供了一种基于改进RA-CNN的细粒度图像检测方法,将弱标签定义为关于类别的one-hot编码,代表一个图片所包含的类别信息。基于改进的RA-CNN模型和强监督微调,在对细粒度目标分类进行改进的同时让其输出预测的边界框信息,并经过强监督学习,调整窗口位置,提高目标定位的准确性。
如图1所示,本发明提供了一种基于改进RA-CNN的细粒度图像检测方法,包括:
S1、对训练图像进行预处理得到其图像向量编码和类别向量编码;
对训练图像进行灰度处理和向量归一化处理,得到训练图像的图像向量编码。
对训练图像的标签信息,按照所检测类别的one-hot编码进行标注,得到训练图像的类别向量编码。若图片含有该类别,则向量中该类别标注为1,否则为0。例如,对于自动光学检测,检测锡多、锡少、锡洞、短路、空焊 5个质量检测问题,可以选用一个5*1的零向量,如果图片包含某个类别,就将向量中该位置变换为1。如果在这幅图片中,出现了锡少和短路的问题,那么类别向量编码表示为[0,1,0,1,0]。
S2、根据训练图像的图像向量编码和类别向量编码,使用改进的RA- CNN模型进行弱监督训练,得到预测的边界框信息;具体流程如图2所示,下面进行具体说明:
改进的RA-CNN模型分为三个尺度,每个尺度都是由一个分类网络和一个定位网络构成。
分类网络的输入是训练图像的图像向量编码,通过提取训练图像的特征并进行分类,输出图片中包含的物体类别,类别同样也使用one-hot编码。具体地,分类网络可以使用经典CNN网络,例如VGG16、VGG19、AlexNet、 ResNet等。
定位网络负责定位注意力集中的特征区域,然后将该特征区域进行放大操作,送入下一尺度。本发明实施例中,将特征区域放大,三个尺度间共享相同的网络结构,但每个尺度的网络有各自的参数,从而适应不同分辨率的图像。
直到3个尺度全部完成,融合每个尺度分类网络的判断作为最终判断,并以第一尺度的定位网络输出的边界框作为目标的定位信息。
对于第一尺度,在本发明中,将原本的定位网络APN(Attention ProposalNetwork,注意力建议网络),修改为MAPN(Multi Attention Proposal Network,多注意力建议网络),这样可以生成多个空间注意力区域。本发明将这多个空间注意力区域作为预测的边界框信息。
在原有的定位网络APN中,由于细粒度检测的现有技术都是检测1个物体,因此对于定位也只关心1个注意力空间,本发明将它扩展为多个注意力空间。
训练时,先将经过步骤S1处理后的训练图片的图像向量编码送入分类网络提取特征,将第一尺度分类网络得到的池化层的特征输出送入定位网络(即MAPN)得到预测位置信息,再重新输入到第一尺度分类网络,第一尺度分类网络依据预测位置信息经过全连接层后得到第一尺度的预测标签 Y1。
将第一尺度输出的M个注意力区域经过放大操作后(即对第一尺度输出的区域每一个进行放大。M个输入特征区域,得到M个放大后的特征区域)送入第二尺度的分类网络。第二尺度的定位网络为原本的APN,不再继续得到多个注意力区域。其他操作与上文保持类似,融合M个放大后的特征区域的预测概率,得到第二尺度的预测标签Y2。
将第二尺度输出的M个注意力区域再经过放大操作后送入第三尺度。具体操作与第二尺度保持一致,得到第三尺度的预测标签Y3。
按照Yi=max{Y1i,Y2i,Y3i}加权三个尺度的预测标签值,得到最终预测的类别信息,i表示物体类别。
本发明实施例中,通过对损失函数求偏导来训练弱监督学习,使用梯度下降法来逐层更新参数。
损失函数Loss由两部分组成。分别是预测类别损失L1(intra-scaleclassification loss)和尺度变换损失L2(inter-scale ranking loss).
Loss=L1+L2 (1)
训练网络时采取损失函数交替训练的策略,先固定定位网络参数,训练分类网络直至L1收敛,再固定分类网络的参数,训练定位网络直至L2收敛。
对于L1,由于改进了原始模型使其生成了M个注意力区域,由单目标检测扩展为多目标检测,因此相应的损失函数也要发生变化。具体更改为:
定义n是类别数,即训练数据中有n个类别的待检测物体。公式(3) 中Y
i (s)表示第s尺度预测原图第i类别出现的概率,公式(4)中
表示第s 尺度经过放大后形成的M张图片的第j张图片预测为i类别的概率。取最大值作为该类别的预测值。公式(3)中的Y
i *表示图像是否真实含有第i类物体,含有则为1,不含则为0,Y
i *的值由步骤S1中的类别向量编码确定。很明显L
cls是交叉熵函数。
对于L2损失函数并不考虑标注框与真实值的差距,因为在这一模块,没有真实标注框信息。因此该部分损失函数重点在于检测放大操作是否具有意义。本发明希望放大后的准确度相较于原本有很大提高,这样APN才具有价值。本发明将该部分损失函数进行了修改,为了进一步放大这种差异,并且有助于损失函数收敛。具体公式如下:
代表第s尺度的第m个注意力区域预测正确的准确度P值,加入 margin防止损失停滞不更新,margin一般建议取0.05左右。
S3、使用标注有边界框的训练图片作为输入,用步骤S2中预测的边界框与标注的边界框进行对比,计算损失函数进行强监督训练,得到经训练的图像检测模型;
S2求得的边界框为t
*=(t
x,t
y,t
l),其中(t
x,t
y)表示边界框的中心点坐标,t
l表示边界框长度的一半。S3中目标函数表示为
其中Φ(P)是输入建议边界框的特征向量,w
*是要学习的参数,*表示x、y、w、h,d
*(P) 是得到的预测值。用S2求得的值作为初始值,损失函数为
要让预测值跟边界框真实值T
*= (T
x,T
y,T
w,T
h)差距最小,利用梯度下降法对模型进行微调,其中T
x,T
y,分别为真实边界框的中心点的x、y坐标,T
w,T
h分别为真实边界框的长和宽。
S4、对待检测图像进行灰度处理和向量归一化处理,得到待检测图像的图像向量编码,将待检测图像的图像向量编码输入上述经训练的图像检测模型,得到待检测图像中的物体类别和边界框信息。
进一步地,如图3所示,本发明还提供了一种基于改进RA-CNN的细粒度图像检测***,包括图像预处理模块、弱监督训练模块、强监督训练模块和图像检测模块,其中:
所述图像预处理模块,用于对训练图像进行预处理得到其图像向量编码和类别向量编码;
所述弱监督训练模块,用于根据训练图像的图像向量编码和类别向量编码,使用改进的RA-CNN模型进行弱监督训练,得到预测的边界框信息;
所述强监督训练模块,用于使用标注有边界框的训练图片作为输入,用所述弱监督训练模块预测的边界框与标注的边界框进行对比,计算损失函数进行强监督训练,得到经训练的图像检测模型;
所述图像检测模块,用于对待检测图像进行灰度处理和向量归一化处理,得到待检测图像的图像向量编码,将待检测图像的图像向量编码输入上述经训练的图像检测模型,得到待检测图像中的物理类别。
进一步地,所述弱监督训练模块中改进的RA-CNN模型具体为:
改进的RA-CNN模型分为三个尺度,每个尺度都是由一个分类网络和一个定位网络构成;其中,
分类网络的输入是训练图像的图像向量编码,通过提取训练图像的特征并进行分类,输出图片中包含的物体类别;
定位网络负责定位注意力集中的特征区域,然后将该特征区域进行放大操作,送入下一尺度。
进一步地,第一尺度中的定位网络为多注意力建议网络MAPN,以生成多个空间注意力区域,将这多个空间注意力区域作为预测的边界框信息,第二尺度和第三尺度中的定位网络为注意力建议网络APN。
进一步地,所述三个尺度的训练过程为:
将经过图像预处理模块处理后的训练图片的图像向量编码送入第一尺度分类网络提取特征,将第一尺度分类网络得到的池化层的特征输出送入第一尺度定位网络得到预测位置信息,再重新输入到第一尺度分类网络,第一尺度分类网络依据预测位置信息经过全连接层后得到第一尺度的预测标签Y1;
将第一尺度输出的多个注意力区域经过放大操作后送入第二尺度的分类网络提取特征,并同样将其得到的池化层的特征输出送入第二尺度定位网络,融合M个图像的预测概率,得到第二尺度的预测标签Y2;
将第二尺度输出的M个注意力区域再经过放大操作后送入第三尺度,具体操作与第二尺度保持一致,得到第三尺度的预测标签Y3;
按照Yi=max{Y1i,Y2i,Y3i}加权三个尺度的预测标签值,得到最终预测,i表示物体类别。
进一步地,所述弱监督训练模块通过对损失函数求偏导来训练弱监督学习,使用梯度下降法来逐层更新参数,所述损失函数Loss由两部分组成。分别是预测类别损失L1和尺度变换损失L2。
进一步地,所述预测类别损失L
1具体为
其中
其中n是类别数,即训练数据中有n个类别的待检测物体,Y
i (s)表示第s尺度预测原图第i类别出现的概率,
表示第s尺度经过放大后形成的M张图片的第j张图片预测为i类别的概率,取最大值作为该类别的预测值,Y
i *表示图像是否真实含有第i类物体,含有则为1不含则为0,Y
i *的值由步骤S1中的类别向量编码确定。
进一步地,所述尺度变换损失L
2具体为
其中,
代表第s尺度的第 m个注意力区域预测正确的准确度P值,加入margin防止损失停滞不更新。
进一步地,所述强监督训练模块的训练过程具体为:
目标函数表示为
其中Φ(P)是输入建议边界框的特征向量,w
*是要学习的参数,*表示x、y、w、h,d
*(P)是得到的预测值,以所述弱监督训练模块求得的边界框作为初始值,损失函数为
要让预测值跟边界框真实值T
*= (T
x,T
y,T
w,T
h)差距最小,利用梯度下降法对模型进行微调,其中T
x,T
y,分别为真实边界框的中心点的x、y坐标,T
w,T
h分别为真实边界框的长和宽。
进一步地,所述图像预处理模块包括图像向量编码单元和类别向量编码单元,其中:
所述图像向量编码单元,用于对训练图像进行灰度处理和向量归一化处理,得到训练图像的图像向量编码;
所述类别向量编码单元,用于对训练图像的标签信息,按照所检测类别的one-hot编码进行标注,得到训练图像的类别向量编码;若图片含有该类别,则向量中该类别标注为1,否则为0。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。