一种基于Kinect相机的室内AGV障碍物检测方法

2022-11-25 03:21杨磊徐家川李迪焦学健
关键词:畸变标定障碍物

杨磊,徐家川,李迪,焦学健

(山东理工大学 交通与车辆工程学院, 山东 淄博 255049)

AGV小车在车间通道运送物料,尽管布局安排会尽量保证AGV的工作路径上没有障碍物,但由于车间环境相对复杂,难免出现障碍物影响AGV的运行,这就要求AGV小车能够快速地检测出行驶前方是否存在障碍物。

传统的AGV障碍物检测方法有:超声波传感器检测、红外线传感器检测、激光雷达检测、双目相机检测以及多种传感器融合技术检测[1]。这些方法虽然可以检测出行驶环境中存在的障碍物,但是每种方法都存在一定的局限性,不能很好地适用于室内AGV的障碍物检测。

微软公司推出一款体感设备——Kinect相机,如图1所示,该相机能够实时采集分辨率为512×424、最大帧率为30 fps的深度图[2]。Kinect相机具有环境适应性好、测量精度高、实时性强、价格低廉等优点,符合室内AGV障碍物检测的要求。

图1 Kinect相机组成

本文对Kinect相机的深度相机标定后,从Kinect相机获取的深度图像中获得环境的点云数据,基于点云数据进行AGV小车的实时障碍物检测。

1 Kinect相机深度图像成像原理

Kinect相机的“深度眼睛”由一个红外投影机和红外摄像机组合而成,投影和接收互为重叠,如图2所示。Kinect相机以30 帧/s的速度收集视野范围内的每一点,并形成一幅代表周围环境的深度图像。

图2 Kinect相机的深度传感器

Kinect相机深度摄像机的测距是基于红外信号的飞行时间(time of flight,TOF)实现的。如图3所示,红外投影机发出脉冲光,红外相机接收反射光,通过测量脉冲光之间的传输延迟时间计算离目标物的距离即深度信息[3]。

图3 TOF光学测距

2 Kinect深度相机的标定

尽管Kinect相机可以获得环境中的深度信息,但是得到的仍是2D图像,且含有大量的噪声。如果要准确检测障碍物相对于相机的位置关系,需要建立深度图像的像素点与真实世界物理坐标系之间的联系,但是从三维世界到二维图像这一过程是不可逆的。为解决这一问题,如图4所示,建立一个合适的数学模型,求出这个模型的参数,近似相机成像过程,进而求解这个数学模型的反函数,实现从二维到三维的映射[4]。

图4 相机标定原理

2.1 深度相机标定的理论基础

深度摄像机的成像模型与针孔相机模型相似。如图5所示,针孔相机模型涉及4个坐标系:世界坐标系Ow-XwYwZw,相机坐标系Oc-XcYcZc,图像物理坐标系O-XY,图像像素坐标系Ouv-UV。

图5 针孔相机成像模型

为方便描述,把针孔相机模型关于光心Oc对称翻转,如图6所示。从数学的角度来看它们是等价的。接下来介绍世界坐标系中任一点M(xw,yw,zw)的成像过程。

图6 针孔相机翻转对称成像模型

世界坐标系中的物体先成像在相机坐标系中,即点M的坐标要从世界坐标系变换到相机坐标系。如图7所示,从世界坐标系到相机坐标系的变换属于刚体变换,只需要进行坐标系的平移和旋转。可得点M在相机坐标系中的坐标Mc(xc,yc,zc)满足:

图7 世界坐标系变换到相机坐标系

如图8所示,假设Mc(xc,yc)为M(xc,yc,zc)在像平面上的投影点,当忽略相机畸变时,光心Oc、点Mc与M在一条直线上[5]。

图8 相机坐标系变换到图像物理坐标系

根据三角形相似可得

最后将点Mc的坐标从图像物理坐标系变换到到像素坐标系,如图9所示。

图9 图像物理坐标系变换到图像像素坐标系

由于图像物理坐标系和图像像素坐标系的原点位置不同且单位长度也不一样,所以需进行伸缩变换与平移变换,即

到此实现了世界坐标系中的点M(xw,yw,zw)与像素坐标系中的M(u,v)在忽略畸变的情况下的映射关系,即

实际上透镜的制造工艺和安装位置会引起相机径向畸变和切向机畸变,使得光心Oc、点Mc和点M不在同一条直线上,Mc的实际位置可能在Mc′处,如图10所示。为使前边的模型成立,需要进行消畸变处理。

图10 考虑相机畸变时的成像模型

对于径向畸变,常用r=0处的泰勒级数展开的前几项来近似描述。矫正径向畸变前后各点的坐标关系为

对于切向畸变,需要两个额外的畸变参数来描述,矫正前后的坐标关系为

综上,为实现世界坐标系与像素坐标系的变换需要4个描述坐标变换的参数fx、fy、u0、v0,消除相机畸变需要确定描述透镜畸变的5个参数k1、k2、k3、p1和p2,即只要确定这9个参数就可以确定唯一的针孔相机模型,这个过程称为相机标定。

2.2 利用Matlab进行深度相机标定

为了确定像点和物点的对应关系进而训练出能够描述相机成像过程的9个参数,使用标定板进行相机标定。标定前需要用Kinect相机从不同的角度采集多张照片,为了避免Kinect相机自带的红外投影机产生的红外线对实验的干扰,试验前用黑胶带挡住红外投影机,用额外的红外光源照射物体采集图像[6],采集的图像如图11所示。

图11 相机标定时采集的图像

图像采集完成后调用Matlab工具箱中的标定应用Camera Calibrator,导入拍摄的图片,进行深度相机的标定。如图12(a)所示,输出描述相机坐标变换的4个参数和消除畸变的5个参数。如图12(b)所示,标定平均误差为0.19 个像素,标定标准要求标定的平均误差不超过0.5 个像素,所以此次标定结果符合标定标准。

(a)标定结果

相机标定完成后,根据相机成像模型矩阵变换,可以准确地获得深度图中每个像素点在世界坐标系中的对应点,进而获得点云数据。

3 基于点云数据的障碍物在线检测

3.1 障碍物检测方案

如图13所示,Kinect相机空间坐标系按如下方法规定:坐标原点(X=0,Y=0,Z=0)位于Kinect相机的红外相机中心;Z轴方向为顺Kinect相机的照射方向,X轴方向为顺着Kinect相机的照射方向的左方向,Y轴方向为顺着Kinect相机的照射方向的上方向,坐标单位为m[7]。

图13 Kinect相机的坐标系

如图14所示,Kinect相机安装在AGV小车的前端,保证红外相机处于车辆的中心位置处。为能够更好地实现障碍物的检测,使得相机向下倾斜20°安装。

图14 Kinect相机安装示意图

当小车工作时,Kinect相机实时采集环境的深度图像,如图15所示。将获得的深度图像转换成点云数据,世界坐标系中各个点形成的点云在相机三维坐标系中表示如图16所示。

(a)RGB图像

图16 深度图转换的点云图像

由于相机和地面不在同一水平面上且存在向下倾斜的安装角度,所以得到的点云数据相对于YZ平面也是倾斜的[8]。为方便控制将得到的点云数据进行绕X轴的旋转变换,使得到的地面点云数据平行于坐标系YZ平面。经坐标变换后得到水平面和地面有障碍物时的点云数据如图17所示,从图17可以看出水平地面形成的点云数据中每个点的Y坐标值是相等的,处于同一水平面上。当有障碍时,障碍物点云数据的Y坐标值明显大于周围点云数据的。所以可以通过检测Kinect相机所获点云数据的Y坐标值实现小车行进过程中障碍检测功能。

图17 坐标变换后的点云数据

3.2 制定障碍物检测规则

小车工作环境的地面是平面,所以当地面没有障碍物时,获得点云数据的所有点的Y坐标值是相等的;当有障碍物时,障碍物点云数据的Y坐标值会明显大于周围点的;当障碍物出现在小车两侧且不影响小车正常通行时,忽略障碍物,即只检测坐标‖X‖大于某个值的范围内的数据[9]。检测规则如图18所示。

图18 障碍物检测规则

AGV小车高0.5 m,车体宽0.6 m,根据Kinect相机安装角度可得,Kinect相机的前1.2 m内的视野是有效检测范围。忽略车体左右两侧0.2 m以外的障碍物,即当障碍物出现在相机坐标系左右两侧0.5 m以外时认为安全。在检测过程中,从在图像坐标系的第1行开始进行逐行扫描,当点云数据的‖X‖≤0.5 m,且Y>0.05 m时障碍物检测系统报警提醒,否则小车安全行驶。由于AGV小车行驶速度比较慢,所以为了减小计算量同时提高检测的实时性,在检测时设定每0.3 s检测一次。

4 实验结果与分析

为验证算法的准确性和鲁棒性,如图19所示,以某公司的室内AGV小车为实验平台进行实验。如图20所示,分别对障碍物在小车检测范围内前方,检测范围外前方,检测范围内左侧、右侧,检测范围外左侧、右侧这6种常见情况进行障碍物检测。得到检测结果如图21所示。

图19 实验平台

图20 障碍物检测

图21 障碍物检测结果

由图21可以发现,当障碍物出现在小车正前方1.5 m、行驶轨迹左右0.5 m处时,障碍物检测系统发出警告;当障碍物出现在小车正前方5 m、行驶轨迹左右0.9 m处时,障碍物检测系统未发出警告。通过实验验证该方案能够实现室内AGV障碍物检测功能。

5 结束语

本文提出了一种利用Kinect相机获得的深度信息进行障碍物在线快速检测方法,制定了障碍物检测规则并通过实验验证了该检测方法的准确性,实现了障碍物高效、稳定的实时检测,为AGV小车的安全通行提供了保障。

猜你喜欢
畸变标定障碍物
基于能量变分法的曲线组合箱梁畸变效应分析
基于条纹分析技术的镜头畸变校正实验设计
大型焊接容器局部热处理防畸变工装优化设计
轻卡前视摄像头的售后标定
一种轻卡前视单目摄像头下线标定方法
《癌变·畸变·突变》中国科技核心期刊收录证书
使用朗仁H6 Pro标定北汽绅宝转向角传感器
高低翻越
赶飞机
CT系统参数标定及成像—2