本发明是由专利申请号为:200710036550.9,专利申请名称为:基于地面纹理的智能车视觉装置及其全局定位方法,专利申请人为:上海交通大学,专利申请日为:2007年1月18日的专利分案申请。
发明内容
本发明的目的在于针对现有的基于视觉的智能车定位方法存在的不足,提供一种基于地面纹理的智能车视觉全局定位方法。本发明不仅具有视觉方法固有的优点和装置结构简单,维护方便,还对环境变化表现出极强的鲁棒性,无论在白天或者夜晚都不影响使用,而且不存在任何遮挡问题。
本发明是通过以下技术方案实现的:
本发明提供的基于地面纹理的智能车视觉装置包括:车体、遮光布、脉冲式灯管、摄像头、广角镜头、底板、数据线,遮光布设置在车体底部的车轮内侧,脉冲式灯管设置在车体底部的遮光布内侧,摄像头设置在底板上,底板设置于车体底部,使摄像头向下拍摄,广角镜头设置于摄像头上,摄像头通过数据线与上层处理单元连接,带有广角镜头的摄像头设置在车体底部,四周设置有脉冲式灯管以及遮光布,遮光布所围成的车体底部区域形成一个不受外界影响,环境可控的区域,脉冲式灯管可在摄像头采集信号时提供主动光源。
所述的遮光布,共4块,设置在车底车轮内侧四周,使车底下方形成一个环境可控区域,不受外界光照条件影响。遮光布所用材料应是不透明的,并且是软性材料以便于车辆运行。如黑色橡胶布等。
所述的脉冲式灯管,共4盏,提供主动光源;使用脉冲式灯管可增大主动光光强;只需要在摄像头采集信号的时刻提供光源,可节约能源。脉冲式灯管的光源强度应根据由遮光布所形成的可控区域内的实际亮度情况来决定。重要的一点是尽量使可控区域内的照明亮度均匀。
所述的摄像头,用于采集环境信息。一般的基于CCD或者CMOS的网络摄像头即可满足应用要求并且价格便宜。
所述的广角镜头,由于摄像头离地面较近,为了在可控区域中尽量大的范围内采集图像信号,在摄像头上设置广角镜头。广角镜头的选择可依据摄像头离地面的距离以及由遮光布所形成的可控区域的范围来确定。
所述的数据线,用于将图像信号传输至上层处理单元。如USB数据线等。
本发明提供的基于地面纹理的智能车视觉全局定位方法,包括如下步骤:
①首先建立环境全局的地面纹理地图,并存储于系统中,以便进行定位操作;
②智能车在环境中运行时通过数据线及图像采集程序将摄像头摄取的图像信号(局部地面图像)传送至上层处理单元;
③在上层处理单元中进行图像处理,提取图像中的纹理信息形成一幅局部地面纹理地图;
④另外为了减小局部地图在全局地图中的搜索匹配范围,使用了智能车的里程信息:里程信息提供了上一时刻至当前时刻车辆所经过的路程以及转过的角度,以大致确定当前车辆位姿在某一范围之内;
⑤然后再将当前局部地面纹理地图与④中所述某一范围内的全局地面纹理地图进行搜索匹配,从而求得智能车在全局环境中的定位信息。
本发明方法中所使用的纹理信息是纹理的边缘点,因此一幅纹理图像可表示为边缘点的集合,即将网格、三角、圆及其它各式纹理抽象为点集。这样,以点集表示纹理信息摆脱了具体纹理样式的局限,可在任何有地面纹理的场景下使用,而不管纹理的具体样式;纹理信息提取问题可当作图像边缘点的提取,可使用成熟的图像处理算法来实现。
所述步骤①,如果智能车所运行的环境范围较小,可以由人工来创建全局环境的地面纹理地图;如果环境范围较大,则可以考虑使用高精度的RTK-GPS等装置来辅助建立全局地图,创建过程包括基于图像处理算法的纹理信息提取(即边缘点提取,图像处理具体方法与下述的步骤③类似)以及存储。
所述步骤②,上层处理单元为一台车载笔记本电脑,摄像头通过USB数据线与笔记本电脑相连。笔记本电脑中装有Windows XP操作系统,并且开发了一套基于DirectShow的实时图像采集软件平台,利用这一软件平台采集摄像头摄取的环境信息(局部地面图像)。上层处理单元也可使用高性能的嵌入式系统来实现,例如DSP。
所述步骤③,上层处理单元中进行图像处理的目的是提取当前采集图像的纹理信息(即边缘点)。图像处理包括四个步骤:1,为了减小图像采集的延时影响,提取由奇数行象素构成的子图像(即奇场图像);2,采用中值滤波算法对图像进行处理以较小图像中的噪声;3,利用Canny边缘检测算子来提取边缘点;4,记录各边缘点位置形成一幅局部的地面纹理地图。
所述步骤④,智能车后轮和前轮处分别设置有驱动电机光电编码器和转向电机光电编码器,可分别记录在某一时间间隔内车辆所运行的距离以及转过的角度,即车辆里程信息。根据这些里程信息以及车辆在上一时刻的位姿,并由车辆的运动模型即可推算出车辆在当前时刻的位姿。需要注意的是虽然由编码器得到的车辆里程信息是不精确的,但是可以根据这些信息来大致确定车辆的当前位姿,从而可以大幅度地较小后续地图匹配的搜索范围,确保了定位方法的实时性。
所述步骤⑤,采用ICP(Iterative Closest Point)迭代最近点算法来完成地图匹配过程。存储于系统中的全局环境地面纹理地图以及当前采集的并经过图像处理而得到的局部地面纹理地图都抽象为边缘点集的形式,因此局部地图与全局地图的匹配可以看作是点集之间的匹配。根据摄像头标定的结果以及由里程信息所求得的当前车辆位姿可将局部地图中的边缘点映射到全局地图中,用集合{W_EdgeP}来表示。虽然由于由里程信息所求得的车辆位姿的不精确使得{W_EdgeP}并不和全局地图中所对应的真实边缘点集(用{True_W_EdgeP}表示)重合,但如果找到{W_EdgeP}和{True_W_EdgeP}之间的关系即可纠正不精确的车辆位姿。本发明中通过ICP算法求解得到{W_EdgeP}相对于{True_W_EdgeP}的变换关系,然后根据这个变换关系来纠正由里程信息所求得的车辆位姿从而得到十分精确的车辆全局位姿。
所述迭代最近点算法,具体如下:对于集合{W_EdgeP}中的每一个点(P)根据欧式距离下标准最近点原则在全局地图的某一范围(这一范围由步骤④确定)内搜索对应点(CP)。搜索完毕后对应的点集为{True_W_EdgeP}。假设共有n组对应点,可表示为{(Pi,CPi)},i=1…n。两点集之间存在旋转平移关系:(r,tx,ty)。这n组对应点可组成如下形式的方程组:
其中:
求解这一方程组即可得(r,tx,ty)的解析解,然后再通过迭代方法来提高精度。定义ICP算法的误差函数为:
根据所要求的精度由误差函数控制迭代中止条件可求得(r,tx,ty)。
假设由步骤④求得的当前车辆位姿为(x,y,θ),则进过匹配结果(r,tx,ty)纠正后而得的车辆位姿为:
这一结果即为最终的车辆全局位姿。
为了解决全局定位问题,本发明采用了基于地图匹配的技术。摄像头向下拍摄,摄取的环境信息主要是地面特征。考虑到在很多实际环境中地面往往含有丰富的纹理信息,例如很多路面含有各种交通标志纹理,如人行横道线、停车线、限速标志、转向标志等;在公园、广场、校园等环境中地面往往含有各式各样的纹理如各种花纹,网格,三角,圆等等,因此采用了基于地面纹理的定位方法。方法中通过匹配技术获得车辆的定位信息,为在很多实际环境中实现智能车的全局自定位提供了有效的解决方案。
本发明系统结构简单,维护方便;摄像头传感区域环境可控,不受外界影响,使系统具有极强鲁棒性,可以在室外环境下可靠运行;在任何有地面纹理的环境中都可使用,而实际地面中往往含有丰富的纹理信息,固本发明具有众多的应用场景;定位方法使用匹配技术并融合里程信息,可快速实现智能车的全局定位,保障了系统的实时运行;智能车可实现精确的全局定位,并且系统整体性能对环境变化表现出极强鲁棒性。
具体实施方式
下面结合附图对本发明的实施例作详细说明:本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式,但本发明的保护范围不限于下述的实施例。
如图1、2、3所示,本实施例包括:车体1、遮光布3、脉冲式灯管4、摄像头5、广角镜头6、底板7、数据线8。
遮光布3设置在车体1底部的车轮2内侧,脉冲式灯管4设置在车体1底部的遮光布3内侧,摄像头5设置在底板7上,底板7设置于车体1底部,使摄像头3向下拍摄,广角镜头6设置于摄像头5上,摄像头5通过数据线8与上层处理单元连接。
遮光布3采用黑色的橡胶布;脉冲式灯管4采用了亮度可调式来提高适应性;摄像头5采用一般的CCD网络摄像头,通过USB数据线与上层处理单元连接;选用的广角镜头6焦距为2.5mm。
如图4所示,本实施例中的智能车来自欧盟的CyberC3项目(CN/ASIA-IT&C/002-88667)。本实施例的运行环境为校园内的广场,范围大约为50×50平方米,广场地面具有丰富的方形网格纹理。
步骤1:由于环境范围较小,故采用人工方式来建立环境全局的地面纹理地图。先在广场中选择一固定点作为全局地图的坐标原点,然后在广场的不同点分别利用摄像头采集环境信息,经过图像处理后提取纹理信息(边缘点),并将纹理信息及其对应的全局坐标存于系统中。最终得到的就是一幅由边缘点集组成的环境全局地面纹理地图。
步骤2:在本实施例中上层处理单元为一台车载笔记本电脑,摄像头通过USB数据线与笔记本电脑相连。笔记本电脑中装有Windows XP操作系统。我们在Visual C++下开发了一套基于DirectShow的实时图像采集程序来采集摄像头摄取的环境信息(局部地面图像)。通过USB数据线以及这一实时图像采集程序即可将当前采集的图像信号传送至上层笔记本电脑。
步骤3:在笔记本电脑中开发了相应的图像处理程序,包括提取奇场图像,图像平滑去噪处理,纹理(边缘点)提取等。通过这一处理程序即可提取当前采集图像中的纹理信息,称为局部地面纹理地图。
步骤4:在智能车的后轮和前轮处分别设置有驱动电机光电编码器和转向电机光电编码器,通过这两个传感器的信息可分别计算得到某一时间间隔内车辆所运行的距离以及转过的角度,即车辆里程信息。根据这些里程信息以及车辆在上一时刻的位姿,并由车辆的运动模型即可推算出车辆在当前时刻的位姿。虽然由于编码器数据存在误差使得通过这种方式求得的车辆位姿并不精确,但是可以利用这个信息极大地减小地图匹配的搜索范围,即在后续的地图匹配中只需在这一车辆位姿附近小区域内进行匹配搜索即可。这一小区域的范围可以根据编码器数据的精度来确定。
步骤5:采用基于ICP算法的匹配技术,将当前局部地面纹理地图与全局地面纹理地图进行匹配,从而求得高精度的车辆全局位姿(匹配算法请见发明内容中步骤⑤)。
整个车辆全局定位方法在Visual C++下编写实现,并在上层笔记本电脑中运行。从智能车的运行结果可以看出本发明所述的方法可实现精确的全局定位,并且系统整体性能非常可靠,对环境变化表现出极强鲁棒性。