中国科学院大学学报  2021, Vol. 38 Issue (1): 130-136   PDF    
FACR:一种快速且准确的车辆识别器
周龙1, 王伟强1, 吕科2     
1. 中国科学院大学计算机科学与技术学院, 北京 101408;
2. 中国科学院大学工程科学学院, 北京 100049
摘要: 现存的细粒度车辆识别器在多个数据集上取得了良好的性能。但这些方法通常运行效率低;而且当图像中存在多辆车时,易受背景干扰,不能准确地定位注意力区域。提出一种快速且准确的车辆识别器FACR,与现存方法相比有如下3个特点:1)其注意力区域定位组件,对图像中背景车辆有很高的鲁棒性;2)网络结构相对简单,在保持准确度相当的情况下,计算效率更高;3)首次使用层次分类的方法对车辆进行细粒度分类,使得单一网络能同时用于识别汽车类型、生产商、汽车型号和生产年份。在Compcars和Stanford Cars标准数据集上进行实验。结果表明,与现存方法相比,FACR在计算效率和分类精度方面具有良好性能。
关键词: 细粒度识别    车辆识别    深度学习    
FACR: a fast and accurate car recognizer
ZHOU Long1, WANG Weiqiang1, LÜ Ke2     
1. School of Computer Science and Technology, University of Chinese Academy of Sciences, Beijing 101408, China;
2. School of Engineering Science, University of Chinese Academy of Sciences, Beijing 100049, China
Abstract: Most existing fine-grained car recognizers have achieved the good performances on various datasets. However, these recognizers usually work inefficiently, and attention regions cannot be accurately localized especially when multiple cars exist. In this work, we propose a fast and accurate car recognizer called FACR, and it has three advantages over the previous approaches as follows. 1) The attention region localization component proposed in this work has high robustness to the background noise in the image. 2) The network structure proposed in this work is relatively simple, and it has higher computational efficiency while maintaining near accuracy. 3) It is the first time to use the hierarchical classification to finely and accurately categorize cars, and to allow a single network to simultaneously recognize car types, manufacturers, car models, and years of manufacture. The experiments are carried out on standard datasets Compcars and Stanford Cars, and the results demonstrate that FACR achieves the competitive performance compared with the-state-of-art methods in terms of both computational efficiency and classification accuracy.
Keywords: fine-grained recognition    car recognition    deep learning    

近年来,细粒度识别在计算机视觉领域受到广泛关注,包括识别鸟类[1]、花类[2]、车型[3-4]、犬种[5]等。由于车型具有独特的分层结构和大量的子类别,细粒度车辆识别成为一个具有挑战性的课题。不同于其他细粒度类别,车辆具有独特的分层结构[6],自顶向下分为4层,即汽车类型、生产商、汽车型号和生产年份,如图 1所示。因此,分层分类对于识别车辆是一个很好的选择。不同于一般的图像识别,细粒度车辆识别目的是识别车辆更精细的子类别,由于细粒度类别存在细微的局部类间差异和巨大的类内方差[7],使得细粒度识别成为一项具有挑战性的任务。如图 2所示,由于细微的局部类间差异和巨大的类内方差,传统的CNN方法将车辆识别错误,而本文方法(FACR, fast and accurate car recognizer)通过定位注意力区域,得到判别性特征,从而准确识别车辆。

Download:
图 1 汽车的分层结构 Fig. 1 The hierarchical structure of cars

Download:
图 2 FACR与传统的CNN对比 Fig. 2 Comparison between FACR and traditional CNN

随着深度学习的成功,它在细粒度车辆识别领域得到应用,并且在判别性特征提取、局部注意力定位和细粒度分类等方面取得显著进展。文献[8]提出一种有效的深度卷积网络,用于从图像中提取判别性特征。文献[3]提出一个注意力候选网络(APN)用于定位注意力区域。虽然这种方法取得了很好的性能,但运行速度相对较慢。同时,文献[7]提出全卷积注意力网络(FCANs)用于细粒度识别任务,其中弱监督增强学习过程用于定位注意力区域。然而,当图像中存在多辆汽车时,这种方法注意力区域定位不够准确。另外,文献[2]和文献[9]利用与图像相关的文本注释帮助提升注意力区域定位的准确性,取得了很好的效果。但是额外的局部位置或文本注释等监督信息往往很难大量地获取到。大多数的细粒度车型识别方法使用单个softmax预测所有的类别,如图 3(a)所示,但是这种方法不适用于细粒度车辆识别。因为类别之间不是互斥关系,不满足softmax操作的前提假设。文献[10]建立WordTree用于分层分类,其中多个softmax操作在不同层次上进行计算,如图 3(b)所示,这为细粒度分类提供了一个全新的思路。

Download:
图 3 两种细粒度分类对比 Fig. 3 Comparison between two fine-grained classifications

与现存工作相比,本文提出一种快速且准确的车辆识别器FACR用于细粒度车辆识别。FACR能有效地从粗粒度到细粒度学习判别性注意力区域和基于区域的特征表示,并且不需要额外的局部或文本作为监督信息。此外,FACR重复使用粗粒度特征图生成细粒度特征图,这使得训练和预测过程变得更高效。

1 本文提出的方法

图 4所示,本文提出的FACR包含3个组件:特征图生成组件、注意力区域定位组件(attention region localization component, ARC)和分层分类组件(hierarchical classification component, HCC)。首先,深度卷积神经网络从给定的图像中提取判别性特征图。然后区域回归器和局部估计器用于定位注意力区域,其中区域回归器预测车辆的位置(红色),特征图上对应的位置裁剪并归一化作为局部估计器的输入,局部估计器输出车辆的局部位置(黄色),归一化后的特征图以相似的方式获得。最后,3种尺度(图像、车辆、局部)的特征图输入分层分类组件进行细粒度分类。

Download:
图 4 FACR的框架结构 Fig. 4 Architecture of FACR framework
1.1 特征图生成组件

现存方法通常采用较为流行的CNN架构[8-11](例如,VGG-16,ResNet-50)生成多尺度特征图。本文设计了一个新的深度卷积神经网络,命名为FeatureNet,并在ImageNet数据集[12]上进行预训练,在细粒度车辆数据集上进行微调。类似于YOLOv3模型[13],使用步长为2的卷积层替代池化层,以避免特征信息丢失过多。图 5(a)显示FeatureNet中残差模块的结构,其中MN分别表示输入输出的通道数。标识为CONV.的矩形框表示卷积层,卷积核大小为K×K,步长为S,< D>表示输入或输出通道数是D,即图中第1个卷积层的输入通道数为M,输出通道数为N/2。图中BN和ReLU分别表示批归一化和线性整流激活函数,表示对应位置元素相加。图 5(b)显示FeatureNet的完整结构。

Download:
图 5 FACR的特征图生成组件 Fig. 5 The feature-map generation component of FACR

给定一张输入图像X,首先将大小归一化到512×512,然后送入FeatureNet生成通道数为1 024、大小为16×16的特征图。整个计算过程可公式化为φ0=f(X; Wc),其中Wc表示FeatureNet里所有的参数,f(·)表示函数映射,φ0表示FeatureNet的输出。

1.2 注意力区域定位组件

注意力区域定位组件ARC包括两个计算步骤。首先,训练区域回归器定位车辆的注意力区域,然后局部估计器进一步估计潜在的局部注意力区域。区域回归器由两个堆叠的全连接层组成,局部估计器由1个通道数为1、卷积核大小为3×3的卷积层和1个softmax层组成。

特征图φ0送入网络中的区域回归器,能够得到车辆注意力区域的预测结果。车辆注意力区域由一个四维向量t=(xr, yr, wr, hr)表示,即

$ \mathit{\boldsymbol{t = }}g\left( {{\varphi _0};{W_{\rm{r}}}} \right). $ (1)

其中:(xr, yr)表示车辆注意力区域左上角点的坐标,(wr, hr)表示车辆注意力区域的宽度和高度,g(·)表示区域回归器里的函数映射,Wr表示区域回归器里的所有参数。在特征图φ0上对应t的位置进行裁剪,并使用双线性插值的方式放大到与φ0同样大小。最终,得到通道数为1 024、大小为16×16的车辆注意力特征图,用φ1表示。

局部估计器以车辆注意力特征图φ1作为输入,经过通道数为1、卷积核大小为3×3的卷积层,将φ1转换为通道数为1、大小为16×16的置信度图。然后置信度图经过一个softmax操作,进一步转换为概率图。最终,在概率图上找到一个大小为8×8且概率和最大的区域,将其定义为局部注意力区域,用p=(xp, yp, wp, hp)表示,即

$ \mathit{\boldsymbol{p}} = h\left( {{\varphi _1};{W_{\rm{p}}}} \right). $ (2)

其中:(xp, yp)表示局部注意力区域左上角点的坐标,(wp, hp)表示局部注意力区域的宽度和高度, h(·)表示局部估计器里的函数映射,Wp表示局部估计器里的所有参数。在特征图φ1上对应p的位置进行裁剪,并使用双线性插值的方式放大到与φ1同样大小。最终,得到通道数为1 024、大小为16×16的车辆注意力特征图,用φ2表示。

虽然本文中只使用了一个局部估计器,但是多个局部估计器能以相似的方式堆叠和计算,得到更多不同大小和尺度的局部注意力特征图φk, k=3, 4, …。譬如,在概率图上选取一个大小为4×4且概率和最大的区域,这样就能得到不同大小的局部注意力特征图,多个局部注意力特征图可并行计算,增加的耗时可忽略不计。

1.3 分层分类组件

经过上述两个组件,可以得到3个不同尺度的特征图φk, k=0, 1, 2。每个φk经过一个包含2 048个神经元的全连接层评估分类置信度,即ck=$\mathscr{R}$k(φk),其中$\mathscr{R}$k表示对应的映射函数。在本文中,全连接层的权值共享使用,因此$\mathscr{R}$0=$\mathscr{R}$1=$\mathscr{R}$2。另外,不同尺度的置信度整合由公式ck=ωkck+(1-ωk)ck-1计算得到,其中k=1, 2,且c0= c0,在本文实验中,ωk=0.5。

ck的2 048个通道中,本文使用前13个通道用于汽车类型的分类,其次200个通道用于生产商的分类,再次1 800个通道用于汽车型号的分类,最后35个通道用于生产年份的分类。在分层分类的过程中,首先ck中用于汽车类型分类的通道,经过一个softmax函数,转换为概率值,其中概率值最大的汽车类型$\mathscr{T}$k作为本层次的分类结果。接着,由图 1中的分层结构,在ck中选出与汽车类型$\mathscr{T}$k相连的子结点对应的通道,即选择出能生产该类型汽车的生产商,并通过softmax函数转换为概率值,可以找到概率值最大的生产商$\mathscr{F}$k,作为本层次的分类结果。在汽车型号和生产年份层次上的分类操作与上述过程一样,最终得到汽车型号的预测值$\mathscr{M}$k和生产年份的预测值$\mathscr{Y}$k。因此,在第k个特征图上计算的最终分类概率可表示为

$ \begin{array}{l} P\left( {{\mathscr{T}_k}, {\mathscr{F}_k}, {\mathscr{M}_k}, {\mathscr{Y}_k}} \right) = \\ P\left( {{\mathscr{T}_k}} \right)P\left( {\frac{{{\mathscr{F}_k}}}{{{\mathscr{T}_k}}}} \right)P\left( {\frac{{{\mathscr{M}_k}}}{{{\mathscr{T}_k}, {\mathscr{F}_k}}}} \right)P\left( {\frac{{{\mathscr{Y}_k}}}{{{\mathscr{T}_k}, {\mathscr{F}_k}, {\mathscr{M}_k}}}} \right). \end{array} $ (3)

通过上述计算,在不同尺度上得到分类预测值$\mathscr{T}$k$\mathscr{F}$k$\mathscr{M}$k$\mathscr{Y}$k。最终的分类结果通过公式q=argmaxkP($\mathscr{T}$k, $\mathscr{F}$k, $\mathscr{M}$k, $\mathscr{Y}$k)计算得到。这就意味着FACR最终的输出为[$\mathscr{T}$q, $\mathscr{F}$q, $\mathscr{M}$q, $\mathscr{Y}$q]。

1.4 损失函数

FACR训练的过程中,损失函数定义为L=Lc+λLa,其中LcLa分别表示分层分类损失和注意力区域定位损失,λ是两种损失之间的平衡因子,在本文实验中,λ=1。

给定一系列训练图像和真值(Xi, Yi, Ti), i=1, …,I,其中YiTi分别表示图像Xi的类别信息和位置信息,且Ti={xi, yi, wi, hi}。分层分类损失Lc是采用传统的平均交叉熵分类损失,即,${L_{\rm{c}}} = - \frac{1}{I}\sum {_{i = 1}^I} \left( {{Y_i}\log {{\hat Y}_i} + \left( {1 - {Y_i}} \right)\log \left( {1 - {{\hat Y}_i}} \right)} \right)$,其中,$\hat Y$i表示第i张图像的类别预测值,即,$\hat Y$i=P($\mathscr{T}$q, $\mathscr{F}$q, $\mathscr{M}$q, $\mathscr{Y}$q)。另外,注意力区域定位损失计算方式为La=$\frac{1}{I}\sum {_{i = 1}^I} {\left\| {{T_i} - {{\hat T}_i}} \right\|^2}$,其中${\hat T_i}$表示第i张图像中车辆位置的预测值。

2 实验

为验证本文提出的FACR的性能,在两个公开的细粒度汽车数据集(Compcars[6]和Stanford Cars[14])上进行了评估实验。这两个数据集的相关信息总结在表 1中。

表 1 数据集的相关信息 Table 1 Related information of datasets

训练过程中,FACR使用ADAM优化算法,批大小设置为32。初始化学习率为0.01,每处理20 000批,学习率乘以0.1,直到学习率为10-4为止。网络模型的训练直到损失收敛为止。

2.1 模型分析

1.1小节,具体介绍了FACR采用的网络结构FeatureNet,它与DarkNet[13]的结构存在很大区别。首先网络层数不同,DarkNet-53有53个卷积层,而FeatureNet有12个残差模块,共36个卷积层;其次网络基础模块不同,DarkNet网络结构中基础模块是卷积层,而FeatureNet的基础模块是残差模块,残差模块的优点在于加速网络收敛,能够有效地减弱深层神经网络结构中梯度消失的影响。虽然DarkNet-53中有Residual结构,但这仅仅是跨层连接操作,其与相邻的卷积层结合构成的模块,也与本文中的残差模块结构不同。因此FeatureNet与DarkNet结构不同。

2.2 计算效率

在工作站上进行实验,评估FACR与现存方法的计算效率。工作站的配置为单个Titan Xp GPU和Intel(R) Xeon(R) CPU E5-1603 v4@2.80 GHz。处理Stanford Cars数据集中的所有图像,并计算平均时间,实验结果总结在表 2中。可以看出FACR分类速度达10.80 fps,有着更高的计算效率。另外,将FACR中的FeatureNet替换为Resnet50,命名为Resnet50+ARC+HCC,其中ARC表示注意力区域定位组件,HCC表示分层分类组件。与FCANs[7]中提取图像特征图的网络架构保持一致,Resnet50+ARC+HCC仍然比现存方法[3, 7, 15]有更高的计算效率。

表 2 计算效率对比 Table 2 Comparison of computational efficiency
2.3 定量结果对比

为了评估FACR方法进行细粒度识别的准确度,在公开可用的数据集(Stanford Cars和Compcars)上进行了对比实验,FACR与现存方法的定量结果对比见表 3表 4表 5

表 3 Stanford Cars对比结果 Table 3 Comparison of the results on Stanford Cars

表 4 Compcars对比结果 Table 4 Comparison of the results on Compcars

表 5 分层分类结果 Table 5 Results of hierarchical classification

Stanford cars数据集提供的汽车类别之间互斥,因此FACR使用单个softmax操作,直接输出分类结果,而没有采用分层分类。在本实验中,根据输入是否有车辆位置信息分为两种输入模式。若有车辆位置信息,则将图像中车辆区域裁剪后作为输入;否则整个图像作为输入。表 3显示,与现存方法相比,FACR有较高的准确度。有、无车辆位置信息两种情况下,FACR仅比PA-CNN准确度稍低。

表 3中,可以看出输入图像是否有车辆位置信息,对FACR不会产生太大的影响,而FCANs在没有车辆位置信息的情况下,性能降低1.6个百分点。原因在于FACR中的区域回归器会对图像中的车辆进行定位,局部估计器进一步在车辆区域提取注意力特征,而FCANs是直接在原图上提取注意力特征,会受到背景车辆的干扰。

表 4显示,在Compcars数据集上与现存方法相比,只在生产商层次上,FACR比Resnet50-swp准确度低,但是在汽车型号层次上的准确度比它高。另外,在汽车型号层次上,FACR比FF-CMnet准确度稍低。因此,在单个层次上进行细粒度车辆识别,FACR具有良好的性能。

在Compcars数据集上,虽然FACR的识别精度并不是最优,但是它可使用单个网络同时识别汽车类型、生产商、汽车型号和生产年份,如表 5所示。而其他方法,只对汽车一部分信息进行识别。如表 4所示,FF-CMnet方法只对汽车型号进行识别,Resnet50-swp方法只对生产商或者汽车型号进行识别。相比于这些方法,FACR更加完善。

此外,Compcars数据集提供了更多的类别信息,包括汽车类型、生产商、型号和生产年份,而汽车类别与生产商之间不互斥,因此FACR使用分层分类的方法进行细粒度车辆识别。表 5显示,FACR在4个细粒度层次上分类实现了94.47%的准确度,而其他方法并没有在数据集上进行此方面的工作。

2.4 消融实验

为了探究FACR定位到的车辆区域注意力特征和局部注意力特征对细粒度车型识别结果的影响,在Stanford Cars和Compcars数据集上设计了几组消融实验。其中√表示使用该类特征,“区域”指的是车辆区域的注意力特征,“局部”指局部注意力特征。在Stanford Cars数据集上进行实验时,输入图像不带有车辆位置信息,这样能更好地验证区域注意力特征的有效性。在Compcars数据集进行实验时,使用分层分类的方法进行细粒度车辆识别,如表 6所示。

表 6 消融实验 Table 6 Ablation experiment

表 6显示,同时使用区域注意力特征和局部注意力特征用于细粒度车型识别,相比于只使用区域注意力特征或只使用局部注意力特征,识别性能均有提升。

2.5 定性结果对比

为了对比FACR与FCANs注意力特征定位的性能,在Stanford Cars数据集上进行了相应的对比实验。图 6显示几组样例图像的对比结果,其中红色的矩形框表示FACR定位的车辆区域注意力特征,黄色的矩形框表示FACR定位的车辆局部注意力特征。蓝色和白色的矩形框表示FCANs定位的多个局部注意力特征。

Download:
图 6 FACR与FCANs定性对比 Fig. 6 Qualitative comparison between FACR and FCANs

图 6(a)可以看出,当输入图像带有车辆位置信息时,FACR的结果(红色和黄色标记的矩形框)和FCANs的结果(蓝色和白色标记的矩形框)都能定位到车辆注意力特征。从图 6(b)可以看出,当输入图像没有车辆位置信息时,FACR的结果总能定位在目标车辆上,而FCANs的结果会因为背景里存在干扰车辆而不准确。说明FACR对背景噪声更鲁棒。

对比图 6(a)6(b)实验结果,可以看出,FACR在两种输入模式下,定位到的注意力区域,基本一致。而FCANs方法在不同输入模式下,定位到的注意力区域,有明显差异。当输入不带车辆位置信息时,更容易受背景车辆的干扰。

3 总结和展望

本文提出一种快速且准确的细粒度车辆识别器FACR。通过准确地定位注意力区域和使用层次分类方法,构建单个网络来实现复杂的细粒度车辆识别。在标准数据集Stanford Cars和Compcars上的实验结果表明,与现有方法相比,FACR方法有较高的计算效率和准确度。

参考文献
[1]
Zhang X P, Xiong H K, Zhou W G, et al. Picking deep filter responses for fine-grained image recognition[C]//2016 IEEE Conference on Computer Vision and Pattern Recognition. IEEE Computer Society, 2016: 1134-1142.
[2]
Reed S, Akata Z, Lee H, et al. Learning deep representations of fine-grained visual descriptions[C]//2016 IEEE Conference on Computer Vision and Pattern Recognition. IEEE Computer Society, 2016: 49-58.
[3]
Fu J L, Zheng H L, Mei T. Look closer to see better: recurrent attention convolutional neural network for fine-grained image recognition[C]//2017 IEEE Conference on Computer Vision and Pattern Recognition. IEEE Computer Society, 2017: 4476-4484.
[4]
Yu Y, Jin Q, Chen C W. FF-cmnet: a cnn-based model for fine-grained classification of car models based on feature fusion[C]//2018 IEEE International Conference on Multimedia and Expo. IEEE Computer Society, 2018: 1-6.
[5]
Khosla A, Jayadevaprakash N, Yao B P, et al. Novel dataset for fine-grained image categorization: stanford dogs[C/OL]. (2011-06-20)[2019-05-17]. http://people.csail.mit.edu/khosla/papers/fgvc2011.pdf.
[6]
Yang L J, Luo P, Loy C C, et al. A large-scale car dataset for fine-grained categorization and verification[C]//IEEE Conference on Computer Vision and Pattern Recognition. IEEE Computer Society, 2015: 3973-3981.
[7]
Liu X, Xia T, Wang J, et al. Fully convolutional attention networks for fine-grained recognition[C/OL]. arXiv: 1603.06765v4, 2017.[2019-04-27]. http://arxiv.org/abs/1603.06765.
[8]
He K M, Zhang X Y, Ren S Q, et al. Deep residual learning for image recognition[C]//2016 IEEE Conference on Computer Vision and Pattern Recognition. IEEE Computer Society, 2016: 770-778.
[9]
He X T, Peng Y X. Fine-grained image classification via combining vision and language[C]//2017 IEEE Conference on Computer Vision and Pattern Recognition. IEEE Computer Society, 2017: 7332-7340.
[10]
Redmon J, Farhadi A. Yolo9000: better, faster, stronger[C]//2017 IEEE Conference on Computer Vision and Pattern Recognition. IEEE Computer Society, 2017: 6517-6525.
[11]
Simonyan K, Zisserman A. Very deep convolutional networks for large-scale image recognition[C/OL]. arXiv: 1409.1556, 2015.[2019-04-20]. https://arxiv.org/abs/1409.1556.
[12]
Russakovsky O, Deng J, Su H, et al. ImageNet large scale visual recognition challenge[J]. International Journal of Computer Vision, 2015, 115(3): 211-252.
[13]
Redmon J, Farhadi A. Yolov3: an incremental improvement[C/OL]. arXiv: 1804.02767, 2018.[2019-04-20]. http://arxiv.org/abs/1804.02767.
[14]
Krause J, Stark M, Deng J, et al. 3d object representations for fine-grained categorization[C]//2013 IEEE International Conference on Computer Vision Workshops. IEEE Computer Society, 2013: 554-561.
[15]
Sermanet P, Frome A, Real E. Attention for fine-grained categorization[C/OL]. arXiv: 1412.7054, 2015.[2019-04-20]. https://arxiv.org/abs/1412.7054.
[16]
Krause J, Jin H L, Yang J C, et al. Fine-grained recognition without part annotations[C]//IEEE Conference on Computer Vision and Pattern Recognition. IEEE Computer Society, 2015: 5546-5555.
[17]
Girshick R, Donahue J, Darrell T, et al. Rich feature hierarchies for accurate object detection and semantic segmentation[C]//2014 IEEE Conference on Computer Vision and Pattern Recognition. IEEE Computer Society, 2014: 580-587.
[18]
Zhao B, Wu X, Feng J S, et al. Diversified visual attention networks for fine-grained object classification[J]. IEEE Trans Multimedia, 2017, 19(6): 1245-1256. Doi:10.1109/TMM.2017.2648498
[19]
Lin T Y, Roychowdhury A, Maji S. Bilinear convolutional neural networks for fine-grained visual recognition[J]. IEEE Trans Pattern Anal Mach Intell, 2018, 40(6): 1309-1322. Doi:10.1109/TPAMI.2017.2723400
[20]
Hu Q C, Wang H B, Li T, et al. Deep CNNs with spatially weighted pooling for fine-grained car recognition[J]. IEEE Trans Intelligent Transportation Systems, 2017, 18(11): 3147-3156.