刘 颖, 葛瑜祥
(西安邮电大学 图像与信息处理研究所, 陕西 西安 710121)
在刑事案件和交通事故中,嫌疑车辆的轮胎花纹信息是一种重要物证。如何准确地对轮胎花纹图像数据库进行分类,并据此匹配图像,对于提高取证工作效率具有重要的实用价值[1]。轮胎花纹图像具有花纹复杂、颜色单一、边缘清晰、噪声信息少,且同型号轮胎花纹相似度大的特点[2]。因此,适合于这些特点的分类算法,才能实现高效轮胎花纹图像分类(tire tread pattern image classification, TPIC)。
现有的轮胎花纹分类算法,大都对经典的普通分类算法进行设计和修改[3-6]。如文[4]提出了一种视频中轮胎花纹图像的分类算法,该算法通过主成分分析提取轮胎二值边缘图像的底层近似特征,克服了视频中图像带有的动态模糊,提高了算法的分类性能。文[5]提出了一种多相似度统计指标的轮胎花纹图像分类算法,利用支持向量机、欧氏距离和余弦距离对图像进行相似度统计,并基于此分类轮胎花纹图像。
近年来深度学习技术在人工智能领域备受关注,无监督学习在卷积神经网络(convolutional neural network, CNN)[7-10]训练过程中的应用,使深度学习技术的实际应用成为可能。轮胎花纹图像作为一种数据量较大的图像类型,可以利用深度学习技术进行算法开发。为了准确地分类轮胎花纹图像,利用CNN网络对轮胎花纹数据库进行训练,以训练所得模型提取轮胎花纹图像的CNN特征,并训练支持向量机(support vector machine, SVM)分类模型。相比于尺度不变特征变换(scale invariant feature transform, SIFT)[11]和压缩梯度直方图(compressed histogram of gradients, CHoG)[12]这两种以分类性能强著称的普通图像分类算法,CNN分类算法的分类性能并未表现出优势。这是由于数据库中,轮胎花纹种类多,但每种轮胎花纹的图像数量少导致的。受限于此,直接从头开始训练CNN网络,容易导致模型过拟合,难以取得满意的分类效果。
为了准确地分类轮胎花纹图像,提出了一种基于CNN、SVM和迁移学习的轮胎花纹分类算法。该算法基于ImageNet[9]数据库,对轮胎花纹图像数据库进行了迁移学习(transfer learning)[13]训练,并以训练所得CNN模型提取基于迁移学习的卷积神经网络(CNN based on transfer learning, CNN-TL)特征,并以该特征对轮胎花纹图像进行基于SVM[14]的图像分类。
CNN是一种带有卷积结构的深层神经网络[9-10],该网络采用端到端的学习模型,通过卷积运算由浅入深地提取图像不同层次的特征,弥合了低级视觉特征和高层语义之间的鸿沟。通常包含5种类型的层[15]:输入层(data input layer)、卷积层(convolutional layer)、池化层(pooling layer)、全连接层(fully connected layer)和输出层(output)。AlexNet网络[9]是一种经典的CNN网络,包含6 000万个参数和65万个神经元。由于网络的深层结构和丰富的参数,AlexNet网络能够从原始图像中获得更多的特征,被广泛应用于视觉识别任务,本文使用该网络进行CNN训练。AlexNet网络的网络结构,如图1所示。图中小矩形和虚线箭头表示在2层间对各扫描窗口进行卷积。
图1 AlexNet网络的网络结构
I个训练图像的样本集为{(x1,y1),…,(xi,yi),…,(xI,yi)},则CNN模型的代价函数[9]
迁移学习[16]指利用不同学习任务之间的共性在任务间迁移知识,能够将从现有数据或环境中学到的知识用于新的数据或环境中。研究表明,通过迁移学习的卷积神经网络在小样本图像数据库上取得大幅地准确度提升[13]。迁移学习分两部分:
(1) 特征提取器(feature extractor)。初始CNN模型可以用作目标源数据集的特征提取器。例如,一个初始CNN模型,去除最后的Softmax分类层,然后将其余的部分作为特征提取器以适应新的任务。借助ImageNet数据集作为辅助数据集,以此初始CNN模型在许多应用上取得显著地成果,如花鸟图像分类[17]。
(2) 模型微调(fine-tuned model)。当源数据集不足以完全训练新网络时,微调是避免从头开始训练CNN的最佳选择。微调策略不仅训练网络模型以适应新的数据集,而且通过反向传播来调整网络参数。通常CNN前几层学习的是图像低层通用特征,适用于大多数的视觉任务,后几层是为特定任务学习的高层特征,所以迁移学习得以有效应用[18]。模型微调避免了直接训练中,由于缺乏源训练数据造成神经网络过拟合的问题,已经被证明是在小规模数据上进行计算机视觉应用的优异策略[19]。
基于CNN、SVM和迁移学习的轮胎花纹分类算法流程,如图2所示。
图2 基于CNN、SVM和迁移学习的轮胎花纹分类算法流程
算法主要包括4个步骤。
(1) 对辅助数据库ImageNet进行CNN训练,得到的初始CNN模型;
(2) 利用源数据库轮胎花纹图像数据库对初始CNN模型最后的Softmax分类层进行微调训练,使所得的CNN模型最终输出变为,轮胎花纹类别标签数的100维,则可正常对轮胎花纹图像进行分类;
(3) 对CNN模型输入轮胎花纹图像,并提取全连接2层,即fc7层的4 096维特征作为CNN-TL特征,并将特征向量按照L1-norm标准归一化;
(4)利用SVM对所有训练图像的CNN-TL特征进行一对一法分类训练,利用训练所得SVM模型对测试图像的CNN-TL特征进行分类。
以ImageNet作为辅助数据库,以轮胎花纹图像数据库作为源数据库,对辅助数据库进行CNN训练,得到初始CNN模型(imagenet-alexnet)。对初始CNN模型最后的Softmax分类层进行微调训练,所得的CNN模型(tire-alexnet),就可以对轮胎花纹数据库进行分类。利用辅助数据对源数据进行迁移学习训练的原理,如图3所示。
图3中C1、C2、C3、C4、C5分别代表网络中的5个卷积层,P1、P2、P3分别代表网络中的3个池化层,fc6、fc7、fc8分别代表网络中的3个全连接层,fcTire为fc8更改层名后的全连接层。
为了提高神经网络对轮胎花纹图像的泛化能力,在网络中设置参数如下。将初始CNN模型中fc8更名为fcTire,并将Softmax分类层(即fcTire层)的输出类别数修改为轮胎花纹图像数据库中轮胎花纹的类别标签数100,以使训练继续进行。将初始CNN模型的网络参数进行系数迁移,即在原网络参数的基础上,使用5 000幅轮胎花纹图像完成6 500次迭代来继续训练网络参数。将初始基本学习率设置为0.001,并把fcTire层的学习率放大10倍以加速收敛。模型训练完成后,便针对轮胎图像数据生成了一个CNN模型。提取该CNN模型的fc7层4 096维特征,记为CNN-TL特征FC,并按照L1-norm标准归一化得
其中,ε为0.000 000 1。
反向传播时,各节点的残差
图3 利用辅助数据对源数据进行迁移学习训练的原理
在提取所有输入图像的CNN-TL特征后,再利用SVM[14]对所有CNN-TL特征进行一对一法(one-versus-one, 1-v-1 SVMs)分类训练,实现轮胎花纹图像的分类。CNN-TL特征下SVM的核函数(kernel function)选用线性核函数(linear kernel)。做法是在任意两种轮胎花纹之间设计一个SVM,因此,K个类别的样本就需要设计K(K-1)/2个SVM。当对一个未知花纹进行分类时,需用上述K(K-1)/2个SVM分类器对目标花纹进行K(K-1)/2次二分类,对每次分类结果进行计票,共计票K(K-1)/2票,最后得票最多的类别即为该未知花纹的类别。
为验证提出的CNN-TL算法的分类性能,在轮胎花纹图像数据库上进行分类实验,与CNN、SIFT[6]和CHoG[12]等分类算法进行对比。实验在MATLAB2014环境下进行,PC的配置为Windows 7 Ultimate,Core i5-4258U @ 2.40GHz and NVIDIA GeForce GT 820M。
实验中,使用“CIIP-Tread Data”数据库作为实验数据[21]。其中包含102类轮胎表面花纹的,5 100幅轮胎表面花纹图像,每类轮胎花纹包含50幅在不同拍摄条件(拍摄光照、距离、角度)下获得轮胎表面花纹图像。分类实验中每种花纹作为一个分类标签,每种花纹的40幅图像作为分类训练组,10幅图像作为分类测试组。CIIP-Tread Data中轮胎花纹图像的例图,如图4所示。
为了验证CNN-TL对其他数据类型图像的分类性能,实验还从ImageNet数据库[10]中选用5 000幅不同鱼种的鱼类图像,从Corel5k数据库中选用5 000幅建筑、动物、植物等类别的自然图像,分别进行分类实验。所有实验图像数据均以96×96×3的尺寸输入。
图4 CIIP-Tread Data中轮胎花纹图像例图
对每类花纹分别使用0°、24°、48°、72°、96°、144°、192°、240°、288°和336°的10种拍摄角度拍摄的10幅轮胎花纹图像。
对每类花纹分别使用电筒强光、电筒标准光、电筒弱光、闪光灯闪光、闪光灯散射光5种光照分别从轮胎上部和下部照射,共10种拍摄光照模式拍摄10幅轮胎花纹图像。
对每类花纹分别使用10 cm、20 cm、30 cm、40 cm、50 cm、75 cm、100 cm、125 cm、150 cm和200 cm共10种拍摄距离拍摄10幅轮胎花纹图像。
每类花纹的3种图像各10幅,其中8幅为训练组,2幅为测试组。CIIP-Tread Data中100类花纹,共有200幅测试图像。利用4种算法分别对3种测试图像进行分类,计算分类精度,以此验证各算法对拍摄角度、光照和距离变化的鲁棒性,及对拍摄条件变化分别引起的图像旋转、光照和尺度变化的鲁棒性,评价参数选用分类精度[22],测试结果,如表1-表3所示。
结合表1-表3可知,在3种拍摄条件变化的图像上CNN-TL的分类精度均为最高,说明CNN-TL对拍摄条件变化的鲁棒性最强。在拍摄距离改变的图像上,4种算法的分类精度均接近100%,说明它们都具备优良的尺度不变性,对拍摄距离改变的鲁棒性强;而在拍摄光照改变的图像上,CNN-TL的分类精度更高接近100%;在拍摄角度改变的图像上CNN-TL的分类精度超过SIFT和CHoG约20%。说明CNN-TL具备更强的旋转、光照和尺度不变性,对拍摄角度、光照和距离改变的鲁棒性更强。
表1 不同拍摄角度下4种算法的分类精度
表2 不同拍摄光照下4种算法的分类精度
表3 不同拍摄距离下4种算法的分类精度
在3种不同图像类型的数据库CIIP-Tread Data、ImageNet、Corel5k上测试4种算法的分类精度,以此验证算法在不同图像类型数据库上的分类性能,结果如图5所示。
图5 3种不同图像类型的数据库上4种算法的分类精度
由图5可知,CNN-TL在3种数据库上的分类精度均为最高,且分类精度均约为90%,超过CNN约10%,超过CHoG和SIFT约30%,说明CNN-TL对图像的分类性能最强。
4种算法在CIIP-Tread Data数据库上的分类精度,如表4所示。
表4 4种算法在CIIP-Tread Data上的分类精度
由表4可知,CNN-TL对轮胎花纹图像的分类精度最高。
在CIIP-Tread Data数据库上,测试4种算法的分类有效性。分类有效性的评价参数选用标准分离系数[23]。对于实验数据集X={x1,x2,…,xi,…,xI},划分为C1,C2,…,Ci,…,CK种类别,总样本数为I,类别数为K。则划分矩阵[23]U=[μij]K×I(i=1,2,…,I;j=1,2,…,K)。μij为xi到Cj的隶属度。标准分离系数[23]
4种算法的分类有效性测试结果,如表5所示。
表5 在CIIP-Tread Data上4种算法的分类有效性
由表5可知,CNN-TL、CNN和SIFT的分类有效性都很高,CHoG略低。
综合上述3组实验可知,CNN-TL对轮胎花纹图像的具有较强的分类性能,对拍摄角度、光照和距离改变的鲁棒性强,具有优良的旋转、光照和尺度不变性。应用于轮胎花纹分类时,有效性高,与上述其他3种算法相比,CNN-TL的分类性能更优秀。在其图像类型的数据库上CNN-TL分类有效性也较高,适用于多种类型的图像数据库分类。
为了准确地分类轮胎花纹图像,提出了一种基于CNN、SVM和迁移学习的轮胎花纹分类算法。该算法利用有百万已标注图像的ImageNet数据库作为辅助数据进行CNN训练,得到初始CNN模型;利用轮胎花纹数据对初始CNN模型的分类层进行微调,并对其进行系数迁移,进而生成基于轮胎花纹图像的CNN模型,从而克服由CNN模型过拟合所导致的分类性能下降问题;最后以该CNN模型作为特征提取器,提取第2全连接层输出的轮胎花纹图像特征作为CNN-TL特征,基于此特征进行SVM分类训练得SVM模型,据此对输入图像进行分类。在轮胎花纹图像数据库上进行分类实验,与CNN、SIFT和CHoG等分类算法进行对比。在不同拍摄条件(拍摄光照、距离、角度)下,提出算法的分类精度均为最高;在3种不同图像类型的数据库CIIP-Tread Data、ImageNet、Corel5k上测试4种算法的分类精度,提出算法的分类精度均为90%左右,超过CNN约10%,超过CHoG和SIFT约30%,说明其对图像的分类性能最强;在CIIP-Tread Data数据库上,测试4种算法的分类有效性,提出算法的分类有效性超过90%,说明提出算法除了可准确地分类轮胎花纹图像也适用于其他图像的分类。