基于车载摄像机的盲区车辆检测方法
【专利摘要】本发明方法涉及一种基于车载相机的在行车环境下对驾驶盲区中的车辆检测的一种方法,在车辆较为密集,天气情况不佳的情况下,也可获得令人满意的精确程度;本方法可广泛应用于对行车环境下盲区中车辆的检测问题,对图片的类似分析问题,如:驾驶盲区中车辆的检测等;同时本方法对环境和设备的要求很低,拓宽了应用的场合。
【专利说明】基于车载摄像机的盲区车辆检测方法
【技术领域】
[0001]本发明方法涉及一种基于车载相机的在行车环境下对驾驶盲区中的车辆检测的一种方法,在车辆较为密集,天气情况不佳的情况下,也可获得令人满意的精确程度;本方法可广泛应用于对行车环境下盲区中车辆的检测问题,对图片的类似分析问题,如:驾驶盲区中车辆的检测等;同时本方法对环境和设备的要求很低,拓宽了应用的场合。
【背景技术】
[0002]近年来数字图像处理技术日益成熟,各种目标检测算法效果越来越好。一些边缘检测算法也可以提取出图像清晰的轮廓,这就为图像中的盲区车辆检测问题提供了基础。传统的基于阴影的车辆检测等方法可以处理这类问题,但是行车环境下,车辆可能很密集,天气情况可能不佳,这些情形下传统的方法精度并不很高。故要实现驾驶盲区中车辆的自动检测,所用算法需要灵活高效,且可以在各种工况下应用。
【发明内容】
[0003]本发明的目的是为了检测行车环境下驾驶盲区中的车辆,通过对一定区域车辆的检测,配合其它指标实现对车辆的自动化检测。
[0004]本发明提供一种利用车载摄像机和处理器对行车环境下驾驶盲区中车辆的检测方法,通过实时捕获的图片,利用图像处理技术,可通过基于车辆水平方向边缘统计直方图的方法,获取一定区域中疑似车辆区域。即使是在车辆密集,天气情况不佳的情况下,也可通过对车辆水平方向边缘统计直方图进行中值滤波处理,通过对得到的车辆波进行分割,得到疑似车辆区域的左上,右下及中心点的横坐标值,通过一定区域中的水平方向边缘线得到疑似车辆区域的左上,右下及中心点的纵坐标。并可通过基于运动轨迹的车辆检测方法,对一定时间内,一定区域内疑似车辆区域的数目Vehicle_num进行统计,通过Vehicle_num判断疑似车辆区域是否为真实车辆区域。本发明即是根据车辆的水平方向边缘判断图像中的疑似车辆区域,通过运动轨迹判断疑似车辆区域是否为车辆,进而得到车辆在图像中的位置信息。
[0005]本发明方法的条件和步骤如下:
[0006]1.所需设备:高清工业相机?号:DAHENG-F-033C),定焦镜头?号:Computar-M0814-MP2)传输设备(USB数据线),存储设备,处理器(本系统采用PC机)。
[0007]2.实现步骤:
[0008]本发明方法(010)部分,采用基于水平方向边缘统计直方图的车辆检测方法提取驾驶盲区中疑似车辆区域并给出疑似车辆区域的左上,右下点及中心点的横纵坐标值,保留原始的图片,具体步骤如下:
[0009]步骤COll:做好初始化车载摄像机,初始化编解码器;
[0010]步骤C012:利用车载摄像机获取图像Image,保存获得的图像Image ;
[0011]步骤C013:通过Sobel算子提取图像Image中的水平方向边缘,获得粗线条的车辆水平方向边缘和一些干扰伪边缘的边缘图像Image_edge ;
[0012]步骤C014:将边缘图像Image_edge的下2/3区域设置为检测区域Detection_area,统计检测区域Detection_area中每一列上的边缘像素点个数,以生成该区域的水平方向边缘像素点统计直方图His_hor ;
[0013]步骤C015:对C014步骤中的水平边缘像素点统计直方图His_hor进行中值滤波处理,得到了车辆波Vehicle_wave ;
[0014]步骤CO 16:通过对车辆波Vehicl e_wave进行分割,获得图像中疑似车辆区域Vehicle_roi 的左上,右下点的横坐标 X_roi_min, X_roi_max ;
[0015]步骤C017:在以左上,右下点的横坐标X_roi_min, X_roi_max为左右边界的检测子矩形区域Detection_area_s内,根据Detection_area_s内的水平方向边缘线的位置,获得疑似车辆区域Vehicle_roi的左上,右下点的纵坐标,保存坐标值Y_roi_min, Y_roi_max ;
[0016]步骤C018:根据疑似车辆区域Vehiclejoi的左上,右下点的横纵坐标计算出疑似车辆区域的中心点的横纵坐标,保存坐标值(X_roi_center, Y_roi_center)生成疑似车辆区域图像 Image_vehicle,保存 Image_vehicle ;
[0017]本发明方法(020)部分,本部分为采用基于运动轨迹的车辆检测方法对疑似区域进行车辆确定的过程,具体步骤如下:
[0018]步骤C021:读取(010)部分的方法所得到的Image_vehicle,并记录相应疑似车辆区域 Vehicle_roi 的中心点横纵坐标值(X_roi_center, Y_roi_center);
[0019]步骤C022:判断视频中每一帧图像中的疑似车辆区域的中心点(X_roi_center, Y_roi_center)是否落在前一巾贞确定出的疑似车辆区域中心点周围内,如连续Num帧内落在中心点周围的中心点数目超过给定阈值VehiCle_Num,则认为此疑似车辆区域为车辆区域;
[0020]步骤C023:根据(010)部分确定的疑似车辆区域的左上,右下点的横纵坐标值,标记出车辆在图像Image中的位置,得到结果图1mage_result,保存Image_result。
[0021]有益效果:
[0022]本发明提出了一种基于车载摄像机的行车环境下车辆检测方法,这种方法的灵活性较高,可在对精度要求不同的情况下做出调整,通过改变算法的相关阈值,可以满足对精度和效率的要求。本方法是根据车辆的水平方向边缘判断图像中的疑似车辆区域,通过运动轨迹判断疑似车辆区域是否为车辆,而非基于阴影的车辆检测等常规方法。这不仅提高了算法的检测精度和效率,更可以解决基于阴影的车辆检测方法在车辆较为集中以及天气不佳的情况下无法检测的问题。
【专利附图】
【附图说明】
[0023]图1为使用Sobel算子提取的水平方向边缘。
[0024]图2为检测区域的水平方向边缘像素点统计直方图。
[0025]图3为中值滤波后的车辆波示意图。
[0026]图4为白色矩形区域示意图。
[0027]图5为连续25帧内疑似车辆区域中心点位置分布图。[0028]图6为Vehicle_roi定义不意图。
[0029]图7为车辆检测结果图。
【具体实施方式】
[0030]【具体实施方式】以城市道路中常见的小型汽车的检测为例。图1为(010)部分经过步骤COll到步骤C013边缘提取后的图像Image_edge。得到Image_edge之前,先通过车载摄像机得到了彩色图像Image。在图1上可以看到除了车辆水平方向边缘之外,还有许多短小零碎的伪边缘。由于车体的水平边缘数量多,且比较规则,故水平方向边缘是表现车辆的一个很好特征。图像的上1/3区域为天空,为减少计算量,将图像的下2/3区域设置为检测区域Detectior^area。统计检测区域每一列上的水平方向边缘像素点个数,得到如图2所示该区域的水平方向边缘像素点统计直方图HiS_hor。水平边缘直方图的级数等于感兴趣区域的宽度,每一级的bin值为对应列上的边缘像素点个数。
[0031]使用步骤C014到步骤C016能准确地确定出疑似车辆区域Vehicle_roi的左上,右下及中心点的横坐标X_roi_min, X_roi_max。对水平边缘直方图进行中值滤波处理,得到了如图3所示的车辆波Vehicle_wave,通过对车辆波使用一条阈值直线Y=Threshold_HorHis进行分割,得到了直线Y=ThreshoId_HorHis与车辆波的交点,两个交点的横坐标即为检测区域中的疑似车辆区域的左上,右下点横坐标,实现中设置阈值ThresholdJtorHis为10。
[0032]步骤C017确定了疑似车辆区域的左上,右下点的纵坐标,首先在水平边缘图中以左上,右下点的横坐标为左右边界,检测区域的第I行和第H行为上下边界取如图4中所示的白色矩形区域Detection_area_s, Detection_area_s中包含多条水平线段。通过对多个DeteCti0n_area_s进行分析发现,在矩形区域中属于车辆的水平线段的纵向间距较小。考虑到不同距离下车载摄像机捕获的车辆在图像中具有不同的尺寸,且不同尺寸车辆包含的水平线段之间存在不同的间距,因此需要自适应地设置一个距离阈值ThresholcLdis来确定物体的上下边界。实现过程中自适应地根据确定的矩形区域的宽度W设置阈值ThreshoId_diS=Min (W/6, 100)。设置阈值Threshold_dis后,从上到下对矩形区域中的每一条水平Horizontallinei使用以下规则进行判断:
[0033]规则1.若Horizontallinei是出现的第一条水平线段,则它是第一个物体的上边界;
[0034]规则2.若Horizontallinei是最后一条水平线段,贝U它是最后一个物体的下边界;
[0035]规则3.若当前Horizontallinei与其相邻的下一条Horizontal_linei+1之间的间距大于
[0036]Threshold_dis,则 Horizontallinei 为第 J个物体的下边界,Horizontal_linei+1为第
[0037]J+1个物体的上边界;
[0038]规则4.若Horizontallinei与其相邻的下面一条Horizontal_linei+1之间的间距小于等于Threshold_dis,则这 两条直线属于同一个物体。
[0039]通过上述规则得到了车顶和车底的位置,从而确定出疑似车辆区域的左上,右下点的纵坐标:
[0040]通过使用大量视频对基于水平边缘直方图的车辆检测算法进行测试后发现,连续25帧提取出的疑似车辆的中心落在同一区域内。图5为连续25帧内,使用基于水平方向边缘像素点统计直方图的车辆检测算法提取的疑似车辆区域的中心位置,其中的2个为真实车辆,编号分别为车辆1,车辆2。
[0041]定义如图6所示的基于水平边缘直方图的车辆检测算法提取的疑似车辆区域:Vehicle_roi={X_roi_center, Y_roi_center, Width_vehicIe_roi, Height_vehicle_roi, Search_window_vehicIe_roi, Seq_vehicle_roij}。其中 X_roi_center, Y_roi_center表示提取的疑似车辆区域的中心点横、纵坐标。Width_vehicle_roi, Height_vehicIe_roi分别为疑似车辆区域的宽和高。Search_window_vehicIe_roi为搜索框,其定义为以每个疑似车辆区域的中心为中心,边长为2XSTEP的一个矩形区域,实现过程中STEP取值为5,且每隔5帧根据当前物体的中心更新搜索框的中心。Seq_vehicle_roi」用于记录连续8中贞内疑似车辆区域的中心落在搜索框内的情况。步骤C021-C023为采用基于运动轨迹的车辆检测方法对疑似区域进行车辆确定的过程,具体操作如下:
[0042]Stepl使用基于水平方向边缘像素点统计直方图的车辆检测算法提取视频中每一中贞的疑似车辆区域,并用Vehicle^oii记录当前帧中的疑似车辆区域的相关信息,初始化每个疑似车辆区域的搜索框Searct^windowjehiclejoii。
[0043]Step2循环判断当前帧中的每一个疑似车辆区域Vehicle_roin的中心(X_roi_centern, Y_roi_centern)是否落在前一帧确定的感兴趣区域Vehiclejoii的搜索框内,若落在搜索框 Searct^window+vehiclej^oii 内则将 Seqjehiclej^oiij赋值为 I,否则将 Seq_
Vehiclejoiij赋值为O, 其中i=l, 2......Num, j=l, 2......N。若当前帧中的某一疑似车辆区
域未落在任何一个前一帧确定出来的感兴趣区域Vehicle^oii的搜索框内,则认定该区域为新出现的感兴趣区域,并初始该区域为Vehicle_roii+1。
[0044]Step3统计连续8帧内队列Seqjehiclej^oii中值为I的元素个数,若为I的元素个数大于4,则确定疑似车辆区域Vehicle^oii为车辆,并在结果图1mage_result中标示出该车辆。
[0045]Step4统计连续8帧内队列Seq^ehiclei中值为O的元素个数,若为O的元素个数等于8,则认为该疑似车辆区域Vehiclejoii为干扰,删除该感兴趣区域。
[0046]Step5保存如图7所示的结果图1mage_result。
【权利要求】
1.基于车载摄像机的盲区车辆检测方法,所用设备由普通PC机,成像系统组成,成像系统采用车载摄像机;其特征在于,实现步骤如下: (OlO)部分,采用基于水平方向边缘统计直方图的车辆检测方法提取驾驶盲区中疑似车辆区域并给出疑似车辆区域的左上,右下点及中心点的横纵坐标值,保留原始的图片,具体步骤如下: 步骤COll:做好初始化车载摄像机,初始化编解码器; 步骤C012:利用车载摄像机获取图像Image,保存获得的图像Image ; 步骤C013:通过Sobel算子提取图像Image中的水平方向边缘,获得粗线条的车辆水平方向边缘和一些干扰伪边缘的边缘图像Image_edge ; 步骤C014:将边缘图像Image_edge的下2/3区域设置为检测区域Detection_area,统计检测区域Detection_area中每一列上的边缘像素点个数,以生成该区域的水平方向边缘像素点统计直方图His_hor ; 步骤C015:对C014步骤中的水平边缘像素点统计直方图His_hor进行中值滤波处理,得到了车辆波Vehicle_wave ; 步骤CO 16:通过对车辆波Vehicl e_wave进行分割,获得图像中疑似车辆区域Veh i c I e_roi的左上,右下点的横坐标X_roi_min, X_roi_max ; 步骤C017:在以左上,右下点的横坐标X_roi_min, X_roi_max为左右边界的检测子矩形区域Detection_area_s内,根据Detection_area_s内的水平方向边缘线的位置,获得疑似车辆区域Vehicle_roi的左上,右下点的纵坐标,保存坐标值Y_roi_min, Y_roi_max ;步骤C018:根据疑似车辆区域Vehicle_r0i的左上,右下点的横纵坐标计算出疑似车辆区域的中心点的横纵坐标,保存坐标值(X_roi_center, Y_roi_center)生成疑似车辆区域图像 Image_vehicle,保存 Image_vehicle ; (020)部分,采用基于运动轨迹的车辆检测方法对疑似区域进行车辆确定,具体步骤如下: 步骤C021:读取(010)部分的方法所得到的Image_vehicle,并记录相应疑似车辆区域Vehicle_roi 的中心点横纵坐标值(X_roi_center, Y_roi_center); 步骤C022:判断视频中每一巾贞图像中的疑似车辆区域的中心点(X_roi_center, Y_roi_center)是否落在前一巾贞确定出的疑似车辆区域中心点周围内,如连续Num巾贞内落在中心点周围的中心点数目超过给定阈值V e h i c I e _Num,则认为此疑似车辆区域为车辆区域; 步骤C023:根据(010)部分确定的疑似车辆区域的左上,右下点的横纵坐标值,标记出车辆在图像Image中的位置,得到结果图1mage_result,保存Image_result。
【文档编号】G06K9/00GK103942532SQ201410093762
【公开日】2014年7月23日 申请日期:2014年3月14日 优先权日:2014年3月14日
【发明者】李文辉, 刘培勋, 王莹, 倪洪印, 傅博, 陈存祺, 肖文超 申请人:吉林大学