CN108550169B - 三维空间中象棋棋子位置的确定及其高度的计算方法 - Google Patents
三维空间中象棋棋子位置的确定及其高度的计算方法 Download PDFInfo
- Publication number
- CN108550169B CN108550169B CN201810374622.9A CN201810374622A CN108550169B CN 108550169 B CN108550169 B CN 108550169B CN 201810374622 A CN201810374622 A CN 201810374622A CN 108550169 B CN108550169 B CN 108550169B
- Authority
- CN
- China
- Prior art keywords
- coordinate system
- chess pieces
- point
- image
- chess
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
- G06T7/73—Determining position or orientation of objects or cameras using feature-based methods
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J19/00—Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
- B25J19/02—Sensing devices
- B25J19/04—Viewing devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/11—Region-based segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/60—Analysis of geometric attributes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/80—Analysis of captured images to determine intrinsic or extrinsic camera parameters, i.e. camera calibration
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Geometry (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Image Processing (AREA)
- Image Analysis (AREA)
Abstract
本发明具体涉及一种三维空间中象棋棋子的位置确定及高度的计算方法,解决了象棋机器人中,棋子位置确定不准确及单目相机计算棋子高度方法的复杂度高等问题。象棋棋子位置的确定方法包括计算棋子的空间位置和距相机的距离:先对图像进行预处理,根据棋子文字颜色分别进行分割,对分割后的图像做运算,确定棋子圆心的像素坐标,再根据彩色相机的标定参数,计算棋子的空间位置,最后将彩色相机坐标系下的空间点与深度图像坐标系下的像素点匹配,提取彩色图中指定像素点的景深并计算棋子到相机的实际距离;象棋棋子高度的计算方法:通过彩色相机的两次标定,以及在相机坐标系和世界坐标系下同一向量的关系,通过相机高度的变化来计算棋子的高度。
Description
技术领域
本发明涉及一种象棋机器人,属于机器视觉和图像处理领域。具体提出了一种三维空间中象棋棋子位置的确定及其高度的计算方法。此方法也可应用于对空间中单个的规则物体高度的计算。
背景技术
随着机器人技术的快速发展及其在各行业中广泛的应用,机器视觉在机器人的应用中起着越来越重要的作用。在象棋机器人中,对空间中棋子位置的确定和棋子高度的计算也是象棋机器人中至关重要的一部分。
对于空间棋子位置的确定,在现有的棋子图像处理方法中,因为外界的环境因素(光照,其它物体干扰等等)对棋子的提取有很大的影响,所以,在提取棋子后,必须经过多次图像预处理,才能祛除噪声点,处理步骤重复且繁多,而且不确定因素的增多,也就增加了图像处理的过程和时间。
对于棋子高度的计算,大多采用双目视觉或者提取三维空间点云等方法对物体进行测量,这些方法存在算法复杂度高,购买相机的价格高等问题。
发明内容
为了解决现有技术中存在的技术问题,本发明采用的技术方案分为以下两部分:
其一,三维空间中象棋棋子位置的确定方法:包括以下步骤:
步骤1,采集待确定空间位置象棋棋子的图像,先对采集的图像进行图像预处理,再根据象棋棋子上文字颜色的不同,按照HSV颜色模型中各分量的意义,确定棋子上红、绿文字的H、S、V范围,分别对红、绿棋子进行分割,得到两幅二值图像;
步骤2,将对红、绿棋子分别分割后的两幅二值图像进行线性融合,两幅二值图像在融合后,会将各自在提取中产生的噪声点进行相互掩盖,得到一副没有噪声点且包含红、绿棋子的二值图像;
因为红色更鲜亮,所以红色棋子在提取时受环境干扰的影响小,可以适应绝大多数变化的环境;绿色较暗,在提取时的主要噪声来自于有红色棋子的像素点,如果光线变暗,则红色棋子所在位置的噪声点就会不断增加。此时,对绿色棋子提取后的图像进行预处理时,处理过程会变得繁琐,而且达不到预期的效果。所以直接将提取后的两幅图像进行融合,这样,绿色提取图中存在的噪声点就会被红色提取图中红色棋子所在的位置覆盖,减少了后期图像预处理的过程,而且可以达到预期的提取效果。
步骤3,对融合后的二值图像进行膨胀运算,连接图像中相邻的元素,使提取到的每个棋子所在的区域成为单个的、互不相关的连通域;
步骤4,对膨胀后图像中的棋子进行轮廓提取,并绘制各自轮廓的外接圆,通过外接圆确定圆心的位置,即32个棋子在图像坐标系下的位置;
步骤5,将标定板放置于32个棋子上表面所在的平面,再通过OpenCV中的标定函数calibrateCamera计算Kinect的彩色相机的内外参(Hrgb,Rrgb,Trgb),再通过针孔相机模型中图像坐标系与世界坐标系的转换关系式,进一步计算棋子在世界坐标系下的位置,即棋子在空间中的位置;
步骤6,将标定板放置于32个棋子上表面所在的平面,通过OpenCV中的标定函数calibrateCamera计算Kinect的深度相机的内外参(Hd,Rd,Td);
因为Kinect的红外相机与深度相机在相同的位置,采集标定图像只能用红外相机,因此对红外相机标定也就是对深度相机的标定;在红外摄像头采集的图像中,并不是每幅图都可以进行角点的提取,它会受到物体材质的影响,导致角点检测无效,所以需要采集较多的图像,才能使红外摄像头的标定更加准确,建议采集的图像数量在20-25张;
步骤7,根据世界坐标系下的点(Wp)与彩色相机坐标系下的点(Kp)的转换关系:Kp=Rrgb*Wp+Trgb,和世界坐标系下的点(Wp)与深度相机坐标系下的点(Kdp)的转换关系:Kdp=Rd*Wp+Td,计算出Kinect彩色相机坐标系和深度相机坐标系之间的关系,再根据深度相机标定后的内参,将深度相机坐标系下的空间点转换到深度像素坐标系下,实现了彩色相机坐标系下的空间点与深度图像坐标系下的深度像素点的匹配;根据上述匹配方法,将彩色相机坐标系下的棋子位置转换到深度图像坐标系下,算出深度坐标系下棋子的坐标;
步骤8,根据Kinect采集的深度图中景深数据的存储方式,对得到的深度像素坐标系下的棋子坐标进行景深信息的提取,得到空间中棋子上表面的圆心到sensor所在平面的垂直距离d;
步骤9,根据步骤7中得到的棋子在深度相机坐标系下的坐标,将该坐标投影到深度相机坐标系的XOY平面上,算出投影点到该坐标系原点的距离d1,再结合步骤8中得到的距离d,根据勾股定理D2=d12+d2,算出空间中棋子上表面的圆心到sensor的实际距离D,即完成了对三维空间中象棋棋子位置的确定。
所述步骤1中,采集待确定位置象棋棋子的图像,先对采集的图像进行图像预处理,再根据象棋棋子上文字颜色的不同,按照HSV颜色模型中各分量的意义,确定棋子上红、绿文字的H、S、V范围,其步骤包括:
2.1、采用透视变换的方法,对采集的象棋棋子图像进行空间矫正,将图像矫正成正投影的形式;
2.2、对透视变换后的图像设置ROI;
2.3、再根据象棋棋子上文字颜色的不同,按照HSV颜色模型中各分量的意义,确定了棋子红、绿色文字的H、S、V各分量值为:红色H、S、V的取值范围分别为1-15、60-255,0-93,绿色H、S、V的取值范围分别0-95、0-255、0-93。
首先,对采集的图像进行空间矫正,采用透视变换的方法,仍能保持承影面上投影几何图形不变,使图像矫正成正投影的形式;其次,为了消除周围环境对棋子提取时的不必要干扰,减少后期图像处理的时间、增加棋子坐标的定位精度,因此对透视变换后的图像设置ROI。经过上述透视变换和设置ROI,将采集的源图像处理成只有棋子和棋盘的图像,为下一步棋子的分割和空间定位做好前期的准备。
因为HSV颜色模型有利于对指定的颜色进行分割,所以采用HSV模型对棋子进行分割。根据象棋棋子上文字颜色的不同,按照HSV颜色模型中各分量的意义,确定棋子上红、绿文字的H、S、V范围,分别对红、绿棋子进行分割,得到两幅二值图像。
所述步骤7中,根据世界坐标系下的点(Wp)与彩色相机坐标系下的点(Kp)的转换关系:Kp=Rrgb*Wp+Trgb,和世界坐标系下的点(Wp)与深度相机坐标系下的点(Kdp)的转换关系:Kdp=Rd*Wp+Td,计算出Kinect彩色相机坐标系和深度相机坐标系之间的关系,再根据深度相机标定后的内参,将深度相机坐标系下的空间点转换到深度像素坐标系下,实现了彩色相机坐标系下的空间点与深度图像坐标系下的深度像素点的匹配,其具体匹配方法如下:
世界坐标系下的点(Wp)与彩色坐标下的点(Kp)的转换关系为:Kp=Rrgb*Wp+Trgb①,世界坐标系下的点(Wp)与深度相机坐标系下的点(Kdp)的转换关系为:Kdp=Rd*Wp+Td②,由①式,得:
在彩色相机坐标系下的点Kp和深度相机坐标系下的点Kdp满足:Kdp=R*Kp+T⑤,其中R、T是两个坐标之间的旋转矩阵和平移向量;
再将Kdp乘以深度相机的内参,便得到与彩色相机坐标系下空间点相对应的深度图像坐标系下的像素点,这样就实现了彩色相机坐标系下的空间点到深度图像坐标系下的深度像素点的匹配。
其二,三维空间中象棋棋子高度的计算方法,包括以下步骤:
步骤1,采集待确定空间位置象棋棋子的图像,先对采集的图像进行图像预处理,再根据象棋棋子上文字颜色的不同,按照HSV颜色模型中各分量的意义,确定棋子上红、绿文字的H、S、V范围,分别对红、绿棋子进行分割,得到两幅二值图像;
步骤2,将对红、绿棋子分别分割后的两幅二值图像进行线性融合,两幅二值图像在融合后,会将各自在提取中产生的噪声点进行相互掩盖,得到一副没有噪声点且包含红、绿棋子的二值图像。因为没有了噪声点,所以大大提高了后期图像处理的速度,简化了图像处理的步骤。
因为红色更鲜亮,所以红色棋子在提取时受环境干扰的影响小,可以适应绝大多数变化的环境;绿色较暗,在提取时的主要噪声来自于有红色棋子的像素点,如果光线变暗,则红色棋子所在位置的噪声点就会不断增加。此时,对绿色棋子提取后的图像进行预处理时,处理过程会变得繁琐,而且达不到预期的效果。所以直接将提取后的两幅图像进行融合,这样,绿色提取图中存在的噪声点就会被红色提取图中红色棋子所在的位置覆盖,减少了后期图像预处理的过程,而且可以达到预期的提取效果。
步骤3,对融合后的二值图像进行膨胀运算,连接图像中相邻的元素,使提取到的每个棋子所在的区域成为单个的、互不相关的连通域;
步骤4,对膨胀后图像中的棋子进行轮廓提取,并绘制各自轮廓的外接圆,通过外接圆确定圆心的位置,即32个棋子在图像坐标系下的位置;
步骤5,将标定板放置于32个棋子上表面所在的平面,再通过OpenCV中的标定函数calibrateCamera计算Kinect的彩色相机的内外参(Hrgb,Rrgb,Trgb),再通过针孔相机模型中图像坐标系与世界坐标系的转换关系式,进一步计算棋子在世界坐标系下的位置,即棋子在空间中的位置;
步骤8,将标定板放置于棋盘面所在的平面,采集该场景图像,对彩色相机进行二次标定(Hrgb,Rrgb,Trgb),然后选定标定板上任意一点B,根据相机针孔模型中世界坐标系和相机坐标系的转换关系式,将世界坐标系下的点B转换到相机坐标系下,并做B点到彩色相机坐标系原点O的向量
步骤9,根据二次标定后彩色相机坐标系和世界坐标系的旋转矩阵Rrgb,将向量转换到世界坐标系下即已知选取点B的世界坐标,再根据向量可唯一求得该世界坐标系下Kinect彩色相机的位置2(X2,Y2,Z2),即相机到棋盘表面所在平面的垂直距离为Z2;
步骤10,根据公式h=z2-z1,h即为象棋棋子的实际高度。
所述步骤1中,采集待确定位置象棋棋子的图像,先对采集的图像进行图像预处理,再根据象棋棋子上文字颜色的不同,按照HSV颜色模型中各分量的意义,确定棋子上红、绿文字的H、S、V范围,其步骤包括:
2.1、采用透视变换的方法,对采集的象棋棋子图像进行空间矫正,将图像矫正成正投影的形式;
2.2、对透视变换后的图像设置ROI;
2.3、再根据象棋棋子上文字颜色的不同,按照HSV颜色模型中各分量的意义,确定了棋子红、绿色文字的H、S、V各分量值为:红色H、S、V的取值范围分别为1-15、60-255,0-93,绿色H、S、V的取值范围分别0-95、0-255、0-93。
首先,对采集的图像进行空间矫正,采用透视变换的方法,仍能保持承影面上投影几何图形不变,使图像矫正成正投影的形式;其次,为了消除周围环境对棋子提取时的不必要干扰,减少后期图像处理的时间、增加棋子坐标的定位精度,因此对透视变换后的图像设置ROI。经过上述透视变换和设置ROI,将采集的源图像处理成只有棋子和棋盘的图像,为下一步棋子的分割和空间定位做好前期的准备。
因为HSV颜色模型有利于对指定的颜色进行分割,所以采用HSV模型对棋子进行分割。根据象棋棋子上文字颜色的不同,按照HSV颜色模型中各分量的意义,确定棋子上红、绿文字的H、S、V范围,分别对红、绿棋子进行分割,得到两幅二值图像。
通过上述步骤1-步骤10,准确的得到象棋棋子的实际。
本发明提出的三维空间中象棋棋子位置的确定方法,可有效的提高图像处理的速度,对噪声点处理的方法简化图像预处理的流程,提高了棋子位置确定的精度;三维空间中象棋棋子高度的确定方法,可适用于单个规则物体的高度测量,降低了算法复杂度和相机采购的开销,可以被广泛的应用;上述两种方法的结合,提高了机械手对棋子抓取得准确度。
附图说明
图1是本发明的流程图;
图2是透视变换图;
图3是ROI图;
图4是红色棋子提取图;
图5是绿色棋子提取图;
图6是线性融合图;
图7是膨胀运算图;
图8是棋子像素坐标图。
具体实施方式
下面结合附图和实施例对本发明的两个方法作进一步的详细描述。
其一,三维空间中象棋棋子位置的确定方法,包括以下步骤:
步骤1,采集待确定空间位置象棋棋子的图像,先对采集的图像进行图像预处理,首先,采用透视变换的方法,对采集的象棋棋子图像进行空间矫正,将图像矫正成正投影的形式,如图2;其次,对透视变换后的图像设置ROI,如图3;最后,根据象棋棋子上文字颜色的不同,按照HSV颜色模型中各分量的意义,经过对不同光照条件、不同环境的对比,确定了棋子红、绿色文字的H、S、V各分量值为:红色H、S、V的取值范围分别为1-15、60-255,0-93,绿色H、S、V的取值范围分别0-95、0-255、0-93。分别对红、绿棋子进行分割,得到两幅二值图像,如图4、5;
步骤2,将对红、绿棋子分别分割后的两幅二值图像进行线性融合,两幅二值图像在融合后,会将各自在提取中产生的噪声点进行相互掩盖,得到一副没有噪声点且包含红、绿棋子的二值图像,如图6;
步骤3,对融合后的二值图像进行膨胀运算,连接图像中相邻的元素,使提取到的每个棋子所在的区域成为单个的、互不相关的连通域。膨胀运算中,使用参考点位于中心10*10的核,如图7;
步骤4,对膨胀后图像中的棋子进行轮廓提取,并绘制各自轮廓的外接圆,通过外接圆确定圆心的位置,即32个棋子在图像坐标系下的位置,如图8;
步骤5,将标定板放置于32个棋子上表面所在的平面,再通过OpenCV中的标定函数calibrateCamera计算Kinect的彩色相机的内外参(Hrgb,Rrgb,Trgb),再通过针孔相机模型中图像坐标系与世界坐标系的转换关系式,进一步计算棋子在世界坐标系下的位置,即棋子在空间中的位置;
步骤6,将标定板放置于32个棋子上表面所在的平面,通过OpenCV中的标定函数calibrateCamera计算Kinect的深度相机的内外参(Hd,Rd,Td);
在红外摄像头采集的图像中,并不是每幅图都可以进行角点的提取,它会受到物体材质的影响,导致角点检测无效,所以需要采集较多的图像,才能使红外摄像头的标定更加准确,采集的图像数量在25张;
步骤7,根据世界坐标系下的点(Wp)与彩色相机坐标系下的点(Kp)的转换关系:Kp=Rrgb*Wp+Trgb,和世界坐标系下的点(Wp)与深度相机坐标系下的点(Kdp)的转换关系:Kdp=Rd*Wp+Td,计算出Kinect彩色相机坐标系和深度相机坐标系之间的关系,再根据深度相机标定后的内参,将深度相机坐标系下的空间点转换到深度像素坐标系下,实现了彩色相机坐标系下的空间点与深度图像坐标系下的深度像素点的匹配;根据上述匹配方法,将彩色相机坐标系下的棋子位置转换到深度图像坐标系下,算出深度坐标系下棋子的坐标;
彩色相机坐标系下的空间点与深度图像坐标系下的深度像素点的匹配方法如下:
世界坐标系下的点(Wp)与彩色坐标下的点(Kp)的转换关系为:Kp=Rrgb*Wp+Trgb①,世界坐标系下的点(Wp)与深度相机坐标系下的点(Kdp)的转换关系为:Kdp=Rd*Wp+Td②,由①式,得:
在彩色相机坐标系下的点Kp和深度相机坐标系下的点Kdp满足:Kdp=R*Kp+T⑤,其中R、T是两个坐标之间的旋转矩阵和平移向量;
再将Kdp乘以深度相机的内参,便得到与彩色相机坐标系下空间点相对应的深度图像坐标系下的像素点,这样就实现了彩色相机坐标系下的空间点到深度图像坐标系下的深度像素点的匹配。
步骤8,根据Kinect采集的深度图中景深数据的存储方式,对得到的深度像素坐标系下的棋子坐标进行景深信息的提取,得到空间中棋子上表面的圆心到sensor所在平面的垂直距离d;
Kinect的深度信息存储在16bits的图中,前13bits为深度,后3bits为索引值,在图像中没有人出现时,可以直接提取16位,得到距离信息;
步骤9,根据步骤7中得到的棋子在深度相机坐标系下的坐标,将该坐标投影到深度相机坐标系的XOY平面上,算出投影点到该坐标系原点的距离d1,再结合步骤8中得到的距离d,根据勾股定理D2=d12+d2,算出空间中棋子上表面的圆心到sensor的实际距离D,即完成了对三维空间中象棋棋子位置的确定,通过步骤1-步骤9,得到棋子在空间中的位置和棋子距Kinect红外摄像机的准确距离D,如下表。
棋子到sensor的实际距离在红外摄像头采集的图像中,并不是每幅图都可以进行角点的提取,它会受到物体材质的影响,导致角点检测无效,所以需要采集较多的图像,才能使红外摄像头的标定更加准确,建议采集的图像数量在20-25张。其二,棋子高度的计算方法:
步骤1,采集待确定空间位置象棋棋子的图像,先对采集的图像进行图像预处理,首先,采用透视变换的方法,对采集的象棋棋子图像进行空间矫正,将图像矫正成正投影的形式,如图2;其次,对透视变换后的图像设置ROI,如图3;最后,根据象棋棋子上文字颜色的不同,按照HSV颜色模型中各分量的意义,经过对不同光照条件、不同环境的对此实验,确定了棋子红、绿色文字的H、S、V各分量值为:红色H、S、V的取值范围分别为1-15、60-255,0-93,绿色H、S、V的取值范围分别0-95、0-255、0-93。分别对红、绿棋子进行分割,得到两幅二值图像,如图4、5;
步骤2,将对红、绿棋子分别分割后的两幅二值图像进行线性融合,两幅二值图像在融合后,会将各自在提取中产生的噪声点进行相互掩盖,得到一副没有噪声点且包含红、绿棋子的二值图像,如图6;
步骤3,对融合后的二值图像进行膨胀运算,连接图像中相邻的元素,使提取到的每个棋子所在的区域成为单个的、互不相关的连通域。膨胀运算中,使用参考点位于中心10*10的核,如图7;
步骤4,对膨胀后图像中的棋子进行轮廓提取,并绘制各自轮廓的外接圆,通过外接圆确定圆心的位置,即32个棋子在图像坐标系下的位置,如图8;
步骤5,将标定板放置于32个棋子上表面所在的平面,再通过OpenCV中的标定函数calibrateCamera计算Kinect的彩色相机的内外参(Hrgb,Rrgb,Trgb),再通过针孔相机模型中图像坐标系与世界坐标系的转换关系式,进一步计算棋子在世界坐标系下的位置,即棋子在空间中的位置;
步骤7,根据彩色相机坐标系和世界坐标系的旋转矩阵Rrgb,将向量转换到世界坐标系下即已知选取点A的世界坐标,再根据向量可唯一求得该世界坐标系下Kinect彩色相机的位置1(-56,287,874),即相机到棋子上表面所在平面的垂直距离为874mm;
步骤8,将标定板放置于棋盘面所在的平面,采集该场景图像,对彩色相机进行二次标定(Hrgb,Rrgb,Trgb),然后选定标定板上任意一点B(0,0,0),根据相机针孔模型中世界坐标系和相机坐标系的转换关系式,将世界坐标系下的点B转换到相机坐标系下,并做B点到彩色相机坐标系原点O的向量
步骤9,根据二次标定后彩色相机坐标系和世界坐标系的旋转矩阵Rrgb,将向量转换到世界坐标系下即已知选取点B的世界坐标,再根据向量可唯一求得该世界坐标系下Kinect彩色相机的位置2(-87,209,886),即相机到棋盘表面所在平面的垂直距离为886mm;
步骤10,根据公式h=z2-z1,h即为象棋棋子的实际高度,计算的棋子的实际高度为12mm。
Claims (5)
1.三维空间中象棋棋子位置确定的方法,其特征在于:包括以下步骤:
步骤1,采集待确定空间位置象棋棋子的图像,先对采集的图像进行图像预处理,再根据象棋棋子上文字颜色的不同,按照HSV颜色模型中各分量的意义,确定棋子上红、绿文字的H、S、V范围,分别对红、绿棋子进行分割,得到两幅二值图像;
步骤2,将对红、绿棋子分别分割后的两幅二值图像进行线性融合,两幅二值图像在融合后,会将各自在提取中产生的噪声点进行相互掩盖,得到一副没有噪声点且包含红、绿棋子的二值图像;
步骤3,对融合后的二值图像进行膨胀运算,连接图像中相邻的元素,使提取到的每个棋子所在的区域成为单个的、互不相关的连通域;
步骤4,对膨胀后图像中的棋子进行轮廓提取,并绘制各自轮廓的外接圆,通过外接圆确定圆心的位置,即32个棋子在图像坐标系下的位置;
步骤5,将标定板放置于32个棋子上表面所在的平面,再通过OpenCV中的标定函数calibrateCamera计算Kinect的彩色相机的内外参(Hrgb,Rrgb,Trgb),再通过针孔相机模型中图像坐标系与世界坐标系的转换关系式,进一步计算棋子在世界坐标系下的位置,即棋子在空间中的位置;
步骤6,将标定板放置于32个棋子上表面所在的平面,通过O penCV中的标定函数calibrateCamera计算Kinect的深度相机的内外参(Hd,Rd,Td);
步骤7,根据世界坐标系下的点Wp与彩色相机坐标系下的点Kp的转换关系:Kp=Rrgb*Wp+Trgb,和世界坐标系下的点Wp与深度相机坐标系下的点Kdp的转换关系:Kdp=Rd*Wp+Td,计算出Kinect彩色相机坐标系和深度相机坐标系之间的关系,再根据深度相机标定后的内参,将深度相机坐标系下的空间点转换到深度像素坐标系下,实现了彩色相机坐标系下的空间点与深度像素坐标系下的深度像素点的匹配;根据上述匹配方法,将彩色相机坐标系下的棋子位置转换到深度像素坐标系下,算出深度像素坐标系下棋子的坐标;
步骤8,根据Kinect采集的深度图中景深数据的存储方式,对得到的深度像素坐标系下的棋子坐标进行景深信息的提取,得到空间中棋子上表面的圆心到sensor所在平面的垂直距离d;
步骤9,根据步骤7中得到的棋子在深度像素坐标系下的坐标,将该棋子在深度像素坐标系下的 坐标投影到深度相机坐标系的XOY平面上,算出投影点到深度相机坐标系原点的距离d1,再结合步骤8中得到的距离d,根据勾股定理D2=d12+d2,算出空间中棋子上表面的圆心到sensor的实际距离D,即完成了对三维空间中象棋棋子位置的确定。
2.根据权利要求1所述的三维空间中象棋棋子位置确定的方法,其特征在于:所述步骤1中,采集待确定位置象棋棋子的图像,先对采集的图像进行图像预处理,再根据象棋棋子上文字颜色的不同,按照HSV颜色模型中各分量的意义,确定棋子上红、绿文字的H、S、V范围,其步骤包括:
2.1、采用透视变换的方法,对采集的象棋棋子图像进行空间矫正,将图像矫正成正投影的形式;
2.2、对透视变换后的图像设置ROI;
2.3、再根据象棋棋子上文字颜色的不同,按照HSV颜色模型中各分量的意义,确定了棋子红、绿色文字的H、S、V各分量值为:红色H、S、V的取值范围分别为1-15、60-255、0-93,绿色H、S、V的取值范围分别0-95、0-255、0-93。
3.根据权利要求2所述的三维空间中象棋棋子位置确定的方法,其特征在于,所述步骤7中,根据世界坐标系下的点Wp与彩色相机坐标系下的点Kp的转换关系:Kp=Rrgb*Wp+Trgb,和世界坐标系下的点Wp与深度相机坐标系下的点Kdp的转换关系:Kdp=Rd*Wp+Td,计算出Kinect彩色相机坐标系和深度相机坐标系之间的关系,再根据深度相机标定后的内参,将深度相机坐标系下的空间点转换到深度像素坐标系下,实现了彩色相机坐标系下的空间点与深度像素坐标系下的深度像素点的匹配,其具体匹配方法如下:
在彩色相机坐标系下的点Kp和深度相机坐标系下的点Kdp满足:Kdp=R*Kp+T⑤,其中R、T是两个坐标之间的旋转矩阵和平移向量;
再将Kdp乘以深度相机的内参,便得到与彩色相机坐标系下空间点相对应的深度像素坐标系下的像素点,这样就实现了彩色相机坐标系下的空间点到深度像素坐标系下的深度像素点的匹配。
4.三维空间中象棋棋子高度的计算方法,其特征在于:包括以下步骤:
步骤1,采集待确定位置象棋棋子的图像,先对采集的图像进行图像预处理,再根据象棋棋子上文字颜色的不同,按照HSV颜色模型中各分量的意义,确定棋子上红、绿文字的H、S、V范围,分别对红、绿棋子进行分割,得到两幅二值图像;
步骤2,将对红、绿棋子分别分割后的两幅二值图像进行线性融合,两幅二值图像在融合后,会将各自在提取中产生的噪声点进行相互掩盖,得到一副没有噪声点且包含红、绿棋子的二值图像;
步骤3,对融合后的二值图像进行膨胀运算,连接图像中相邻的元素,使提取到的每个棋子所在的区域成为单个的、互不相关的连通域;
步骤4,对膨胀后图像中的棋子进行轮廓提取,并绘制各自轮廓的外接圆,通过外接圆确定圆心的位置,即32个棋子在图像坐标系下的位置;
步骤5,将标定板放置于32个棋子上表面所在的平面,再通过OpenCV中的标定函数calibrateCamera计算Kinect的彩色相机的内外参(Hrgb,Rrgb,Trgb),再通过针孔相机模型中图像坐标系与世界坐标系的转换关系式,进一步计算棋子在世界坐标系下的位置,即棋子在空间中的位置;
步骤7,根据彩色相机坐标系和世界坐标系的旋转矩阵Rrgb,将向量转换到世界坐标系下即已知选取点A的世界坐标,再根据向量可唯一求得该世界坐标系下Kinect彩色相机的位置1(X1,Y1,Z1),Z1即为相机到棋子上表面所在平面的垂直距离;
步骤8,将标定板放置于棋盘面所在的平面,采集将标定板放置于棋盘面所在的平面的场景图像,对彩色相机进行二次标定(Hrgb,Rrgb,Trgb),然后选定标定板上任意一点B,根据相机针孔模型中世界坐标系和相机坐标系的转换关系式,将世界坐标系下的点B转换到相机坐标系下,并做B点到彩色相机坐标系原点O的向量
步骤9,根据二次标定后彩色相机坐标系和世界坐标系的旋转矩阵Rrgb,将向量转换到世界坐标系下即已知选取点B的世界坐标,再根据向量可唯一求得该世界坐标系下Kinect彩色相机的位置2(X2,Y2,Z2),即相机到棋盘表面所在平面的垂直距离为Z2;
步骤10,根据公式h=Z2-Z1,h即为象棋棋子的实际高度。
5.根据权利要求4所述的三维空间中象棋棋子高度的计算方法,其特征在于:所述步骤1中,采集待确定位置象棋棋子的图像,先对采集的图像进行图像预处理,再根据象棋棋子上文字颜色的不同,按照HSV颜色模型中各分量的意义,确定棋子上红、绿文字的H、S、V范围,其步骤包括:
2.1、采用透视变换的方法,对采集的象棋棋子图像进行空间矫正,将图像矫正成正投影的形式;
2.2、对透视变换后的图像设置ROI;
2.3、再根据象棋棋子上文字颜色的不同,按照HSV颜色模型中各分量的意义,确定了棋子红、绿色文字的H、S、V各分量值为:红色H、S、V的取值范围分别为1-15、60-255、0-93,绿色H、S、V的取值范围分别0-95、0-255、0-93。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810374622.9A CN108550169B (zh) | 2018-04-24 | 2018-04-24 | 三维空间中象棋棋子位置的确定及其高度的计算方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810374622.9A CN108550169B (zh) | 2018-04-24 | 2018-04-24 | 三维空间中象棋棋子位置的确定及其高度的计算方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108550169A CN108550169A (zh) | 2018-09-18 |
CN108550169B true CN108550169B (zh) | 2021-08-10 |
Family
ID=63512354
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810374622.9A Active CN108550169B (zh) | 2018-04-24 | 2018-04-24 | 三维空间中象棋棋子位置的确定及其高度的计算方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108550169B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110342252B (zh) * | 2019-07-01 | 2024-06-04 | 河南启迪睿视智能科技有限公司 | 一种物品自动抓取方法及自动抓取装置 |
CN110335224B (zh) * | 2019-07-05 | 2022-12-13 | 腾讯科技(深圳)有限公司 | 图像处理方法、装置、计算机设备及存储介质 |
CN111798511B (zh) * | 2020-05-21 | 2023-03-24 | 扬州哈工科创机器人研究院有限公司 | 一种棋盘棋子定位方法及装置 |
CN112784717B (zh) * | 2021-01-13 | 2022-05-13 | 中北大学 | 一种基于深度学习的管件自动分拣方法 |
CN114734456A (zh) * | 2022-03-23 | 2022-07-12 | 深圳市商汤科技有限公司 | 摆棋方法、装置、电子设备、对弈机器人及存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107766855A (zh) * | 2017-10-25 | 2018-03-06 | 南京阿凡达机器人科技有限公司 | 基于机器视觉的棋子定位方法、***、存储介质及机器人 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030062675A1 (en) * | 2001-09-28 | 2003-04-03 | Canon Kabushiki Kaisha | Image experiencing system and information processing method |
JP3809838B2 (ja) * | 2001-11-07 | 2006-08-16 | ダバー ピシュバ | 照明源固有hsv色座標を用いた画像ハイライト補正方法、画像ハイライト補正プログラム、および画像取得システム |
US20100015579A1 (en) * | 2008-07-16 | 2010-01-21 | Jerry Schlabach | Cognitive amplification for contextual game-theoretic analysis of courses of action addressing physical engagements |
KR102085228B1 (ko) * | 2014-03-27 | 2020-03-05 | 한국전자통신연구원 | 깊이 센서의 깊이 보정을 위한 이미지 처리방법 및 그 장치 |
-
2018
- 2018-04-24 CN CN201810374622.9A patent/CN108550169B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107766855A (zh) * | 2017-10-25 | 2018-03-06 | 南京阿凡达机器人科技有限公司 | 基于机器视觉的棋子定位方法、***、存储介质及机器人 |
Non-Patent Citations (2)
Title |
---|
"Chinese Chess Recognition Algorithm Based on Computer Vision";Wu Gui,Tao Jun;《2014 26th Chinese Control and Decision Conference》;20140602;全文 * |
"基于视觉的中国象棋棋子识别定位技术";王殿君;《清华大学学报(自然科学版)》;20130831;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN108550169A (zh) | 2018-09-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108550169B (zh) | 三维空间中象棋棋子位置的确定及其高度的计算方法 | |
CN109255813B (zh) | 一种面向人机协作的手持物***姿实时检测方法 | |
CN107766855B (zh) | 基于机器视觉的棋子定位方法、***、存储介质及机器人 | |
CN100430690C (zh) | 利用单数码相机自由拍摄进行物体三维测量的方法 | |
CN107067431A (zh) | 一种基于Kinect的物体体积计算方法 | |
CN103535960B (zh) | 基于数码图像的人体三维测量方法 | |
CN107392947A (zh) | 基于轮廓共面四点集的2d‑3d图像配准方法 | |
CN111415376B (zh) | 汽车玻璃亚像素轮廓提取方法及汽车玻璃检测方法 | |
CN110428465A (zh) | 基于视觉和触觉的机械臂抓取方法、***、装置 | |
CN110648362B (zh) | 一种双目立体视觉的羽毛球定位识别与姿态计算方法 | |
CN107543496A (zh) | 一种基于散斑图像匹配的立体视觉测量人工标记点 | |
Agrawal et al. | Vision-guided robot system for picking objects by casting shadows | |
CN112734844B (zh) | 一种基于正八面体的单目6d位姿估计方法 | |
CN110310331A (zh) | 一种基于直线特征与点云特征结合的位姿估计方法 | |
CN110060304B (zh) | 一种生物体三维信息采集方法 | |
CN112509127A (zh) | 一种高精度仿真点云模型的生成方法 | |
CN112634435A (zh) | 一种基于“Eye in Hand”模型的陶瓷制品三维点云重建方法 | |
CN111724464A (zh) | 一种移动测量点云着色方法及其装置 | |
JP6942566B2 (ja) | 情報処理装置、情報処理方法およびコンピュータプログラム | |
CN115096206A (zh) | 一种基于机器视觉的零件尺寸高精度测量方法 | |
CN114332689A (zh) | 一种柑橘识别定位方法、装置、设备及存储介质 | |
CN110021035B (zh) | Kinect深度相机的标记物及基于该标记物的虚拟标记物跟踪方法 | |
JP3668769B2 (ja) | 対象物体の位置・姿勢算出方法及び観測カメラの位置・姿勢算出方法 | |
CN115082538A (zh) | 基于线结构光投影的多目视觉平衡环零件表面三维重建***及方法 | |
CN111415378B (zh) | 用于汽车玻璃检测的图像配准方法及汽车玻璃检测方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |