多摄像头无人车视觉感知系统技术领域
本发明属于自主行驶和视觉感知技术领域,具体涉及一种多摄像头无人
车视觉感知系统,可用于无人驾驶汽车和自主移动车辆的视觉感知和图像处
理。
背景技术
近年来,各种可以自主移动的中小型车辆和机器人开始进入工业生产、
安防和家庭服务等领域。而为了研究汽车的自主行驶技术,各种微型无人车
仿真验证系统也被一些科研院所开发出来。视觉感知技术是自主车辆和移动
机器人的关键技术,在环境感知和导航领域较其他传统传感器感知技术具有
明显的优势。视觉感知技术在工业生产、交通运输、医疗服务等领域也得到
了广泛的应用,具有很好的应用前景。
由于中小型自主移动车辆和机器人尺寸和开发成本的限制,导致无法使
用高档的运算处理系统,一般采用采用单片机、dsp等微控制器,处理程序
为单线程程序,不能满足多任务的图像处理系统的需求,并且可扩展性和实
时性不强。
传统的无人车图像处理技术中,对车道线的识别常用拟合法、边沿搜索
等方法,这些方法对于道路线部分被遮挡的情况处理效果不佳;对于障碍物、
锥桶、交通灯等的识别检测常常使用模板匹配和神经网络等方法,耗费资源
且影响系统实时性。
当前的视觉平台调试时需要使用电缆连接车上的设备或者通过无线串口
远程传输少量的图像信息,给系统的调试带来较大不便。
此外,当前的自主移动车辆或者微型无人车系统多采用普通单摄像头进
行视觉感知和导航,视野范围较窄;而采用广角镜头的系统需要耗费较大精
力处理镜头产生的畸变,并且视野范围无法调整;此外也无法自由控制采集
图像的分辨率以实现效率最大化。
发明内容
本发明的目的是为了克服现有微型无人车和自主移动机器人的图像处理
系统感知算法单一且实时性不强、系统扩展性差、调试不便以及视野范围控
制的局限性等问题,提出一种多摄像头无人车视觉感知系统,该系统经济、
可靠,扩展性好,对于仿真交通环境的感知和识别具有很好的实时性,可应
用于智能仿真车辆和小型自主移动机器人的环境感知和导航。
本发明所采用的技术方案是:
一种多摄像头无人车视觉感知系统,包括车载视觉感知系统、无线网络
设备和远程调试监控系统;其中车载视觉感知系统包括多个车载图像处理工
控机,每个车载图像处理工控机接有三个摄像头;远程调试监控系统包括一
个或多个调试监控计算机通过无线路由器控制车载图像处理工控机,经远程
登录进行车辆运行的远程监控和在线程序调试,所述控制方式可以是冗余控
制也可以是分别控制。
如上所述的一种多摄像头无人车视觉感知系统,其中:所述系统运行前,
将三个摄像头根据需要感知的视野范围安装固定在一个自主移动车辆上,然
后通过某幅图像中几个点的像素距离参数和对应的实际距离参数确定像平面
坐标系和世界坐标系的对应关系矩阵。
如上所述的一种多摄像头无人车视觉感知系统,其中:所述系统中采取
一种基于多线程的优化的视觉感知方法,包括多个线程,分别是主线程,摄
像头A视频采集线程,摄像头B视频采集线程,摄像头C视频采集线程,车
道线感知线程,障碍物、锥桶和信号灯感知线程,交通标志感知线程,综合
控制决策线程,图像和运算结果显示线程。
如上所述的一种多摄像头无人车视觉感知系统,其中:所述主线程进行
系统的初始化以及各个分线程的创建,初始化包括图像存储空间的声明、串
口的初始化设置、静态变量参数声明;各个分线程创建后,主线程进入等待
状态,等待图像和运算结果显示线程结束;图像和运算结果显示线程不断检
测调试监控计算机发送的指令,若收到退出指令,则线程跳出循环结束,同
时触发主线程结束并释放内存。
如上所述的一种多摄像头无人车视觉感知系统,其中:所述车道线感知
线程进行车道线的感知和偏航角的计算,包括如下步骤:
(4.1)将RGB图像灰度化得到灰度图像,将灰度图像二值化得到二值图
像;
(4.2)膨胀腐蚀减少噪点,通过canny边沿检测得到边沿图像,减小后
面霍夫变换的计算量;
(4.3)对边沿图像进行霍夫直线检测,得到图像中所有直线的极坐标方
程的参数;
(4.4)遍历所有直线,进行坐标变换并投影映射到世界坐标系下,找到
斜率在设定范围内并且距离车头最近的线作为车道线。
如上所述的一种多摄像头无人车视觉感知系统,其中:所述(4.1)步骤
中二值化方法为:将图像按行从上到下分成4个部分,每个部分都找到最大
三个灰度值和最小的三个灰度值,取其平均值作为最终阈值,如果最大最小
阈值的差值小于某个经验值则按上一部分得出的阈值计算;如果图像第一部
分对比度较差,则第一部分使用某个固定初始阈值TH开始计算,待求阈值计
算如下:
th = Σ i = 0 n ( high [ i ] + low [ i ] ) 2 n ]]>
其中,th为待求阈值,high[i],low[i]分别是最大和最小的n个阈值。
如上所述的一种多摄像头无人车视觉感知系统,其中:所述障碍物、锥
桶和信号灯感知线程,具体分为:
(5.1)将RGB图像转化为HSV图像;
(5.2)根据三种目标各自的具体特征进行识别;根据车道线将前方的障
碍物分为车道内和车道外,根据颜色、面积和位置判断物体是否是车道上的
障碍物,对于车道内的障碍物进行躲避;锥桶的位置在两个车道线之内,每
个锥桶有红、白、红三块区域,三块区域从下到上依次减小,并且锥桶一次
放置多于两个,否则不是锥桶;交通灯在图像中呈现为红色圆形联通区域,
区域中间有亮度很高的白色区域,交通信号灯位于图像的中上方。
如上所述的一种多摄像头无人车视觉感知系统,其中:所述交通标志感
知线程,分为如下步骤:
(6.1)图像预处理:将原来的RGB图像转换成HSV空间的图像,并分别
分割出红、蓝、黄三种颜色区域;
(6.2)交通标志分类:根据颜色、形状将交通标志分为红色禁令标志、
蓝色指示标志、黄色警告标志;
(6.3)通过模板匹配进行交通标志识别:;缩小分类后的图像区域,将
该区域转换成二值图像后与对应类别内的模板匹配,找出相似度最高的标志
模板。
本发明的有益效果是:
(1)本发明使用了一种基于多线程的优化的视觉感知方法感知交通环境,多
个感知线程并行执行,较传统的单线程视觉感知方法有更高的实时性、
稳定性和可扩展性。且这种基于无线网络的通信方式正常可以达到几十MB的传
输流量,并且可以进行一对多或多对一的调试,非常适合移动视觉图像处理系统。
(2)使用了canny边沿检测和霍夫变换结合的方法识别车道线,对于车道线
被部分遮挡的情况仍然可以稳定识别;同时,改进了传统双峰法进行二
值化,提高对光线变化环境的适应性。使用了两个摄像头对两侧车道线
同时检测,根据两根或一根线计算车体偏移角度的计算,保证了车道线
检测的冗余性和可靠性。
(3)通过基于颜色、形状、位置以及对象的具体特征的方法识别障碍物、锥
桶、交通灯,算法简洁可靠,较常规的模板匹配等方法实时性好。
(4)本发明通过多个摄像头分别感知多个视野范围,较传统的单摄像头感知
具有更大的视野范围,并且视野范围灵活可调。不同视野范围对应着不
同处理线程,增加了程序的灵活性。
(5)图像处理模块使用了X86工控机,较传统的微小型自主移动车辆使用的
单片机、dsp图像处理模块具有更好的扩展性,并且开发人员可以将精
力放在算法的设计开发上而不用再关心系统硬件,缩短了开发时间。
(6)调试监控计算机通过无线局域网远程登录车载的图像处理工控机,可以
在移动车辆运行时远程监控系统运行状态和在线调试修改程序,较传统
的微小型移动车辆使用无线串口或需要连接电缆调试的方法更加方便,
传送数据量更大。
附图说明
图1为本发明提供的一种多摄像头无人车视觉感知系统示意图;
图2为一种基于多线程的优化的视觉感知方法的线程示意图;
图3为一幅棋盘格的原始图像;
图4为图3映射变换后的图像;
图5为车道线检测流程图;
图6为交通标志检测流程图;
图中,1.工控机,2.摄像头,3.无线路由器,4.调试监控计算机。
具体实施方式
下面结合附图和实施例对本发明提供的一种多摄像头无人车视觉感知系
统进行介绍:
如图1所示,一种多摄像头无人车视觉感知系统,包括多个车载图像处
理工控机1,每个车载图像处理工控机接有三个摄像头2;一个或多个调试监
控计算机4通过无线路由器3控制车载图像处理工控机2,控制方式可以是
冗余控制也可以是分别控制。
各个车载图像处理工控机1和远程调试监控计算机4组成无线局域网,
无线局域网内的任何计算机之间便可自由通信。远程监控计算机通过命令行
方式显示数据和发送命令;通过显示服务器-客户端体系显示实时图像处理结
果。在车载图像处理工控机1上建立相关的文件共享机制,即可从局域网内
的其他计算机远程登录该车载计算机在线修改程序,还可以将所有线程的中
间处理结果数据和图像发送到远程计算机显示。在网络承受的范围内可以使
用一台计算机远程调试监控多台车载图像处理工控机1;也可以使用多台计
算机同时远程监控调试一台车载图像处理工控机1。
如图2所示,多摄像头无人车视觉感知系统中采取一种基于多线程的优
化的视觉感知方法,包括多个线程,分别是主线程,摄像头A视频采集线程,
摄像头B视频采集线程,摄像头C视频采集线程,车道线感知线程,障碍物、
锥桶和信号灯感知线程,交通标志感知线程,综合控制决策线程,图像和运
算结果显示线程;该感知方法具体包括如下部分:
系统运行前,应先将三个摄像头根据需要感知的视野范围分别安装固定
在一个自主移动车辆上,然后通过某幅图像中几个点的像素距离参数和对应
的实际距离参数确定像平面坐标系和世界坐标系的对应关系矩阵,公式如下。
x y 1 = H X Y 1 ]]>
(x,y)为选定点在像平面的坐标,该坐标系原点为图像的左上角,单位为像
素;(X,Y)为世界平面坐标,原点选择为车头的中点,向前向右分别为Y、X
轴的正方向,单位为厘米。H为待求的3×3的对应关系矩阵。本发明使用棋
盘格图像进行对应关系矩阵的计算,分别带入棋盘在两个坐标系选定角点的
坐标即可求出对应关系矩阵H。图3为一幅棋盘格的原始图像,图4为映射
变换后的图像。像平面中的像素点的距离转换到世界坐标系的距离值与实际
测量数值之间误差约1cm。
各线程并行执行。每个线程的一些重要运算数据和图像处理结果都存储
在一段共享内存中,以便于其他线程的调用。采用多线程的程序结构,可以
根据各个线程对实时性的需求不同设定不同的线程执行周期,通过让线程休
眠的方式控制线程间歇性运行,这样可以最大化cpu的使用效率。
主线程主要进行系统的初始化以及各个分线程的创建。初始化主要包括
图像存储空间的声明、串口的初始化设置、静态变量参数声明等。各个分线
程创建后,主线程进入等待状态,等待图像显示线程结束。图像显示线程会
不断检测远程监控计算机发送的指令,若收到退出指令,则线程跳出循环结
束,同时触发主线程结束并释放内存,整个程序彻底结束。
三个摄像头视频采集线程的周期主要取决于摄像头的帧速。为了最大化
程序的效率,提高实时性,采集时要根据各个摄像头的功能进行降采样。将
采集得到的RGB图像存储在共享内存中,并对该图像进行基本的预处理。
车道线感知线程进行车道线的感知和偏航角的计算。对车道线感知是为
了保证自主移动车辆一直运行在两根车道线中间。车道线检测将canny边沿
检测和霍夫变换结合,即减小了计算量,又可以稳定检测出被部分遮挡的车
道线。
如图5所示,车道线的检测主包括如下步骤:
(4.1)将RGB图像灰度化得到灰度图像,将灰度图像二值化得到二值图
像;
(4.2)膨胀腐蚀减少噪点,通过canny边沿检测得到边沿图像,减小后
面霍夫变换的计算量;
(4.3)对边沿图像进行霍夫直线检测,得到图像中所有直线的极坐标方
程的参数;
(4.4)遍历所有直线,进行坐标变换并投影映射到世界坐标系下,找到
斜率在设定范围内并且距离车头最近的线作为车道线。
由于远近光线可能有较大变化,使用常规的双峰法得到全局的阈值并不
适合图像的各个部分。本发明提出了一种改进的方法,即将图像按行从上到
下分成4个部分,每个部分都找到最大三个灰度值和最小的三个灰度值,取
其平均值作为最终阈值,如果最大最小阈值的差值小于某个经验值(本实施
例优选为60)则按上一部分得出的阈值计算,以防止空白区域出现噪点;如
果图像第一部分对比度较差,则第一部分使用某个固定初始阈值TH开始计
算。算法公式如下:
th = Σ i = 0 n ( high [ i ] + low [ i ] ) 2 n ]]>
其中,th为待求阈值,high[i],low[i]分别是最大和最小的n个阈值。
通过一侧摄像头采集得到的一侧车道线算出车体与该车道线的距离,根
据这个距离计算出偏航角度。为了增强系统可靠性和稳定性,对小车两侧车
道线同时检测,这样即使一侧车道线没有检测出来仍然可以正确计算出车辆
的偏航角度。同时,也保证了对于分叉或者合流的道路情况可以灵活选择行
驶路径。
障碍物、锥桶和交通信号灯的检测中,具体包括如下步骤:
(5.1)三种目标都有较鲜明的颜色,尤其与车道颜色区别较大。由于在
HSV空间进行三种目标颜色的分割有较好的效果,因此首先要将RGB图像转
化为HSV图像。
(5.2)根据三种目标各自的具体特征进行识别。根据车道线可以将前方
的障碍物分为车道内和车道外,根据颜色、面积和位置可判断该物体是否是
车道上的障碍物,对于车道内的障碍物要进行躲避;锥桶的特征是:位置在
两个车道线之内,每个锥桶有红、白、红三块区域,三块区域从下到上依次
减小,并且锥桶一般一次放置多于两个,否则不认为是锥桶。通过上面特征
可以快速准确的识别锥桶;交通灯在图像中呈现为很小的红色圆形联通区域,
区域中间有亮度很高的白色区域,有效的交通信号灯只会出现在图像的中上
方。通过上面的方法识别障碍物、锥桶和交通信号灯有很高的实时性和稳定
性。
交通标志感知线程中,交通标志可以指示车辆的行驶路径、行驶速度、
道路类型等特征。自主移动车辆可根据交通标志的指示修改自身的运行状态。
交通标志的识别流程如图6所示,分为如下步骤:
(6.1)图像预处理:将原来的RGB图像转换成HSV空间的图像,并分别
分割出红、蓝、黄三种颜色区域。
(6.2)交通标志分类:根据颜色、形状将交通标志分为红色禁令标志、
蓝色指示标志、黄色警告标志。
(6.3)通过模板匹配进行交通标志识别:进一步缩小分类后的图像区域,
将该区域转换成二值图像后与对应类别内的模板匹配,找出相似度最高的标
志模板。
为了提高实时性,本线程方法使用了较小的匹配模板;此外,在进行较
耗资源的匹配算法之前进行了充分的分类,匹配时只在只在一个很小的类别
范围内搜索即可,这样可成倍的提高算法的效率。
综合控制决策线程主要进行视觉感知结果的综合分析和任务优先级排
队,进行控制系统运行状态的切换,并将某些处理结果通过串口传送到车上
其他硬件控制单元。
图像和运算结果显示线程将各个进程图像处理的中间结果和最终结果发
送到远程pc显示。同时交一些参数(如交通标志线程提取的模板)保存到一
个文件中以便于观察和应用。