细粒度检测任务是对具有相同结构, 但是存在一些细微差异的对象进行识别, 这需要提取表征对象细微差异的特征才能实现正确的识别.传统的特征表示有灰度特征、颜色特征[1]、梯度直方图特征[2]、费舍尔向量特征[3]、核描述子[4]等特征, 但这些传统的特征在细粒度识别方法上都无法取得良好的效果.随着深度学习的兴起, 产生了一些与深度学习相关的细粒度分类和检测的成果, 如Yang等[5]使用GoogleNet[6]研究了CompCars数据集在各卷积模型下的精细分类效果.Sochor等[7]提出一种使用车辆的3D矩形标注信息,及视角向量等附加信息作为卷积神经网络的输入,来进行车型精细识别的方法, 取得了良好的效果.Lin等[8]通过车辆的部分零件定位信息拟合出车辆的3D模型, 从而将车辆的3D信息用于细粒度分类, 取得了较好的分类效果.Sermanet等[9]研究了注意力模型在细粒度分类中的应用.Xiao等[10]研究了在卷积神经网络中用两级注意力模型来进行细粒度分类的工作, 从而有效避免了使用代价较大的包围盒标注以及部分零件标注的工作.Gavves等[11]研究了费舍尔向量表征目标部分零件定位信息来进行细粒度分类的方法, 取得了不错的结果.Berg等[2]对每对关键点学习一个描述子, 从而学习到一系列有高度差异性的中间特征用于识别.Chai等[3]发现联合学习局部定位和前景分割信息有助于细粒度分类任务.Branson等[12]发现集成低层和高层的特征可以有效地改善细粒度识别.Simon等[13]提出一系列神经激活的方法, 可以通过无监督学习来学习部分零件模型.Krause等[14]在无监督学习的条件下, 通过共同分割的方法生成部分零件来进行细粒度的识别.
随着神经网络模型的不断优化, 目标检测领域的研究也取得了很多成果, 特别是基于区域卷积神经网络的目标检测算法, 即RCNN[15].在此基础上出现了SPPNET[16]、FAST-RCNN[17]、FASTER-RCNN[18]等改进的算法.从传统的目标检测算法到最新的FASTER-RCNN等目标检测算法和模型的快速更新, IMAGENET数据集的检测精度和检测时间得到很大提升.最重要的识别精度、定位准确性、实时性几个方面都得到了较大的提升.还有一些深度学习目标检测的算法采用回归的方法, 如YOLO[19]和SSD[20].YOLO将输入图像分成S×S个格子, 每个格子负责检测落入该格子的物体, 选择目标窗口和原来标记窗口的交叠率最高的检测框作为物体检测输出.SSD是基于一个前向传播CNN网络, 产生一系列固定大小的包围盒检测框, 判断每一个检测框中包含物体实例的可能性, 最后采用一个非极大值抑制算法得到最终的预测结果.
Sun等[21]研究了在FASTER-RCNN框架下将样本送入卷积网络进行训练,并对输入卷积网络训练的图像做多尺度缩放,又利用串联多个卷积特征层的池化结果作为最后的池化层做人脸细粒度识别的任务.Zhang等[22]研究了基于部分区域的卷积神经网络检测方法,并基于部分区域卷积网络的特征进行细粒度检测, 即将RCNN改进用于细粒度检测, 取得了很好的结果.唐斯琪等[23]研究了一种基于特征图融合的多列卷积神经网络的人群密度估计算法, 取得了较好的效果.朱威威等[24]提出了一种鲁棒性自适应模糊C均值算法,得到了更好的图像分割质量.
为了避免图像背景对细粒度识别算法的影响, 以及定位表征目标物体全局信息和局部特征信息的多尺度区域, 从而构建并组合更能表征目标特性的高维度特征向量.本文在FASTER-RCNN框架下, 在文献[22]的基础上,提出一种基于多尺度区域卷积特征的细粒度分类算法.首先利用多尺度区域数据集对FASTER-RCNN框架下的模型进行微调训练,产生多个网络模型, 检测出物体的多尺度区域特征, 然后使用包围盒约束和海伦约束将多尺度区域特征整合在一起,训练支持向量机分类器进行细粒度的图像识别.
1 多尺度区域特征分类算法 1.1 多尺度区域信息标注为了微调多个区域尺度的FASTER-RCNN的网络模型, 需要对训练数据进行多尺度目标区域标注.将检测的目标区域分为3个尺度, 最内层的尺度为p0区域, 中间的尺度为p1区域, 最外围的部分为完整的目标区域.目标区域包含p1和p0区域, p1区域包含p0区域.其中最内层p0区域的标注信息和中间部分p1区域的标注信息分别为
$ \left\{ {\begin{array}{*{20}{l}} {x_1^{{p_0}} = {x_1} + 0.25\left( {{x_2} - {x_1}} \right)}\\ {y_1^{{p_0}} = {y_1} + 0.25\left( {{y_2} - {y_1}} \right)}\\ {x_2^{{p_0}} = {x_1} + 0.75\left( {{x_2} - {x_1}} \right)}\\ {y_2^{{p_0}} = {y_1} + 0.75\left( {{y_2} - {y_1}} \right)} \end{array}, \;\left\{ {\begin{array}{*{20}{l}} \begin{array}{l} x_1^{{p_1}} = {x_1} + 0.15\left( {{x_2} - {x_1}} \right)\\ y_1^{{p_1}} = {y_1} + 0.15\left( {{y_2} - {y_1}} \right) \end{array}\\ {x_2^{{p_1}} = {x_1} + 0.85\left( {{x_2} - {x_1}} \right)}\\ {y_2^{{p_1}} = {y_1} + 0.85\left( {{y_2} - {y_1}} \right)} \end{array}} \right.} \right., $ |
式中:x1, y1, x2, y2分别为目标物体最外围区域的左下角和右上角的横、纵坐标值;x1p0, y1p0, x2p0和y2p0分别为目标物体中心部分p0标注信息的左下角和右上角的横、纵坐标值;x1p1, y1p1, x2p1和y2p1分别为目标物体中心部分p1标注信息的左下角和右上角的横、纵坐标值.算法设计的最少尺度的区域标注信息, 即最内层的p0区域基本上恰好只包含目标的像素信息或者说只含有极少量的背景信息, 最外围的区域标注信息即为目标整体的图像标注信息, 为了更好地应用包围盒约束算法和海伦约束算法, 使得3个尺度的标注信息的边界依次存在一定的距离, 中间层的标注边缘选用的是位于最外围和最内层中间的标注信息的边界距离几乎相等的位置, 为了更好地降低背景的影响, 设定中间层的标注边界稍偏向最内层一些.
1.2 包围盒约束的算法根据多尺度区域互相包含的关系, 可以对检测的结果进行包围盒约束算法优化.为有效筛选出准确包含多尺度区域信息的检测框, 并使得检测出的多尺度区域检测框的质量和检测的定位准确度有所提高, 需要设计p1区域包含在物体目标区域内, p0区域包含在p1区域内, 即
$ {T_m}(u) = \left\{ {\begin{array}{*{20}{l}} {1, ~~~如果区域u各边界落在区域m各边界内ε个像素}\\ {0, ~~~其他} \end{array}} \right.~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~, $ |
$ {\mathit{\Delta }_{{\rm{bex}}}}(X) = {T_{{\rm{box}}}}\left( {{p_0}} \right){T_{{\rm{box}}}}\left( {{p_1}} \right){T_{{p_1}}}\left( {{p_0}} \right) \ne 0. $ |
设置ε值为10, 选择满足上述关系的检测框,并且优先选择FASTER-RCNN检测的包含目标物体得分概率分数依大到小排序靠前的检测框.式中box表示检测到的完整目标区域.
1.3 海伦约束算法由于包围盒约束仅能确定各尺度区域的包含关系, 无法很好将所有尺度区域的检测框中心点约束在同一个像素点.各尺度区域检测框的中心点即为各区域检测框对角线的交点, 而将所有尺度检测框中心点约束在同一个像素点可以求出检测位置更精确的检测框, 平面上不在同一条直线上的3个点唯一确定一个外接圆, 故而首先计算多尺度区域的中心点坐标.目标物体的检测中心点坐标计算公式、目标物体中间层区域检测框p1的中心点坐标公式以及目标物体最内层区域检测框p0的中心点坐标公式分别为
$ \left\{ {\begin{array}{*{20}{l}} {{x_c} = \frac{{{x_1} + {x_2}}}{2}}\\ {{y_c} = \frac{{{y_1} + {y_2}}}{2}} \end{array}, \left\{ {\begin{array}{*{20}{l}} {x_c^{{p_1}} = \frac{{x_1^{{p_1}} + x_2^{{p_1}}}}{2}}\\ {y_c^{{p_1}} = \frac{{y_1^{{p_1}} + y_2^{{p_1}}}}{2}} \end{array}, \left\{ {\begin{array}{*{20}{l}} {x_c^{{p_0}} = \frac{{x_1^{{p_0}} + x_2^{{p_0}}}}{2}}\\ {y_c^{{p_0}} = \frac{{y_1^{{p_0}} + y_2^{{p_0}}}}{2}} \end{array}} \right.} \right.} \right.. $ |
各中心点坐标之间的距离分别用a、b、c表示.定义a为最内层区域p0中心点和最外围的目标整体区域中心点的距离; 定义b为中间层区域p1中心点和最外围的目标整体区域中心点的距离; 定义c为最内层区域p0中心点和中间层区域p1中心点的距离.计算各中心点坐标之间的距离公式分别为
$ \begin{array}{l} a = \sqrt {{{\left( {{x_c} - x_c^{{p_0}}} \right)}^2} + {{\left( {{y_c} - x_c^{{p_0}}} \right)}^2}} , b = \sqrt {{{\left( {{x_c} - x_c^{{p_1}}} \right)}^2} + {{\left( {{y_c} - y_c^{{p_1}}} \right)}^2}} , \\ c = \sqrt {{{\left( {x_c^{{p_1}} - x_c^{{p_0}}} \right)}^2} + {{\left( {y_c^{{p_1}} - y_c^{{p_0}}} \right)}^2}} . \end{array} $ |
各尺度区域中心点组成的三角形的周长的一半用p表示, 计算连接各中心坐标的三角形的外接圆面积用S表示, 即
$ p=(a+b+c) / 2, \quad S=\sqrt{p(p-a)(p-b)(p-c)}. $ |
设置面积S的最大值为120,即计算出的面积S的大小不能超过120, 挑选FASTER-RCNN提取的候选框中包含物体得分概率分数排序靠前,且满足海伦检测约束条件的目标物体和各尺度区域检测框.
1.4 多尺度区域特征分类器在用包围盒约束算法和海伦约束算法进行多尺度目标定位优化后, 采用多尺度区域模型分别提取目标的3个尺度区域的特征.每个尺度区域的特征为4 096维, 将3个4 096维的特征串联组合后形成12 288维的特征, 然后使用支持向量机训练分类器.
2 实验结果实验的平台为Ubuntu16.04系统下的Matlab R2015b, 所有的实验均在配置为Intel Core i5-4590 CPU, GTX1070 GPU, 内存为8 GB的台式电脑上完成.实验中所用的车型数据集为CompCars数据, 实验共使用其中的431个类型不同的汽车模型, 共计20 673张图片, 随机抽取70%的图片作为训练数据集, 30%的图片为测试数据集.实验所用的鸟类数据集为Caltech-UCSD鸟类数据集, 共使用鸟类数据集图片11 788张, 共200个类别.其中50%的图片作为训练集, 50%的图片作为测试集.实验所用的网络模型为ImageNet数据集上预训练的牛津大学几何视觉组(visual geometry group, VGG)的VGG-19模型.在此模型的基础上进行网络微调得到3个尺度区域特征的模型.微调训练的参数采用分阶段学习率, 在模型训练15万次迭代之前采用0.001的学习率, 在模型训练15万次迭代之后设置学习率为0.000 1.
图 1实线矩形框和虚线矩形框分别显示了3个尺度的目标定位结果和采用包围盒和海伦约束前后的结果.图 1(a)和(d)表示整体目标区域定位的结果,图 1(b)和(e)表示p1区域定位的结果,图 1(c)和(f)表示p0区域定位的结果.图 1(a)的车型图片的整体目标区域定位的结果存在偏差, 图 1(d)和(e)的鸟类图片的整体目标区域定位的结果存在偏差, 采用2种约束优化的定位的结果用虚线矩形框显示, 可以看出约束优化后的结果定位更加精确.从图 1(c)和(f)的区域检测结果可以看出,最小尺度的区域基本上消除了背景的影响或者只有少量的背景信息.并且由图可知算法构建的最小尺度的特征信息很好反映了目标物体中心矩形区域的局部信息, 算法构建的中间层区域特征信息反映了较大范围的目标局部信息, 算法构建的最大尺度的特征信息即为目标的全局信息, 是一种比较普适的方法.
![]() |
图 1 目标检测约束算法前后效果图 Fig. 1 Pictures before and after target detection constraint algorithm |
本文算法在Caltech-UCSD鸟类数据集和CompCars车型数据集精细化分类的结果如下所述.在Caltech-UCSD鸟类数据集中只用单个目标整体区域的特征的分类准确率为0.753, 仅使用包围盒约束算法优化并将3个尺度区域特征组合训练分类器进行分类的准确率为0.791, 仅使用海伦约束算法优化的分类准确率为0.805;组合包围盒约束和海伦约束优化后的分类准确率为0.828.在CompCars车型数据集上只用单个目标整体区域的特征的分类准确率为0.852, 仅使用包围盒约束算法优化并将3个尺度区域特征组合训练分类器进行分类的准确率为0.898, 仅使用海伦约束算法优化的分类准确率为0.903, 组合包围盒约束和海伦约束优化后的分类准确率为0.935.实验表明提出的算法有效地构建了高维度的特征信息,提高了细粒度分类的准确度, 提出的包围盒约束算法和海伦约束算法能进一步提高细粒度分类的准确率, 相比未使用高维度特征信息的包围盒约束算法和海伦约束算法之前, 在Caltech-UCSD鸟类数据集上准确率提高7.5%, 在CompCars数据集上准确率提高8.3%.
本文算法与其他算法在Caltech-UCSD鸟类数据集上的对比结果如下所述.Berg等[2]采用梯度直方图特征方法的准确率为0.568;Chai等[3]采用费舍尔向量特征方法的准确率为0.594;Gavves等[11]采用费舍尔向量表征目标部分零件定位信息来进行细粒度分类的准确率为0.627;Lin等[22]采用基于部分区域的卷积神经网络检测方法和基于部分区域卷积网络特征的准确率为0.739;Branson等[12]采用集成底层和高层特征的方法的准确率为0.757;Simon等[13]采用一系列神经激活的方法, 并通过无监督学习来学习部分零件模型的方法的准确率为0.810;Krause等[14]采用在无监督学习的条件下, 通过共同分割的方法生成部分零件来进行细粒度的识别的准确率为0.820;本文算法的准确率为0.828, 比Zhang等[8]的算法提高了8.9%.相比于其他的性能较优的算法, 如Branson[12]、Simon[13]、Krause[14]的算法也有一个较好结果,验证了本文算法的有效性.本文算法与其他算法在CompCars数据集上的对比结果如下所述.其中AlexNet的分类准确率为0.819, CaffeNet的分类准确率为0.816, GoogLeNet的分类准确率为0.912, 本文算法比最优的GoogLeNet模型算法的结果多了2.3%, 在CompCars数据集上取得了很好的结果, 也验证了本文算法的有效性.
3 结论本文提出了一种多尺度区域特征的精细目标分类方法.该方法通过训练3个尺度的区域特征卷积网络,并检测3个尺度的区域位置, 通过包围盒约束和海伦约束方法优化目标定位区域, 然后提取3个尺度的区域特征训练支持向量机分类器.在Caltech-UCSD鸟类数据集上和CompCars数据集上的实验表明,采用多尺度区域标注信息分别训练卷积网络模型来进行多尺度区域特征分类算法是有效的.采用包围盒约束算法和海伦约束算法的目标分类算法在Caltech-UCSD鸟类数据集及CompCars数据集上准确率都有较大的提高.相比于AlexNet、CaffeNet在CompCars数据集上实验的算法, 优势更加明显, 说明本文提出的算法是非常有效的.后续研究考虑加入其他辅助信息(如颜色信息)进行细粒度的任务研究.
[1] |
GOERING C, RODNER E, FREYTAG A, et al. Nonparametric part transfer for fine-grained recognition[C]// Computer Vision and Pattern Recognition. Washington, 2014: 2489-2496. https://www.researchgate.net/publication/286384383_Nonparametric_Part_Transfer_for_Fine-Grained_Recognition
( ![]() |
[2] |
BERG T, BELHUMEUR P N. POOF: Part-based one-vs.-one features for fine-grained categorization, face verification, and Attribute Estimation[C]// Computer Vision and Pattern Recognition. Washington, 2013: 955-962. https://www.researchgate.net/publication/261259204_POOF_Part-Based_One-vs-One_Features_for_Fine-Grained_Categorization_Face_Verification_and_Attribute_Estimation
( ![]() |
[3] |
CHAI Y, LEMPITSKY V, ZISSERMAN A. Symbiotic segmentation and part localization for fine-grained categorization[C]// IEEE International Conference on Computer Vision. Washington, 2013: 321-328. https://www.researchgate.net/publication/262243757_Symbiotic_Segmentation_and_Part_Localization_for_Fine-Grained_Categorization
( ![]() |
[4] |
ZHANG N, FARRELL R, IANDOLA F, et al. Deformable part descriptors for fine-grained recognition and attribute prediction[C]// IEEE International Conference on Computer Vision. Washington, 2014: 729-736. https://www.researchgate.net/publication/257052073_Deformable_Part_Descriptors_for_Fine-Grained_Recognition_and_Attribute_Prediction
( ![]() |
[5] |
YANG L, LUO P, CHEN C L, et al. A large-scale car dataset for fine-grained categorization and verification[C]// Computer Vision and Pattern Recognition.Washington, 2015: 3973-3981. https://www.researchgate.net/publication/308872089_A_Large-Scale_Car_Dataset_for_Fine-Grained_Categorization_and_Verification
( ![]() |
[6] |
SZEGEDY C, LIU W, JIA Y, et al. Going deeper with convolutions[C]//Computer Vision and Pattern Recognition.Washington, 2015: 1-9. https://www.researchgate.net/publication/265787949_Going_Deeper_with_Convolutions
( ![]() |
[7] |
SOCHOR J, HEROUT A, HAVEL J. BoxCars: 3D boxes as CNN input for improved fine-grained vehicle recognition[C]// IEEE Conference on Computer Vision and Pattern Recognition. Washington, 2016: 3006-3015.
( ![]() |
[8] |
LIN Y L, MORARIU V I, HSU W, et al. Jointly optimizing 3D model fitting and fine-grained classification[C]//European Conference on Computer Vision. Berlin, 2014: 466-480. https://link.springer.com/chapter/10.1007%2F978-3-319-10593-2_31
( ![]() |
[9] |
SERMANET P, FROME A, REAL E. Attention for fine-grained categorization[J]. Computer science, 2014, 10(1): 224-300. ( ![]() |
[10] |
XIAO T, XU Y, YANG K, et al. The application of two-level attention models in deep convolutional neural network for fine-grained image classification[C]// Computer Vision and Pattern Recognition. Washington, 2015: 842-850. https://www.researchgate.net/publication/268747867_The_Application_of_Two-level_Attention_Models_in_Deep_Convolutional_Neural_Network_for_Fine-grained_Image_Classification
( ![]() |
[11] |
GAVVES E, FERNANDO B, SNOEK C G M, et al. Fine-grained categorization by alignments[C]//IEEE International Conference on Computer Vision. Washington, 2013: 1713-1720. https://www.researchgate.net/publication/258510738_Fine-Grained_Categorization_by_Alignments
( ![]() |
[12] |
BRANSON S, VAN H G, BELONGIE S, et al. Bird species categorization using pose normalized deep convolutional Nets[C]//British Machine Vision Conference. Berlin, 2014: 87-101. https://www.researchgate.net/publication/263048868_Bird_Species_Categorization_Using_Pose_Normalized_Deep_Convolutional_Nets?ev=auth_pub
( ![]() |
[13] |
SIMON M, RODNER E. Neural activation constellations: unsupervised part model discovery with convolutional networks[C]//IEEE International Conference on Computer Vision. Washington, 2016: 1143-1151.
( ![]() |
[14] |
KRAUSE J, JIN H, YANG J, et al. Fine-grained recognition without part annotations[C]// IEEE Conference on Computer Vision and Pattern Recognition.Washington, 2015: 5546-5555.
( ![]() |
[15] |
GIRSHICK R, DONAHUE J, DARRELL T, et al. Rich feature hierarchies for accurate object detection and semantic segmentation[C]//IEEE Conference on Computer Vision and Pattern Recognition. Washington, 2014: 580-587.
( ![]() |
[16] |
HE K, ZHANG X, REN S, et al. Spatial pyramid pooling in deep convolutional networks for visual recognition[J]. IEEE transactions on pattern analysis and machine intelligence, 2015, 37(9): 1904. ( ![]() |
[17] |
GIRSHICK R. Fast R-CNN[C]// IEEE International Conference on Computer Vision. Washington, 2015: 1440-1448.
( ![]() |
[18] |
REN S, HE K, GIRSHICK R, et al. Fast R-CNN: towards real-time object detection with region proposal networks[J]. IEEE transactions on pattern analysis and machine intelligence, 2015, 39(6): 1137-1149. ( ![]() |
[19] |
REDMON J, DIVVALA S, GIRSHICK R, et al. You only look once: unified, real-time object detection[C]//IEEE Conference on Computer Vision and Pattern Recognition. Washington, 2016: 779-788. https://www.researchgate.net/publication/278049038_You_Only_Look_Once_Unified_Real-Time_Object_Detection
( ![]() |
[20] |
LIU W, ANGUELOV D, ERHAN D, et al. SSD: single shot multibox detector[C]//European Conference on Computer Vision. Berlin, 2016: 21-37.
( ![]() |
[21] |
SUN X, WU P, HOI S C H. Face detection using deep learning: an improved faster R-CNN approach[J]. Neurocomputing, 2018, 299: 42-50. ( ![]() |
[22] |
ZHANG N, DONAHUE J, GIRSHICK R, et al. Part-based R-CNNs for fine-grained category detection[M]. Cham: Springer Intermational Publishing, 2014.
( ![]() |
[23] |
唐斯琪, 陶蔚, 张梁梁, 等. 一种多列特征图融合的深度人群计数算法[J]. 郑州大学学报(理学版), 2018, 50(2): 69-75. ( ![]() |
[24] |
朱威威, 赵岩松, 李艳灵. 一种基于集合划分的鲁棒性自适应模糊聚类分割算法[J]. 信阳师范学院学报(自然科学版), 2019, 32(1): 146-152. DOI:10.3969/j.issn.1003-0972.2019.01.026 ( ![]() |