本发明实施例属于图像处理领域,尤其涉及一种成对车道线检测方法及装置。
背景技术:
车道线检测技术是车道偏离、碰撞预警和自动驾驶的基础技术。
现有的车道线检测方法中,通过获取实时视频流,再在实时视频流中检测疑似车道线,最后再计算、判断检测的疑似车道线是否为成对车道线,而在计算、判断检测的疑似车道线是否为成对车道线的过程中需要消耗相当可观的资源,因此难以实时得到检测结果。
技术实现要素:
本发明实施例提供了一种成对车道线检测方法及装置,旨在解决现有方法难以及时得到车道线的检测结果的问题。
本发明实施例是这样实现的,一种成对车道线检测方法,所述方法包括:
获取车辆前方路面的图片;
检测所述车辆前方路面的图片中是否存在两条直线,所述两条直线的颜色与图片中车辆前方路面的颜色不同;
在所述车辆前方路面的图片中存在两条直线时,在所述两条直线上各取N个点,并分别计算在所述两条直线上各取的N个点与获取的车辆前方路面的图片的中心点的距离,N为整数,N大于或等于2;
根据计算的在所述两条直线上各取的N个点与获取的车辆前方路面的图片的中心点的距离以及预设的分类器判断所述两条直线是否为成对车道线。
本发明实施例的另一目的在于提供一种成对车道线检测装置,所述装置包括:
图片获取单元,用于获取车辆前方路面的图片;
直线检测单元,用于检测所述车辆前方路面的图片中是否存在两条直线,所述两条直线的颜色与图片中车辆前方路面的颜色不同;
距离计算单元,用于在所述车辆前方路面的图片中存在两条直线时,在所述两条直线上各取N个点,并分别计算在所述两条直线上各取的N个点与获取的车辆前方路面的图片的中心点的距离,N为整数,N大于或等于2;
成对车道线判断单元,用于根据计算的在所述两条直线上各取的N个点与获取的车辆前方路面的图片的中心点的距离以及预设的分类器判断所述两条直线是否为成对车道线。
在本发明实施例中,由于根据计算的在所述两条直线上各取的N个点与获取的车辆前方路面的图片的中心点的距离判断所述两条直线是否为成对车道线,而两点之间的距离计算较简单,因此能够快速得到计算结果,并且,利用预设的分类器能够根据得到的计算结果准确、快速地得到两条车道线是否为成对车道线的判定结果。
附图说明
图1是本发明第一实施例提供的一种成对车道线检测方法的流程图;
图2是本发明第一实施例提供的一种在两条直线上分别取2个点,并与图片的中心连接的示意图;
图3是本发明第一实施例提供的另一种在两条直线上分别取2个点,并与图片的中心连接的示意图;
图4是本发明第二实施例提供的一种成对车道线检测装置的结构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例中,获取车辆前方路面的图片,检测所述车辆前方路面的图片中是否存在两条直线,在所述车辆前方路面的图片中存在两条直线时,在所述两条直线上各取N个点,并分别计算在所述两条直线上各取的N个点与获取的车辆前方路面的图片的中心点的距离,根据计算的在所述两条直线上各取的N个点与获取的车辆前方路面的图片的中心点的距离以及预设的分类器判断所述两条直线是否为成对车道线。
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
实施例一:
图1示出了本发明第一实施例提供的一种成对车道线检测方法的流程图,详述如下:
步骤S11,获取车辆前方路面的图片。
具体地,通过车辆监测仪等拍摄车辆前方路面,以获取车辆前方路面对应的图片。当然,为了提高后续的车道线检测速度,可在获取车辆前方道路的图片后,对获取的图片进行预处理,比如,将彩色图片转换为灰度图片等,以降低图片本身占用的内存空间。
步骤S12,检测所述车辆前方路面的图片中是否存在两条直线,所述两条直线的颜色与图片中车辆前方路面的颜色不同。
其中,这里的两条直线在路面上具有一定的宽度,例如路面常见的车道线在路面占据的宽度。两条直线的颜色与路面的颜色不同,以达到提醒用户的目的,由于路面的颜色通常为灰色或黑色,因此,为了提高区分度,两条直线的颜色通常为白色。
具体地,检测获取的车辆前方路面的图片是否存在2种及2种以上的颜色,若存在,则检测占据获取的车辆前方路面的图片面积较少的颜色对应的区域是否分别形成两条直线。需要指出的是,这里的直线不一定是连续的实线,也可以为连续的虚线,即一条直线中有存在多个线段。
步骤S13,在所述车辆前方路面的图片中存在两条直线时,在所述两条直线上各取N个点,并分别计算在所述两条直线上各取的N个点与获取的车辆前方路面的图片的中心点的距离,N为整数,N大于或等于2。
其中,在每条直线上所取的点之间具有一定的距离,可选地,在两条直线上各取N个点之间的间隔对应相等。具体地,车辆前方路面的图片的中心点不一定为两条直线之间的中心点,如图2所示。当车辆前方路面的图片为矩形时,车辆前方路面的图片的中心点即为矩形区域的中心点,即矩形区域的两条对角线的交点。
以图3为例,图中的O点为图片的中心点,分别在两条直线上取2个点:在左边的直线上取A点和B点,在右边的直线上取C点和D点,分别计算直线AO(左上侧线)、BO(左下侧线)、CO(右上侧线)以及DO(右下侧线)的距离。
步骤S14,根据计算的在所述两条直线上各取的N个点与获取的车辆前方路面的图片的中心点的距离以及预设的分类器判断所述两条直线是否为成对车道线。
具体地,当获取的车辆前方路面的图片的中心点也为两条直线之间的中心点时,可直接通过比较计算的在所述两条直线上各取的N个点与获取的车辆前方路面的图片的中心点的距离是否相等,以及将N个点中的任一个点与获取的车辆前方路面的图片的中心点的距离与预设的车道线宽度比较,再根据比较结果判断两条直线是否为成对车道线,但是当获取的车辆前方路面的图片的中心点不为两条直线之间的中心点时,上述判断结果极可能是错误的。
可选地,为了提高车道线检测结果的准确性,所述步骤S14具体包括:
A1、将在所述两条直线上各取的N个点与获取的车辆前方路面的图片的中心点的距离分成两组,并分别计算每一组的距离和。例如,为了便于分组,可设置N为偶数。
A2、计算两组的距离和的比值,将所述两组的距离和的比值替换预设的分类器中的未知变量,得到一计算结果。
A3、根据所述计算结果判断所述两条直线是否为成对车道线。
具体地,当该计算结果与预设的标识成对车道线的结果相同时,则判定两条直线为成对车道线,否则,判定两条直线不为成对车道线。
可选地,当N=2时,在两条直线上各取的2个点与获取的车辆前方路面的图片的中心点的连线形成4条线:左上线、左下线、右上线及右下线,此时,所述A1具体包括:
A11、将左上线与右上线分为上侧点组,计算所述上侧点组的距离和。
A12、将左下线与右下线分为下侧点组,计算所述下侧点组的距离和。
对应地,所述A2具体包括:计算所述下侧点组的距离和与所述上侧点组的距离和的比值,将所述两组的距离和的比值替换预设的分类器中的未知变量,得到一计算结果。
可选地,本发明实施例中的预设的分类器通过以下方式确定:
B1、获取包含成对车道线和非成对车道线的样本图像。其中,获取的样本图像应包括大量的成对车道线和非成对车道线的图像。
B2、在每条车道线上各取N个点,并分别计算在每条车道线上各取的N个点与样本图像的中心点的距离,N为整数,N大于或等于2。需要指出的是,在取点时,每天车道线上的取点间隔保持对应相等。
B3、将同一样本图像中的每条车道线上各取的N个点与样本图像的中心点的距离分为两组,并分别计算每一组的距离和。
B4、计算两组的距离和的比值作为样本比值。例如,在N=2时,可将下侧点组的距离和与上侧点组的距离和的比值作为样本比值。
B5、根据所述样本比值确定分类器。
进一步地,通过Adaboost迭代算法确定分类器。Adaboost的核心思想是在初始的权重数据分布下训练得到一个弱分类器(2类分类器),之后通过这个弱分类器判断准确率,对那些错判(即原本标签是1的因计算得到的0,或者相反情况)的样本的加大权重,而对于分类正确的样本,降低其权重,这样被分错的样本就被突出出来,下次训练就会更多考虑这些被错分的样本,因此得到一个新的样本分布(样本权重都被更新了)。在新的分布下,再进行训练得到一个弱分类器,周而复始得到N个检测能力一般的弱检测器。再通过一定算法把这些检测能力一般的分类器融合起来,从而得到一个分类能力很强的强分类器。
可选地,所述B5具体包括:
B501、根据所述样本比值设置用于判断两条车道线是否为成对车道线的第一分类阈值。
B502、根据所述第一分类阈值确定第一基本分类器。
B503、根据所述第一分类阈值、预设的与样本比值对应的第一权值、所述样本比值对应的两条车道线是否为成对车道线的结论确定第一基本分类器的误差率。
B504、根据所述第一基本分类器的误差率确定第一基本分类器的系数,根据所述第一基本分类器的系数以及所述第一基本分类器确定第一弱分类器。
B505、判断所述第一弱分类器的误分类点个数是否为0。
B506、在所述第一基本分类器的误分类点不为0时,根据预设的与样本比值对应的第一权值、第一弱分类器的系数、所述样本比值对应的两条车道线是否为成对车道线的结论以及第一基本分类器确定第一规范化因子。
B507、根据所述第一规范化因子调整所述预设的与样本比值对应的第一权值,得到与样本比值对应的第二权值。
B508、根据所述样本比值设置用于判断两条车道线是否为成对车道线的第二分类阈值。
B509、根据所述第二分类阈值确定第二基本分类器。
B510、根据所述第二分类阈值、与样本比值对应的第二权值、所述样本比值对应的两条车道线是否为成对车道线的结论确定所述第二基本分类器的误差率。
B511、根据所述第二基本分类器的误差率确定第二基本分类器的系数,所述第二弱分类器根据所述第一基本分类器的系数、所述第一基本分类器、所述第二基本分类器的系数以及所述第二基本分类器确定。
B512、判断所述第二弱分类器的误分类点个数是否为0,若为0,则将第二弱分类器作为最终分类器,否则,继续确定新的弱分类器,直到确定的新的弱分类器的误分类点个数为0。
为了更清楚地描述如何确定分类器的过程,下面以一具体应用例进行说明:
在该例子中,在每条车道线上各取2个点,假设得到的下侧点组的距离和与所述上侧点组的距离和的比值如表1所示:
表1:
(1)首先求解第一弱分类器sign[f1(x)]:
预设的与样本比值对应的第一权值分布如下:
D1=(W11,W12,W13,W14,W15)
W1i=0.2;i=1,2,3,4,5
根据表1可知,当用于判断两条车道线是否为成对车道线的第一分类阈值取1.43时,分类误差率最低,此时,第一基本分类器G1为:
G1(x)=1,x>1.43;G1(x)=-1,x<1.43
结合表1可知,第一基本分类器G1(x)有一个错误分类结果(即对序号为4的结果为错误的分类),该错误分类的数据权值分布就是G1(x)在训练数据集上的误差率(即第一基本分类器的误差率):e1=P(G1(xi)!=yi)=0.2。
G1(x)的系数通过下式确定:a1=1/2ln((1-e1)/e1)=ln2=0.6931。
则第一弱分类器为:sign[f1(x)]=ln2G1(x)。
(2)求解第二弱分类器sign[f2(x)]:
由于第一基本分类器G1(x)有一个错误分类结果,则根据第一弱分类器的公式可知,该第一弱分类器在训练数据集(即表1对应的数据集)上也有一个误分类点,此时,需要通过以下方式确定第一规范化因子:
第一规范化因子Z1=W11*exp(-a1*y1*G1(x1))+W12*exp(-a1*y2*G1(x2))+W13*exp(-a1*y3*G1(x3))+W14*exp(-a1*y4*G1(x4))+W15*exp(-a1*y5*G1(x5))=0.8。
根据第一规范化因子调整第一权值,得到的第二权值分布如下:
D2=(W21,W22,W23,W24,W25)
W2i=w1i/Z1*exp(-a1*yi*G1(Xi)),i=1,2,3,4,5
D2=(0.125,0.125,0.125,0.5,0.125)
结合表1的数据,设置用于判断两条车道线是否为成对车道线的第二分类阈值,当该第二分类阈值取1.55时,分类误差率最低,第二基本分类器G2为:
G2(x)=1,x>1.55;G2(x)=-1,x<1.55
第二基本分类器G2(x)有两个错误分类结果(即表1的序号2、3对应的结果),两个错误分类的数据权值分布和就是G2(x)在训练数据集上的误差率:e2=P(G1(xi)!=yi)=0.125+0.125=0.25。
G2(x)的系数:
则第二弱分类器sign[f2(x)]=a1*G1(x)+a2*G2(x)=ln2*G1(x)+ln*G2(x)=0.6931*G1(x)+0.5493*G2(x)。
根据第二弱分类器sign[f2(x)]的公式可知,sign[f2(x)]在训练数据集上有误分类点个数为0(当“sign[f2(x)]”的计算结果大于-1且小于0时,对该“sign[f2(x)]”取整后为-1,同理,当“sign[f2(x)]”的计算结果大于0且小于1时,对该“sign[f2(x)]”取整后为1)。
当然,若假设判断出第二弱分类器的误分类点个数不为0,则需要确定新的弱分类器(第三分类器、第四分类器等等),直到确定的新的弱分类器的误分类点个数为0。
在确定新的弱分类器(第三分类器)之前,需要确定第二规范化因子
根据第二规范化因子更新训练数据的权值分布如下:
D3=(W31,W32,W33,W34,W35)
W3i=w2i/Z2*exp(-a2*yi*G2(Xi)),i=1,2,3,4,5
D3=(1/12,1/4,1/4,1/3,01/12)
在步骤S14中,根据预设的分类器能够快速判断所述两条直线是否为成对车道线,例如,假设预设的分类器为第二弱分类器sign[f2(x)]=a1*G1(x)+a2*G2(x)=ln2*G1(x)+ln*G2(x)=0.6931*G1(x)+0.5493*G2(x),当判断出下侧点组的距离和与所述上侧点组的距离和的比值为1.4403时,代入sign[f2(x)],
sign[0.6931*G1(1.4403)+0.5493*G2(1.4403)]=sign[0.6931*1+0.5493*(-1)]=1,得到“两条直线为成对车道线”的判定。
当判断出下侧点组的距离和与所述上侧点组的距离和的比值为1.1666时,代入sign[f2(x)],
G(x)=sign[0.6931*G1(1.1666)+0.5493*G2(1.1666)]=sign[0.6931*(-1)+0.5493*(-1)]=-1,得到“两条直线为非成对车道线”的判定。
本发明第一实施例中,获取车辆前方路面的图片,检测所述车辆前方路面的图片中是否存在两条直线,在所述车辆前方路面的图片中存在两条直线时,在所述两条直线上各取N个点,并分别计算在所述两条直线上各取的N个点与获取的车辆前方路面的图片的中心点的距离,根据计算的在所述两条直线上各取的N个点与获取的车辆前方路面的图片的中心点的距离以及预设的分类器判断所述两条直线是否为成对车道线。由于根据计算的在所述两条直线上各取的N个点与获取的车辆前方路面的图片的中心点的距离判断所述两条直线是否为成对车道线,而两点之间的距离计算较简单,因此能够快速得到计算结果,并且,利用预设的分类器能够根据得到的计算结果准确、快速地得到两条车道线是否为成对车道线的判定结果。
应理解,在本发明实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
实施例二:
图4示出了本发明第二实施例提供的一种成对车道线检测装置的结构图,该成对车道线检测装置可用于各种智能终端中,该智能终端包括手机、车载设备等。为了便于说明,仅示出了与本发明实施例相关的部分。
该成对车道线检测装置包括:图片获取单元41、直线检测单元42、距离计算单元43、成对车道线判断单元44。其中:
图片获取单元41,用于获取车辆前方路面的图片。
具体地,通过车辆监测仪等拍摄车辆前方路面,以获取车辆前方路面对应的图片。当然,为了提高后续的车道线检测速度,可在获取车辆前方道路的图片后,对获取的图片进行预处理,比如,将彩色图片转换为灰度图片等,以降低图片本身占用的内存空间。
直线检测单元42,用于检测所述车辆前方路面的图片中是否存在两条直线,所述两条直线的颜色与图片中车辆前方路面的颜色不同。
其中,这里的两条直线在路面上具有一定的宽度,例如路面常见的车道线在路面占据的宽度。两条直线的颜色与路面的颜色不同,以达到提醒用户的目的,由于路面的颜色通常为灰色或黑色,因此,为了提高区分度,两条直线的颜色通常为白色。
具体地,检测获取的车辆前方路面的图片是否存在2种及2种以上的颜色,若存在,则检测占据获取的车辆前方路面的图片面积较少的颜色对应的区域是否分别形成两条直线。需要指出的是,这里的直线不一定是连续的实线,也可以为连续的虚线,即一条直线中有存在多个线段。
距离计算单元43,用于在所述车辆前方路面的图片中存在两条直线时,在所述两条直线上各取N个点,并分别计算在所述两条直线上各取的N个点与获取的车辆前方路面的图片的中心点的距离,N为整数,N大于或等于2。
可选地,车辆前方路面的图片的中心点不一定为两条直线之间的中心点。
成对车道线判断单元44,用于根据计算的在所述两条直线上各取的N个点与获取的车辆前方路面的图片的中心点的距离以及预设的分类器判断所述两条直线是否为成对车道线。
可选地,所述成对车道线判断单元44包括:
距离和计算模块,用于将在所述两条直线上各取的N个点与获取的车辆前方路面的图片的中心点的距离分成两组,并分别计算每一组的距离和。
分类器计算结果确定模块,用于计算两组的距离和的比值,将所述两组的距离和的比值替换预设的分类器中的未知变量,得到一计算结果。
分类器计算结果比较模块,用于根据所述计算结果判断所述两条直线是否为成对车道线。
可选地,当N=2时,在两条直线上各取的2个点与获取的车辆前方路面的图片的中心点的连线形成4条线:左上线、左下线、右上线及右下线,此时,所述距离和计算模块包括:
上侧点组的距离和计算模块,用于将左上线与右上线分为上侧点组,计算所述上侧点组的距离和。
下侧点组的距离和计算模块,用于将左下线与右下线分为下侧点组,计算所述下侧点组的距离和。
对应地,所述分类器计算结果确定模块具体用于计算所述下侧点组的距离和与所述上侧点组的距离和的比值,将所述两组的距离和的比值替换预设的分类器中的未知变量,得到一计算结果。
可选地,所述成对车道线检测装置通过以下单元确定预设的分类器:
样本图像获取单元,用于获取包含成对车道线和非成对车道线的样本图像。
距离数据获取单元,用于在每条车道线上各取N个点,并分别计算在每条车道线上各取的N个点与样本图像的中心点的距离,N为整数,N大于或等于2。
不同组的距离和计算单元,用于将同一样本图像中的每条车道线上各取的N个点与样本图像的中心点的距离分为两组,并分别计算每一组的距离和。
样本比值计算单元,用于计算两组的距离和的比值作为样本比值。
分类器确定单元,用于根据所述样本比值确定分类器。
当通过Adaboost迭代算法确定分类器时,所述分类器确定单元包括:
第一弱分类器确定模块,用于根据所述样本比值设置用于判断两条车道线是否为成对车道线的第一分类阈值。根据所述第一分类阈值确定第一基本分类器。根据所述第一分类阈值、预设的与样本比值对应的第一权值、所述样本比值对应的两条车道线是否为成对车道线的结论确定第一基本分类器的误差率。根据所述第一基本分类器的误差率确定第一基本分类器的系数,根据所述第一基本分类器的系数以及所述第一基本分类器确定第一弱分类器。
第一弱分类器的误分类点个数判断模块,用于判断所述第一弱分类器的误分类点个数是否为0。
第一规范化因子确定模块,用于在所述第一基本分类器的误分类点不为0时,根据预设的与样本比值对应的第一权值、第一弱分类器的系数、所述样本比值对应的两条车道线是否为成对车道线的结论以及第一基本分类器确定第一规范化因子。
第二弱分类器确定模块,用于根据所述第一规范化因子调整所述预设的与样本比值对应的第一权值,得到与样本比值对应的第二权值。根据所述样本比值设置用于判断两条车道线是否为成对车道线的第二分类阈值。根据所述第二分类阈值确定第二基本分类器。根据所述第二分类阈值、与样本比值对应的第二权值、所述样本比值对应的两条车道线是否为成对车道线的结论确定所述第二基本分类器的误差率。根据所述第二基本分类器的误差率确定第二基本分类器的系数,根据所述第一基本分类器的系数、所述第一基本分类器、所述第二基本分类器的系数以及所述第二基本分类器确定第二弱分类器。
第二弱分类器的误分类点个数判断模块,用于判断所述第二弱分类器的误分类点个数是否为0,若为0,则将第二弱分类器作为最终分类器,否则,继续确定新的弱分类器,直到确定的新的弱分类器的误分类点个数为0。
本发明第二实施例中,由于根据计算的在所述两条直线上各取的N个点与获取的车辆前方路面的图片的中心点的距离判断所述两条直线是否为成对车道线,而两点之间的距离计算较简单,因此能够快速得到计算结果,并且,利用预设的分类器能够根据得到的计算结果准确、快速地得到两条车道线是否为成对车道线的判定结果。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。