一种基于机器视觉的客车列车自动铰接方法及系统与流程

文档序号:22030633发布日期:2020-08-28 17:17阅读:198来源:国知局
一种基于机器视觉的客车列车自动铰接方法及系统与流程

本发明涉及客车列车领域,尤其涉及一种基于机器视觉的客车列车自动铰接方法及系统。



背景技术:

城市交通中,早晚高峰及平峰对运力需求矛盾突出。公交企业为了解决运力不平衡只能在高峰时段增派车辆和驾驶员,或者更换大运力车辆,造成车辆和人员的浪费。能自由编组和分散独立运行的客车列车在高峰期间进行编组运行,编组列车运行只需要一个驾驶员。在平峰期间,进行分散独立运行,一个驾驶员驾驶一辆分散独立运行车辆。

客车列车区别于传统铰接公交车,铰接公交车大多是两节车厢,运力有限,且不能自由编组,第二节车厢也无动力系统。客车列车可实现多个车辆的自由编组。编组后,车厢打通,乘客可自由穿过每节车厢。客车列车非常适用于快速公交系统(brt),可作为介于轨道交通与常规公交之间的新型公共客运系统,解决早晚高峰和平峰运力需求极不平衡的问题,同时大大降低人力成本、车辆运行成本等,体现绿色公交的理念。

当前现有的列车对接技术主要通过人工对接安装、固定轨道对齐接口再进行电气或机械手段固定等方法,存在装卸不便、运作场景限制高等缺点。对于装卸灵活性便易性要求极高的公路客车的铰接,传统的方法无法满足其需求。

当前机器视觉和图像处理技术蓬勃发展,具有数据信息丰富、处理手段多、设备安装简单、性能稳定等优点,能够支撑客车列车自动铰接的功能需求。



技术实现要素:

为了解决以上问题,本发明的目的是提供一种基于机器视觉的客车列车自动铰接方法及系统,前车和后车连接灵活便易,以满足客车列车自由编组的需求。

为了实现以上目的,本发明采用的技术方案:

一种基于机器视觉的客车列车自动铰接方法,包括以下步骤,

自动对焦并实时获取无畸变的视频流;

对视频流的图像进行处理,得到前后客车的距离、相对方向角和坐标信息;

根据处理得到的信息,控制从车调整车辆直至前后车对齐,完成自动铰接。

进一步的是,所述对视频流的图像进行处理包括以下步骤:

s21、使用摄像头标定,获得摄像头内参矩阵、外参矩阵、畸变系数;

s22、创建标记,并安装设备与标记;

s23、对标记进行检测;

s24、进行姿势估计,得到旋转矩阵和平移矩阵;

s25、根据旋转矩阵和平移矩阵求出前后车相对方向角、距离、坐标信息。

进一步的是,所述s21包括以下步骤:

s211、在不同位置和角度拍摄打印好的棋盘标定板15-20张;

s212、对拍摄的标定图片进行灰度化;

s213、对灰度化后的每张标定图片提取内角点信息;

s214、对灰度化后的每张标定图片提取亚像素角点信息;

s215、进行摄像头标定,得到内参数矩阵、外参矩阵、畸变系数;

s216、对摄像头的标定结果进行评价,若偏差在合理范围之内则进行下一步骤。

进一步的是,所述s22包括以下步骤:

s221、创建aruco标记;

s222、将摄像头固定在车辆前方挡风玻璃的上方中心位置,调试摄像头直至光轴平行于地平线;

s223、将创建的aruco标记打印,并使aruco标记图片的中心对准摄像头光轴垂直通过的高度。

进一步的是,所述s23包括以下步骤:

s231、检测候选标记:

从自适应阈值分割标记开始,并从阈值图像中提取轮廓,丢弃非凸形或不近似于正方形的轮廓;

s232、分析候选标记内部编码以确认摄像头获取到的是否为正确aruco标记:

应用透视变换以获得规范形式的标记;使用otsu对规范图像进行阈值处理以分离白色和黑色位;根据标记大小和边框大小将图像划分为不同的单元,并对每个单元上的黑色或白色像素进行计数,以确定其是白色位还是黑色位;分析这些位以确定标记是否属于特定词典,并采用纠错技术。

进一步的是,所述s24包括以下步骤:

s241、将世界坐标系标记的四个角点按照顺时针使用points.push_back函数压入points中,左上角为第一个点;

s242、使用opencv中的pnp求解函数solvepnp;

s243、使用rodrigues函数将旋转向量变换成旋转矩阵,将平移向量转换成平移矩阵。

进一步的是,所述s25包括以下步骤:

s251、根据旋转矩阵求出前车和后车的相对方向角;

s252、根据旋转矩阵和平移矩阵求出前后车的距离信息;

s253、设摄像头焦点为原点,以光轴所在直线为y轴,以通过原点且与y轴垂直的直线为x轴,构建水平面上的位置坐标系。

进一步的是,所述前后车的距离信息采用如下公式计算:

pcam=rpworld+t

式中,pcam代表物体在摄像头坐标系下的坐标,pworld代表物体在世界坐标系下的坐标,r和t分别为旋转矩阵和平移矩阵,当pcam=0时,pworld的z轴坐标即为前后车的距离信息。

进一步的是,所述对标记进行检测采用cv::aruco::detectmarkers函数进行;所述姿势估计使用pnp算法进行。

基于上述铰接方法,本发明还提供了一种基于机器视觉的客车列车自动铰接系统,包括摄像头、开发板和客车编组控制器;

所述摄像头用于自动对焦并获取无畸变的视频流;

所述开发板用于接收摄像头的视频流信息,对视频流的图像进行处理,得到前后客车的距离、相对方向角和坐标信息;

所述客车编组控制器用于接收开发板处理得到的信息,控制从车调整车辆直至前后车对齐,完成自动铰接。

本发明的有益效果:

相较传统列车铰接设备,本发明提高客车列车在编组过程中的易操作性,通过便于安装和使用的机器视觉系统进行铰接,能够降低扩展列车过程中设备安装的难度。

相较传统列车铰接技术,本发明能够降低运行场景要求的限制,也无需人工参与即可自动完成对接工作,针对高峰和平峰的切换效率和便易度都得到了提高。

相较传统铰接公交车,采用本发明能够以较低的功耗完成多辆列车的编组运行,摆脱了其扩展运力有限的缺点。

附图说明

图1为本发明方法的示意图;

图2为本发明对视频流的图像进行处理的示意图;

图3为本发明系统的示意图;

图4为摄像头坐标系;

图5为本发明标定板的示意图;

图6为灰度化后的图片;

图7为提取内角点信息的图片;

图8为提取亚像素角点信息的图片;

图9为生成的aruco标记;

图10为带标记的原图像;

图11为检测到的标记图像;

图12为识别步骤中被拒绝的标记图像;

图13为截取其中的一帧图像;

图14为本发明客车列车的铰接机构图。

具体实施方式

为了使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明作进一步阐述。

实施例1

一种基于机器视觉的客车列车自动铰接方法,包括以下步骤:

s1、使用自动对焦无畸变usb摄像头自动对焦并实时获取无畸变的视频流。

摄像头安装在后车车头上方获取视频流。自动对焦无畸变usb摄像头能够实时获取无畸变的视频流。其自动对焦功能能够保证在铰接过程中标记图像的清晰成像;其无畸变特性降低了摄像头成像时由于畸变而造成的测量误差;usb接口支持热插拔安装调试方便。摄像头安装在车辆前方防风玻璃的正上方,其视角对准前车后方水平位置固定的aruco标记,俯仰角为0°(水平方向)。摄像头通过usb接口连接树莓派开发板传输实时视频流。

s2、使用树莓派4b开发板对视频流的图像进行处理,得到前后客车的距离、相对方向角和坐标信息。

树莓派4b开发板具有高性能64位四核处理器,4gb的ram,双频2.4/5.0ghz无线局域网,千兆以太网接口,usb3.0。具有处理器速度高、低功耗、多媒体性能强、接口丰富等优点,能够完成自动铰接过程中的图像处理需求。树莓派将图像处理后得到的前后列车距离、相对方向角、坐标信息按照通信协议通过ttl串口发送,并通过ttl转can模块转换为can扩展帧广播至can总线,最后传输至客车编组控制器。

其中图像处理具体实施步骤如下,本实施例具体结合一个现场铰接进行说明:

s21、使用摄像头标定,获得摄像头内参矩阵、外参矩阵、畸变系数。

由图4所示各坐标系的对应关系,世界坐标系和图像坐标系的转换关系式如下所示:

内参矩阵是用来描述摄像头的内部参数如焦距、主点、偏斜系数、畸变,对应上式中的外参矩阵用来描述摄像头在世界坐标系里的位置和方向,主要包括旋转矩阵r的9个参数和平移矩阵的3个参数,对应上式中的畸变系数是用于描述摄像头进行径向或切向畸变的数值,在需要进行畸变矫正时会使用。

s211、使用自动对焦无畸变usb摄像头在不同位置和角度拍摄打印好的棋盘标定板15-20张,标定板如图5所示。

s212、使用cvtcolor(img,imggray,cv_bgr2gray)对拍摄的标定图片进行灰度化,灰度化后的图片如图6所示。

s213、使用findchessboardcorners函数对灰度化后的每张标定图片提取内角点信息,内角点信息如图7所示。

s214、使用cornersubpix函数对灰度化后的每张标定图片提取亚像素角点信息,亚像素角点信息如图8所示。

s215、使用calibratecamera函数进行摄像头标定,得到内参数矩阵、外参矩阵、畸变系数分别如下:

内参数矩阵:

[1102.423162881137,0,473.8716881280563;

0,1112.084770214302,372.5677805128268;

0,0,1]

外参矩阵-旋转矩阵(r):

[-0.9947013675354569,0.007835191225115268,0.1025075568022071;

-0.002232612515607279,0.9952100968028962,-0.09773371303150398;

-0.1027823178588954,-0.09744471766101585,-0.9899193513289443]

外参矩阵-平移向量(t):

[26.75289524184065;

-12.82044886051323;

113.1670923813448]

畸变系数:

[1.119937460660222,-27.4933634106506,0.001119811020145347,0.008732807386729536,205.54914408402]。

s216、使用projectpoints函数对摄像头的标定结果进行评价,若偏差在合理范围之内则进行下一步骤,不再合理范围内则重新进行摄像头标定。本实施例使用projectpoints函数对摄像头的标定结果如下:

以图8为例,平均误差:0.170037像素;总体平均误差:0.170037像素,偏差在合理范围内。

s22、创建标记,并安装设备与标记。

s221、创建aruco标记。aruco标记是一种合成的正方形标记,由宽的黑色边框和确定其标识符(id)的内部二进制矩阵组成。使用cv::drawmarker可以生成设定id和图像大小的标记图像,例如生成的图像如图9。

s222、将摄像头固定在后车前方挡风玻璃的上方中心位置,调试摄像头直至光轴平行于地平线。之前对于摄像头的相关操作是对摄像头进行摄像头标定,用于获取摄像头的参数,以便在后续操作中使用。

s223、将创建的aruco标记打印,并使aruco标记图片的中心对准摄像头光轴垂直通过的高度,保证前后辆车在正确铰接时aruco标记和摄像头成像平行对齐。

s23、使用cv::aruco::detectmarkers函数对标记进行检测。

首先通过标记检测信息确认标记的id,即当前自动铰接的是否为系统指定的前车id号,若确认再继续进行自动铰接。其次能够得到图像中四个角的位置,对于每个标记,其四个角均按其原始顺序返回(从左上角开始顺时针旋转)。因此,第一个角是左上角,然后是右上角,右下角和左下角。

标记检测过程主要包括两个主要步骤。

s231、检测候选标记:

对摄像头获取的图像进行分析,以找到可以用作标记的正方形。首先从自适应阈值分割标记开始,然后从阈值图像中提取轮廓,其次丢弃那些非凸形或不近似于正方形的轮廓。还应用了一些额外的过滤(删除太小或太大的轮廓,删除彼此太近的轮廓,等等)。

s232、分析候选标记内部编码以确认摄像头获取到的是否为正确aruco标记:

在候选者检测之后,有必要通过分析其内部编码来确定它们是否实际上是标记。此步骤开始于提取每个标记的标记位。为此,首先,应用透视变换以获得规范形式的标记。然后,使用otsu对规范图像进行阈值处理以分离白色和黑色位。根据标记大小和边框大小将图像划分为不同的单元,并对每个单元上的黑色或白色像素进行计数,以确定它是白色位还是黑色位。最后,分析这些位以确定标记是否属于特定词典,并在必要时采用纠错技术,降低误检率。

以生成的多个aruco标记打印在一张纸上的检测效果为例,带标记的原图像如图10所示。检测到的标记(绿色)如图11所示,请注意,某些标记是旋转的,标记的左上角为红色小方块。在识别步骤中被拒绝的标记候选项如图12所示(粉红色)。

s24、使用pnp算法进行姿势估计,得到旋转矩阵和平移矩阵;

依据世界坐标系与图像坐标系如图4,得到世界坐标系与图像坐标系的映射关系:

pnp(perspective-n-point)是求解3d到2d点对运动的方法。它描述了当我们知道n个3d空间点以及它们的投影位置时,如何估计摄像头所在的位姿。当3d空间点的坐标为四个及以上时可以求得旋转矩阵和平移矩阵的唯一解。

s241、将世界坐标系标记的四个角点按照顺时针使用points.push_back函数压入points中,左上角为第一个点;

s242、使用opencv中的pnp求解函数solvepnp;

该函数参数包括:

objectpoints-世界坐标系下的控制点的坐标(生成图标时已知);

imagepoints-在图像坐标系下对应的控制点的坐标(第s243步中获得);

cameramatrix-摄像头的内参矩阵(第s241步获得);

distcoeffs-摄像头的畸变系数(第s241步获得);

rvec-输出的旋转向量,使坐标点从世界坐标系旋转到摄像头坐标系;

tvec-输出的平移向量,使坐标点从世界坐标系平移到摄像头坐标系;

flags-默认使用cv_iterativ迭代法。

s243、使用rodrigues函数将旋转向量变换成旋转矩阵,将平移向量转换成平移矩阵。

本实施例具体具体如下:

rodrigues函数在opencv中的函数原型为:

voidcv::rodrigues(inputarraysrc,outputarraydst,outputarrayjacobian=noarray());

调用此函数实现矩阵和向量互换,以旋转矩阵为例结果如下:

旋转矩阵:

[-0.9947013675354569,0.007835191225115268,0.1025075568022071;

-0.002232612515607279,0.9952100968028962,-0.09773371303150398;

-0.1027823178588954,-0.09744471766101585,-0.9899193513289443]

对应的旋转向量:

[0.004272488458516211;

3.034991940038078;

-0.148841745153872]。

s25、根据旋转矩阵和平移矩阵求出前后车相对方向角、距离、坐标信息。

s251、根据旋转矩阵求出坐标旋转角,即前车和后车的相对方向角;

s252、根据旋转矩阵和平移矩阵求出深度信息,即前后车的距离信息;

pcam=rpworld+t

式中,pcam代表物体在摄像头坐标系下的坐标,pworld代表物体在世界坐标系下的坐标,r和t分别为旋转矩阵和平移矩阵,当pcam=0时,pworld的z轴坐标即为前后车的距离信息。

s253、设摄像头焦点为原点,以光轴所在直线为y轴,以通过原点且与y轴垂直的直线为x轴,根据s251和s252所得方向角和距离信息可计算出前车标记所在的中心坐标,即可构建水平面上的位置坐标系。

本实施例具体为:

使用经过上述标定后的摄像头对aruco标记进行视频监控,截取其中一帧图像(如图13所示)进行处理,由pnp算法得到的旋转矩阵r和平移矩阵t,设pcam=0,根据s251和s252所述公式,可以得到pworld的z轴坐标为76.898mm;根据旋转矩阵得到的旋转向量的长度(模)表示本帧图像在世界坐标系下各轴绕轴逆时针旋转的角度(弧度),即可得到本帧方向角为:x轴0.13°,y轴0.06°,z轴-2,24°(顺时针为正)。

坐标信息的获取方法如下:规定后车启动自动铰接的状态为初始化原点(0,0),以平行于水平面所在的平面作为坐标平面。根据得到的距离和旋转矩阵即可计算得出映射在坐标平面上的对应(x,y)坐标。

s3、客车编组控制器根据处理得到的信息(即前后车相对方向角、距离、坐标信息),控制从车调整车辆直至前后车对齐,前后车间的铰接机构连接,完成自动铰接。

本实施例中的铰接结果数据如下:

以distance表示车辆距离,x、y、z分别表示在世界坐标系下x、y、z轴的旋转角,(x,y)表示后车的平面坐标信息(起点设为(0,0)单位为mm)。在一次自动铰接过程中的结果数据如下:

distance:3500mm,x:45.34°,y:-3.55°,z:3.02°(0,0)

distance:3456mm,x:43.68°,y:-3.45°,z:3.99°(23,65)

distance:3245mm,x:43.37°,y:-4.02°,z:3.89°(45,76)

distance:3234mm,x:39.34°,y:-3.12°,z:3.62°(58,84)

distance:3215mm,x:39.06°,y:-2.95°,z:4.02°(78,105)

distance:3209mm,x:38.99°,y:-2.85°,z:3.40°(75,122)

distance:3159mm,x:33.03°,y:-2.52°,z:3.06°(98,143)

distance:3072mm,x:29.63°,y:-2.52°,z:3.06°(105,139)

distance:2892mm,x:26.63°,y:-2.56°,z:3.13°(132,144)

distance:2834mm,x:25.45°,y:-2.34°,z:2.34°(223,178)

distance:2772mm,x:21.38°,y:-1.79°,z:2.03°(256,211)

distance:2682mm,x:20.22°,y:-1.69°,z:1.03°(278,239)

distance:2532mm,x:19.47°,y:-1.22°,z:1.03°(297,260)

distance:2426mm,x:17.95°,y:-1.30°,z:0.83°(380,329)

distance:2269mm,x:16.47°,y:-1.20°,z:1.05°(419,388)

distance:2156mm,x:15.65°,y:-1.02°,z:1.03°(587,486)

distance:2003mm,x:13.45°,y:-1.00°,z:0.89°(692,529)

distance:1935mm,x:13.05°,y:-1.02°,z:0.83°(798,635)

distance:1778mm,x:12.07°,y:-0.95°,z:0.81°(833,768)

distance:1530mm,x:10.35°,y:-0.92°,z:0.79°(987,923)

distance:1507mm,x:10.05°,y:-1.02°,z:0.72°(1043,1109)

distance:1345mm,x:9.35°,y:-0.96°,z:0.62°(1223,1234)

distance:1267mm,x:8.67°,y:-0.95,z:0.69°(1323,1414)

distance:1132mm,x:8.07°,y:-0.85,z:0.72°(1526,1678)

distance:1026mm,x:7.47°,y:-0.86,z:0.77°(1696,1728)

distance:926mm,x:5.86°,y:-0.85,z:0.79°(1823,1935)

distance:856mm,x:4.76°,y:-0.88,z:0.82°(2004,2103)

distance:766mm,x:5.32°,y:-0.84,z:0.88°(2224,2284)

distance:664mm,x:4.25°,y:-0.87,z:0.89°(2312,2377)

distance:588mm,x:3.75°,y:-0.81,z:0.84°(2410,2423)

distance:418mm,x:2.34°,y:-0.88,z:0.87°(2435,2450)

distance:327mm,x:1.54°,y:-0.83,z:0.85°(2471,2472)

distance:201mm,x:0.99°,y:-0.87,z:0.86°(2475,2483)

distance:200mm,x:0.89°,y:-0.83,z:0.85°(2479,2488)

客车编组控制器根据上述的结果数据,控制从车调整车辆直至前后车对齐,前后车间的铰接机构连接,如图12所示,完成自动铰接。

根据上面的数据表明,使用机器视觉加图像处理的技术能够满足铰接过程中对所需信息,如前后车距离、方位角、坐标信息的获取,并且一定程度上满足铰接过程中的所需精度。随着车辆控制器根据接收到视觉处理模块上传的信息控制车辆进行对接位姿矫正,获取的视觉检测数据也在逐渐向正确对接的位置收敛,最终到达正确的对接位姿实现前后车的对接。

实施例2

一种基于机器视觉的客车列车自动铰接系统,如图3所示,包括摄像头、开发板和客车编组控制器;所述摄像头用于自动对焦并获取无畸变的视频流;所述开发板用于接收摄像头的视频流信息,对视频流的图像进行处理,得到前后客车的距离、相对方向角和坐标信息;所述客车编组控制器用于接收开发板处理得到的信息,控制从车调整车辆直至前后车对齐,完成自动铰接。本实施例中的摄像头、开发板和客车编组控制器的具体使用说明,已在实施例1中详细阐述,在此不再累述。

应当认识到,本发明的实施例可以由计算机硬件、硬件和软件的组合、或者通过存储在非暂时性计算机可读存储器中的计算机指令来实现或实施。所述方法可以使用标准编程技术-包括配置有计算机程序的非暂时性计算机可读存储介质在计算机程序中实现,其中如此配置的存储介质使得计算机以特定和预定义的方式操作——根据在具体实施例中描述的方法和附图。每个程序可以以高级过程或面向对象的编程语言来实现以与计算机系统通信。然而,若需要,该程序可以以汇编或机器语言实现。在任何情况下,该语言可以是编译或解释的语言。此外,为此目的该程序能够在编程的专用集成电路上运行。

以上显示和描述了本发明的基本原理、主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。

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