杨京晶,李付江,张起贵
(太原理工大学 信息与计算机学院,太原 030024)
交通标志检测是在汽车运行过程中和复杂的室外交通环境下进行的,比一般静止的图像检测更难,主要体现在标志种类繁多、 运动模糊、复杂多变的光照 (天气)条件、背景环境干扰、拍摄角度使交通标志位置倾斜等问题[1]。
目前交通标志检测方法主要包括传统的图像检测方法和基于深度学习的交通标志检测方法。传统图像检测方法如基于色彩空间的检测方法[2-3]、基于形状特征的检测方法[4-6]和采用两者结合方法[7-11]等,传统图像检测方法容易受环境影响,无法满足高精度实时检测要求;基于深度学习的交通标志检测方法[12-15]具有较高的检测精度,因其采用的神经网络结构复杂,网络参数众多,故存在计算复杂度高,难以满足系统实时性的要求。而实际采集到的数据往往是视频数据,既包含交通标志空间特征也包含时间特征,上述两种方法处理的对象都是静止图像,只考虑交通标志空间特征,未能很好利用其时间特征。本文提供了一种基于视频码流而非像素的交通标志检测方法,直接利用视频码流中码流特征信息,不需要对视频码流完全解码,避免了在解码过程中整数IDCT变换、反量化、重构和环路滤波等耗时的操作。
汽车运行过程中拍摄的视频数据是经过视频编码算法压缩后的数据,目前视频压缩适用的国际标准主要有H.264和H.265,国内标准为AVS,它们都采用了基于块的混合编码算法。假定视频码流采用视频压缩标准为H.264,基本块大小为4×4.在视频编码码流中,对于帧内预测编码块而言,帧内预测模式、像素残差分布情况CBP和像素残差经过熵编码后都会写入码流。
对交通标志边缘部分而言,因具有固定形状和较明显色彩,与周围环境差别明显,其帧内预测模式多采用4×4块预测模式,而非16×16块预测模式;其像素残差情况CBP值亮度和色度DC直流分量和AC交流分量多数情况不为0,色度AC交流分量基本不为0,其像素残差值较大,尤其是色度UV残差值更明显。可以通过分析预测模式、像素残差情况CBP和像素残差等信息对交通标志进行检测。
具体的交通标志边缘检测步骤如下:
第一步:对视频码流帧内预测码流进行部分解码,部分解码后得到宏块类型和帧内预测模式、量化参数QP、像素残差分布情况CBP值和像素残差值,解码过程中整数IDCT变换、反量化、重构和环路滤波等耗时的操作不需要完成。
第二步:根据宏块类型和帧内预测模式判断该基本块为交通标志边缘的概率p1,当帧内预测模式为帧内16×16预测模式时,则设置p1=0;当帧内预测模式为帧内4×4预测模式时,则设置p1=1.
第三步:根据像素残差分布情况CBP值判断该基本块为交通标志边缘的概率p2.像素残差分布情况CBP值包含亮度DC系数、亮度AC系数、色度DC系数和色度AC系数是否为0,构建像素残差分布情况向量a=[a1,a2,a3,a4],向量包含4个元素a1、a2、a3和a4.DC系数为0设置a1=0,否则设置a1=1;亮度AC系数为0设置a2=0,否则设置a2=1;色度DC系数为0设置a3=0,否则设置a3=1;色度AC系数为0设置a4=0,否则设置a4=1.设置像素残差分布情况权值向量w1=[0.2,0.2,0.3,0.3],求此时概率p2
(1)
第四步:求概率p3=p1×p2,当p3<0.5时,判断该基本块不为交通标志边缘部分,否则根据像素残差值做进一步判断。
第五步:基本块残差值取亮度DC系数绝对值YDC,色度取色度DC系数绝对值UDC、VDC,色度交流系数绝对值求和SUAC,SVAC.根据量化参数分别设置阈值TYDC、TUDC、TVDC、TUAC和TVAC.构建像素残差值阈值向量b=[b1,b2,b3,b4,b5],向量包含5个元素b1、b2、b3、b4和b5,其中
b1=YDC/TYDC;b2=UDC/TUDC;
b3=VDC/TVDC;b4=SUAC/TUAC;
b5=SVAC/TVAC.
(2)
设置像素残差值阈值权值向量w2=[0.12,0.22,0.22,0.22,0.22],w2各权值求和为1,经实验色度残差包含更多交通标志边缘部分信息,故分配较高权值。求残差判断阈值Tre
(3)
第六步:当Tre 通过以上步骤,将图片所有基本块进行判断,判断其是否为交通标志边缘部分。 对所有基本块是否为交通标志边缘部分判断后进行二值化处理。如判断为是交通标志边缘部分,赋值255,否则赋值0.采用形态学的开操作进行交通标志噪声处理,用闭操作重建开操作过程中丢失的边缘部分信息,得到交通标志集合A.所得交通标志集合存在大量干扰区域,需要对干扰区域进行处理。通过交通标志的先验信息,如交通标志的形状和底色信息排除干扰区域。 中国现行的交通标志标准主要有:警告标志、禁令标志、指示标志和指路标志。其形状为圆形、三角形和矩形,可通过研究这3种形状的几何特性来排除干扰项。采用几何属性圆形度、矩形度、伸长度对初步检测的交通标志区域进行判断。定义区域的长和宽分别为H和W,区域的周长为L,区域的面积为A,定义区域圆形度为物体形状接近圆形的程度,记为C,其表达式为: (4) 定义区域的矩形度为对应物体形状接近矩形的程度R,其表达式为: (5) 其中,R的取值范围为[0,1],矩形物体R的取值为1,圆形物体R的取值为π/4,三角形物体R的取值为0.5. 由于采集的交通标志图像受到采集角度、外界环境以及基本块预处理操作的影响,图形形状并不一定规则,这在一定程度上会影响C和R参数的值。因此,通过对多组拍摄的交通标志图像进行统计的基础上,给出了这两个值的取值范围圆形标志:C>0.75,R>0.65. 三角形标志:0.45 矩形标志:0.65 当交通标志几何特性C和R不满足以上取值范围,则判定为伪交通标志,进行去除。 根据交通标志A边缘基本块的残差阈值情判断交通标志A的底色。交通标志底色为蓝色,体现到UV残差值中,其交通标志边缘部分U残差值较大;底色为红色,体现到UV残差值中,其交通标志边缘部分V残差值较大;底色为黄色,体现到UV残差值中,其交通标志边缘部分U和V残差值绝对值求和值较大。假定交通标志A边缘包含n个4×4基本块,第i个基本块色度取色度DC系数绝对值UDC,i和VDC,i,色度交流系数绝对值求和SUAC,i和SVAC,i,蓝色判决阈值TBDC和TBAC,红色判决阈值TRDC和TRAC,黄色判决阈值TYeDC和TYeAC.当UDC,i>TBDC且SUAC,i>TBAC,判断该交通标志基本块i底色为蓝色;当VDC,i>TRDC且SVAC,i>TRAC,判断该交通标志基本块i底色为红色;当UDC,i和VDC,i绝对值的和超过TYeDC并且SUAC,i和SVAC,i绝对值之和超过TYeAC,判断该交通标志基本块i底色为黄色。统计n个4×4基本块底色为蓝色数目m1,且m1>(n-3)时,该交通标志底色为蓝色;统计n个4×4基本块底色为红色数目m2,且m2>(n-3)时,该交通标志底色为红色;统计n个4×4基本块底色为黄色数目m3,且m3>(n-3)时,该交通标志底色为黄色。 当交通标志底色不为蓝色、红色或黄色,则判断该交通标志为伪交通标志,进行去除。 根据形状几何特性判断的交通标志集和通过交通标志底色判断去伪操作后,得到初步判断的交通标志集。 实际视频序列包含交通标志时间特征,可利用视频帧间预测编码码流信息对交通标志进行修正检测,通过分析预测模式、像素残差情况CBP和运动矢量信息对规则标志检测进行修正。对于通过帧内预测初步确定的规则标志而言,采用帧间预测编码后,因其已经在参考帧出现,故预测模式以16×16预测模式居多,且运动矢量变化较小,不会出现剧烈变化,像素残差情况CBP值为0居多,尤其是UV残差。 以交通标志A所在块中心为搜索起点,向上下左右对5个整像素运动矢量分别进行搜索,搜索与交通标志A最匹配区域,以运动矢量残差值绝对值求和为最小值为最佳匹配区域B.按照H.264解码顺序对视频码流帧间预测码流进行解码,解码得到宏块类型和帧间预测模式、运动矢量残差值、像素残差分布情况CBP值后,终止H.264解码,不需要进行后续解码过程中像素残差解码、整数IDCT变换、反量化、重构和环路滤波等耗时的操作。统计交通标志B帧间预测模式概率分布p.当每个4×4基本块预测模式为SKIP模式或16×16模式,则预测模式值Mi=1,否则Mi=0.假定交通标志B包含n个4×4基本块,统计交通标志B预测模式概率分布p. p=∑Mi/n. (6) 其中,Mi为4×4基本块预测模式值,n表示交通标志B包含4×4基本数量。当p<0.6时,对交通标志进行修正,此交通标志B为伪交通标志,不是交通标志。当判断交通标志B不是伪交通标志时,利用运动矢量残差值对交通标志做进一步判断。对交通标志B运动矢量残差值绝对值进行求和SMVD (7) 式中:RMV,ix为4×4基本块横向运动矢量残差,RMV,iy为4×4基本块纵向运动矢量残差,ABS为取绝对值运算。当SMVD>TMVD,对交通标志进行修正,此交通标志B为伪交通标志,不是交通标志。当判断交通标志B不是伪交通标志时,利用像素残差分布情况对交通标志做进一步判断。根据像素残差分布情况CBP值,统计交通标志B亮度DC系数、亮度AC系数、色度DC系数和色度AC系数是否为0的求和值。 (8) 式中:YDC表示4×4基本块亮度DC系数情况,不为0时,YDC=1,否则YDC=0;YAC表示4×4基本块亮度AC系数情况,不为0时,YAC=1,否则YAC=0;ZDC表示4×4基本块色度DC系数情况,不为0时,ZDC=1,否则ZDC=0;ZAC表示4×4基本块色度AC系数情况,不为0时,ZAC=1,否则ZAC=0.当SCBP>TCBP,对交通标志进行修正,此交通标志B为伪交通标志,不是交通标志。 通过交通标志预测模式概率分布,矢量残差值绝对值求和以及像素残差分布情况CBP值统计情况,对交通标志进行修正。 本文算法整体流程图如图1所示。 图1 算法流程图Fig.1 Flow chart of algorithm 采用GTSRB和CCTSDB数据集进行实验,测试所提方法的有效性。GTSRB数据集包含39 209幅训练图像和12 630幅测试图像。数据集中的德国交通标志共有43个小类,尺寸从15 pixel×15 pixel到250 pixel×250 pixel.CCTSDB中国交通数据集标注数据有3大类:指示标志、禁止标志、警告标志,包含15 734张图像。 图2和图3是本文算法在不同码率和不同视频序列检测效果图,其中图2(a)和图2(b)分别是CCTSDB数据集中序列号为05880和05882图片的原图;图3(a)和图3(b)分别是CCTSDB数据集中序列号09200和05922图片的原图;图2(c)和图3(c)是边缘检测后经过二值化处理后的图,图2(d)和图3(d)是经形态学开/闭操作处理后的图,图2(e)和图3(e)是初步检测结果图,图2(f)和图3(f)是修正检测结果图。从图2-图3中可以看出,经过初步检测后,交通标志很大程度能够正确检测,但也存在一些背景被误检,如一些规则图形和车牌标志等,可以通过修正检测降低误检率。 图2 码率为1M的检测效果对比图Fig.2 Comparison of experimental results(1M) 图3 码率为1.2M的检测效果对比图Fig.3 Comparison of experimental results(1.2M) 算法采用的评价指标为检测率、误检率和检测时间。检测率=PT/(PT+NF),误检率=PF/(PT+PF).其中,PT表示正确检测出来的交通标志数量,PF表示背景被检测为交通标志的数量,NF表示交通标志被检测为背景的数量。本文算法的检测情况见表1-表4,其中,表1是GTSRB数据集检测结果,表2-表4是CCTSDB数据集不同码率情况下检测结果。 表1 GTSRB数据集检测方法比较Table 1 Comparison of detection methods for GTSRB 表2 在码率为1.2M下的CCTSDB数据集检测方法比较Table 2 Comparison of detection methods for CCTSDB under bit rate of 1.2M 表3 在码率为1M下的CCTSDB数据集检测方法比较Table 3 Comparison of detection methods for CCTSDB under bit rate of 1M 表4 在码率为700 k下的CCTSDB数据集检测方法比较Table 4 Comparison of detection methods for CCTSDB under bit rate of 700 k GTSRB数据集图像尺寸较小,故检测耗时较少。GTSRB数据集图片独立拍摄,时间相关性弱,故采用修正检测算法在降低误检率时的效果不明显。CCTSDB数据集采用的是连续拍摄的画面,图片时间相关性强,采用修正检测算法在平均检测率降低很少情况下,大大降低了误检率,在不同编码码率下有较好检测效果,平均检测率为96.9%,平均误检率为4.3%,平均检测时间为0.36 s,本文算法更适合于实际视频拍摄场景。 为了验证本文方法的有效性,利用文献[9]检测方法、文献[10]检测方法和本文方法,对CCTSDB数据集1 000幅图像进行交通标志检测测试。3种方法的检测结果如表5所示。 表5 三种方法检测结果Table 5 Detecting result of three methods 实验结果表明,本文方法的检测率分别比文献[9]方法高0.7%,和文献[10]方法的检测率相差不大,但误检率比文献[9]方法和文献[10]方法分别低3.9%和6.1%,由于采用时间相关性误检率有较大降低。平均检测时间比文献[9]方法和文献[10]方法分别低0.06 s和0.12 s,因本文算法直接对码流进行特征提取,避免了解码过程中整数IDCT变换、反量化、重构和环路滤波等耗时的操作。 本文结合交通标志的颜色与形状先验特征,提出一种基于视频码流的交通标志检测方法。该算法不需要对码流进行完全解码,直接从视频编码码流中提取交通标志特征信息进行交通标志检测。该方法在保持较高检测精度情况下,检测时间大大缩短,可满足交通标志实时检测场景,有利于进一步识别交通标志。但自然环境下,该法在检测过程中也存在错检、漏检的情况,算法的一些判决阈值通过有限实验集确定,在普适性上有所欠缺,破损遮挡情况下,检测精度下降。因此需要增加更多数据进行实验,同时需要对破损遮挡情况进行处理,进一步提高检测精度。2 交通标志初步检测
3 交通标志修正检测
4 实验结果及分析
5 结束语