一种基于rgbd相机的仓储托盘检测与定位方法
技术领域
本发明涉及智能移动机器人,仓储托盘检测
技术领域
,尤其涉及一种基于RGBD相机的仓储托盘检测与定位方法。背景技术
随着物流信息技术的快速发展,机器人已经广泛应用于许多领域。其中普及程度最高,应用范围最广的当属自动导引车,大大小小的仓库都能看到它的身影。托盘叉车AGV是一种常见的货叉式AGV,其载重量大、移动灵活,工作效率高,在智能仓储中扮演着重要角色。托盘叉车AGV主要分为定轨和无轨,其中定轨叉车指的是具有固定行进路径,工作方式相对单一;而无轨叉车没有固定路径限制,其智能化程度更高,应用场景也更为广泛、实施方式更为灵活,从成本、技术和应用层面来讲,都是自动叉车发展的未来方向。
由于仓储环境复杂多变,存在着光照不均、全局定位精度有限、搬运累计误差等因素的影响,实现自动搬运存在诸多困难。因此,消除上述困难,实现对仓储托盘的精准、快速、鲁棒的检测与定位,是提升自动叉车智能化水平的关键所在。
现有的仓储托盘检测方法主要有基于激光雷达、视觉传感器以及二者结合。基于激光雷达的检测方法虽然对于光照有较强的鲁棒性,但传感器成本普遍过于昂贵、且数据较稀疏,特征不明显,并不适合大规模使用。视觉传感器特征信息丰富且价格低廉,相比与基于激光雷达的检测方法更适用于实际应用。
发明内容
本发明的目的在于克服实现叉车自动搬运存在的种种困难以及现有仓储托盘检测方法的不足,提供一种基于RGBD相机的仓储托盘检测与定位方法,该方法涉及RGBD相机和微型人工智能边缘计算开发平台,RGBD相机用于采集图像,在微型人工智能边缘计算开发平台模块上部署训练好的YOLOV5模型,用于推理计算。RGB图像输入到YOLOV5网络进行托盘检测,通过在深度图中获取托盘深度信息结合相机内参计算出托盘中心相对于相机的位姿。
本发明的目的是通过以下技术方案实现的:一种基于RGBD相机的仓储托盘检测与定位方法,该方法包括如下步骤:
步骤1、通过现场采集和网上爬取的方式搜集含有仓储托盘的RGB图片,并保存下来,建立训练数据集。把训练数据集输入到YOLOV5网络模型中训练权值参数,得到训练好的YOLOV5模型。
步骤2、将RGBD相机的图像格式、分辨率、帧率等参数设置为统一格式,RGBD相机进行硬件初始化、软件初始化后,开启RGBD相机,分别获取含有仓储托盘的RGB图像和深度图像,并对采集到的每一帧RGB图像和深度图像进行高斯滤波减噪处理。
步骤3、在微型人工智能边缘计算开发平台上部署步骤1中训练好的YOLOV5模型。将采集到的含有仓储托盘的RGB图像数据输入训练好的YOLOV5网络模型中,使用深度学习推理优化器TensorRT进行推理计算,实现RGB图像内目标检测,若没有检测到目标仓储托盘,则返回步骤2重新获取图像,若图像内检测到目标,则在RGB图像中用矩形框选出目标仓储托盘。
步骤4、将同一时间戳下的含有仓储托盘的深度图像与RGB图像对齐,并获取RGB图像中目标仓储托盘矩形框几何中心的深度信息Zc和左右边界中点的深度信息Z1和Z2。根据相机标定原理,标定获取RGBD相机RGB摄像头的内参矩阵。
步骤5、计算步骤3中目标矩形框的几何中心o在像素坐标系下的坐标o(u,v),并计算目标矩形框的左右边界中点a,b在像素坐标系下的坐标a(u1,v1)和b(u2,v2)。然后根据平移关系,利用RGB相机内参将计算得到的像素坐标转换成图像坐标。
步骤6、根据透视投影关系,由步骤5中的图像坐标系下的2D坐标转换成相机坐标系下的3D坐标。根据步骤5中的a,b两点的3D坐标计算托盘平面在相机坐标系下的相对姿态。
进一步地,所述步骤1中训练数据集的建立,具体为:
1-1、通过现场采集仓储托盘图片以及网上爬取仓储托盘图片的方式,获取500张分辨率在1080p以上的仓储托盘图片,构建训练数据集,所述训练数据集包含多个角度拍摄的仓储托盘图片;
1-2、使用LabelImage标注工具对训练数据集图片进行标注并保存,使用的是yolo格式的标注方式,含有仓储托盘的为正样本,不含仓储托盘的为负样本。
进一步地,所述步骤2中,进行高斯滤波减噪处理具体过程为:对整幅图像进行加权平均,每一个像素点的值,都由其本身和邻域内的其他像素值经过加权平均后得到。高斯滤波公式如下:
其中σ是标准差,x,y是像素坐标。
进一步地,步骤4中深度图像与RGB图像对齐的具体过程为:调用RGBD相机官方的SDK接口实现深度图像中像素点到RGB图像中像素点的映射,即深度图像对齐RGB图像。
进一步地,步骤4中需要获取RGB摄像头内参矩阵,内参矩阵形式如下:
其中fx和fy为x方向和y方向上的焦距,(u0,v0)为主点坐标,通过内参矩阵实现像素坐标到图像坐标再到相机坐标的转换。
进一步地,步骤5中根据平移关系,将像素坐标转换成图像坐标,计算公式如下:
xi=(u-u0)dx,yi=(v-v0)dy,i=c,1,2
其中(u0,v0)是主点坐标,即图像坐标系原点在像素坐标系下的坐标,单位是pixel。dx和dy表示每一个像素在u轴和v轴方向上实际的物理尺寸,单位是mm。图像坐标系下o,a,b的坐标分别为o(xc,yc),a(x1,y1),b(x2,y2)。
进一步地,步骤6中根据透视投影关系,由2D图像坐标转换成相机坐标系下的3D坐标。计算公式如下:
其中f为RGB摄像头焦距,Zi为深度值。则通过步骤5中图像坐标系下的2D坐标o(xc,yc)、a(x1,y1)和b(x2,y2)可计算出在相机坐标系下的3D坐标分别为O(Xc,Yc,Zc)、A(X1,Y1,Z1)和B(X2,Y2,Z2)。
从像素坐标系中的坐标(u,v)到相机坐标系中的坐标(Xc,Yc,Zc)的坐标转换,写成矩阵形式如下:
其中K为RGB相机的内参矩阵,Zc为(u,v)点的深度值。
进一步地,步骤6中由a、b两点的3D坐标计算托盘平面在相机坐标系下的相对姿态。计算公式如下:
其中为仓储托盘平面相对于相机的偏航角,则由步骤5和步骤6可以得到托盘平面相对于相机的位姿,即相对位移O(Xc,Yc,Zc)和相对姿态
本发明的有益结果是:本发明提供一种基于RGBD相机的仓储托盘检测与定位方法,该方法利用RGBD相机既能获取RGB图像又能获取深度图像的特性,首先将RGB图像送入训练好的YOLOV5网络中进行推理计算,然后从深度图像中获取仓储托盘的深度信息,最后利用深度信息结合相机内参通过投影原理进行坐标变换,最终计算出仓储托盘相对于RGBD相机的位移和姿态。本发明不需要进行敷设特征标签,不需要指定托盘颜色形态,与现有技术相比,具有实施简单、准确性高、鲁棒性强等特点,极大的提高了自动叉车的安全性和智能化水平。
附图说明
图1为基于RGBD相机的仓储托盘检测与定位方法的流程图。
图2为仓储托盘检测结果图。
图3为仓储托盘检测时的主视图。
图4为仓储托盘检测时的俯视图。
具体实施方式
下面结合附图进一步清楚、完整地描述本发明的技术方案,但所描述的实施例仅仅是本发明一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护范围。
如图1所示,本发明提出一种基于RGBD相机的仓储托盘检测与定位方法,包括以下步骤:
本发明实施例所使用的RGBD相机为Realsense D435,该相机由一个RGB相机、两个红外相机和一个红外投影仪组成,RGB相机用于获取8位3通道的RGB图像;红外相机利用双目原理获取每个像素点的深度距离信息,即16位单通道的深度图像;红外投影仪用于在光线较暗的场景进行红外补光。
步骤1-1、搜集仓储托盘RGB图片,并保存下来,建立训练数据集。具体为:
(1)通过利用Realsense D435相机现场采集仓储托盘图片以及网上爬取仓储托盘图片的方式,获取500张分辨率在1080p以上的仓储托盘图片,构建训练数据集,所述训练数据集包含多个角度拍摄的仓储托盘图片;
(2)使用LabelImage标注工具对训练数据集图片进行标注并保存,使用的是yolo格式的标注方式,含有仓储托盘的为正样本,不含仓储托盘的为负样本。
步骤1-2、把训练数据集输入到YOLOV5网络模型中训练权值参数,得到训练好的YOLOV5模型。具体为:
(1)配置虚拟环境,下载最新的YOLOV5源码到本地,安装YOLOV5运行时需要的相关环境;
(2)根据requirements.txt文件要求在虚拟环境中安装好必要的依赖包;
(3)根据YOLOV5给定的链接下载预训练模型,预训练模型下载完成以后放在和detect.py同级的目录下;
(4)本系统是针对仓储托盘的大目标,且开发平台的硬件性能限制,故选择速度最快,适合大目标检测的YOLOV5模型;
(5)修改YOLOV5参数配置,检测类别只有仓储托盘一类,只需要修改类别数目等于1,其他参数保持默认值即可;
(6)开始训练;
(7)YOLOV5训练获得的原始的模型以.pt文件方式存储。
步骤2-1、配置好所述Realsense D435 RGBD相机的输出图像格式、分辨率、帧率等参数为统一格式,所述Realsense D435 RGBD相机进行硬件初始化、软件初始化。若初始化成功则直接开启相机获取图像;若初始化失败则抛出异常,终止程序。
步骤2-2、开启所述Realsense D435 RGBD相机,分别获取RGB图像和深度图像,有两种处理方式。若图像获取成功,则进入下一步骤对图像进行预处理;若获取图像失败,则重新获取图像数据。
步骤2-3、对采集到的每一帧RGB图像和深度图像进行图像预处理,使用高斯滤波减噪。进行高斯滤波减噪处理具体过程为:对整幅图像进行加权平均,每一个像素点的值,都由其本身和邻域内的其他像素值经过加权平均后得到。高斯滤波公式如下:
其中σ是标准差,x,y是像素坐标。
步骤3-1、在微型人工智能边缘计算开发平台上部署上述步骤1-2中训练好的YOLOV5模型,推理过程使用深度学习推理优化器TensorRT,TensorRT是一个用于深度学习推理的SDK,TensorRT提供API和解析器来从深度学习框架中导入训练好的模型,并生成推理引擎,既减少计算量又保持精度,实现快速高效的部署推理,得到计算结果由网络输出。所述微型人工智能边缘计算开发平台搭载8核ARM 64位CPU和Tensor Core的512核GPU,预装ubuntu18.04系统,并且安装了软件驱动和软件库,包括ROS、CUDA、cuDNN、GPU Driver、OpenCV和TensorRT。
步骤3-2、分析处理图像,将采集到的图像数据输入训练好的YOLOV5网络模型中进行推理计算,得到计算结果由网络输出。具体为:
(1)安装TensorRT,根据自己的CUDA和CUDNN版本下载对应的深度学习推理优化器TensorRT;
(2)使用TensorRT的API创建网络和builder对象,然后将.pt格式的YOLOV5模型转换为.wts二进制文件;
(3)用builder对象构建推理引擎engine,加载权重,获取YOLOV5输出头,序列化到本地,生成yolov5.engine;
(4)读取yolov5.engine,创建runtime反序列化加载engine,并加载IExecutionContext执行推理计算;
(5)对检测到的目标用矩形框框出,输出检测结果,如图2所示。
步骤3-3、RGB图像内目标检测,若没有检测到目标仓储托盘,则返回步骤2-2重新获取图像,若图像内检测到目标,则在RGB图像中用矩形框选出目标仓储托盘,进入下一步骤。
步骤4-1、将同一时间戳下的深度图像与RGB图像对齐,并获取RGB图像中目标仓储托盘几何中心的深度信息Zc和左右边界中点的深度信息Z1和Z2。具体为,调用RealsenseD435相机的SDK接口实现深度图像中像素点到RGB图像中像素点的映射,即深度图像对齐RGB图像,然后获取托盘对应区域的深度值。
步骤4-2、根据相机标定原理,标定获取所述Realsense D435 RGBD相机RGB摄像头的内参矩阵。内参矩阵形式如下:
其中fx和fy为x方向和y方向上的焦距,(u0,v0)为主点坐标,同过内参矩阵实现像素坐标到图像坐标再到相机坐标的转换。
步骤5-1、如图3所示,为仓储托盘检测时的主视图,计算上述步骤3-3中目标矩形框的几何中心o在像素坐标系下的坐标o(u,v),用于计算仓储托盘相对于相机的位移。
步骤5-2、如图4所示,为仓储托盘检测时的俯视图,计算上述步骤3-3中目标矩形框的左右边界中点a,b在像素坐标系下的坐标a(u1,v1)和b(u2,v2),用于计算仓储托盘相对于相机的角度姿态。
步骤5-3、根据平移关系,由步骤5-1、5-2中的像素坐标转换成图像坐标。具体计算公式如下:
xi=(u-u0)dx,yi=(v-v0)dy,i=c,1,2
其中(u0,v0)是主点坐标,即图像坐标系原点在像素坐标系下的坐标,单位为pixel。dx,dy表示每一个像素在u轴和v轴方向上实际的物理尺寸,单位是mm。图像坐标系下o,a,b的坐标分别为o(xc,yc),a(x1,y1),b(x2,y2),可参考图3。
步骤5-4、根据透视投影关系,由步骤5-3中的图像坐标系下的2D坐标转换成相机坐标系下的3D坐标。计算公式如下:
其中f为RGB摄像头焦距,Zi为深度值。则通过上述步骤5-3中图像坐标系下的2D坐标o(xc,yc)、a(x1,y1)和b(x2,y2)可计算出在相机坐标系下的3D坐标分别为O(Xc,Yc,Zc)、A(X1,Y1,Z1)和B(X2,Y2,Z2),可参考图4。
从像素坐标系中的坐标(u,v)到相机坐标系中的坐标(Xc,Yc,Zc)的坐标转换,写成矩阵形式:
其中K为RGB相机的内参矩阵,Zc为(u,v)点的深度值。
步骤5-5、根据上述步骤5-4中的A、B两点的3D坐标计算托盘平面在相机坐标系下的相对姿态。计算公式如下:
其中φ为仓储托盘平面相对于相机的偏航角,则由上述步骤可以得到托盘平面相对于相机的位姿,即相对位移O(Xc,Yc,Zc)和相对姿态φ。
本发明不需要进行敷设特征标签,不需要指定托盘颜色形态,与现有技术相比,具有实施简单、准确性高、鲁棒性强等特点,极大的提高了自动叉车的安全性和智能化水平。需要说明的是,本发明提供的所述基于RGBD相机的仓储托盘检测与定位方法中的步骤,可以利用与所述基于RGBD相机的仓储托盘检测与定位方法相对应的模块、装置、单元等予以实现,本领域技术人员可以参照所述技术方案实现所述方法的步骤流程,所述方法中的实施例可理解为实现所述方法的优选例,在此不予赘述。
本领域技术人员知道,本发明提供的方法及其各项装置可以被认为是一种硬件系统,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构;也可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在不脱离本发明技术原理的前提下做出各种改进或变型,这些改进或变型也应视为本发明的保护范围。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。
- 上一篇:石墨接头机器人自动装卡簧、装栓机
- 下一篇:基于图像识别进行数据映射的方法及系统