发明内容
本发明提出了利用半监督学习方法中的co-training方法提高交通视频监控目标检测算法的鲁棒性,使其自适应外界环境的变化。当检测的交通场景发生改变时,通过co-training方法让两个相互独立的分类器互相监督学习,为对方加入新环境下的待检测目标和非检测目标的样本图片进行新分类器的训练,以此适应外界环境的变化,提高交通目标检测算法的鲁棒性。而为了保证新增加样本的可靠性,在co-training方法中加入样本图片预测标签的置信度判断。
1.基于机器视觉的交通视频监控目标检测快速适应方法,基于由监控摄像机、监控设备、服务器构成的硬件平台,其特征在于包括以下步骤:
(1).建立初始训练样本库,所述的初始训练样本库由正样本即包含待检测目标的图像,和负样本即不包含待检测目标的图像组成;
(2).训练初始分类器:
从初始训练样本库的各个样本中提取Haar特征用于训练初始AdaBoost分类器,所选择的Haar特征包含边缘特征、线性特征、中心环绕特征和特殊对角线特征;再从初始训练样本库的各个样本中提取HOG特征用于训练初始SVM分类器;
(3).使用检测框对监控摄像机所拍摄的同一段视频的同一帧图像进行遍历,对遍历过程中检测框所圈中的子图像进行检测,检测过程结束后移动检测框至下一位置重复检测过程,直至遍历完整帧图像;之后扩大检测框的大小并再次遍历整帧图像,直至检测框的大小达到一帧图像的一半时,完成对一帧图像的检测,继续步骤(4);
所述的检测过程是对子图像进行标签预测并计算预测标签的置信度,子图像及其预测标签将用于训练更新分类器,因此为了保证更新分类器的检测性能有所提高,就要保证用于训练更新分类器的子图像及其预测标签的正确性,包括以下步骤:
(3.1)利用AdaBoost分类器和SVM分类器分别对同一子图像进行检测,分别得到子图像的预测标签
和
预测标签用于表示子图像属于正样本或负样本,
若结果不一致,则表示无法保证预测标签的正确性,因此跳出检测过程,并将检测框移动至下一位置;
若结果一致,则继续进行下一步;其中若子图像属于视频中的第一帧图像,则使用步骤(2)所训练的初始分类器,否则使用步骤(4)最近一次更新后的分类器;(3.2)从初始训练样本库的各个样本图像中分别提取Haar特征和HOG特征的特征值,其中,
表示第k个样本图像的Haar特征,
表示第k个样本图像的HOG特征;从检测的子图像中分别提取Haar特征和HOG特征的特征值,记作
和
计算子图像中提取的特征值与初始训练样本库的各个样本图像中提取的特征值之间的欧式距离,其中,子图像的Haar特征值与初始训练样本库的第k个样本图像的Haar特征值之间的欧式距离为
子图像的HOG特征值与初始训练样本库的第k个样本图像的HOG特征值之间的欧式距离为
分别从两组欧式距离中选出K个最小值计算得到两组权重ω
Haar和ω
HOG,每组包括K个权重值,第k个权重值的计算公式为:
(3.3)因为在样本图像的特征空间中相距越近的样本其所属标签相同的概率也就越高,所以可以利用欧式距离最小的K个样本图像分别对子图像的预测标签进行置信度的投票,而它们之间的权重值则作为投票的系数。
计算子图像的预测标签
对特征值
的置信度
以及子图像的预测标签
对特征值
的置信度
其计算公式为
其中
表示
对应的初始训练样本库的第k个样本图像的标签是否与子图像的预测标签
一致,若一致,
否则
样本图像的标签即表示该样本图像属于正样本还是负样本;
表示
对应的初始训练样本库的第k个样本图像的标签是否与子图像的预测标签
一致,若一致,
否则
(3.4)比较步骤(3.3)计算出的
和
将大的置信度对应的预测标签以及子图像加入到小的置信度对应的分类器的附加训练样本库中,这样在更新分类器的过程中较小J
p对应的分类器可以从子图像中获得更多信息来提高分类器的性能;所述的附加训练样本库中的样本由每次循环过程中加入的子图像及其预测标签构成,附加训练样本库和初始训练样本库共同构成对应分类器的训练样本库;
(4).若视频未检测至最后一帧,则利用两分类器各自的训练样本库分别重新训练基于Haar特征的AdaBoost分类器和基于HOG特征的SVM分类器,然后跳转至步骤(3)继续检测下一帧图像;
否则,分类器训练完成,可将训练的最终分类器用于实际的交通场景中进行车辆、行人等目标的检测。
至此,已完成基于机器视觉的交通视频监控目标检测系统的实现。
有益效果
①将各类目标的大规模通用检测器快速自适应到各特定场景,有效组织分类器的训练及测试流程,在确保分类器检测性能的基础上尽可能地缩短分类器的训练进程,在各特定的场景中,仍然能够得到鲁棒的精确目标检测结果。
②用于建立及更新样本库,形成针对交通视频中机动车辆、非机动车辆及行人等特定目标类别的分类器,便于基于模式识别的现代先进视觉目标检测及识别技术的实际工程应用及系统维护。
具体实施方式
交通视频监控系统是由摄像机、监控设备和后台服务器三部分组成,其工作方式如下:
将摄像机拍摄到的交通视频传送到监控设备和后台服务器,训练两个具有较好检测性能的初始分类器,在监控设备中用于实际场景中的交通视频监控目标检测,同时在后台服务器上进行分类器的更新,因此初始分类器既要保证初始的监控过程中能够提供精度较高的检测结果,同时也要保证在co-training半监督学习过程中新加入样本库中样本标签的可信度。
在监控设备中,利用这两个分类器在初始阶段对交通视频监控目标进行检测,当两分类器检测结果一致时则将其作为最终检测结果,不一致时则利用k—近邻法则判断两分类器检测结果置信度,取置信度较高一方的检测结果作为最终检测结果。于此同时,将这段期间录制的交通视频传到后台服务器上,利用本发明在服务器上进行两分类器的快速适应更新过程,更新完成后再将两个新分类器传回监控设备进行新环境下的监控目标检测。重复执行此过程,直到更新后的分类器能够精确检测出新环境下的监控目标。
本发明的具体实施过程如下:
(1)建立训练初始样本库
打开一段交通视频逐帧读取,或者打开图片,将视频或图片中出现的待检测交通监控目标截取出来并保存为png格式图片,作为训练分类器的正样本图像。选择未出现交通监控目标的图片作为训练分类器的负样本图像。
将训练AdaBoost分类器的训练样本图像均缩放为20×20像素大小,训练SVM分类器的训练样本图像均缩放为40×40像素大小。
(2)训练初始分类器,本步骤属于公知技术。
(2.1)训练基于Haar特征的AdaBoost分类器
在PC机上安装VC2008和OpenCV2.0,则可利用OpenCV中AdaBoost分类器的训练功能实现分类器的训练,共分3个步骤:
第一,生成训练样本的描述文件:将保存正样本图片的文件夹与保存负样本图片的文件夹放在相同目录下,并通过程序在该目录下创建正负样本的描述文件。对于正样本描述文件,程序首先读取所有正样本图片并得到每一幅图片的信息,接着创建正样本描述文件positive.txt,以“正样本图片所在文件夹名称\图片名100图片宽图片高”的格式将每一幅图片的信息记录在文件中;对于负样本描述文件,程序首先读取所有负样本图片并得到每一幅图片的信息,接着创建负样本描述文件negative.dat,以“负样本图片所在文件夹名称\图片名”的格式将每一幅图片的信息记录在文件中。
第二,转换正样本描述文件:打开DOS命令窗口,通过DOS指令进入到正负样本描述文件所在文件夹,然后输入C:\OpenCV2.0\bin\opencv_createsamples.exe-info positive.txt-vec positive.vec-num2000-w20-h20>createsamples_result.txt并回车,则会在正负样本描述文件所在文件夹中生成转换好的正样本描述文件positive.vec。其中-num后的数字为正样本图片数量,可根据实际情况修改。
第三,训练AdaBoost分类器:打开DOS命令窗口,通过DOS指令进入到正负样本描述文件所在文件夹,然后输入C:\OpenCV2.0\bin\opencv_haartraining.exe-data haarcascade-vec positive.vec-bgnegative.dat-nstages20-nsplits2-minhitrate0.999-maxfalsealarm0.5-npos2000-nneg5000-mem1024-mode ALL-w20-h20>haartraining_result.txt并回车,分类器训练完成后则会在正负样本描述文件所在文件夹中生成训练好的xml格式的分类器文件。其中-npos后的数字为正样本图片数量,-nneg后的数字为负样本图片数量,可根据实际情况修改。
(2.2)训练基于HOG特征的SVM分类器
对于初始训练样本库中的每一幅图像,首先将图像进行细胞单元和块的划分,8×8像素作为一个细胞单元,每相邻4个细胞单元即16×16像素作为一个块;计算图像中各像素点的梯度值和梯度方向,在每个细胞单元中划分出梯度方向分布的9个区间,将细胞单元内的各像素点的梯度方向投影到划分出的区间中构成梯度直方图,再将每个块中单元细胞的梯度直方图进行归一化,最后收集图像中所有块的梯度直方图就构成了HOG特征。
得到HOG特征后可利用OpenCV中的CvSVM类的成员函数进行SVM分类器的训练,将从初始训练样本中得到的HOG特征以及各特征所对应的样本标签作为输入,设置参数核函数为RBF(Radial Basis Function),惩罚因子为10,程序运行后可得到格式为xml的SVM分类器文件。
(3)使用检测框对监控摄像机所拍摄的同一段视频的同一帧图像进行遍历,在遍历时首先设置检测框的初始大小为20×20像素大小,将检测框置于图像的左上角进行从左至右、从上至下的图像遍历,对遍历过程中检测框所圈中的子图像进行检测,检测过程结束后移动检测框至下一位置重复检测过程,直至遍历完整帧图像;之后扩大检测框的大小为原检测框大小的1.3倍并再次遍历整帧图像,直至检测框的大小达到一帧图像的一半时,完成对一帧图像的检测,继续步骤(4);
所述的检测过程包括以下步骤:
(3.1)利用AdaBoost分类器和SVM分类器分别对同一子图像进行检测,分别得到子图像的预测标签
和
预测标签用于表示子图像属于正样本或负样本,
若结果不一致,则跳出检测过程,并将检测框移动至下一位置;
若结果一致,则继续进行下一步;其中若子图像属于视频中的第一帧图像,则使用步骤(2)所训练的初始分类器,否则使用步骤(4)最近一次更新后的分类器;
(3.2)从初始训练样本库的各个样本图像中分别提取Haar特征和HOG特征的特征值,其中,
表示第k个样本图像的Haar特征,
表示第k个样本图像的HOG特征;从检测的子图像中分别提取Haar特征和HOG特征的特征值,记作
和
计算子图像中提取的特征值与初始训练样本库的各个样本图像中提取的特征值之间的欧式距离,其中,子图像的Haar特征值与初始训练样本库的第k个样本图像的Haar特征值之间的欧式距离为
子图像的HOG特征值与初始训练样本库的第k个样本图像的HOG特征值之间的欧式距离为
分别从两组欧式距离中选出K个最小值计算得到两组权重ω
Haar和ω
HOG,每组包括K个权重值,第k个权重值的计算公式为:
K的取值范围为3≤K<20的所有奇数,本发明中选择K=5。
(3.3)计算子图像的预测标签
对特征值
的置信度
以及子图像的预测标签
对特征值
的置信度
其计算公式为
其中
表示
对应的初始训练样本库的第k个样本图像的标签是否与子图像的预测标签
一致,若一致,
否则
样本图像的标签即表示该样本图像属于正样本还是负样本;当计算
时用到的欧式距离所对应的初始训练样本库的样本图像的标签与子图像的预测标签
一致时,
否则
表示
对应的初始训练样本库的第k个样本图像的标签是否与子图像的预测标签
一致,若一致,
否则
(3.4)比较步骤(3.3)计算出的
和
将大的J
p对应的预测标签以及子图像加入到小的J
p对应的分类器的附加训练样本库中;所述的附加训练样本库中的样本由每次循环过程中加入的子图像及其预测标签构成,附加训练样本库和初始训练样本库共同构成对应分类器的训练样本库;
(4)若视频未检测至最后一帧,则利用两分类器各自的训练样本库分别重新训练基于Haar特征的AdaBoost分类器和基于HOG特征的SVM分类器,然后跳转至步骤(3)继续检测下一帧图像;
否则,分类器训练完成,可将训练的最终分类器用于实际的交通场景中进行车辆、行人等目标的检测。