先说这篇文章,Monza: Image Classification of Vehicle Make and ModelUsing Convolutional Neural Networks and Transfer Learning,该文章使用了3DObject Representations for Fine Grained Categorization这篇文章的车型数据集,一共16185张图像(train:8144,test:8041),共196种车型,文章分析了各种现有的模型,最终识别结果如下,可以看出,googLeNet具有最好的性能。

之后分析这篇文章,A Large-Scale Car Dataset for Fine-Grained Categorizationand Verification

,文章提出了自己的一个车型数据集CompCars,可惜需要高校申请,没有开源。

(http://mmlab.ie.cuhk.edu.hk/datasets/comp_cars/index.html),该数据集一共1716种车型,共136726张图片,从作者的实验结果可以看出,最高的识别率是64.3%。

下来就是这篇15年的ICCV,Bilinear CNNs for Fine-grained Visual Recognition(B-CNN),该文章首次提出了特征外积的思想,并且可以实现端到端的训练,在Caltech-UCSD birds ,NABirds, FGVC aircraft ,Stanford cars 等数据集上分别获得了84.1%,79.4%,86.9% ,91.3%的准确性。

正如上图所示,一幅图像经过A,B两个卷积后,进行了外积操作,在经过均值池化操作,获得了bilinear向量,最后经过softmax输出最终结果。

然后就是这篇文章2017的cvpr,Low-rank Bilinear Pooling for Fine-Grained Classification(LRBP),该文章是改进的compactbilinear,大大的减少了计算量和模型的大小,当然只有很少的精度损失。

最终的识别精度如下,也就是在第一个196种车型数据集上达到了90.92%的识别精度

本人自己的改进,使用resnet-Inception+LRBP的思想,并对原始的LRBP进行了改进,对网络进行了调整修改,融合了3个网络结果,输出了最终的结果。终于可以投paper了。

实验测试效果如下,

references:

http://www.vision.caltech.edu/visipedia/CUB-200-2011.html

https://github.com/gy20073/compact_bilinear_pooling

https://github.com/aimerykong/Low-Rank-Bilinear-Pooling