CN105740809A - 一种基于机载摄像机的高速公路车道线检测方法 - Google Patents

一种基于机载摄像机的高速公路车道线检测方法 Download PDF

Info

Publication number
CN105740809A
CN105740809A CN201610060174.6A CN201610060174A CN105740809A CN 105740809 A CN105740809 A CN 105740809A CN 201610060174 A CN201610060174 A CN 201610060174A CN 105740809 A CN105740809 A CN 105740809A
Authority
CN
China
Prior art keywords
parameter
lane line
row
straight line
pixel
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201610060174.6A
Other languages
English (en)
Other versions
CN105740809B (zh
Inventor
路小波
唐涛
姜良维
曾维理
卫朋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Southeast University
Original Assignee
Southeast University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Southeast University filed Critical Southeast University
Priority to CN201610060174.6A priority Critical patent/CN105740809B/zh
Publication of CN105740809A publication Critical patent/CN105740809A/zh
Application granted granted Critical
Publication of CN105740809B publication Critical patent/CN105740809B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/50Context or environment of the image
    • G06V20/56Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle
    • G06V20/588Recognition of the road, e.g. of lane markings; Recognition of the vehicle driving pattern in relation to the road

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Image Analysis (AREA)

Abstract

本发明是一种基于机载摄像机的高速公路车道线检测方法。第一步逐帧读入图像,第二步截取感兴趣区域图像,第三步对感兴趣区域图像进行降采样,第四步基于彩色图像进行二值化,获取含有车道线的二值图像,第五步利用车道线宽度信息去除车辆和路边建筑物等干扰物,然后根据图像中每个连通域的面积进行滤波,去除面积较小的杂散点,得到车道线图像,第六步获取直线段参数,第七步根据车道线分布特点剔除非车道线直线,第八步更新感兴趣区域ROI宽度和左上角点坐标。本发明是一种基于机载摄像机的高速公路车道线检测方法,可以检测视频图像中的所有车道线,为进行高速公路上各车辆的违法行为分析提供了重要保障,而且该方法准确性高,鲁棒性好。

Description

一种基于机载摄像机的高速公路车道线检测方法
技术领域
本发明涉及图像处理和交通视频检测领域,是一种基于机载摄像机的高速公路车道线检测方法,其主要是用于进一步的高速公路违法事件检测。
背景技术
交通拥挤,事故频发目前正困扰着我国乃至全世界人民,俨然已经成为社会一大公害,近年来我国车辆数量急剧增加,但是道路交通管理相对滞后,随之而来的交通事故也快速增加,因此急需强有力的交通监测手段,尽管目前很多城市都已经使用了视频监控,但是缺乏有效的自动事件检测方法,尤其是高速公路上的违法事件检测,考虑到高速公路上车辆行驶速度快,而且高速公路延伸范围长,不似城市交通集中,所以为了实现大范围的交通监控,提出使用无人机搭载摄像机进行交通监控,其中,实现车道线的准确检测是完成高速公路上的违法事件检测分析的重要内容。
使用无人机搭载摄像机监控与智能驾驶系统中的车载摄像机以及固定摄像机监控有很大的不同:(1)不论是车载摄像机,还是固定摄像机,道路基本上都在图像的正中央,车道以外的背景物相对较少,但是由于无人机的控制问题,拍摄到的图像很难保证道路就在图像正中央,而且可能存在较大的偏角;(2)无人机搭载的摄像机视野更加广阔,不可避免的将很多复杂背景拍摄下来,同时车辆在车道中会显得更加密集,对车道线的检测带来很大的影响;(3)无人机的高度会发生变化,这会使得高速公路在图像中的比例发生较大的变化,以至于检测车道线更加困难。
发明内容
技术问题:
本发明提供一种精度较高的、易实现的基于机载摄像机的高速公路车道线检测方法,
技术方案:
本发明为了实现一种基于机载摄像机的高速公路车道线检测方法,按照以下步骤进行:
步骤1:逐帧读取无人机上的摄像机拍摄的大小为M1×M2×3的三通道BGR彩色图像,并将当前读取的三通道BGR彩色图像记为S1,其中,M1,M2分别表示三通道BGR彩色图像S1的高度和宽度;
步骤2:在三通道BGR彩色图像S1上截取一个左上角点坐标为(x0,y0)、高度为M3像素、宽度为M4像素的感兴趣区域ROI,得到大小为M3×M4×3的BGR彩色图像S2,感兴趣区域ROI的初始值设定如下:高度M3=M1,宽度M4=M2,左上角点坐标(x0,y0)=(0,0),之后在每一帧的检测完成后按照步骤8对感兴趣区域ROI的高度M3、宽度M4、左上角点坐标(x0,y0)自动进行调整;
步骤3:首先创建一个大小为M5×M6×3的BGR彩色图像作为采样图像S3,其中M5=M3/scale,M6=M4/scale,然后对BGR彩色图像S2进行降采样,获得采样图像S3,降采样公式为
x = x 3 · s c a l e , x 3 = 1 , 2 , ... , M 5 y = y 3 · s c a l e , y 3 = 1 , 2 , ... , M 6 dst 3 ( x 3 , y 3 ) = src 2 ( x , y )
其中,dst3(x3,y3)为采样图像S3在第x3行、第y3列的像素点的像素值,src2(x,y)为BGR彩色图像S2在第x行、第y列的像素点的像素值,scale是图像降采样系数,初始值为1,之后根据感兴趣区域ROI的宽度与三通道BGR彩色图像S1的宽度的比值进行调整,调整规则为
步骤4:对采样图像S3进行二值化处理,得到一个二值图像S4,二值化处理过程为
其中,x4=x3,y4=y3;dst4(x4,y4)为二值图像S4中的第x4行、第y4列的像素点的像素值;src_B(x3,y3),src_G(x3,y3),src_R(x3,y3)分别为采样图像S3的第x3行、第y3列的像素点在BGR颜色空间蓝色、绿色、红色分量的值;th1、th2、th3分别为蓝色、绿色、红色分量的阈值,th1、th2、th3都取为180;
步骤5:获取车道线二值图像
步骤5.1首先利用车道线的宽度信息按照如下步骤剔除二值图像S4的每一行中宽度大于给定阈值的连续白色点,去掉比较大的干扰物,如车辆、建筑物等:
步骤5.1.1从二值图像S4的第一行第一个像素点开始进行扫描,然后进入步骤5.1.2;
步骤5.1.2如果当前扫描像素点为黑色点,则进入步骤5.1.6,如果当前扫描像素点为白色点,则进入步骤5.1.3;
步骤5.1.3若当前扫描像素点为每行的第一个像素点或者当前扫描像素点的前一个像素点为黑色点,则用index_1记录当前扫描像素点所在列坐标,作为这段连续白色点的起始位置,然后进行步骤5.1.4,若当前扫描像素点的前一个像素点为白色点,则进入步骤5.1.4;
步骤5.1.4若当前扫描像素点为每一行的最后一个像素点或者当前扫描像素点的下一个像素点为黑色点,则用index_2记录当前扫描像素点所在列坐标,作为这段连续白色点的结束位置,然后进行步骤5.1.5,若当前扫描像素点的后一个像素点为白色点,则进入步骤5.1.6;
步骤5.1.5计算这段连续白色点个数n=(index_2-index_1)+1,连续白色点数的阈值thresh=3,如果n>thresh,将二值图像S4中当前扫描行的列坐标在index_1和index_2之间的像素点全部赋值为0,变为黑色点,然后进入步骤5.1.6;如果n≤thresh,则进入步骤5.1.6;
步骤5.1.6若二值图像S4中所有的点都扫描结束,则进入步骤5.2,否则,继续扫描下一像素点并返回步骤5.1.2;
步骤5.2首先采用传统的两次扫描法检测步骤5.1处理后的二值图像S4的中的白色点形成的连通域,第一遍扫描对每个白色像素点进行标号,像素点的像素值就是它的标号,第二次扫描对等价的标号进行替换处理以及统计每个标号的像素点个数,最后标记为同一个标号的像素点形成一个连通域,标记为这个标号的像素点个数就是这个连通域的像素点个数,可以用来表示这个连通域的面积,然后再一次扫描图像,将图像中像素点的个数少于30的连通域去掉,得到车道线二值图像S5,其详细步骤如下:
5.2.1从步骤5.1中处理后的二值图像S4的第一行第一列进行扫描,进入步骤5.2.2;
5.2.2如果当前扫描像素点B为白色点,则进入步骤5.2.3,如果当前扫描像素点B为黑色点,则进入步骤5.2.4;
5.2.3此时存在以下几种情况,需要分别进行处理:(1)若当前扫描像素点B为第一行第一列的像素点,则将当前扫描像素点B的值赋值为1,即当前扫描像素点B被标号为1,label=1,然后进入步骤5.2.4;(2)若当前扫描像素点B是第一行但不是第一列的像素点,则将当前扫描像素点B赋值为label+1,即将该点标号为label+1,label=label+1,然后进入步骤5.2.4;(3)若当前扫描像素点B为第一列但不是第一行的像素点,则如果当前扫描像素点B的正上方和右上方的像素点的值均为0,就将当前扫描像素点B的值赋值为label+1,即将该点标号为label+1,label=label+1,然后进入步骤5.2.4,如果当前扫描像素点B的正上方或右上方的像素点中只有一个像素点的值(即标号)不为0或者两个像素点的值都不为0但是相等,就将这个不为0的值赋值给当前扫描像素点B作为标号,然后进入步骤5.2.4;如果当前扫描像素点B的正上方或右上方的像素点中两个像素点的像素值(即标号)都不为0且不相等,则取其中较小的值赋值给当前扫描像素点B作为标号,并记录当前两个像素点标号的等价关系,然后进入步骤5.2.4;(4)若当前扫描像素点B不为第一行也不为第一列的像素点,则如果8邻域像素点中的左上角点、正上方点、右上方点、正前方点的值都为0,则将当前扫描像素点B的值赋值为label+1,即将该点标号为label+1,label=label+1,然后进入步骤5.2.4,如果8邻域像素点中的左上角点、正上方点、右上方点、正前方点的值中只有一个值不为0,或者有多个点的值都不为0但是相等,就将这个不为0的值赋值给当前扫描像素点B,然后进入步骤5.2.4,如果8邻域像素点中的左上角点、正上方点、右上方点、正前方像素点的值中有多个不为0而且还不相等,则记录这几个标号的等价关系,即标号为这几个不为0的值的像素点属于同一个连通区域,并将这些值中最小的不为0的值赋值给当前扫描像素点B,作为像素点B的标号,进入步骤5.2.4;
5.2.4若二值图像S4的所有像素点都扫描结束,则进入步骤5.2.5,否则扫描下一个像素点,然后返回步骤5.2.2;
5.2.5重新逐行逐点的扫描经过标号处理的二值图像S4,对每一个像素点的标号(即像素值)检查是否有存在相等关系的最小标号值,如果存在,则将该像素点的像素值赋值为这个最小的标号值,否则不对标号进行处理,同时统计每一个标号的像素点数量,直至经过标号处理的二值图像S4的所有像素点都扫描结束后,得到重新标号处理后的二值图像S4和每个最终剩余标号所占有的像素点数量,然后进入步骤5.2.6;
5.2.6再一次逐行逐点的扫描重新标号处理后的二值图像S4,当前扫描像素点的标号(即像素值)所占有的像素点数量count<30,当前扫描像素点的值赋值为0,当前扫描像素点(即标号值)所占有的像素点数量count≥30,则当前扫描像素点的值赋值为255,直至这个经过重新标号处理后的二值图像S4扫描结束,这个最后经过处理得到的二值图像S4就是要获取的车道线二值图像S5,车道线二值图像S5的行坐标表示为x5,列坐标表示为y5
步骤6:获取直线段参数
检测车道线二值图像S5中的直线段,获取直线段参数集L1,其步骤如下:
步骤6.1从车道线二值图像S5中收集所有白色点的一对行坐标和列坐标,每个白色点的行坐标和列坐标成对的存放,得到一个坐标集C1并创建一个总行数为181,总列数为2×(M5+M6)的参数空间矩阵D,参数空间矩阵D中所有元素的初值为0,然后进行步骤6.2;
步骤6.2如果坐标集C1为空集,则得到一个直线段参数集L1,所述直线段参数集L1中的每条线段由两个端点坐标(xstart,i,ystart,i),(xend,i,yend,i)共4个参数表示,每条线段的参数作为一组参数,则共有N1组,并结束步骤6,否则,则随机抽取C1中的一对行坐标xp和列坐标yp,并且从坐标集C1中去除当前抽取的行坐标xp和列坐标yp,进入步骤6.3;
步骤6.3将当前抽取的这一对行坐标xp和列坐标yp按如下公式进行变换:
ρ=xp·cos(θ)+yp·sin(θ),θ=0°,1°,2°,…,180°
总共得到181组ρ和θ,再对参数空间矩阵D中的第θ+1行、第[ρ]+M5+M6列的元素加1,[ρ]表示对ρ取整数,然后找出参数空间矩阵D中所有元素的最大值max及最大值max所在的行坐标θm+1和列坐标ρm+M5+M6,并且判断这个最大值max是否大于给定阈值50,如果大于,则进行步骤6.4,否则返回步骤6.2;
步骤6.4将参数空间矩阵D中所有元素的最大值max所在的行坐标θm和列坐标ρm代入以下公式ρ=xi·cos(θ)+yi·sin(θ),得到车道线二值图像S5中的一条直线方程ρm=x5·cos(θm)+y5·sin(θm),然后在车道线二值图像S5中,以当前抽取的这一对行坐标xp、列坐标yp所对应的像素点为起始点,沿着ρm=x5·cos(θm)+y5·sin(θm)这条直线搜索白色点,当遇到图像边界或者连续黑色点的数量超过50时,结束搜索,得到一条白色直线段的两个端点坐标和在这条白色直线段上的N个白色点的行坐标和列坐标,如果当前直线段上的两个端点的距离等于或大于100像素,则记录当前直线段的两个端点坐标(xstart,i,ystart,i),(xend,i,yend,i),然后去除坐标集C1中已经确定属于这条直线段的这N个白色点的行坐标和列坐标,并且将已经确定属于这条线段的这N个白色点的每一对行坐标xi和列坐标yi,i为正整数,i=1,2,…,N,按照公式ρ=xi·cos(θ)+yi·sin(θ),θ=0°,1°,2°,…,180°进行变换,然后对参数空间矩阵D中的第θ+1行、第[ρ]+M5+M6列的元素减1,如果当前直线段上的两个端点距离小于100像素,直接去除坐标集C1中已经确定属于当前直线段的这N个白色点的行坐标和列坐标,然后返回步骤6.2;
步骤7:利用高速公路的车道线分布特点,去除非车道线直线,其步骤如下:
步骤7.1首先利用直线段参数集L1中候选线段的两个端点坐标(xstart,i,ystart,i),(xend,i,yend,i)计算每条线段的线段角度i为正整数,i=1,2,…,N1,然后使用统计学方法得到所有线段角度{αi}的统计直方图,从统计直方图中选择候选车道线线段的角度区间[αmin,αmax],具体步骤为:从统计直方图的第一个区间开始往后面的区间方向找到第一个频数大于4的区间,以这个区间的下限值作为αmin,从统计直方图的最后一个区间开始往前面的区间方向找到第一个频数大于4的区间,以这个区间的上限值作为αmax,舍弃候选车道线线段的角度区间[αmin,αmax]以外的线段角度值所对应的直线段参数,得到参数组数为N2的候选车道线线段参数集L2
步骤7.2将候选车道线线段参数集L2中的线段参数由两个端点坐标表示转变为每条线段所在直线的斜率k1和截距b1表示,由于存在车道线断裂和虚线车道线,所以会存在多条线段同在一条直线上,此时仅保留一组参数,最终将得到一个参数组数为N3的候选车道线参数集L3,其详细步骤如下:
步骤7.2.1i=1,i是正整数,将候选车道线线段参数集L2中的第i组参数转换为线段所在直线的斜率k1i和截距b1ib1i=yend,i-k1i·xend,i,将斜率k1i和截距b1i作为一组参数加入候选车道线参数集L3,候选车道线参数集L3初始时为空集,i=i+1,进入步骤7.2.2;
步骤7.2.2计算候选车道线线段参数集L2中的第i组参数表示的两个端点到候选车道线参数集L3中的每组参数表示的直线的距离,如果两个端点到候选车道线参数集L3中某一条直线的距离都小于5个像素,则进入步骤7.2.3,否则,进入步骤7.2.4;
步骤7.2.3i=i+1,如果i>N2,则结束步骤7.2,进入步骤7.3,否则返回步骤7.2.2;
步骤7.2.4将候选车道线线段参数集L2中的第i组参数转换为线段所在直线的斜率k1i和截距b1ib1i=yend,i-k1i·xend,i,并将斜率k1i和截距b1i作为一组参数加入候选车道线参数集L3,i=i+1,如果i>N2,则结束步骤7.2,进入步骤7.3,否则返回步骤7.2.2;
步骤7.3将候选车道线参数集L3中的参数k1i及b1i转换成对应于三通道BGR彩色图像S1的参数ki及bi,ki=k1i,bi=b1i*scale,i为正整数,i=1,2,…,N3,并且计算出候选车道线参数集L3中每组参数对应直线与三通道BGR彩色图像S1下边界的交点的列坐标ybottom,i,i为正整数,i=1,2,…,N3,之后对候选车道线参数集L3中的直线参数按照每组参数对应的ybottom,i的大小进行从小到大的排序,得到候选车道线参数序列L4,再依次计算候选车道线参数序列L4中相邻参数对应的直线与三通道BGR彩色图像S1下边界交点的列坐标之间的差值,作为相邻直线之间的间距,得到间距序列{dbottom,j},同时依次计算候选车道线参数序列L4中相邻参数对应直线之间的角度差,得到角度差序列{Δβj},j正整数,j=1,2,…,N3-1,并且分别计算间距序列{dbottom,j}的均值和角度差序列{Δβj}的均值然后利用以下步骤去掉非车道线直线:
步骤7.3.1从候选车道线参数序列L4中取第一组和第二组直线参数为一对相邻直线参数,同时从候选车道线参数序列L4中删除抽取的这第一组和第二组直线参数,并设一车道线参数序列L5,此时为空序列,进入步骤7.3.2;
步骤7.3.2如果当前抽取的这对相邻直线参数对应的直线与三通道BGR彩色图像S1下边界交点的列坐标之间的差值dbottom和角度差Δβ满足条件:则这对相邻直线参数对应的两条直线都是车道线,将这两组直线参数按照它们在候选车道线参数序列L4中的先后顺序依次放在车道线参数序列L5的尾部,进入步骤7.3.9,否则进入步骤7.3.3;
步骤7.3.3如果候选车道线参数序列L4是空序列,进入步骤7.3.4,否则进入步骤7.3.5;
步骤7.3.4将当前这对相邻直线参数中的前一组直线参数放在车道线参数序列L5的尾部,得到最后的车道线参数序列L5,车道线参数序列L5中每组直线参数对应着一条车道线,并结束步骤7;
步骤7.3.5再从候选车道线参数序列L4的前端抽取第一组直线参数并且从候选车道线参数序列L4的删除第一组直线参数,与步骤7.3.2中的那对相邻直线参数进行两两配对,形成三对直线参数,分别判定每对直线参数对应的直线与三通道BGR彩色图像S1下边界交点的列坐标之间的差值dbottom和角度差Δβ是否满足条件:结果存在以下三种情况:如果有且仅有一对直线参数对应的dbottom和Δβ满足条件,则进入步骤7.3.6,如果有两对直线参数对应的dbottom和Δβ满足条件,则进入步骤7.3.7,如果三对直线参数都不满足条件,则进入步骤7.3.8;
步骤7.3.6满足条件的这对直线参数对应的两条直线都是车道线,将这两组直线参数按照它们在候选车道线参数序列L4中的先后顺序依次放在车道线参数序列L5的尾部,进入步骤7.3.9;
步骤7.3.7分别计算满足条件的两对直线参数中每对直线参数对应的dbottom、Δβ与均值的差异和δ,即选择差异和δ最小的这对直线参数对应的两条直线作为车道线,即从两对都满足条件的直线参数中选择最优的一对直线,将这两组直线参数按照它们在候选车道线参数序列L4中的先后顺序依次放在车道线参数序列L5的尾部,进入步骤7.3.9;
步骤7.3.8将这三组直线参数中的最前一组直线参数对应的直线作为车道线,并将这组直线参数放在当前车道线参数序列L5的尾部,进入步骤7.3.9;
步骤7.3.9如果候选车道线参数序列L4为空序列,得到最后的车道线参数序列L5,车道线参数序列L5中每组直线参数对应着一条车道线,结束步骤7,否则抽取候选车道线参数序列L4的第一组直线参数和车道线参数序列L5的最后一组直线参数,形成一对相邻直线参数,并删除候选车道线参数序列L4的第一组直线参数和车道线参数序列L5的最后一组直线参数,返回步骤7.3.2;
步骤8:更新感兴趣区域ROI
将车道线参数序列L5中第一组直线参数对应的直线lleft和最后一组直线参数对应的直线lright分别作为高速公路的左右边界线,先计算直线lleft与三通道BGR彩色图像S1上下边界的交点的列坐标ylu和yld,然后计算直线lright与三通道BGR彩色图像S1上下边界的交点的列坐标yru和yrd,并根据这些值对感兴趣区域ROI的左上角点坐标(x0,y0)中的y0及宽度M4进行更新,x0和高度M3不变,将此更新后的感兴趣区域ROI作为下一帧图像的感兴趣区域ROI,返回步骤1。
有益效果
本发明与现有的技术相比,本发明的特点在于:
1)采用机载摄像机,由于无人机的飞行控制问题,拍摄到的视频图像中高速公路一般会有一定的倾斜或者不在图像中央,本发明通过对检测到的所有直线角度进行统计分析,自动确定每帧图像的车道线角度范围,可以有效地处理这种图像中高速公路存在一定偏角的情况,并且通过每帧不断更新感兴趣区域可以很好地解决图像中高速公路偏离中央的情况;
2)采用机载摄像机,不仅会存在大面积而且复杂的高速公路路边的背景,使得路边的管道和一些较长的电线杆也可能会被识别为车道线,而且由于视角、视场的原因,车道内车辆密集,而且车辆颜色复杂,使得车辆边缘也很可能被误识别为车道线,通常对图像进行阈值分割后,会存在两大问题,(1)会有大量带有孔洞的宽度大于给定阈值的白色团块干扰检测,本发明首先利用车道线的宽度信息去掉的这些白色团块,然后利用连通域滤波算法去掉由于白色团块中间存在孔洞而留下的杂散点;(2)由于对图像进行阈值分割后,可能车辆仅存在边缘而不是整个车辆,以及一些路边管道、电线杆等,这些仍然非常容易被误检为车道线,对车道线的检测存在干扰,所以本发明中又利用高速公路车道线的分布特点,对相邻车道线间距和角度差与其均值之差的大小进行判断,去掉异常直线,因此本发明中的措施可以非常有效地处理复杂背景,实现精确的车道线检测,鲁棒性强;
3)由于无人机飞行高度很容易发生变化,导致高速公路在图像中的比例会发生很大变化,如果高速公路部分占比例很小很小,再进行降采样会导致车道线的信息缺失严重,和车辆混杂在一起很难检测出来,所以降采样系数必须很小,甚至不能进行降采样,但若是高速公路本身占整幅图像的比例很大,降采样系数就可以设置的相对较大,以减小处理的时间,所以本发明通过计算感兴趣区域的宽度和整个图像宽度的比值,自动的调节降采样系数,解决了无人机飞行过程中存在的高度变化带来的这种问题,自适应能力强。
附图说明
图1基于航拍高速公路的车道线检测流程图。
图2航拍高速公路图像实例。
图3感兴趣区域图像实例。
图4基于彩色图像的阈值分割结果。
图5车道线二值图像,其中,(a)利用宽度信息去除干扰物的结果;(b)连通域滤波结果。
图6直线段检测结果。
图7所有候选直线角度的统计直方图示意图。
图8车道线常见的错误检测线实例。
图9不同情况下的车道线检测结果。
具体实施方式
为了更好的理解本发明的技术方案,下面结合附图及某高速公路上的视频实例对本发明作进一步描述,该方法的总体流程图见图1,该方法实现步骤如下:
步骤1:逐帧读取无人机上的摄像机拍摄的大小为M1×M2×3的三通道BGR彩色图像,并将当前读取的三通道BGR彩色图像记为S1,其中,M1,M2分别表示图像S1的高度和宽度,如图2所示;
步骤2:在三通道BGR彩色图像S1上截取一个左上角点坐标为(x0,y0)、高度为M3像素、宽度为M4像素的感兴趣区域ROI,得到大小为M3×M4×3的BGR彩色图像S2,感兴趣区域ROI的初始值设定如下:高度M3=M1,宽度M4=M2,左上角点坐标(x0,y0)=(0,0),之后在每一帧的检测完成后按照步骤8对感兴趣区域ROI的高度M3、宽度M4、左上角点坐标位置(x0,y0)自动进行调整;
步骤3:首先创建一个大小为M5×M6×3的BGR彩色图像作为采样图像S3,其中M5=M3/scale,M6=M4/scale,然后对BGR彩色图像S2进行降采样,获得采样图像S3,降采样公式为
x = x 3 · s c a l e , x 3 = 1 , 2 , ... , M 5 y = y 3 · s c a l e , y 3 = 1 , 2 , ... , M 6 dst 3 ( x 3 , y 3 ) = src 2 ( x , y )
其中,dst3(x3,y3)为采样图像S3在第x3行、第y3列的像素点的像素值,src2(x,y)为BGR彩色图像S2在第x行、第y列的像素点的像素值,scale是图像降采样系数,初始值为1,之后根据感兴趣区域ROI的宽度与三通道BGR彩色图像S1的宽度的比值进行调整,调整规则为
步骤4:对采样图像S3进行二值化处理,得到一个二值图像S4,二值化处理为
其中,x4=x3,y4=y3;dst4(x4,y4)为二值图像S4中的第x4行、第y4列的像素点的像素值;src_B(x3,y3),src_G(x3,y3),src_R(x3,y3)分别为采样图像S3中的第x3行、第y3列的像素点在BGR颜色空间蓝色、绿色、红色分量的值;th1、th2、th3分别为蓝色、绿色、红色分量的阈值,th1、th2、th3都取为180,基于彩色图像进行二值化的结果如图4所示;
步骤5:获取车道线二值图像
步骤5.1首先利用车道线的宽度信息按照如下步骤剔除二值图像S4的每一行中宽度大于给定阈值的连续白色点,去掉比较大的干扰物,如车辆、建筑物等,结果如图5(a)所示:
步骤5.1.1从二值图像S4的第一行第一个像素点开始进行扫描,然后进入步骤5.1.2;
步骤5.1.2如果当前扫描像素点为黑色点,则进入步骤5.1.6,如果当前扫描像素点为白色点,则进入步骤5.1.3;
步骤5.1.3当前扫描像素点为每行的第一个像素点或者当前扫描像素点的前一个像素点为黑色点,则用index_1记录当前扫描像素点所在列坐标,作为这段连续白色点的起始位置,然后进行步骤5.1.4,若当前扫描像素点的前一个像素点为白色点,则进入步骤5.1.4;
步骤5.1.4若当前扫描像素点为每一行的最后一个像素点或者当前扫描像素点的下一个像素点为黑色点,则用index_2记录当前扫描像素点所在列坐标,作为这段连续白色点的结束位置,然后进行步骤5.1.5,若当前扫描像素点的后一个像素点为白色点,则进入步骤5.1.6;
步骤5.1.5计算这段连续白色点个数n=(index_2-index_1)+1,thresh=3,如果n>thresh,将二值图像S4中当前扫描行的列坐标介于index_1和index_2之间的像素点全部赋值为0,变为黑色点,然后进入步骤5.1.6;如果n≤thresh,则进入步骤5.1.6;
步骤5.1.6若二值图像S4中所有的像素点都扫描结束,则进入步骤5.2,否则,继续扫描下一像素点并返回步骤5.1.2;
步骤5.2首先采用传统的两次扫描法检测步骤5.1处理后的二值图像S4的中的白色点形成的连通域,第一遍扫描对每个白色像素点进行标号,像素点的值就是它的标号,第二次扫描对等价的标号进行替换处理以及统计每个标号的像素点个数,最后标记为同一个标号的像素点形成一个连通域,标记为这个标号的像素点个数就是这个连通域的像素点个数,可以用来表示这个连通域的面积,然后再一次扫描图像,将图像中像素点的个数少于30的连通域去掉,得到车道线二值图像S5,其详细步骤如下:
5.2.1从步骤5.1中处理后的二值图像S4的第一行第一列进行扫描,进入步骤5.2.2;
5.2.2如果当前扫描像素点B为白色点,则进入步骤5.2.3,如果当前扫描像素点B为黑色点,则进入步骤5.2.4;
5.2.3此时存在以下几种情况,需要分别进行处理:(1)若当前扫描像素点B为第一行第一列的像素点,则将当前扫描像素点B的值赋值为1,即当前扫描像素点B被标号为1,label=1,然后进入步骤5.2.4;(2)若当前扫描像素点B是第一行但不是第一列的像素点,则将当前扫描像素点B赋值为label+1,即将该点标号为label+1,label=label+1,然后进入步骤5.2.4;(3)若当前扫描像素点B为第一列但不是第一行的像素点,则如果当前扫描像素点B的正上方和右上方的像素点的值均为0,就将当前扫描像素点B赋值为label+1,即将该点标号为label+1,label=label+1,然后进入步骤5.2.4,如果当前扫描像素点B的正上方或右上方的像素点中只有一个像素点的值(即标号)不为0或者两个像素点的值都不为0但是相等,就将这个不为0的值赋值给当前扫描像素点B作为标号,然后进入步骤5.2.4;如果当前扫描像素点B的正上方或右上方的像素点中两个点的像素值(即标号)都不为0且不相等,则取其中较小的值赋值给当前扫描像素点B作为标号,并记录当前两个点标号的等价关系,然后进入步骤5.2.4;(4)若当前扫描像素点B不为第一行也不为第一列的像素点,则如果8邻域像素点中的左上角点、正上方点、右上方点、正前方点的值都为0,则将当前扫描像素点B的值赋值为label+1,即将该点标号为label+1,label=label+1,然后进入步骤5.2.4,如果8邻域像素点中的左上角点、正上方点、右上方点、正前方点的值中只有一个值不为0,或者有多个点的值都不为0但是相等,就将这个不为0的值赋值给当前扫描像素点B,然后进入步骤5.2.4,如果8邻域像素点中的左上角点、正上方点、右上方点、正前方像素点的值中有多个不为0而且还不相等,则记录这几个标号的等价关系,即标号为这几个值的像素点属于同一个连通区域,并将这些值中最小的不为0的值赋值给当前扫描像素点B,作为像素点B的标号进入步骤5.2.4;
5.2.4若二值图像S4的所有像素点都扫描结束,则进入步骤5.2.5,否则扫描下一个像素点,然后返回步骤5.2.2;
5.2.5重新逐行逐点的扫描经过标号处理的二值图像S4,对每一个像素点的标号(即像素值)检查是否有存在相等关系的最小标号值,如果存在,则将该像素点的值赋值为这个最小的标号值,否则不对该像素点的标号进行处理,同时统计每一个标号的像素点数量,直至经过标号处理的二值图像S4的所有像素点都扫描结束后,得到重新标号处理后的二值图像S4和每个最终剩余标号所占有的像素点数量,然后进入步骤5.2.6;
5.2.6再一次逐行逐点的扫描重新标号处理后的二值图像S4,当前扫描像素点的标号(即像素值)所占有的像素点数量count<30,当前扫描像素点的值赋值为0,当前扫描像素点的标号(即像素值)所占有的像素点数量count≥30,则当前扫描像素点的值赋值为255,直至这个经过重新标号处理后的二值图像S4扫描结束,这个最后经过处理得到的二值图像S4就是要获取的车道线二值图像S5,如图5(b)所示,车道线二值图像S5的行坐标表示为x5,列坐标表示为y5
步骤6:获取直线段参数
检测车道线二值图像S5中的直线段,获取直线段参数集L1,将直线段参数集L1中所有参数表示线段描绘在采样图像S3中如图6所示,其步骤如下:
步骤6.1从车道线二值图像S5中收集所有白色点的一对行坐标和列坐标,每个白色点的行坐标和列坐标成对的存放,得到一个坐标集C1并创建一个总行数为181,总列数为2×(M5+M6)的参数空间矩阵D,所有元素的初值为0,然后进行步骤6.2;
步骤6.2如果坐标集C1为空集,则得到一个直线段参数集L1,所述直线段参数集L1中的每条线段由两个端点坐标(xstart,i,ystart,i),(xend,i,yend,i)共4个参数表示,每条线段的参数作为一组参数,则共有N1组,并结束步骤6,反之,则随机抽取C1中的一对行坐标xp和列坐标yp,并且从坐标集C1中去除当前抽取的行坐标xp和列坐标yp,然后进行步骤6.3;
步骤6.3将当前抽取的这一对行坐标xp和列坐标yp按如下公式进行变换:
ρ=xp·cos(θ)+yp·sin(θ),θ=0°,1°,2°,…,180°
总共得到181组ρ和θ,再对参数空间矩阵D中的第θ+1行、第[ρ]+M5+M6列的元素加1,[ρ]表示对ρ取整数,然后找出参数空间矩阵D中所有元素的最大值max及最大值max所在的行坐标θm+1和列坐标ρm+M5+M6,并且判断这个最大值max是否大于给定阈值50,如果大于,则进行步骤6.4,否则返回步骤6.2;
步骤6.4将参数空间矩阵D中所有元素的最大值max所在的行坐标θm和列坐标ρm代入以下公式:ρ=xi·cos(θ)+yi·sin(θ),得到车道线二值图像S5中的一条直线方程ρm=x5·cos(θm)+y5·sin(θm),然后在车道线二值图像S5中,以当前抽取的这一对行坐标xp、列坐标yp所对应的像素点为起始点,沿着ρm=x5·cos(θm)+y5·sin(θm)这条直线搜索白色点,当遇到图像边界或者连续黑色点的数量超过50时,结束搜索,得到一条白色直线段的两个端点坐标和在这条白色直线段上的N个白色点的行坐标和列坐标,如果当前直线段上的两个端点的距离等于或大于100像素,则记录当前直线段的两个端点坐标(xstart,i,ystart,i),(xend,i,yend,i),然后去除坐标集C1中已经确定属于这条直线段的这N个白色点的行坐标和列坐标,并且将已经确定属于这条线段的这N个白色点的每一对行坐标xi和列坐标yi,i为正整数,i=1,2,…,N,按照公式ρ=xi·cos(θ)+yi·sin(θ),θ=0°,1°,2°,…,180°进行变换,然后对参数空间矩阵D中的第θ+1行、第[ρ]+M5+M6列的元素减1,如果当前直线段上的两个端点距离小于100像素,直接去除坐标集C1中已经确定属于当前直线段的这N个白色点的行坐标和列坐标,然后返回步骤6.2;
步骤7:利用高速公路的车道线分布特点,去除非车道线直线,其步骤如下:
步骤7.1首先利用直线段参数集L1中候选线段的两个端点坐标(xstart,i,ystart,i),(xend,i,yend,i)计算每条线段的线段角度i为正整数,i=1,2,…,N1,然后使用统计学方法得到所有线段角度{αi}的统计直方图,从统计直方图中选择候选车道线线段的角度区间[αmin,αmax],具体步骤为:从统计直方图的第一个区间开始往后面的区间方向找到第一个频数大于4的区间,以这个区间的下限值作为αmin,从统计直方图的最后一个区间开始往前面的区间方向找到第一个频数大于4的区间,以这个区间的上限值作为αmax,舍弃候选车道线线段的角度区间[αmin,αmax]以外的线段角度值所对应的直线段参数,得到参数组数为N2的候选车道线线段参数集L2
步骤7.2将候选车道线线段参数集L2中的线段参数由两个端点坐标表示转变为每条线段所在直线的斜率k1和截距b1表示,由于存在车道线断裂和虚线车道线,所以可能会存在多条线段同在一条直线上,此时仅保留一组参数,最终得到一个参数组数为N3的候选车道线参数集L3,其步骤如下:
步骤7.2.1i=1,i为正整数,将候选车道线线段参数集L2中的第i组参数转换为线段所在直线的斜率k1i和截距b1ib1i=yend,i-k1i·xend,i,将斜率k1i和截距b1i作为一组参数加入候选车道线参数集L3,候选车道线参数集L3初始时为空集,i=i+1,进入步骤7.2.2;
步骤7.2.2计算候选车道线线段参数集L2中的第i组参数表示的两个端点到候选车道线参数集L3中的每组参数表示的直线的距离,如果两个端点到候选车道线参数集L3中某一条直线的距离都小于5个像素,则进入步骤7.2.3,否则,进入步骤7.2.4;
步骤7.2.3i=i+1,如果i>N2,则结束步骤7.2,进入步骤7.3,否则返回步骤7.2.2;
步骤7.2.4将候选车道线线段参数集L2中的第i组参数转换为线段所在直线的斜率k1i和截距b1ib1i=yend,i-k1i·xend,i,并将斜率k1i和截距b1i作为一组参数加入候选车道线参数集L3,i=i+1,如果i>N2,则结束步骤7.2,进入步骤7.3,否则返回步骤7.2.2;
步骤7.3将候选车道线参数集L3中的参数k1i及b1i转换成对应于三通道BGR彩色图像S1的参数ki及bi,ki=k1i,bi=b1i*scale,i为正整数,i=1,2,…,N3,并且计算出候选车道线参数集L3中每组参数对应直线与三通道BGR彩色图像S1下边界的交点的列坐标ybottom,i,i为正整数,i=1,2,…,N3,之后对候选车道线参数集L3中的直线参数按照每组参数对应的ybottom,i的大小进行从小到大的排序,得到候选车道线参数序列L4,再依次计算候选车道线参数序列L4中相邻参数对应的直线与三通道BGR彩色图像S1下边界交点的列坐标之间的差值,作为相邻直线之间的间距,得到间距序列{dbottom,j},同时依次计算候选车道线参数序列L4中相邻参数对应直线之间的角度差,得到角度差序列{Δβj},j正整数,j=1,2,…,N3-1,并且分别计算间距序列{dbottom,j}的均值和角度差序列{Δβj}的均值然后利用以下步骤去掉非车道线直线,部分非车道线直线示例如图8所示:
步骤7.3.1从候选车道线参数序列L4中取第一组和第二组直线参数为一对相邻直线参数,同时从候选车道线参数序列L4中删除抽取的这第一组和第二组直线参数,并设一车道线参数序列L5,此时为空序列,进入步骤7.3.2;
步骤7.3.2如果当前抽取的这对相邻直线参数对应的直线与三通道BGR彩色图像S1下边界交点的列坐标之间的差值dbottom和角度差Δβ满足条件:则这对相邻直线参数对应的两条直线都是车道线,将这两组直线参数按照它们在候选车道线参数序列L4中的先后顺序依次放在车道线参数序列L5的尾部,进入步骤7.3.9,否则进入步骤7.3.3;
步骤7.3.3如果候选车道线参数序列L4是空序列,进入步骤7.3.4,否则进入步骤7.3.5;
步骤7.3.4将当前这对相邻直线参数中的最前面一组直线参数放在车道线参数序列L5的尾部,得到最后的车道线参数序列L5,车道线参数序列L5中每组直线参数对应着一条车道线,并结束步骤7;
步骤7.3.5再从候选车道线参数序列L4中抽取第一组直线参数并且从候选车道线参数序列L4中删除第一组直线参数,与步骤7.3.2中的那对相邻直线参数进行两两配对,形成三对直线参数,分别判定每对直线参数对应的直线与三通道BGR彩色图像S1下边界交点的列坐标之间的差值dbottom和角度差Δβ是否满足条件:结果存在以下三种情况:如果有且仅有一对直线参数对应的dbottom和Δβ满足条件,则进入步骤7.3.6,如果有两对直线参数对应的dbottom和Δβ满足条件,则进入步骤7.3.7,如果三对直线参数都不满足条件,则进入步骤7.3.8;
步骤7.3.6满足条件的这对直线参数对应的两条直线都是车道线,将这两组直线参数按照它们在候选车道线参数序列L4中的先后顺序依次放在车道线参数序列L5的尾部,然后进入步骤7.3.9;
步骤7.3.7分别计算满足条件的两对直线参数中每对直线参数对应的dbottom、Δβ与均值的差异和δ,即选择差异和δ最小的这对直线参数对应的两条直线作为车道线,即从两对都满足条件的直线参数中选择最优的一对直线,将这两组直线参数按照它们在候选车道线参数序列L4中的先后顺序依次放在车道线参数序列L5的尾部,进入步骤7.3.9;
步骤7.3.8将这三组直线参数中的最前一组直线参数对应的直线作为车道线,并将这组直线参数放在当前车道线参数序列L5的尾部,进入步骤7.3.9;
步骤7.3.9如果候选车道线参数序列L4为空序列,得到最后的车道线参数序列L5,车道线参数序列L5中每组直线参数对应着一条车道线,如图9所示,结束步骤7,否则抽取候选车道线参数序列L4的第一组直线参数和车道线参数序列L5的最后一组直线参数,形成一对相邻直线参数,并删除候选车道线参数序列L4的第一组直线参数和车道线参数序列L5的最后一组直线参数,返回步骤7.3.2;步骤8:更新感兴趣区域ROI
将车道线参数序列L5中第一组直线参数对应的直线lleft和最后一组直线参数对应的直线lright分别作为高速公路的左右边界线,先计算直线lleft与三通道BGR彩色图像S1上下边界的交点的列坐标ylu和yld,然后计算直线lright与三通道BGR彩色图像S1上下边界的交点的列坐标yru和yrd,并根据这些值对感兴趣区域ROI的左上角点坐标(x0,y0)中的y0及宽度M4进行更新,x0和高度M3不变,将此更新后的感兴趣区域ROI作为下一帧图像的感兴趣区域ROI,返回步骤1。

Claims (1)

1.一种基于机载摄像机的高速公路车道线检测方法,其特征在于按照以下步骤进行:
步骤1:逐帧读取无人机上的摄像机拍摄的大小为M1×M2×3的三通道BGR彩色图像,并将当前读取的三通道BGR彩色图像记为S1,其中,M1,M2分别表示三通道BGR彩色图像S1的高度和宽度;
步骤2:在三通道BGR彩色图像S1上截取一个左上角点坐标、高度为M3像素、宽度为M4像素的感兴趣区域ROI,得到大小为M3×M4×3的BGR彩色图像S2,感兴趣区域ROI的初始值设定如下:高度M3=M1,宽度M4=M2,左上角点坐标(x0,y0)=(0,0);
步骤3:对BGR彩色图像S2进行降采样,获得大小为M5×M6×3的采样图像S3,M5=M3/scale,M6=M4/scale,降采样公式为
x = x 3 · s c a l e , x 3 = 1 , 2 , ... , M 5 y = y 3 · s c a l e , y 3 = 1 , 2 , ... , M 6 dst 3 ( x 3 , y 3 ) = src 2 ( x , y )
其中,dst3(x3,y3)为采样图像S3在第x3行、第y3列的像素点的像素值,src2(x,y)为BGR彩色图像S2在第x行、第y列的像素点的像素值,scale是图像降采样系数,初始值为1,之后根据感兴趣区域ROI的宽度与三通道BGR彩色图像S1的宽度比值进行调整,调整规则为
步骤4:对采样图像S3进行二值化处理,得到一个二值图像S4,二值化处理过程为
其中,x4=x3,y4=y3;dst4(x4,y4)为二值图像S4中的第x4行、第y4列的像素点的像素值;src_B(x3,y3),src_G(x3,y3),src_R(x3,y3)分别为采样图像S3的第x3行、第y3列的像素点在BGR颜色空间蓝色、绿色、红色分量的值;th1、th2、th3分别为蓝色、绿色、红色分量的阈值,th1、th2、th3都取为180;
步骤5:获取车道线二值图像
步骤5.1利用车道线的宽度信息按照如下步骤剔除二值图像S4的每一行中宽度大于给定阈值的连续白色点:
步骤5.1.1从二值图像S4的第一行第一个像素点开始进行扫描,然后进入步骤5.1.2;
步骤5.1.2如果当前扫描像素点为黑色点,则进入步骤5.1.6,如果当前扫描像素点为白色点,则进入步骤5.1.3;
步骤5.1.3若当前扫描像素点为每行的第一个像素点或者当前扫描像素点的前一个像素点为黑色点,则用index_1记录当前扫描像素点所在列坐标,作为这段连续白色点的起始位置,然后进行步骤5.1.4,若当前扫描像素点的前一个像素点为白色点,则进入步骤5.1.4;
步骤5.1.4若当前扫描像素点为每一行的最后一个像素点或者当前扫描像素点的下一个像素点为黑色点,则用index_2记录当前扫描像素点所在列坐标,作为这段连续白色点的结束位置,然后进行步骤5.1.5,若当前扫描像素点的后一个像素点为白色点,则进入步骤5.1.6;
步骤5.1.5计算这段连续白色点个数n=(index_2-index_1)+1,连续白色点数的阈值thresh=3,如果n>thresh,将二值图像S4中当前扫描行的列坐标在index_1和index_2之间的像素点全部赋值为0,变为黑色点,然后进入步骤5.1.6;如果n≤thresh,则进入步骤5.1.6;
步骤5.1.6若二值图像S4中所有的点都扫描结束,则进入步骤5.2,否则,继续扫描下一像素点并返回步骤5.1.2;
步骤5.2检测步骤5.1处理过的二值图像S4的白色点形成的连通域,并且计算每个连通域中像素点的个数,将像素点的个数少于30的连通域去掉,得到车道线二值图像S5,车道线二值图像S5的行坐标表示为x5,列坐标表示为y5
步骤6:获取直线段参数
检测车道线二值图像S5中的直线段,获取直线段参数集L1,其步骤如下:
步骤6.1从车道线二值图像S5中收集所有白色点的一对行坐标和列坐标,得到一个坐标集C1,并创建一个总行数为181,总列数为2×(M5+M6)的参数空间矩阵D,参数空间矩阵D的所有元素的初值为0,然后进行步骤6.2;
步骤6.2如果坐标集C1为空集,则得到一个直线段参数集L1,所述直线段参数集L1中的每条线段由两个端点坐标(xstart,i,ystart,i)、(xend,i,yend,i)共4个参数表示,每条线段的参数作为一组参数,则共有N1组,并结束步骤6,反之,则随机抽取C1中的一对行坐标xp和列坐标yp,并且从坐标集C1中去除当前抽取的这一对行坐标xp和列坐标yp,然后进行步骤6.3;
步骤6.3将当前抽取的这一对行坐标xp和列坐标yp按如下公式进行变换:
ρ=xp·cos(θ)+yp·sin(θ),θ=0°,1°,2°,…,180°
总共得到181组ρ和θ,再对参数空间矩阵D中的第θ+1行、第[ρ]+M5+M6列的元素加1,[ρ]表示对ρ取整数,然后找出参数空间矩阵D中所有元素的最大值max及最大值max所在的行坐标θm+1和列坐标ρm+M5+M6,再判断这个最大值max是否大于给定阈值50,如果大于,则进行步骤6.4,否则返回步骤6.2;
步骤6.4将参数空间矩阵D中所有元素的最大值max所在的行坐标θm和列坐标ρm代入以下公式:ρ=xi·cos(θ)+yi·sin(θ),得到车道线二值图像S5中的一条直线方程ρm=x5·cos(θm)+y5·sin(θm),然后在车道线二值图像S5中,以当前抽取的这一对行坐标xp、列坐标yp所对应的像素点为起始点,沿着ρm=x5·cos(θm)+y5·sin(θm)这条直线搜索白色点,当遇到图像边界或者连续黑色点的数量超过50时,结束搜索,得到一条白色直线段的两个端点坐标和在这条白色直线段上的N个白色点的行坐标和列坐标,如果当前直线段上的两个端点的距离等于或大于100像素,则记录当前直线段的两个端点坐标(xstart,i,ystart,i)、(xend,i,yend,i),然后去除坐标集C1中已经确定属于这条直线段的这N个白色点的行坐标和列坐标,并且将已经确定属于这条直线段的这N个白色点的每一对行坐标xi和列坐标yi,i为正整数,i=1,2,…,N,按照公式ρ=xi·cos(θ)+yi·sin(θ),θ=0°,1°,2°,…,180°进行变换,然后对参数空间矩阵D中的第θ+1行、第[ρ]+M5+M6列的元素减1,如果当前直线段上的两个端点距离小于100像素,直接去除坐标集C1中已经确定属于当前直线段的这N个白色点的行坐标和列坐标,然后返回步骤6.2;
步骤7:利用高速公路的车道线分布特点,去掉非车道线的直线,得到车道线参数序列L5,其步骤如下:
步骤7.1首先利用步骤6中获取到的直线段参数集L1中候选线段两个端点坐标(xstart,i,ystart,i)、(xend,i,yend,i)计算每条线段的线段角度i=1,2,…,N1,然后使用统计学方法得到所有线段角度{αi}的统计直方图,从统计直方图中选择候选车道线线段的角度区间[αmin,αmax],具体步骤为:从统计直方图的第一个区间开始往后面的区间方向找到第一个频数大于4的区间,以这个区间的下限值作为αmin,从统计直方图的最后一个区间开始往前面的区间方向找到第一个频数大于4的区间,以这个区间的上限值作为αmax,舍弃候选车道线线段的角度区间[αmin,αmax]以外的线段角度值所对应的直线段参数,得到参数组数为N2的候选车道线线段参数集L2
步骤7.2将候选车道线线段参数集L2中的线段参数由两个端点坐标表示转变为每条线段所在直线的斜率k1和截距b1表示,如果有多条线段在一条直线上,仅保留一组直线参数,最后得到一个参数组数为N3的候选车道线参数集L3
步骤7.3将候选车道线参数集L3中的参数k1i及b1i转换成对应于三通道BGR彩色图像S1的参数ki及bi,ki=k1i,bi=b1i*scale,i为正整数,i=1,2,…,N3,并且计算出候选车道线参数集L3中每组参数对应直线与三通道BGR彩色图像S1下边界的交点的列坐标ybottom,i,i为正整数,i=1,2,…,N3,之后对候选车道线参数集L3中的直线参数按照每组参数对应的ybottom,i的大小进行从小到大的排序,得到候选车道线参数序列L4,再依次计算候选车道线参数序列L4中相邻参数对应的直线与三通道BGR彩色图像S1下边界交点的列坐标之间的差值,得到间距序列{dbottom,j},同时依次计算候选车道线参数序列L4中相邻参数对应直线之间的角度差,得到角度差序列{Δβj},j正整数,j=1,2,…,N3-1,并且分别计算间距序列{dbottom,j}的均值及角度差序列{Δβj}的均值然后按照以下步骤去掉非车道线直线:
步骤7.3.1从候选车道线参数序列L4中取第一组和第二组直线参数,并作为一对相邻直线参数,同时从候选车道线参数序列L4中删除抽取的这第一组和第二组直线参数,并设一车道线参数序列L5,此时为空序列,进入步骤7.3.2;
步骤7.3.2如果当前抽取的这对相邻直线参数对应的直线与三通道BGR彩色图像S1下边界交点的列坐标之间的差值dbottom和角度差Δβ满足条件:则这对相邻直线参数对应的两条直线都是车道线,将这两组直线参数按照它们在候选车道线参数序列L4中的先后顺序依次放在车道线参数序列L5的尾部,进入步骤7.3.9,否则进入步骤7.3.3;
步骤7.3.3如果候选车道线参数序列L4是空序列,进入步骤7.3.4,否则进入步骤7.3.5;
步骤7.3.4将当前这对相邻直线参数中的前一组直线参数放在车道线参数序列L5的尾部,得到最后的车道线参数序列L5,车道线参数序列L5中每组直线参数对应着一条车道线,并结束步骤7;
步骤7.3.5再从候选车道线参数序列L4中抽取第一组直线参数并且从候选车道线参数序列L4中删除第一组直线参数,与步骤7.3.2中的那对相邻直线参数进行两两配对,形成三对直线参数,分别判定每对直线参数对应的直线与三通道BGR彩色图像S1下边界交点的列坐标之间的差值dbottom和角度差Δβ是否满足条件:结果存在以下三种情况:如果有且仅有一对直线参数对应的dbottom和Δβ满足条件,则进入步骤7.3.6,如果有两对直线参数对应的dbottom和Δβ满足条件,则进入步骤7.3.7,如果三对直线参数对应的dbottom和Δβ都不满足条件,则进入步骤7.3.8;
步骤7.3.6满足条件的这对直线参数对应的两条直线都是车道线,将这两组直线参数按照它们在候选车道线参数序列L4中的先后顺序依次放在车道线参数序列L5的尾部,然后进入步骤7.3.9;
步骤7.3.7分别计算满足条件的两对直线参数中每对直线参数对应的dbottom、Δβ与均值的差异和δ即选择差异和δ最小的这对直线参数对应的两条直线作为车道线,将这两组直线参数按照它们在候选车道线参数序列L4中的先后顺序依次放在车道线参数序列L5的尾部,进入步骤7.3.9;
步骤7.3.8将这三组直线参数中的最前一组直线参数对应的直线作为车道线,并将这组直线参数放在当前车道线参数序列L5的尾部,进入步骤7.3.9;
步骤7.3.9如果候选车道线参数序列L4为空序列,则得到最后的车道线参数序列L5,车道线参数序列L5中每组直线参数对应着一条车道线,结束步骤7,否则抽取候选车道线参数序列L4的第一组直线参数和车道线参数序列L5的最后一组直线参数,形成一对相邻直线参数,并删除候选车道线参数序列L4的第一组直线参数和车道线参数序列L5的最后一组直线参数,返回步骤7.3.2;
步骤8:更新感兴趣区域ROI
将车道线参数序列L5中第一组直线参数对应的直线lleft和最后一组直线参数对应的直线lright分别作为高速公路的左右边界线,先计算直线lleft与三通道BGR彩色图像S1上下边界的交点的列坐标ylu和yld,然后计算直线lright与三通道BGR彩色图像S1上下边界的交点的列坐标yru和yrd,并根据这些值对感兴趣区域ROI的左上角点坐标(x0,y0)中的y0及宽度M4进行更新,x0和高度M3不变,将此更新后的感兴趣区域ROI作为下一帧图像的感兴趣区域ROI,返回步骤1。
CN201610060174.6A 2016-01-28 2016-01-28 一种基于机载摄像机的高速公路车道线检测方法 Active CN105740809B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610060174.6A CN105740809B (zh) 2016-01-28 2016-01-28 一种基于机载摄像机的高速公路车道线检测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610060174.6A CN105740809B (zh) 2016-01-28 2016-01-28 一种基于机载摄像机的高速公路车道线检测方法

Publications (2)

Publication Number Publication Date
CN105740809A true CN105740809A (zh) 2016-07-06
CN105740809B CN105740809B (zh) 2019-03-12

Family

ID=56246850

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610060174.6A Active CN105740809B (zh) 2016-01-28 2016-01-28 一种基于机载摄像机的高速公路车道线检测方法

Country Status (1)

Country Link
CN (1) CN105740809B (zh)

Cited By (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107748882A (zh) * 2017-11-23 2018-03-02 海信集团有限公司 一种车道线检测方法及装置
CN108596165A (zh) * 2018-08-21 2018-09-28 湖南鲲鹏智汇无人机技术有限公司 基于无人机低空航拍图像的道路交通标线检测方法及系统
CN108803651A (zh) * 2018-04-24 2018-11-13 上海工程技术大学 一种基于图像特征的无人机公路巡检方法
CN109241920A (zh) * 2018-09-17 2019-01-18 中远海运科技股份有限公司 一种用于车载道路监控取证系统的车道线检测方法
CN109345593A (zh) * 2018-09-04 2019-02-15 海信集团有限公司 一种摄像机姿态的检测方法及装置
CN109409205A (zh) * 2018-09-07 2019-03-01 东南大学 基于线间距特征点聚类的航拍视频公路车道线检测方法
CN109409208A (zh) * 2018-09-10 2019-03-01 东南大学 一种基于视频的车辆特征提取与匹配方法
CN109800641A (zh) * 2018-12-14 2019-05-24 天津大学 基于阈值自适应二值化和连通域分析的车道线检测方法
CN109858307A (zh) * 2017-11-30 2019-06-07 高德软件有限公司 一种车道线识别方法和装置
CN110838233A (zh) * 2019-10-12 2020-02-25 中国平安人寿保险股份有限公司 车辆行为分析方法、装置及计算机可读存储介质
CN110991215A (zh) * 2019-07-17 2020-04-10 当家移动绿色互联网技术集团有限公司 车道线检测方法、装置、存储介质及电子设备
CN111583341A (zh) * 2020-04-30 2020-08-25 中远海运科技股份有限公司 云台像机移位检测方法
CN112329631A (zh) * 2020-11-05 2021-02-05 浙江点辰航空科技有限公司 一种使用无人机对高速公路进行车流量统计的方法
CN113223113A (zh) * 2021-04-30 2021-08-06 阿波罗智联(北京)科技有限公司 车道线处理方法、装置、电子设备和云控平台
CN113409334A (zh) * 2021-06-20 2021-09-17 桂林电子科技大学 一种基于质心的结构光角点检测方法
CN113449659A (zh) * 2021-07-05 2021-09-28 淮阴工学院 一种车道线的检测方法
CN117315934A (zh) * 2023-09-25 2023-12-29 阜阳交通能源投资有限公司 基于无人机的高速公路车流量实时监测及拥堵预测系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102208019A (zh) * 2011-06-03 2011-10-05 东南大学 基于车载摄像机的车辆变道检测方法
CN105005778A (zh) * 2015-08-14 2015-10-28 东南大学 一种基于视觉背景提取的高速公路车辆检测方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102208019A (zh) * 2011-06-03 2011-10-05 东南大学 基于车载摄像机的车辆变道检测方法
CN105005778A (zh) * 2015-08-14 2015-10-28 东南大学 一种基于视觉背景提取的高速公路车辆检测方法

Cited By (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107748882A (zh) * 2017-11-23 2018-03-02 海信集团有限公司 一种车道线检测方法及装置
CN107748882B (zh) * 2017-11-23 2020-10-20 海信集团有限公司 一种车道线检测方法及装置
CN109858307A (zh) * 2017-11-30 2019-06-07 高德软件有限公司 一种车道线识别方法和装置
CN108803651A (zh) * 2018-04-24 2018-11-13 上海工程技术大学 一种基于图像特征的无人机公路巡检方法
CN108803651B (zh) * 2018-04-24 2021-07-09 上海工程技术大学 一种基于图像特征的无人机公路巡检方法
CN108596165A (zh) * 2018-08-21 2018-09-28 湖南鲲鹏智汇无人机技术有限公司 基于无人机低空航拍图像的道路交通标线检测方法及系统
CN109345593A (zh) * 2018-09-04 2019-02-15 海信集团有限公司 一种摄像机姿态的检测方法及装置
CN109409205B (zh) * 2018-09-07 2021-11-26 东南大学 基于线间距特征点聚类的航拍视频公路车道线检测方法
CN109409205A (zh) * 2018-09-07 2019-03-01 东南大学 基于线间距特征点聚类的航拍视频公路车道线检测方法
CN109409208A (zh) * 2018-09-10 2019-03-01 东南大学 一种基于视频的车辆特征提取与匹配方法
CN109241920A (zh) * 2018-09-17 2019-01-18 中远海运科技股份有限公司 一种用于车载道路监控取证系统的车道线检测方法
CN109800641B (zh) * 2018-12-14 2023-04-18 天津大学 基于阈值自适应二值化和连通域分析的车道线检测方法
CN109800641A (zh) * 2018-12-14 2019-05-24 天津大学 基于阈值自适应二值化和连通域分析的车道线检测方法
CN110991215B (zh) * 2019-07-17 2023-08-18 万物镜像(北京)计算机系统有限公司 车道线检测方法、装置、存储介质及电子设备
CN110991215A (zh) * 2019-07-17 2020-04-10 当家移动绿色互联网技术集团有限公司 车道线检测方法、装置、存储介质及电子设备
CN110838233A (zh) * 2019-10-12 2020-02-25 中国平安人寿保险股份有限公司 车辆行为分析方法、装置及计算机可读存储介质
CN110838233B (zh) * 2019-10-12 2022-09-27 中国平安人寿保险股份有限公司 车辆行为分析方法、装置及计算机可读存储介质
CN111583341B (zh) * 2020-04-30 2023-05-23 中远海运科技股份有限公司 云台像机移位检测方法
CN111583341A (zh) * 2020-04-30 2020-08-25 中远海运科技股份有限公司 云台像机移位检测方法
CN112329631A (zh) * 2020-11-05 2021-02-05 浙江点辰航空科技有限公司 一种使用无人机对高速公路进行车流量统计的方法
CN113223113A (zh) * 2021-04-30 2021-08-06 阿波罗智联(北京)科技有限公司 车道线处理方法、装置、电子设备和云控平台
CN113223113B (zh) * 2021-04-30 2024-04-19 阿波罗智联(北京)科技有限公司 车道线处理方法、装置、电子设备和云控平台
CN113409334A (zh) * 2021-06-20 2021-09-17 桂林电子科技大学 一种基于质心的结构光角点检测方法
CN113449659A (zh) * 2021-07-05 2021-09-28 淮阴工学院 一种车道线的检测方法
CN113449659B (zh) * 2021-07-05 2024-04-23 淮阴工学院 一种车道线的检测方法
CN117315934A (zh) * 2023-09-25 2023-12-29 阜阳交通能源投资有限公司 基于无人机的高速公路车流量实时监测及拥堵预测系统

Also Published As

Publication number Publication date
CN105740809B (zh) 2019-03-12

Similar Documents

Publication Publication Date Title
CN105740809A (zh) 一种基于机载摄像机的高速公路车道线检测方法
CN109977812B (zh) 一种基于深度学习的车载视频目标检测方法
CN110178167B (zh) 基于摄像机协同接力的路口违章视频识别方法
CN105718870B (zh) 自动驾驶中基于前向摄像头的道路标线提取方法
CN103324930B (zh) 一种基于灰度直方图二值化的车牌字符分割方法
CN105005771B (zh) 一种基于光流点轨迹统计的车道线实线的检测方法
DE102013205950B4 (de) Verfahren zum Detektieren von Straßenrändern
CN105678285B (zh) 一种自适应的道路鸟瞰图变换方法和道路车道检测方法
CN110210451B (zh) 一种斑马线检测方法
CN103500322A (zh) 基于低空航拍图像的车道线自动识别方法
CN109409205A (zh) 基于线间距特征点聚类的航拍视频公路车道线检测方法
CN111079611A (zh) 一种道路面及其标志线的自动提取方法
CN102708356A (zh) 一种基于复杂背景下的车牌自动定位和识别方法
CN103902985B (zh) 一种基于roi的强鲁棒性实时车道侦测算法
CN103530600A (zh) 复杂光照下的车牌识别方法及系统
CN105005778A (zh) 一种基于视觉背景提取的高速公路车辆检测方法
EP4120123A1 (en) Scan line-based road point cloud extraction method
CN103310199A (zh) 基于高分辨率遥感数据的车辆型号识别方法
CN104766337B (zh) 一种基于跑道边界增强的飞机着陆视觉增强方法
Wang et al. Road edge detection in all weather and illumination via driving video mining
CN107918775B (zh) 一种辅助车辆安全驾驶的斑马线检测方法及系统
CN110733416B (zh) 一种基于逆透视变换的车道偏离预警方法
CN110889342B (zh) 一种减速带的识别方法
CN110443142B (zh) 一种基于路面提取与分割的深度学习车辆计数方法
CN113239733A (zh) 一种多车道车道线检测方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant