利索能及
我要发布
收藏
专利号: 2024101377244
申请人: 青岛科技大学
专利类型:发明专利
专利状态:已下证
更新日期:2026-06-09
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

1.一种用于机器人拾取的地面羽毛球位姿检测方法,其特征在于:在获取RGB‑D相机采集的二维彩色图像和深度图像的基础上,通过三帧差分算法分析并去除二维图像中被识别为运动羽毛球的区域;再采用基于深度学习的目标检测算法识别出包含平躺和竖立羽毛球的目标图像矩形框;分别对图像矩形框内的深度信息进行分析,计算得出用于机器人拾取的羽毛球姿态和关键点位置坐标;

包括以下步骤,

步骤1、通过RGB‑D相机获得二维彩色图像和深度图像,建立相机三维坐标系OXYZ以及二维图像坐标和相机三维坐标之间的对应关系;

步骤2、通过三帧差分算法分析并去除二维图像中被识别为运动羽毛球的区域;

步骤3、对于已去除运动羽毛球的图像,采用基于深度学习的目标检测算法,识别出包含平躺和竖立羽毛球的目标图像矩形框;

步骤4、通过计算与羽毛球中心线重合、且从球头指向毛片方向的单位姿态矢量 在相机三维坐标轴X、Y、Z上的投影,表征羽毛球的姿态;

对于地面平躺的羽毛球包括以下步骤,

S401、对于地面平躺的羽毛球,通过分析羽毛球目标矩形框图像,计算出以X轴正向作为参考方向、矢量 在XOY平面上的投影沿逆时针方向形成的方位角θ;

采用OTSU算法对羽毛球目标矩形框图像进行二值化分割;

对于二值化分割后的图像,采用轮廓检测算法,运用OpenCV开源库中的findContours函数取得所有白色区域的外轮廓点集;

运用contourArea函数计算各外轮廓面积,其中面积最大的为羽毛球毛片,面积第二大的为球头;

运用minAreaRect函数获取毛片和球头外轮廓的最小外接矩形及相应的中心点C1和C2在图像中的位置坐标(C1x,C1y)、(C2x,C2y),直线C2C1为图像中白色羽毛球区域的中心线;

根据步骤1建立的二维图像坐标和相机三维坐标之间的对应关系,得到点C1和C2在坐标系OXYZ中的三维坐标(C1_3dx,C1_3dy,C1_3dz)、(C2_3dx,C2_3dy,C2_3dz),上述两个三维点在XOY平面上的投影C1’、C2’坐标分别为(C1_3dx,C1_3dy,0)、(C2_3dx,C2_3dy,0),直线C2’C1’为羽毛球中心线在XOY平面上的投影;

由于矢量 与羽毛球单位姿态矢量 在XOY平面上的投影同向,上述方位角θ的计算公式如下,S402、依据国家标准GB/T 11881‑2006,羽毛球形状尺寸为标准值,地面平躺羽毛球的单位姿态矢量 与XOY平面的夹角α大小为固定值,且矢量 与Z轴正向的夹角γ=α+π/2,根据γ和θ计算出表征羽毛球姿态的Dx、Dy、Dz值,具体计算公式如下,Dx=sinγcosθ Dy=sinγsinθ Dz=cosγ;

对于竖立于地面的羽毛球,单位姿态矢量D┴→和Z轴正向同向,γ=0,则Dx=0Dy=

0Dz=1;

步骤5、计算用于机器人拾取的中心点位置坐标;

对于地面平躺羽毛球目标矩形框图像,计算得到球头胶带边界关键点P1,将该点在羽毛球中心线上的投影P2点作为机器人拾取的中心点;包括以下步骤,S501、分析地面平躺羽毛球目标矩形框图像,得到图像中羽毛球的中心线与球头胶带边界的交点P1,获得P1在坐标系OXYZ中的三维点坐标;

根据步骤S401获得的二值化图像中球头的外轮廓,采用基于轮廓的孔洞填充算法,运用drawContours函数消除球头区域里的孔洞;

根据步骤S401获得的羽毛球毛片和球头区域的中心点坐标C1(C1x,C1y)、C2(C2x,C2y),运用Bresenham直线算法获得从起始点C2到终止点C1形成线段的像素点集;

从颜色为白的起始像素点开始遍历,直至找到颜色为黑的像素点P1为止;

根据P1点在二维图像中的位置坐标,获得该点在坐标系OXYZ中的三维坐标(P1_3dx,P1_3dy,P1_3dz);

S502、计算三维点P1在羽毛球中心线上的投影P2点坐标;

将P1点作坐标变换,得到其在羽毛球中心线上的投影P2点坐标(P2_3dx,P2_3dy,P2_

3dz),该点即为机器人拾取的中心点;P2点位置坐标计算公式为:(P2_3dx P2_3dy P2_3dz 1)=(P1_3dx P1_3dy P1_3dz 1)×T1×T2×T3×T4×T5;

对于竖立的羽毛球目标矩形框图像,计算得到羽毛球相对于地面最高点M,以该点为参考,计算得到机器人拾取中心点P2的位置;

遍历竖立于地面的羽毛球目标矩形框图像的每个像素点,找到Z方向深度值最小的点M,该点处于羽毛球中心线上,是羽毛球相对于地面的最高点;

根据M点在二维图像中的位置坐标,获得该点在坐标系OXYZ中的三维坐标(M_3dx,M_

3dy,M_3dz);

由于羽毛球形状尺寸是标准的,球头高度Hqt和球头胶带的宽度Wjd为已知的确定值,则机器人拾取中心点P2位置坐标的计算公式如下,P2_3dx=M_3dx,P2_3dy=M_3dy,P2_3dz=M_3dz+Hqt‑Wjd。

2.根据权利要求1所述的用于机器人拾取的地面羽毛球位姿检测方法,其特征在于:所述的步骤1,将RGB‑D相机RealSense置于羽毛球场地的垂直上方,以构建相机三维空间坐标系OXYZ,其中Z轴指向球场地面并与之垂直,X轴与球网平面平行,Y轴与球网平面垂直;

获取RGB‑D相机RealSense二维彩色图像和深度图像配准后的相关参数,建立二维图像坐标与相机三维空间坐标之间的对应关系;相应计算公式如下,z=zD×deep_scale

上式中,x、y、z为相机三维坐标系OXYZ下的坐标,Uc、Vc为二维图像中的坐标;fx、fy、Cx、Cy为相机内部参数,fx、fy为深度相机焦距,Cx、Cy分别代表图像中心与图像坐标原点在x、y两个方向的距离;zD为深度图中像素点对应的深度值,deep_scale为该深度值和实际深度值之间的比例。

3.根据权利要求1所述的用于机器人拾取的地面羽毛球位姿检测方法,其特征在于:所述的步骤2,连续采集三帧图像,运用三帧差分算法得到包含运动羽毛球的二值化图像;

将二值化图像取反后作为掩膜与原始第二帧图像相乘,得到去除运动羽毛球的二维图像。

4.根据权利要求1所述的用于机器人拾取的地面羽毛球位姿检测方法,其特征在于:所述的步骤3,应用基于PyTorch的YOLO V5目标检测算法,采集球场上不同位置、姿态的平躺羽毛球和竖立羽毛球图像作为数据集,将其中一部分用于YOLO算法模型的训练,另一部分用于模型的验证,得到平躺羽毛球和竖立羽毛球的识别模型;

运用上述识别模型对步骤2中已去除运动羽毛球的二维图像进行检测,分别得到平躺羽毛球、竖立羽毛球的目标图像矩形框;

记录平躺羽毛球、竖立羽毛球的目标图像矩形框在被测图像中的位置坐标(XL,YL)和尺寸大小(W*H),(XL,YL)表示目标矩形框的左上角在被测图像中的坐标,W和H分别表示目标矩形框的宽和高。

5.根据权利要求1所述的用于机器人拾取的地面羽毛球位姿检测方法,其特征在于:所述的步骤S502包括下述P1点坐标变换过程,

1)、沿X、Y轴分别平移‑P1_3dx和‑P1_3dy,使得Z轴经过P1点,对应变换矩阵如下,

2)、围绕Z轴逆时针旋转‑θ角,使得羽毛球中心线处于XOZ平面上,对应变换矩阵如下,其中,θ角为步骤401获得的方位角θ;

3)、将P1垂直投影到羽毛球中心线上(投影点即为P2点),对应的变换矩阵如下:其中,α为步骤S402获得的夹角α,RH为羽毛球球头半径,由于羽毛球形状尺寸是标准的,球头半径RH为已知的确定值;

4)、再次围绕Z轴逆时针旋转θ角,对应变换矩阵如下,

5)、沿X、Y轴方向分别平移P1_3dx和P1_3dy,P1点回到初始位置,对应变换矩阵如下,