基于单双目视觉融合的障碍物检测预警系统的制作方法

文档序号:14785059发布日期:2018-06-27 22:11阅读:147来源:国知局
基于单双目视觉融合的障碍物检测预警系统的制作方法

本发明涉及图像处理技术领域,具体涉及一种基于单双目视觉融合的障碍物检测预警系统。



背景技术:

双目立体视觉就是模拟人的双眼,用两个相机从不同的角度拍摄左右图,通过立体匹配算法获得视差图,根据视差图和深度图的关系就可以恢复场景中的深度信息。

立体匹配算法是其研究的重点。目前传统的立体匹配算法主要分成三大类:局部匹配算法、全局匹配算法和半全局匹配算法。

局部匹配算法主要通过比较待匹配点一定范围内的局部特性进行匹配。优点是计算速度快,但效果好坏很大程度上取决于是否选择了合适的代价函数以及匹配窗口,对于纹理信息不丰富的区域,如弱纹理区域以及无纹理区域,处理效果不好。

全局匹配算法一般采用扫描线或全局考虑整个待匹配图像信息进行视差求解。虽然全局匹配算法能较好的处理弱纹理、深度不连续区域和遮挡区域。但计算非常耗时,运算量大,不能满足实时性要求。

半全局匹配算法是从不同方向的一维路径进行匹配代价的聚合,然后选择最小代价体,既没有只考虑像素的局部区域,也没有考虑所有的像素点,兼具了全局算法和局部算法的优点。虽然半全局匹配算法能得到了较高的匹配精度,并对光照有很强的鲁棒性。但是,半全局匹配算法仍存在很多缺陷,如边缘信息不突出,对深度不连续的区域效果不好,还会出现视差断裂现象。

道路交通环境下,行人和车辆的检测主要基于单目视觉算法。目前常用的行人车辆检测分类方法可以分为:基于监督学习的方法和基于运动分割的方法。

基于监督学习的方法需要预先对分类器进行训练。提取行人的特征放入分类器进行训练,类似的有Harr特征与Adaboost算法,这类方法的优点在于准确度高、摄像机晃动影响小,但是缺点在于时间复杂度大,而且需要事先进行训练,场景变换后需要重新训练。

基于运动分割的方法要求摄像机固定,对运动的物体进行检测分类。例如,通过帧差法检测运动物体,提取运动物体长宽比作为特征进行分类,然后利用跟踪将目标在每一帧获得的分类结果进行统计,最终输出统计结果的总数。

为了解决以上存在的问题,人们一直在寻求一种理想的技术解决方案。



技术实现要素:

本发明的目的是针对现有技术的不足,从而提供一种基于单双目视觉融合的障碍物检测预警系统,能够结合单双目在交通环境下检测目标的同时,定位目标的位置和理解周围的场景。

为了实现上述目的,本发明所采用的技术方案是:一种基于单双目视觉算法融合的障碍物检测预警系统,包括如下步骤实现障碍物检测预警:

步骤一、根据输入的左右原图,利用标定好的相机信息进行图像校正,获得行对齐的左右图像对;

步骤二、采用基于移动端的半全局立体匹配算法处理左右图像对,通过算法优化,获取左图视差图;

步骤三、对校正过后的左图进行单目视觉的障碍物检测,识别图像中的行人以及车辆;

步骤四、根据步骤三中检测到的行人以及车辆,结合双目视觉的深度信息,确定障碍物的距离和方位,再根据设定的预警阈值判定是否为安全范围。

基于上述,所述步骤二中,利用半全局立体匹配算法进行视差图的获取,首先对输入的左右图分别进行中心对称census变换;

比较相对中心像素点c呈中心对称的像素对灰度值的大小关系,若比较小则记为0,反之则记为1,获得式(1),再得到一个二进制的码元式(2),比较不同码的汉明距离获得代价CS-CT,式中表示按位连接。

u表示图像I中坐标为(X,Y)像素点的灰度值,以该点为中心点;v表示以(X,Y)为中心的窗口W(X,Y)内的任一像素点;L为5×5的图像块;

然后利用变换得到的代价进行代价聚合,半全局匹配的代价聚合结合了全图的信息,从8个一维路径进行代价聚合,来近似二维的情况,最后找到最小代价的路径。

基于上述,进行代价聚合时,在半全局匹配算法的全局能量函数中,对深度变化的不同添加不同的惩罚:

对于像素点p在某一方向上累计的匹配代价用式(3)表示

式中第一项C(p,d)表示在视差为d时像素点p的初始匹配代价;第二项表示路径r上,p的前向点p-r附加惩罚值后的最小匹配代价;第三项是附加约束项;

利用平滑性约束在8或16个方向上计算匹配代价Lr(p,d)后,再将不同方向的代价累积,获取总的匹配代价S(p,d),如式4。

通过胜者为王的原则求出相应的视差值,使匹配代价最小,即

dp=arg mind S(p,d) (5)

基于上述,所述步骤三中,对校正过后的左图进行单目视觉的障碍物检测,识别图像中的行人以及车辆;

首先对行人检测,利用LBP特征检测,将Uniform LBP的定义更新为:

其中,函数U的定义如下:

车辆检测,使用Haar特征,通过计算Haar特征中强度的差值,若检测出其差值大于阈值,则判定为特征,对区域的强度求和,即

然后采用AdaBoost算法进行行人和车辆的检测,根据每次训练中每个样本的分类是否正确,以及上次的总体分类的准确率,确定每个样本的权值,再将每次训练得到的分类器融合起来,作为最后的决策分类器:

(1)给定训练样本集,S={(x1,y1),(x2,y2),…(xn,yn)},其中,xi代表给定的输入训练样本向量,且xi∈X,X代表训练样本集;yi代表样本分类类别标志,且yi∈Y,Y={-1,+1},分别代表着样本的正负;

(2)对训练样本的权值进行初始化:D1(xi)=1/n,i=1,…,n;

(3)对训练样本进行T轮训练,t=1,2,…,T;

a)在相对应的权值Dt下对样本进行训练得到预测函数ht:X→{-1,+1};

b)针对得到的预测函数ht计算其错误率:如果εt≤0.5,那么选择如果εt>0.5,抛弃本轮的弱分类器,跳出操作再重新回到第(3)步执行下一轮操作;

c)根据b)得到的错误率对权值进行修改更新:

其中,Zt代表的是满足的归一化因子;

d)对给定的训练样本进行的T轮训练完成,得到最终对应的预测函数:

其中,αt代表的是对在第t轮训练完成后生成的相应的弱分类器ht(x)的性能进行量化的评价因子,它的大小取决于ht(x)作用于训练样本集后分类错误样本权重和εt;αt是关于εt的递减函数,当εt越大时,所对应的αt越小,相应的ht(x)的影响越大;当达到εt=0时,代表着对训练样本集的分类都是正确的,所有的样本权重都为0;通过对全部的弱分类器ht(x)进行加权求和得到最终的强分类器H(x)。

基于上述,所述步骤四中,对检测到的目标进行定位和预警,定义视差d=Xl-Xr,则物体到相机的深度Z表示为:

其中,B为两个相机之间的基线差,f为相机焦距,Xl为左图视觉深度,Xr为右图视觉深度;

设定安全距离阈值,若所检测到的目标距离超过阈值,则向驾驶用户发出报警。

基于上述,所述步骤二中,利用CUDA加速对立体匹配算法进行系统提速。具体的,在中心对称的Census变换计算初始代价时,选择9×7大小的窗口,变换公示如式(12),其中表示按位连接。

上式代码实现时,常规编程方式是遍历整幅图像,在每个窗口建立两个程序分支,分别计算中心像素所在行(i=0,对应式(12)第二项)和计算剩余行(对应式(12)第一项),其中第二项需要通过建立两层的嵌套循环来不断比较像素值大小。

本发明相对现有技术具有突出的实质性特点和显著进步,具体的说,本发明提供了一种将单双目视觉算法融合的障碍物检测预警系统,通过单目视觉检测到特定目标,再利用双目立体视觉确定障碍物的距离,从而更好的理解周围场景的三维信息,最终实现预警功能。整个系统可以在移动终端上运行,轻便的特性使系统适用于多种多样的应用场合。并且针对算法的运行效率,对速度进行了并行化的优化。系统的很多计算模块都运用并行架构来实现,使程序运行时耗大大降低,提高了系统的实用性。实验结果表明,系统能够高速稳定运行,运用于交通道路环境下,针对行人和车辆的检测和预警的成功率符合设计要求。

附图说明

图1示出了本发明所提供的一种基于单双目视觉融合的障碍物检测预警系统流程图。

图2示出了本发明所提供的一种基于单双目视觉融合的障碍物检测预警系统装置示意图。

具体实施方式

下面通过具体实施方式,对本发明的技术方案做进一步的详细描述。

如图1和图2所示,本发明提供一种基于单双目视觉融合的障碍物检测预警系统,包括双目摄像头、显示设备、电源模块和JetsonTX1,通过如下步骤实现障碍物检测预警:

1)根据输入的左右原图,利用标定好的相机信息进行图像校正,以获得行对齐的左右图像对。先对双目摄像头进行标定得到其内外参数,以便后续图像矫正操作。表1示出摄像头内参包括焦距(fx,fy)、主点位置(x0,y0)、径向畸变(k1,k2)和切向畸变(p1,p2)。表2为左右相机位置转换的旋转矩阵R和平移矩阵T。

表1.左右摄像头内参数

表2.左右摄像头外参数

2)采用基于移动端的半全局立体匹配算法处理输入图像,并进行相应的算法优化,获取左图视差图。利用CUDA加速对立体匹配算法进行系统提速,能够实现效果良好的前提下,速度达到实时。由于CUDA以block为处理单元,每次处理Warp个线程(Jetson TX1中warp大小为32),因此为了保证不浪费GPU的计算性能,应尽量使block的大小是warp的整数倍,而9×7的窗口相比warp尺度要小很多,所以每次处理时可以多读入几个窗口的数据,再一次性完成处理。然后利用变换得到的代价进行代价聚合,半全局匹配的代价聚合结合了全图的信息,从多个一维路径进行代价聚合,来近似二维的情况,最后找到最小代价的路径。本发明的半全局匹配算法按动态规划的思想以8个方向的一维路径来计算。在半全局匹配算法的全局能量函数中,对深度变化的不同会添加不同的惩罚,以此确保平滑性约束:

对于像素点p在某一方向上累计的匹配代价可以用式(1)表示

式中第一项C(p,d)表示在视差为d时像素点p的初始匹配代价;第二项表示路径r上,p的前向点p-r附加惩罚值后的最小匹配代价;第三项是附加约束项,目的是防止L取值过大。计算总匹配代价时,先利用平滑性约束在8或16个方向上计算匹配代价Lr(p,d)后,再将不同方向的代价累积,如式(2)。

获取总的匹配代价S(p,d)的过程就是代价聚合,然后通过胜者为王的原则求出相应的视差值,使匹配代价最小,即

dp=arg mind S(p,d) (3)

3)对校正过后的左图进行单目视觉的目标检测,识别图像中的行人以及车辆;

4)根据上述中检测到的行人/车辆,结合双目视觉的深度信息,确定障碍物的距离和方位,再根据设定的预警阈值判定是否为安全范围;

特别的,立体匹配算法利用基于CUDA的加速,实现了效果良好的前提下,速度达到实时。通过测量多个图像,128个视差水平,以及2,4和8个路径方向的执行时间和视差估计精度。

本发明在集成了8个ARM内核和2个Maxwell SM(TDP为10W)的NVIDIA Tegra X1上进行处理。其中,由于CPU-GPU数据传输的时间(小于总时间的0.5%)可以与计算重叠,大大减少了系统时耗。使用KITTI基准套件测试视差估计的精度,不考虑被遮挡的像素,并且只将超过3个像素差异视为错误,精度可达到94%。Tegra X1实现了高精度的实时速率(42fps)。

最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制;尽管参照较佳实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者对部分技术特征进行等同替换;而不脱离本发明技术方案的精神,其均应涵盖在本发明请求保护的技术方案范围当中。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1