CN107766855B - 基于机器视觉的棋子定位方法、系统、存储介质及机器人 - Google Patents

基于机器视觉的棋子定位方法、系统、存储介质及机器人 Download PDF

Info

Publication number
CN107766855B
CN107766855B CN201711006222.4A CN201711006222A CN107766855B CN 107766855 B CN107766855 B CN 107766855B CN 201711006222 A CN201711006222 A CN 201711006222A CN 107766855 B CN107766855 B CN 107766855B
Authority
CN
China
Prior art keywords
chessboard
camera
plane
coordinate system
coordinates
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
Application number
CN201711006222.4A
Other languages
English (en)
Other versions
CN107766855A (zh
Inventor
张帆
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing Avatarmind Robot Technology Co ltd
Original Assignee
Nanjing Avatarmind Robot Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nanjing Avatarmind Robot Technology Co ltd filed Critical Nanjing Avatarmind Robot Technology Co ltd
Priority to CN201711006222.4A priority Critical patent/CN107766855B/zh
Priority to PCT/CN2017/112210 priority patent/WO2019080229A1/zh
Publication of CN107766855A publication Critical patent/CN107766855A/zh
Application granted granted Critical
Publication of CN107766855B publication Critical patent/CN107766855B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/11Region-based segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/80Analysis of captured images to determine intrinsic or extrinsic camera parameters, i.e. camera calibration
    • G06T7/85Stereo camera calibration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/22Image preprocessing by selection of a specific region containing or referencing a pattern; Locating or processing of specific regions to guide the detection or recognition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/24Aligning, centring, orientation detection or correction of the image
    • G06V10/245Aligning, centring, orientation detection or correction of the image by locating a pattern; Special marks for positioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/44Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/60Type of objects
    • G06V20/62Text, e.g. of license plates, overlay texts or captions on TV images

Abstract

本发明公开了一种基于机器视觉的棋子定位方法,应用于对设有平面标识物的棋盘上的棋子进行定位,棋子定位方法包括:通过摄像头获取视频流,并从视频流中采集视频图像帧;对视频图像帧进行图像处理,识别平面标识物;根据平面标识物及预先获取的摄像头的内参矩阵,计算棋盘上的棋子相对于标识物的位置,从而定位棋子的位置。此外,基于相同的技术构思,本发明还公开了一种基于机器视觉的棋子定位系统、存储介质及机器人。本发明不需要棋盘进行特别的电路实现,且棋盘与机器人之间不需要进行数据通信,更加便于布置。此外,本发明的平面标志物的设立,让机器人在复杂场景中能够准确的识别出该平面标志物,不会受到复杂场景的干扰。

Description

基于机器视觉的棋子定位方法、系统、存储介质及机器人
技术领域
本发明涉及机器人领域,尤其涉及基于机器视觉的棋子定位方法、系统、存储介质及机器人。
背景技术
在机器人技术越来越普及的今天,人们希望与机器人进行像真人一样的交互,感受人工智能的强大。如今下棋成了一种与机器人很重要的交互活动。虽然在有些机器人的交互屏幕上也能进行下棋,但是该种方式缺乏吸引力,用户感受不到是在和机器人下棋。所以,为了营造一种更好的人机交互体验,需要让机器人理解真实存在的棋盘,并和现实中真人一样进行下棋。这样能够使用户获得更好的带入感,增加机器人的拟人化特征,使用户得到更好的交互体验。机器人像人一样下棋,需要识别棋盘上棋子的准确位置。
申请号为201310554765.5及201621069461.5,201310159264.7的发明专利都公开了一种实物棋盘人机对弈系统。该类型发明都是采用特制的物理棋盘,通过相应的传感器感应棋子相对棋盘的位置,然后将棋子位置信息发送给机器人装置。该发明能够准确获得棋子在特定棋盘上的准确位置。
但是,该方案需要特定的棋盘硬件电路进行实现,且棋盘与机器人需要进行数据通信,实现起来比较复杂,且现场布置及调试安装比较繁琐。
申请号为201610967421.0公开了一种基于图像的象棋棋子定位及识别方法,该发明能够定位出象棋棋子相对于棋盘的位置。
但是,该发明是通过阈值法对图像二值化,然后检测棋盘的边界的进行定位棋子。当图像有复杂的背景,这种边界提取方法非常的不稳定,很难正确分割出真正的棋盘边界。图像中的一些具有矩形边界的物体如板凳面等,很容易被误认为是棋盘。
发明内容
针对上述现有技术的不足,本发明提供一种基于机器视觉的棋子定位方法及系统、存储介质和机器人,用以准确定位棋盘上的棋子的具体位置。
第一方面,本发明公开了一种基于机器视觉的棋子定位方法,应用于对设有平面标识物的棋盘上的棋子进行定位,所述棋子定位方法包括:
S100通过摄像头获取视频流,并从所述视频流中采集视频图像帧;
S200对所述视频图像帧进行图像处理,识别所述平面标识物;
S300根据所述平面标识物及预先获取的所述摄像头的内参矩阵,计算棋盘上的棋子相对于所述标识物的位置,从而定位棋子的位置。
本方案是通过在棋盘上设置一个平面标识物,然后通过机器视觉识别该平面标识物后进一步定位棋子。该方案不需要在棋盘底部设置电路,因此不需要复杂的布置。且由于平面标识物的设立,使得即使在复杂的背景下准确的识别定位出棋子的位置。
优选的,在所述步骤S100通过摄像头获取视频流,并从所述视频流中采集视频图像帧之前还包括:
S010对所述摄像头进行标定,获取所述摄像头的内参矩阵。
在对棋子进行定位之前,需要做的一个准备工作便是需要对摄像头进行标定。摄像机标定即计算摄像机内部参数,即确定摄像机成像的几何模型,从而后期利用射线几所拍摄到的图像来进行三维空间位置的计算。
优选的,所述步骤S200对所述视频图像帧进行图像处理,识别所述平面标识物具体为:
S210对所述视频图像帧进行二值分割,并从分割后的二值图像中提取外形轮廓;
S220根据预存的所述平面标识物所对应的外形轮廓的共性特征,从提取的外形轮廓中选取具有所述共性特征的外形轮廓作为备选轮廓;
S230获取所述备选轮廓的正视图;
S240当所述备选轮廓的正视图与预存的所述平面标识物模板一致时,识别所述备选轮廓对应的图像为所述平面标识物的图像。
本方案中对视频帧图像进行处理,对视频图像帧进行二值分割,并从分割后的图像中提取外形轮廓。采用二值化的处理方法,方便提取图像中的信息,二值图像在进行计算机识别时可以增加识别效率。此外,二值化可以简单切迅速处理图像特征,简化后期的处理,提高处理的速度。在二值化的图像上再分割图像,把图像中具有特殊涵义的不同区域分开来,这些区域是互不相交的,每个区域都满足特定区域的一致性。然后再对分割的图像进行轮廓提取与识别,这样可以降低识别的难度,加快识别效率。
优选的,所述平面标识物为正方形,上述步骤S220中预存的所述平面标识物所对应的外形轮廓的共性特征为四边形。
设置的标识物不同,那么对应的外形轮廓的共性特征也会不同。我们在选取平面标识物时尽量选取易于辨识的,特征点比较明显的标识物为佳。比如正方形,具有四个顶点,且四个边长相等,这可以方便后面的计算。选取正方形标识物作为平面标识物,那么其对应的外形轮廓共性特征是四边形。选取了正方形平面标识物后,所述步骤S230获取所述备选轮廓的正视图具体为:
S231读取所述备选轮廓的四个顶点的像素坐标;
S232定义所述备选轮廓经过射影变换为正视图后的四个顶点的像素坐标为预存的所述平面标志物的正视图的四个顶点的像素坐标;
S233将上述获取的四组所述备选轮廓的顶点的像素坐标及所述定义的备选轮廓转换为正视图后的顶点的像素坐标分别代入下述方程,求取射影变换矩阵H:
Figure GDA0003157896430000041
其中,Q为备选轮廓顶点的齐次像素坐标,其非齐次像素坐标为
Figure GDA0003157896430000042
Figure GDA0003157896430000045
Q为射影变换后顶点的齐次坐标,,其非齐次像素坐标为
Figure GDA0003157896430000044
S234根据所述射影变换矩阵H,对所述备选轮廓对应的二值化图像的所有像素都执行射影变换,获得所述备选轮廓包含的区域对应的正视图。
本方案是基于选取正方形平面标识物而言的,正方形平面标识物对应的外形轮廓一定是四边形,而四边形有四个顶点,因此,可以利用这四个顶点的像素坐标及定义的该四边形正视图的像素坐标进行运算,获得射影变换矩阵H,从而使得四边形轮廓内的所有像素都进行射影变换,获得其对应的正视图,便于后续比较。
优选的,所述步骤S300根据所述平面标识物及预先获取的所述摄像头的内参矩阵,计算棋盘上的棋子相对于所述标识物的位置,从而定位棋子的位置具体为:
S310根据所述平面标识物及预先获取的所述摄像头的内参矩阵,计算所述摄像头当前视场的单应性矩阵;
S320根据棋盘上预设参考点在平面标识物坐标系中的已知坐标及在棋盘上的行列位置,结合所述棋盘的网格长度特征,获取所述棋盘的四个角点在所述平面标识物坐标系中的坐标;
S330识别所述视频图像帧中的棋子,读取所述棋子的像素坐标,并根据所述单应性矩阵获取所述棋子在所述平面标识物坐标系中的坐标;
S340根据所述棋子及所述棋盘的四个角点在所述平面标识物坐标系中的坐标,结合所述棋盘的网格长度特征,获取所述棋子在棋盘上的位置。
平面标识物被识别出来后,便可根据该平面标识物及摄像头的内参矩阵来定位棋子了,其中,最重要的便是根据该平面标识物和摄像头的内参矩阵获取摄像头当前视场的单应性矩阵。获得了单应性矩阵后,再确定棋盘、棋子在平面标识物坐标系中的位置,最后结合棋盘网格长度特征便可计算出棋子在棋盘上的位置了。其中,本方案中步骤S330中识别所述视频图像帧中的棋子,棋子的识别可根据预先提取棋子的特征来进行识别,与前面的平面标识物识别较为类似,对视频图像帧进行图像处理识别,这里不再细叙。本方案计算简单,可实施性强。
优选的,所述步骤S310根据所述平面标识物及预先获取的所述摄像头的内参矩阵,计算所述摄像头当前视场的单应性矩阵具体为:
S311选取所述平面标识物坐标系为世界坐标系;
S312读取所述平面标识物的四个顶点的像素坐标;
S313将已知的所述平面标识物的四个顶点在世界坐标系的坐标、所述平面标识物的四个顶点的像素坐标,及所述预先获取的所述摄像头的内部参数分别代入下述公式:
Figure GDA0003157896430000051
计算出当前视场的单应性矩阵T=M[r1,r2,r3,t];
其中,(x,y,1)表示所述平面标识物中任一顶点在摄像机的图像坐标系中像素坐标的齐次坐标,(X,Y,Z,1)表示所述顶点在世界坐标系中的齐次坐标,简化为(X,Y,0,1),s为引入的任意尺度比例参数,M为摄像机内参矩阵,r1、r2、r3分别表示所述平面标识物坐标系相对于摄像机坐标系的旋转矩阵中的三个列向量,t为平移向量。
本方案具体阐述了摄像头当前视场的单应性矩阵。这个单应性矩阵便是平面标识物坐标系相对于摄像头坐标系的旋转矩阵R及平移向量t。由于图像上平面标识物顶点的像素坐标与对应的世界坐标系中顶点的坐标存在下述公式:
Figure GDA0003157896430000061
以上通过标识物一个顶点像素坐标及其对应的标识物坐标系中坐标便可获得一个方程,标识物对应了四个顶点,便可对应写出四个对应的方程,然后通过方程组求解出单应性矩阵中r1,r2,r3,t。
优选的,在所述步骤S330之后、所述步骤S340之前,还包括:
S335根据所述棋子及所述棋盘的四个角点在所述平面标识物坐标系中的坐标,确定所述棋子处于所述棋盘的四个角点组成的四边形区域内。
本方案中,经过了前面的步骤S320便可以确定出棋盘的四个角点在平面标识物坐标系中的坐标,而这四个角点组成的四边形区域为棋盘区域,经过步骤S330则可以确定识别出的棋子在平面坐标系中的坐标,因此,步骤S335则是确定识别出的棋子处于棋盘上了。因为只有处于棋盘上的棋子才需要后面进一步在棋盘上的定位,如果不处于棋盘上则可以选择不用去管,这样可以减少棋子定位的工作量,也便于后续棋子在棋盘上的位置计算。
优选的,在所述步骤S320之后、所述步骤S330之前,还包括:
S325根据所述棋盘的四个角点在所述平面标识物坐标系中的坐标、及所述摄像头当前视场的单应性矩阵,获得所述棋盘四个角点的像素坐标;
S326根据所述棋盘四个角点的像素坐标,选取所述棋盘四个角点组成的四边形区域作为所述视频图像帧中的目标区域;
所述步骤S330识别所述视频图像帧中的棋子,并读取所述棋子的像素坐标,并根据所述单应性矩阵获取所述棋子在所述平面标识物坐标系中的坐标具体为:
S331在所述视频图像帧中的目标区域内识别棋子,并读取所述棋子的像素坐标;
S332根据所述棋子的像素坐标及所述单应性矩阵,获取所述棋子在所述平面标识物坐标系中的坐标。
本方案中,通过获取棋盘四个角点的像素坐标,确定了棋盘在视频图像帧中的位置区域,这个四个角点组成的位置区域作为目标区域,而在视频图像帧中,只有在目标区域内的棋子才是需要定位的棋盘上的棋子,而不在目标区域内的图像,我们都可以不用去识别,也就是说只识别目标区域内的棋子,这样大大减小了计算量,加快了棋子定位的速度。
第二方面,本发明还公开了一种基于机器视觉的棋子定位系统,应用于对设有平面标识物的棋盘上的棋子进行定位,所述基于机器视觉的棋子定位系统包括:摄像采集模块,用于获取视频流,并从所述视频流中采集视频图像帧;图像识别模块,用于对所述摄像采集模块采集的视频图像帧进行图像处理,从而在所述视频图像帧中识别出所述平面标识物;定位模块,用于根据所述平面标识物及预先获取的所述摄像头的内参矩阵,计算棋盘上的棋子相对于所述标识物的位置,从而定位棋子的位置。
优选的,所述基于机器视觉的棋子定位系统还包括:标定模块,用于对所述摄像头进行标定,获取所述摄像头的内参矩阵。
优选的,所述图像识别模块包括:二值分割子模块,用于对所述视频图像帧进行二值分割;外形提取子模块,用于从分割后的二值化图像中提取外形轮廓;存储子模块,用于存储所述平面标志物所对应的外形轮廓的共性特征、所述平面标识物模板;判断处理子模块,用于根据所述存储子模块中存储的所述平面标识物所对应的外形轮廓的共性特征,从所述外形提取子模块提取的外形轮廓中选取具有所述共性特征的外形轮廓作为备选轮廓;正视图获取子模块,用于获取所述备选轮廓的正视图;识别子模块,用于当所述备选轮廓的正视图与所述存储子模块预存的所述平面标识物模板一致时,识别所述备选轮廓对应的图像为所述平面标识物的图像。
优选的,所述平面标识物为正方形,所述存储子模块存储的所述平面标识物所对应的外形轮廓的共性特征为四边形;所述正视图获取子模块包括:读取单元,用于读取所述备选轮廓的四个顶点的像素坐标;定义单元,用于定义所述备选轮廓经过射影变换为正视图后的四个顶点的像素坐标为预存的所述平面标志物的正视图的四个顶点的像素坐标;计算单元,用于根据所述读取单元读取的四个顶点像素坐标及所述定义单元定义的四个顶点像素坐标,通过下述方程,求取射影变换矩阵H,
Figure GDA0003157896430000081
其中,Q为备选轮廓顶点的齐次像素坐标,其非齐次像素坐标为
Figure GDA0003157896430000082
Figure GDA0003157896430000085
Q为射影变换后顶点的齐次坐标,,其非齐次像素坐标为
Figure GDA0003157896430000084
变换单元,用于根据所述计算单元求取的射影变换矩阵H,对所述备选轮廓对应的二值化图像的所有像素都执行射影变换,获得所述备选轮廓包含的区域对应的正视图。
优选的,所述图像识别模块,还用于对所述视频图像帧进行图像处理,从而在所述视频图像帧中识别出棋子;所述定位模块包括:单应性矩阵获取子模块,用于根据所述平面标识物及预先获取的所述摄像头的内参矩阵,计算所述摄像头当前视场的单应性矩阵;角点坐标获取子模块,用于根据棋盘上预设参考点在平面标识物坐标系中的已知坐标及在棋盘上的行列位置,结合所述棋盘的网格长度特征,获取所述棋盘的四个角点在所述平面标识物坐标系中的坐标;棋子坐标获取子模块,用于根据所述图像识别模块识别出的棋子,读取所述棋子的像素坐标,并根据所述单应性矩阵,获取所述棋子在所述平面标识物坐标系中的坐标;棋子定位子模块,用于根据所述棋子及所述棋盘的四个角点在所述平面标识物坐标系中的坐标,结合所述棋盘的网格长度特征,获取所述棋子在棋盘上的位置。
优选的,所述单应性矩阵获取子模块包括:坐标系确定单元,用于选取所述平面标识物坐标系为世界坐标系;顶点坐标读取单元,用于读取所述平面标识物的四个顶点的像素坐标;运算单元,用于将已知的所述平面标识物的四个顶点在世界坐标系的坐标、所述平面标识物的四个顶点的像素坐标,及所述预先获取的所述摄像头的内部参数分别代入下述公式:
Figure GDA0003157896430000091
计算出当前视场的单应性矩阵T=M[r1,r2,r3,t];
其中,(x,y,1)表示视觉定位标识中任一角点在摄像机的图像坐标系中像素坐标的齐次坐标,(X,Y,Z,1)表示所述顶点在世界坐标系中的齐次坐标,简化为(X,Y,0,1),s为引入的任意尺度比例参数,M为摄像机内参矩阵,r1、r2、r3分别表示视觉定位标识坐标系相对于摄像机坐标系的旋转矩阵中的三个列向量,t为平移向量。
优选的,所述定位模块还包括:判断子模块,用于根据所述棋子及所述棋盘的四个角点在所述平面标识物坐标系中的坐标,确定所述棋子处于所述棋盘的四个角点组成的四边形区域内。
优选的,所述定位模块还包括:目标区域确定子模块,用于根据所述棋盘的四个角点在所述平面标识物坐标系中的坐标、及所述摄像头当前视场的单应性矩阵,获得所述棋盘四个角点的像素坐标;并选取所述棋盘四个角点组成的四边形区域作为所述视频图像帧中的目标区域;所述棋子坐标获取子模块包括:棋子像素坐标读取单元,用于所述图像识别模块在所述视频图像帧中的目标区域内识别出棋子后,读取所述棋子的像素坐标;棋子坐标计算单元,用于根据所述棋子的像素坐标及所述单应性矩阵,获取所述棋子在所述平面标识物坐标系中的坐标。
第三方面,本发明还公开了一种存储介质,所述存储介质存储有多条指令,所述多条指令被一个或者多个处理器执行,以实现本发明所述的基于机器视觉的棋子定位方法的步骤。
本方案中的存储介质可用于存储软件程序及模块,比如本发明的基于机器视觉的棋子定位方法及系统对应的程序指令/模块。这些程序指令/模块可被处理器执行,实现上述的基于机器视觉的棋子定位方法/装置。
第四方面,本发明还公开了一种机器人,包括:处理器,用于实现各指令;存储介质,用于存储多条指令;其中:所述处理器用于执行所述存储介质存储的指令,以实现本发明所述的基于机器视觉的棋子定位方法的步骤。
本方案中,机器人中的处理器执行设置在机器人中的本发明的存储介质中存储的指令,实现本发明的基于机器视觉的棋子定位方法。本发明的机器人可以通过机器视觉定位棋子的位置,便于后续模拟真人下棋,增强了用户的交互体验。
本发明仅仅需要在棋盘所处平面上放置一个平面标志物,通过该标志物即可对棋子进行视觉精确定位。本发明不需要棋盘进行特别的电路实现,且棋盘与机器人之间不需要进行数据通信,更加便于布置。此外,由于平面标识物的标识性,即使在复杂场景中能够准确的识别出该平面标志物,不会受到复杂场景的干扰。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明基于机器视觉的棋子定位方法实施例的流程图;
图2为张正友平面标定方法的原理示意图;
图3为本发明基于机器视觉的棋子定位方法另一实施例的流程图;
图4为本发明基于机器视觉的棋子定位方法另一实施例的流程图;
图5为本发明基于机器视觉的棋子定位方法另一实施例的流程图;
图6为本发明基于机器视觉的棋子定位方法另一实施例中系统组成示意图;
图7为本发明基于机器视觉的棋子定位方法另一实施例的流程图;
图8为本发明基于机器视觉的棋子定位方法另一实施例的流程图;
图9a为张正友平面标定方法的标定模板示意图;
图9b为张正友平面标定方法中检测特征点示意图;
图10为本发明基于机器视觉的棋子定位方法另一实施例中旋转后的四边形轮廓正视图;
图11为本发明基于机器视觉的棋子定位系统另一实施例的框图;
图12为本发明基于机器视觉的棋子定位系统另一实施例的框图;
图13为本发明基于机器视觉的棋子定位系统另一实施例的框图;
图14为本发明基于机器视觉的棋子定位系统另一实施例的框图;
图15为本发明基于机器视觉的棋子定位系统另一实施例的框图;
图16为本发明机器人实施例的结构框图。
附图标记:
1001--存储器;1002--处理器;1003--外设接口;1004--摄像模块;1005--音频模块;1006--触控屏幕;1007--总线。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。一种基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
机器视觉是人工智能正在快速发展的一个分支。简单说来,机器视觉就是用机器代替人眼来做测量和判断。机器视觉系统是通过机器视觉产品(即图像摄取装置,分CMOS和CCD两种)将被摄取目标转换成图像信号,传送给专用的图像处理系统,得到被摄目标的形态信息,根据像素分布和亮度、颜色等信息,转变成数字化信号;图像系统对这些信号进行各种运算来抽取目标的特征,进而根据判别的结果来控制现场的设备动作。本发明提供了一种基于机器视觉的棋子定位方法,应用于对设有平面标识物的棋盘上的棋子进行定位,如图1所示,所述棋子定位方法包括:
S100通过摄像头获取视频流,并从所述视频流中采集视频图像帧;
S200对所述视频图像帧进行图像处理,识别所述平面标识物;
S300根据所述平面标识物及预先获取的所述摄像头的内参矩阵,计算棋盘上的棋子相对于所述标识物的位置,从而定位棋子的位置。
本实施例仅需要在棋盘所处平面上放置一个平面标识物,通过该标识物即可对棋子进行视觉精确定位,且本发明不需要棋盘进行特别的电路实现。这里的平面标识物使得在复杂的场景中也能够准确的识别出来,不会受到复杂场景的干扰。
在采用上述方法定位棋子之前,还需要对用来采集视频流的摄像头进行标定,具体的,通过对所述摄像头进行标定,获取所述摄像头的内参矩阵,即确定所述摄像头成像的几何模型。
利用摄像机所拍摄到的图像来还原空间中的物体。在这里,不妨假设摄像机所拍摄到的图像与三维空间中的物体之间存在以下一种简单的线性关系:[像]=M[物],这里,矩阵M可以看成是摄像机成像的几何模型。M中的参数就是摄像机参数。通常,这些参数是要通过实验与计算来得到的。这个求解参数的过程就称为摄像机标定。比较常用的方法是张正友平面标定方法。简单介绍而言,就是在图像测量过程以及机器视觉应用中,常常会涉及到这样一个概念,那就是利用摄像机所拍摄到的图像来还原空间中的物体。在这里,不妨假设摄像机所拍摄到的图像与三维空间中的物体之间存在以下一种简单的线性关系:[像]=M[物]。
张正友标定方法,借助了机器视觉标定板,标定板上特征圆成陈列分布,间距30mm;板子尺寸为300X300mm。4个大圆为标志圆,大圆环标志确定方向。用特征圆的圆心坐标进行标定。特征圆的圆心坐标提取方法:获得4个标志圆坐标,利用仿射变换将特征圆的坐标调正,然后对其进行排序,确定相应特征圆图像坐标。
在这里假定模板平面在世界坐标系Z=0的平面上。示意图如图2所示,基本原理如下:
Figure GDA0003157896430000131
其中,K为摄像机的内参矩阵,[X Y 1]T为模板平面上点的齐次坐标,[u v 1]T为模板平面上点投影到图象平面上对应点的齐次坐标,[r1r2r3]和t分别是摄像机坐标系相对于世界坐标系的旋转矩阵和平移向量。
H=[h1 h2 h3]=λK[r1 r2 t]
Figure GDA0003157896430000132
根据旋转矩阵的性质,即r1Tr2=0和||r1||=||r2||=1,每幅图象可以获得以下两个对内参矩阵的基本约束
Figure GDA0003157896430000133
Figure GDA0003157896430000134
由于摄像机有5个未知内参数,所以当所摄取得的图像数目大于等于3时,就可以线性唯一求解出K,也就是可以求解出摄像机的内参矩阵。
张正友平面标定算法可描述为:
1、打印一张模板并贴在一个平面上;
2、从不同角度拍摄若干张模板图像;
3、检测出图像中的特征点;
4、求出摄像机的内参数、外参数、畸变系数。
在上述实施例中,较佳的,步骤S100通过摄像头获取视频流,并从所述视频流中采集视频图像帧中采集的视频图像帧为关键帧,关键帧可以体现出棋盘上的棋子的变化。
本发明方法的另一实施例,如图3所示,包括:
S100通过摄像头获取视频流,并从所述视频流中采集视频图像帧;
S210对所述视频图像帧进行二值分割,并从分割后的二值图像中提取外形轮廓;
S220根据预存的所述平面标识物所对应的外形轮廓的共性特征,从提取的外形轮廓中选取具有所述共性特征的外形轮廓作为备选轮廓;
S230获取所述备选轮廓的正视图;
S240当所述备选轮廓的正视图与预存的所述平面标识物模板一致时,识别所述备选轮廓对应的图像为所述平面标识物的图像;
S300根据所述平面标识物及预先获取的所述摄像头的内参矩阵,计算棋盘上的棋子相对于所述标识物的位置,从而定位棋子的位置。
上述实施例中,S210对所述视频图像帧进行二值分割,二值化可以视为将图像上的像素点的灰度值设置为0或255,也就是将整个图像呈现出明显的黑白视觉效果。图像分割就是把图像中具有特殊涵义的不同区域分开来,这些区域是互不相交的,每个区域都满足特定区域的一致性。图像分割是图像处理中的重要问题,也是计算机视觉研究中的一个经典难题。计算机视觉中的图像理解包括目标检测、特征提取和目标识别等,都依赖于分割的质量。
当然,我们可以采用自适应阈值法对摄像头获取的视频图像帧进行二值分割,阈值法是一种简单有效的分割方法,其最大特点就是计算简单,因而应用广泛。
图像分割后,需要识别出屏幕标识物,由于摄像头可能从不同角度拍摄了视频流,因此,采集的视频帧上的平面标识物并不一定是正视图的样子。那么需要先提取出从各个角度拍摄出的平面标识物,并对该平面标识物进行边缘检测,获取该平面标识物的外形轮廓的共性特征,再将这个共性特征预先进行存储,便于在采集视频帧后对该平面标识物进行识别。具体的,在对视频帧图像进行二值分割后,提取分割后的各图像的外形轮廓,根据平面标识物外形轮廓的的共性特征,查找出备选的外形轮廓。比如,如果我们选择的屏幕标识物是正方形,那么经过边缘检测后可获得其外形轮廓的共性特征为四边形,那么我们便据此,从提取出的外形轮廓中,排除那些非凸多边形的,以及不是四边形的轮廓等。
较佳的,我们还可以设置一些限制条件,用来进一步排除不可能是平面标识物的外形轮廓,还是以平面标识物为正方形为例,比如提取的外形轮廓中四边形一边明显小于其余的边(形状比较瘦长),轮廓周长或者面积过小等等,剩下的符合条件的轮廓就是平面标识物可能对应的备选轮廓了。
获得备选轮廓后,下一步就是获取各个备选轮廓的正视图,也就是说将平面标识物可能对应的备选轮廓图像区域变为正视图,从而进一步判断该备选轮廓区域是否为平面标识物对应的图像。具体的,通过将每个备选轮廓的正视图与预先存储的该平面标识物模板进行比对,当出现有比对一致的情况下便可判断出这个备选轮廓即为平面标识物的外形轮廓,这个备选轮廓对应的图像就是平面标识物的图像,至此,平面标识物被识别出来了。
较佳的,在上述实施例的基础上,设置在棋盘上的平面标识物为正方形,上述实施例的步骤S220根据预存的所述平面标识物所对应的外形轮廓的共性特征中预存的所述平面标识物所对应的外形轮廓的共性特征是所述平面标识物所对应的外形轮廓为四边形。设置的标识物不同,那么对应的外形轮廓的共性特征也会不同。我们在选取平面标识物时尽量选取易于辨识的,特征点比较明显的标识物为佳。比如正方形,具有四个顶点,当然,为了与棋盘上的棋格区分开,可以在正方形内设置花纹等其它形状,便于后续的辨识,正方形的四个边长一致,加上四个顶点比较有利于后续的定位运算,使得运算起来也更为简单。
本发明的另一实施例,如图4所示,本发明的棋子定位方法应用于对设有正方形平面标识物的棋盘上的棋子进行定位,具体包括:
S100通过摄像头获取视频流,并从所述视频流中采集视频图像帧;
S210对所述视频图像帧进行二值分割,并从分割后的二值图像中提取外形轮廓;
S221根据预存的所述平面标识物所对应的外形轮廓的共性特征为四边形,从提取的外形轮廓中选取四边形的外形轮廓作为备选轮廓;
S231读取所述备选轮廓的四个顶点的像素坐标;
S232定义所述备选轮廓经过射影变换为正视图后的四个顶点的像素坐标为预存的所述平面标志物的正视图的四个顶点的像素坐标;
S233根据上述获取的四组所述备选轮廓的顶点的像素坐标及所述定义的备选轮廓转换为正视图后的顶点的像素坐标,求取摄影变换矩阵H;具体的,将上述获取的四组所述备选轮廓的顶点的像素坐标及所述定义的备选轮廓转换为正视图后的顶点的像素坐标分别代入下述方程,求取射影变换矩阵H:
Figure GDA0003157896430000161
其中,Q为备选轮廓顶点的齐次像素坐标,其非齐次像素坐标为
Figure GDA0003157896430000162
Figure GDA0003157896430000165
Q为射影变换后顶点的齐次坐标,其非齐次像素坐标为
Figure GDA0003157896430000164
S234根据所述射影变换矩阵H,对所述备选轮廓对应的二值化图像的所有像素都执行射影变换,获得所述备选轮廓包含的区域对应的正视图;
S240当所述备选轮廓的正视图与预存的所述平面标识物模板一致时,识别所述备选轮廓对应的图像为所述平面标识物的图像;
S300根据所述平面标识物及预先获取的所述摄像头的内参矩阵,计算棋盘上的棋子相对于所述标识物的位置,从而定位棋子的位置。
上述实施例中以正方形平面标识物为例,步骤S231-S234具体阐述了如何获取提取的备选轮廓的正视图。根据正方形平面标识物的正方形特性,比如,我们可以定义备选轮廓经过射影变换转换为正视图后的四个顶点的像素坐标,比如正方形平面标识物正视图的四个顶点像素坐标分别为(0,0),(0,200),(200,200),(200,0),那么可以将这四个顶点坐标作为四边形备选轮廓的四个顶点的像素坐标,此外,四边形备选轮廓的原图像的像素坐标可从图像中读取出来,再利用上述的射影变换方程便可获取射影变换矩阵H。利用该射影变换矩阵H便可以将四边形备选轮廓区域的所有像素都执行射影变换,即可得到该四边形备选轮廓的区域对应的正视图,然后将该正视图与预存的该平面标识物模板进行对比,看是否一致,一致的话则说明这个四边形轮廓就是该平面标识物的轮廓,那么平面标识物便被识别出来了。这里选用正视图来对比是因为摄像头从各个角度拍摄出的标识物的图像是不同的,如果摄像头处在标识物的正上方,则标识物的图像也是一个矩形,如果摄像头斜着看,那么矩形标识物的图像是一个不规则四边形,获取正视图进行对比的目的就是,不管摄像头从那个角度看,平面标识物的正视图都是一种从正上方往下看的图像,如此,便于平面标识物的识别。
本发明方法的另一实施例,在上述任一实施例的基础上,识别出了平面标识物后,便可根据平面标识物结合预先获取的摄像头内参矩阵,便可定位棋盘上的棋子,具体的,如图5所示,包括:
S100通过摄像头获取视频流,并从所述视频流中采集视频图像帧;
S200对所述视频图像帧进行图像处理,识别所述平面标识物;
S310根据所述平面标识物及预先获取的所述摄像头的内参矩阵,计算所述摄像头当前视场的单应性矩阵;
S320根据棋盘上预设参考点在平面标识物坐标系中的已知坐标及在棋盘上的行列位置,结合所述棋盘的网格长度特征,获取所述棋盘的四个角点在所述平面标识物坐标系中的坐标;
S330识别所述视频图像帧中的棋子,读取所述棋子的像素坐标,并根据所述单应性矩阵获取所述棋子在所述平面标识物坐标系中的坐标;
S340根据所述棋子及所述棋盘的四个角点在所述平面标识物坐标系中的坐标,结合所述棋盘的网格长度特征,获取所述棋子在棋盘上的位置。
上述实施例中的单应性矩阵,即平面标识物坐标系相对于摄像机坐标系的旋转矩阵R及平移向量t。这里的摄像机坐标系指的就是像素坐标所用的坐标系,是摄像机的图像坐标系。具体的上述实施例中,步骤S310根据所述平面标识物及预先获取的所述摄像头的内参矩阵,计算所述摄像头当前视场的单应性矩阵包括:
S311选取所述平面标识物坐标系为世界坐标系;
S312读取所述平面标识物的四个顶点的像素坐标;
S313将已知的所述平面标识物的四个顶点在世界坐标系的坐标、所述平面标识物的四个顶点的像素坐标,及所述预先获取的所述摄像头的内部参数分别代入下述公式:
Figure GDA0003157896430000181
计算出当前视场的单应性矩阵T=M[r1,r2,r3,t];
其中,(x,y,1)表示所述平面标识物中任一顶点在摄像机的图像坐标系中像素坐标的齐次坐标,(X,Y,Z,1)表示所述顶点在世界坐标系中的齐次坐标,简化为(X,Y,0,1),s为引入的任意尺度比例参数,M为摄像机内参矩阵,r1、r2、r3分别表示所述平面标识物坐标系相对于摄像机坐标系的旋转矩阵中的三个列向量,t为平移向量。
以上通过标识物的一个顶点像素坐标及其对应的标识物坐标系中坐标可写出一个方程;标识物四个顶点对应可写出四个方程组,那么可以求出四个未知数r1、r2、r3与t;具体的,通过方程组的直接先行变换(DLT)算法,从而可求出r1、r2、r3与t,也就是摄像头在当前视场下的单应性矩阵。
获取了单应性矩阵后,下一步便是要确定棋盘了,上述步骤S320中,预先在棋盘上设置了一个参考点,根据该参考点在平面坐标系(即世界坐标系)中的坐标,再利用其在棋盘上的位置和棋盘的网格长度关系,可以让棋盘的四个顶点在平面坐标系中的坐标用该参考点与网格长度的值来表示出来,因此,可获得该棋盘四个角点在平面标识物坐标系中的坐标,即得到了棋盘在平面标识物坐标系中的位置区域。棋盘上预设的参考点由于坐标已知,而棋盘上网格的长度已知,那么便可以根据参考点在棋盘上的行列位置,结合棋盘网格长度,获得棋盘四个角点在平面标识物坐标系中的坐标。较佳的,在棋盘上设置参考点时,直接选取四个角点中的一个作为预设的参考点,或者棋盘的中心点,比如选用棋盘的中心点,其中心点在世界坐标系(等同于平面标识物坐标系)中的坐标为(X1,Y1),根据棋盘的网格长度特征,比如棋盘的边长是L,那么棋盘的四个顶点在世界坐标系中的坐标为(X1-L/2,Y1+L/2),(X1-L/2,Y1-L/2),(X1+L/2,Y1+L/2),(X1+L/2,Y1-L/2),即获得了这四个角点在平面标识物坐标系(世界坐标系)中的坐标。
确定好棋盘在平面标识物坐标系中的坐标位置之后,还需要确定棋子在平面标识物坐标系中的坐标,上述步骤S330中识别所述视频图像帧中的棋子,我们可采用与之前平面标识物类似的方法,将视频图像帧进行二值化,然后从中识别出棋子。具体的,可根据棋子的特征来进行轮廓识别等,比如选用的是黑色的圆形棋子,棋子的厚度我们可以忽略不计,那么在二值化后的视频图像帧中,棋子的图像是圆形或者椭圆形轮廓,然后再根据轮廓的周长、面积及二阶中心距等判断二值图像中的轮廓是否为棋子,该轮廓的中心则为棋子的像素坐标。识别出棋子后,便可直接从该视频图像帧中读取棋子的像素坐标。获取到棋子的像素坐标后,再利用之前获取的摄像头当前视场的单应性矩阵,便可获取棋子在平面标识物坐标系(也就是世界坐标系)中的坐标。
最后,步骤S340即我们便可根据前面确定的棋子、棋盘在平面标识物坐标系中的坐标,再结合棋盘的网格长度特征,便可获取棋子在棋盘上的具体位置了。棋盘的四个角点在平面标识物中的坐标已确定的话,那么,我们可以选取其中任一个角点作为棋子行列位置计算的比较点。比如,选取左上角的角点作为比较点,由于作为比较点的棋盘网格左上角顶点A在平面标识物坐标系中的坐标已知,所以可以求出棋子在棋盘网格中的位置(即横竖第几个网格)。该求取方法如图6所示:
1.已知A点在世界坐标系O1中坐标为(6,6,0),棋盘网格横向竖向间距均为5。
2.假如计算得到棋子在世界坐标系O1中坐标为(11,11,0)。则棋子B在棋盘网格中位置的计算为:横向位置=(11-6)/5=1;竖向位置=(11-6)/5=1;即棋子B在棋盘网格中行列位置为(1,1),棋盘参考点A在棋盘网格中的行列位置为(0,0)。
较佳的,在上述实施例的基础上,在步骤S330之后,步骤S340之前,还包括:S335根据所述棋子及所述棋盘的四个角点在所述平面标识物坐标系中的坐标,确定所述棋子处于所述棋盘的四个角点组成的四边形区域内。
只有处于棋盘上的棋子才需要定位,而本身不处于棋盘上的棋子则可以不用管,无需定位。在获取到棋盘的四个角点在平面标识物坐标系中的坐标,则相当于确定了棋盘在平面标识物坐标系中的区域(四个角点组成的四边形区域),那么在获取到棋子在平面标识物坐标系中的坐标后,便可判断该棋子是否处于棋盘上,只有确定处于棋盘上的棋子才需要进一步定位,才会进入到后面棋盘上行列位置的计算。需要说明的是,棋子的四个角点组成的四边形区域,包含了棋盘边界线本身,棋子处于棋盘边界线上也属于位于棋盘上。也就是说如果棋子处于四个角点组成的四边形的任一边上,也视为处于四边形区域内(棋盘上)。当然,位于角点组成的四边形区域之外的棋子,则说明该棋子不在棋盘上,那么就可以不用再进一步定位了。
本发明方法的另一实施例,应用于对设有平面标识物的棋盘上的棋子进行定位,所述棋子定位方法如图7所示,包括:
S100通过摄像头获取视频流,并从所述视频流中采集视频图像帧;
S200对所述视频图像帧进行图像处理,识别所述平面标识物;
S310根据所述平面标识物及预先获取的所述摄像头的内参矩阵,计算所述摄像头当前视场的单应性矩阵;
S320根据棋盘上预设参考点在平面标识物坐标系中的已知坐标及在棋盘上的行列位置,结合所述棋盘的网格长度特征,获取所述棋盘的四个角点在所述平面标识物坐标系中的坐标;
S325根据所述棋盘的四个角点在所述平面标识物坐标系中的坐标、及所述摄像头当前视场的单应性矩阵,获得所述棋盘四个角点的像素坐标;
S326根据所述棋盘四个角点的像素坐标,选取所述棋盘四个角点组成的四边形区域作为所述视频图像帧中的目标区域;
S331在所述视频图像帧中的目标区域内识别棋子,并读取所述棋子的像素坐标;
S332根据所述棋子的像素坐标及所述单应性矩阵,获取所述棋子在所述平面标识物坐标系中的坐标;
S340根据所述棋子及所述棋盘的四个角点在所述平面标识物坐标系中的坐标,结合所述棋盘的网格长度特征,获取所述棋子在棋盘上的位置。
本实施例在上述实施例的基础上,在识别棋子之前,先确定识别的目标区域,也就是说先在视频图像帧中确定出棋盘所在的区域。这样只需在这个目标区域内识别棋子即可,目标区域之外的地方不用去识别,这样可以缩小棋子识别的范围,而在目标区域内识别出来的棋子也肯定在棋盘上。如此,可以减小图像处理的工作量,缩小识别范围,加快识别速度。此外,在检测棋子及计算棋子位置时可以不用关注棋盘之外的图像,从而增加了系统鲁棒性。
本发明方法的另一实施例,如图6所示为系统组成示意图:
a.如图所示为特殊设计的棋盘,棋盘的左上角有平面标志物,以平面标志物的中心O1作为整个棋盘坐标系的原点。
b.点A为棋盘网格离平面标识物最近的顶点,该棋盘网格的两边分别与棋盘坐标系的X、Y轴平行。顶点A在棋盘坐标系中的坐标已知为(Ax,Ay,0),B为放置在棋盘网格交叉点上的棋子。
c.O2为机器人摄像头的坐标系原点。
具体的,棋子在定位之前需要对摄像机进行标定,摄像机标定完后再进行后续的棋子识别,如图8所示,包括:平面标志物识别(获取视频流→图像二值化→四边形检测→获取正视图→模板匹配→匹配成功),棋子定位(计算R及t→棋子定位)。详细过程如下:
步骤一.摄像机标定
摄像机标定即计算摄像机的内部参数,确定摄像机成像的几何模型,从而后期利用摄像机所拍摄到的图像来进行三维空间位置的计算。本发明使用张正友的平面标定方法计算摄像机的内部参数矩阵M,该平面标定法的过程如下:
①打印一张平面标定的模板并贴在一个平面上,示意图如图9a所示;
②从不同角度拍摄若干张模板图像;
③检测出图像中的特征点;示意图如图9b所示;
④根据特征点在世界坐标系中坐标位置及其在图像中对应的像素坐标,联立方程组求出摄像机的内参数、外参数及畸变系数。
步骤二.平面标识物识别
该步骤用于在图像中识别特定的平面标识物,并确定平面标志物的四个角点,具体过程如下:
①四边形轮廓检测
该过程检测出图像中平面标识物可能对应的四边形轮廓。利用自适应性阈值法对摄像头获取的图像进行二值分割,然后从以上获取的二值图像中提取外形轮廓。对轮廓进行多边形拟合,舍弃那些非凸多边形的,以及那些不是四边形的轮廓。使用了一些额外的限制条件来剔除那些不可能是平面标志物图像的四边形轮廓,如四边形一边明显小于其余的边(形状比较瘦长),轮廓周长或面积过小等。剩下的符合条件的轮廓即为平面标志物可能对应的的备选轮廓。
②获取四边形轮廓区域的正视图
该过程用于将平面标志物可能对应的四边形图像区域变为正视图,从而进一步判断该四边形区域是否为平面标志物对应的图像。定义四边形轮廓经过射影变换转换为正视图后的四个顶点像素坐标分别为(0,0),(0,100),(100,100),(100,0)。在原图像中四边形轮廓的四个顶点像素坐标已知。对于每一组点对应有如下平面射影变换方程成立:
Figure GDA0003157896430000231
其中,Q为备选轮廓顶点的齐次像素坐标,其非齐次像素坐标为
Figure GDA0003157896430000232
Figure GDA0003157896430000233
Q为射影变换后顶点的齐次坐标,其非齐次像素坐标为
Figure GDA0003157896430000234
通过四组顶点对应关系,可联立方程组求解出射影变换矩阵H,对原图像的所有像素都执行射影变换H,即可得到该四边形轮廓区域对应的正视图,该正视图为正方形的平面标识图像。
因为摄像头从各个角度拍摄出的标识物的图像是不同的,如果摄像头处在标志物的正上方,则标志物的图像也是一个矩形;如果摄像头斜着看,那么矩形标识物的图像是一个不规则四边形。本步骤中获取正视图的目的就是:不管摄像头从哪个角度看,得到的正视图都是一种从正上方往下看的图像。便于后续的标志物ID识别,即图像的归一化。
③判断四边形是否对应平面矩形标识
如下图所示将获取的平面标识的正视图图像依次旋转90°,180°,270°从而最终得到四幅图像,如图10所示。
将以上获取的四幅图像分别与平面标志物的图像模板进行匹配。当与任一副图像匹配成功时,该四边形轮廓即对应的是该平面标识物。
步骤三.棋子位置计算
该步骤通过以上识别到的平面标志物及其四个角点,计算出棋盘上的棋子相对于标志物的位置。通过已知的棋盘网格顶点A的坐标,最终计算出棋子在棋盘网格中的位置,具体过程如下:
①计算平面标志物坐标系相对于摄像机坐标系的旋转矩阵R及平移向量t
以平面标志物的坐标系为世界坐标系,其的中心O1为世界坐标系的原点,则在标志物所在的平面上的点Z轴坐标都为0。平面标志物的边长为80mm,则其四个顶点在世界坐标系中的坐标分别为(-40,-40,0),(40,-40,0),(40,40,0),(-40,40,0)。图像上平面标识物顶点的像素坐标与对应的世界坐标系中顶点的坐标存在以下方程:
Figure GDA0003157896430000241
其中,(x,y,1)表示视觉定位标识中任一角点在摄像机的图像坐标系中像素坐标的齐次坐标,(X,Y,Z,1)表示所述角点在世界坐标系中的齐次坐标,即简化为(X,Y,0,1),s为引入的任意尺度比例参数,M为摄像机内部参数矩阵,r1、r2、r3分别表示视觉定位标识坐标系相对于摄像机坐标系的旋转矩阵中的三个列向量,t为平移向量。
以上通过标识物的一个顶点像素坐标及其对应的标志物坐标系中坐标可写出一个方程。标志物四个顶点对应可写出四个方程组对应,通过方程组的直接线性变换(DLT)算法,从而求出r1、r2、r3与t。
②获取棋盘的四个角点像素坐标
已知棋盘原点A在平面标识物坐标系O1中的坐标已知为(Ax,Ay,0),棋盘的边长为L,则棋盘的另外三个顶点在平面标识物坐标系中的坐标为(Ax+L,Ay,0),(Ax+L,Ay+L,0),(Ax,Ay+L,0)。根据由于上述步骤e已经求出当前平面标识物坐标系相对于摄像机坐标系的旋转矩阵矩阵及平移向量。将棋盘四个顶点在世界坐标系中的坐标代入公式1.1,即可得到棋盘四个顶点的像素坐标值。
③获取棋子在原图像中的像素坐标
本方案采用的是黑色的圆形棋子,棋子的厚度比较薄,可以忽略不计。在原图像的二值图像中,棋子的图像是圆形或者椭圆形的轮廓。根据轮廓的周长,面积及二阶中心距等判断二值图像中的轮廓是否为棋子,该轮廓的中心则为棋子的像素坐标。验证该棋子是否在棋盘四个顶点组成的四边形区域内,若在则该棋子处在棋盘上。
④获取棋子在棋盘上的位置
将棋子的像素坐标代入以上公式1.1,求解方程可得棋子在世界坐标系下的坐标B(Bx,By,0)。已知棋盘每一小格的边长为a,则棋子所处棋盘上的行列位置可以通过row=(By-Ay)/a,col=(Bx-Ax)/a进行计算。
本发明仅仅需要在棋盘所处平面上放置一个平面标志物,机器人通过该标志物即可对棋子进行视觉精确定位。本发明不需要棋盘进行特别的电路实现,且棋盘与机器人之间不需要进行数据通信,更加便于布置。该平面标志物的模板是特定设计的,机器人在复杂场景中能够准确的识别出该平面标志物,不会受到复杂场景的干扰。
基于相同的技术构思,本发明还公开了一种基于机器视觉的棋子定位系统,应用于对设有平面标识物的棋盘上的棋子进行定位,具体的,如图11所示,所述基于机器视觉的棋子定位系统包括:摄像采集模块100,用于获取视频流,并从所述视频流中采集视频图像帧;图像识别模块200,用于对所述摄像采集模块100采集的视频图像帧进行图像处理,从而在所述视频图像帧中识别出所述平面标识物;定位模块300,用于根据所述平面标识物及预先获取的所述摄像头的内参矩阵,计算棋盘上的棋子相对于所述标识物的位置,从而定位棋子的位置。
本发明的系统实施例可集成在机器人内,使得机器人能在复杂的背景下准确的定位棋子的位置,便于后续根据棋盘上棋子的位置来布局后续的下棋策略。只有让机器人理解了真实存在的棋盘,增加机器人的拟人化特征,让用户获得更好的代入感,使得用户有更好的交互体验。
在上述系统实施例的基础上,如图12所示,所述基于机器视觉的棋子定位系统还包括:标定模块400,用于对所述摄像头进行标定,获取所述摄像头的内参矩阵。
摄像头标定的方法有很多,较为常用的是张正友平面标定法,具体可参见前面方法实施例中对张正友标定法的描述。
本发明系统的另一实施例,在上述任一系统实施例的基础上,如图13所示,所述图像识别模块200包括:二值分割子模块210,用于对所述视频图像帧进行二值分割;外形提取子模块220,用于从分割后的二值化图像中提取外形轮廓;存储子模块230,用于存储所述平面标志物所对应的外形轮廓的共性特征、所述平面标识物模板;判断处理子模块240,用于根据所述存储子模块230中存储的所述平面标识物所对应的外形轮廓的共性特征,从所述外形提取子模块220提取的外形轮廓中选取具有所述共性特征的外形轮廓作为备选轮廓;正视图获取子模块250,用于获取所述备选轮廓的正视图;识别子模块260,用于当所述备选轮廓的正视图与所述存储子模块230预存的所述平面标识物模板一致时,识别所述备选轮廓对应的图像为所述平面标识物的图像。
上述实施例,对图像识别模块进行了细叙,在采集了视频图像帧后,通过图像识别模块对该视频图像帧进行图像处理识别,具体的通过二值分割子模块将其进行二值化分割处理,然后通过外形提取子模块提取出分割后图像的外形轮廓,再通过图像识别模块来进行识别,看是否是平面标识物的轮廓。这里我们就需要提前获取到该平面标识物外形轮廓的共性特征,并预先存储在图像识别模块中的存储子模块中,便于图像识别模块中的判断处理子模块在选取备选轮廓的时候作为判断标准。较佳的,还可以在选取的备选轮廓中,通过预设的限制条件来进一步进行剔除,将不可能是平面标识物的外形轮廓进一步排除掉,缩小后续的比对范围。在选取好了备选轮廓后,需要通过正视图获取子模块来获取这些备选轮廓的正视图,再由比对子模块将这些备选轮廓的正视图一一与预存的平面标识物的模板进行比较,这里的平面标识物的模板便可直接选用平面标识物的正视图图像。只有比对一致的情况下,方可判断其备选轮廓为平面标识物的轮廓。此外,在比对过程中,可能需要将备选轮廓的正视图进行平面旋转,从不同旋转角度进行比对,以便于比对正确。
较佳的,所述平面标识物为正方形,所述存储子模块存储的所述平面标识物所对应的外形轮廓的共性特征是所述平面标识物所对应的外形轮廓为四边形。
平面标识物选取的不同,后面计算的难度也会或多或少存在不同,但基本的思想都是一样的,都是需要先对标识物进行识别,然后根据识别的标识物及之前标定获取的摄像头的内参矩阵来定位棋子。只是平面标识物的选取直接决定了后面该平面标识物识别的难易程度。我们一般选用便于识别的,具备突出特征点的形状作为标识物,比如选取正方形作为平面标识物便可方便后续的计算识别。
本发明系统的另一实施例,在上述实施例的基础上,所述正视图获取子模块包括:读取单元,用于读取所述备选轮廓的四个顶点的像素坐标;定义单元,用于定义所述备选轮廓经过射影变换为正视图后的四个顶点的像素坐标为预存的所述平面标志物的正视图的四个顶点的像素坐标;计算单元,用于根据所述读取单元读取的四个顶点像素坐标及所述定义单元定义的四个顶点像素坐标,通过下述方程,求取射影变换矩阵H,
Figure GDA0003157896430000281
其中,Q为备选轮廓顶点的齐次像素坐标,其非齐次像素坐标为
Figure GDA0003157896430000282
Figure GDA0003157896430000285
Q为射影变换后顶点的齐次坐标,其非齐次像素坐标为
Figure GDA0003157896430000284
变换单元,用于根据所述计算单元求取的射影变换矩阵H,对所述备选轮廓对应的二值化图像的所有像素都执行射影变换,获得所述备选轮廓包含的区域对应的正视图。
通过读取备选轮廓的四个顶点的像素坐标及定义的变换为正视图后四个顶点的像素坐标,通过射影变换矩阵的公式方程,可获得四组方程式,从而求取出射影变换矩阵H。然后再根据该射影变换矩阵获取该备选轮廓内部区域的所有像素的正视图,便于与平面标识物模板进行比对。
本发明系统的另一实施例,在上述任一实施例的基础上,所述图像识别模块,还用于对所述视频图像帧进行图像处理,从而在所述视频图像帧中识别出棋子;如图13所示,所述定位模块300包括:单应性矩阵获取子模块310,用于根据所述平面标识物及预先获取的所述摄像头的内参矩阵,计算所述摄像头当前视场的单应性矩阵;角点坐标获取子模块320,用于根据棋盘上预设参考点在平面标识物坐标系中的已知坐标及在棋盘上的行列位置,结合所述棋盘的网格长度特征,获取所述棋盘的四个角点在所述平面标识物坐标系中的坐标;棋子坐标获取子模块330,用于根据所述图像识别模块200识别出的棋子,读取所述棋子的像素坐标,并根据所述单应性矩阵,获取所述棋子在所述平面标识物坐标系中的坐标;棋子定位子模块340,用于根据所述棋子及所述棋盘的四个角点在所述平面标识物坐标系中的坐标,结合所述棋盘的网格长度特征,获取所述棋子在棋盘上的位置。
上述装置实施例中,单应性矩阵获取子模块,在上述实施例基础上,所述单应性矩阵获取子模块包括:坐标系确定单元,用于选取所述平面标识物坐标系为世界坐标系;顶点坐标读取单元,用于读取所述平面标识物的四个顶点的像素坐标;运算单元,用于将已知的所述平面标识物的四个顶点在世界坐标系的坐标、所述平面标识物的四个顶点的像素坐标,及所述预先获取的所述摄像头的内部参数分别代入下述公式:
Figure GDA0003157896430000291
计算出当前视场的单应性矩阵T=M[r1,r2,r3,t];
其中,(x,y,1)表示视觉定位标识中任一角点在摄像机的图像坐标系中像素坐标的齐次坐标,(X,Y,Z,1)表示所述顶点在世界坐标系中的齐次坐标,简化为(X,Y,0,1),s为引入的任意尺度比例参数,M为摄像机内参矩阵,r1、r2、r3分别表示视觉定位标识坐标系相对于摄像机坐标系的旋转矩阵中的三个列向量,t为平移向量。
所述角点坐标获取子模块,根据棋盘上预设参考点在平面标识物坐标系中的已知坐标及其在棋盘上的行列位置,结合所述棋盘的网格长度特征,获取所述棋盘的四个角点在平面标识物坐标系中的坐标;所述棋子坐标获取子模块,首先通过图像识别模块识别棋盘中的棋子,从而使得所述棋子坐标获取子模块获取到棋子的像素坐标;然后,通过所述单应性矩阵获取子模块获取的当前视场的单应性矩阵确定棋子在平面标志物坐标系(世界坐标系)中的坐标。最后,所述棋子定位子模块,根据棋盘在平面标识物坐标系(世界坐标系)中的位置坐标、棋子在平面标识物坐标系中的位置坐标,结合棋盘的网格长度特征,便可以求出棋子在棋盘网格中的位置(即横竖第几个网格)。
较佳的,如图14所示,所述定位模块300还包括:判断子模块350,用于根据所述棋子及所述棋盘的四个角点在所述平面标识物坐标系中的坐标,确定所述棋子处于所述棋盘的四个角点组成的四边形区域内。
上述判断子模块在棋子定位子模块进行定位之前根据角点坐标获取子模块获取的棋盘的四个角点在平面标识物坐标系中的坐标、及棋子坐标获取子模块获取的棋子在平面标识物坐标系中的坐标,判断棋子是否在棋盘上,如果确定了该棋子处于棋盘上的话,则棋子定位子模块再进行后续的计算,获得棋子在棋盘上的行列位置。如果不在棋盘上,则无需进行后续的定位计算。
本发明装置的另一实施例,如图15所示,在上述任一实施例的基础上,所述定位模块300还包括:目标区域确定子模块360,用于根据所述棋盘的四个角点在所述平面标识物坐标系中的坐标、及所述摄像头当前视场的单应性矩阵,获得所述棋盘四个角点的像素坐标;并选取所述棋盘四个角点组成的四边形区域作为所述视频图像帧中的目标区域;所述棋子坐标获取子模块330包括:棋子像素坐标读取单元331,用于所述图像识别模块200在所述视频图像帧中的目标区域内识别出棋子后,读取所述棋子的像素坐标;棋子坐标计算单元332,用于根据所述棋子的像素坐标及所述单应性矩阵,获取所述棋子在所述平面标识物坐标系中的坐标。
本装置实施例中,在角点坐标获取子模块获取到棋盘的四个角点在平面标识物坐标系中的坐标后,目标区域确定子模块便根据所述棋盘的四个角点在所述平面标识物坐标系中的坐标、及所述摄像头当前视场的单应性矩阵,获得所述棋盘四个角点的像素坐标;并选取所述棋盘四个角点组成的四边形区域作为所述视频图像帧中的目标区域;图像识别模块便可以将图像识别的范围缩小到目标区域内,图像识别模块在该目标区域内识别到的棋子肯定处于棋盘上,是我们需要进行精确定位的目标棋子。在检测棋子及计算棋子位置时可以不用关注棋盘之外的图像,从而增加了系统鲁棒性,提高了定位效率。
本发明的系统实施例与本发明的方法实施例对应,本发明的方法实施例的技术细节同样也适用于本发明的系统实施例,因此,本发明的系统实施例也可以参考本发明的方法实施例,两者可相互参考说明。
本发明还公开了一种存储介质,所述存储介质存储有多条指令,所述多条指令被一个或者多个处理器执行,以实现下述步骤:
S100通过摄像头获取视频流,并从所述视频流中采集视频图像帧;
S200对所述视频图像帧进行图像处理,识别所述平面标识物;
S300根据所述平面标识物及预先获取的所述摄像头的内参矩阵,计算棋盘上的棋子相对于所述标识物的位置,从而定位棋子的位置。
较佳的,在上述基础上,本发明存储介质的另一实施例,所述存储介质存储有多条指令,所述多条指令被一个或者多个处理器执行,以实现任一本发明所述的基于机器视觉的棋子定位方法实施例的步骤。
本发明所述的基于机器视觉的棋子定位方法的步骤可参见前面的方法实施例部分,为减少重复,此处不再赘叙。
最后,本发明还公开了一种机器人,包括:处理器,用于实现各指令;存储介质,用于存储多条指令;其中:所述处理器用于执行所述存储介质存储的指令,以实现本发明所述的基于机器视觉的棋子定位方法实施例的步骤。
如图16所示,本发明的机器人另一实施例,机器人包括:存储器1001、一个或多个(图中仅示出一个)处理器1002、外设接口1003、摄像模块1004、音频模块1005以及触控屏幕1006。这些组件通过一条或多条通讯总线1007/信号线相互通讯。
可以理解,图16所示的结构仅仅为示意,并不是对机器人的结构造成限定,机器人还可以包括比图16所示更多或者更少的组件,或者具有与图16所示不同的装置。图16所示的各组件可以采用硬件、软件或其组合实现。
存储器可用于存储软件程序以及模块,如本发明实施例中的基于机器视觉的棋子定位方法及系统实施例对应的程序指令/模块,处理器通过允许存储在存储器内的软件程序/模块,从而执行各种功能应用以及数据处理,即实现上述的基于机器视觉的棋子定位方法/系统。
存储器可包括告诉随机存储器,还可包括非易失性存储器,比如一个或多个磁性存储装置、闪存或者其他非易失性固态存储器。所述的存储介质可为磁碟、光盘、只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)等。
外设接口将各种输入/输出装置耦合至CPU一级存储器。处理器运行存储器内的各种软件、指令一致性机器人的各种功能以及进行数据处理。
摄像模块用于拍摄视频,相当于是机器人的眼睛,比如采用CCD摄像头等。
音频模块,用于接收或发送声音信号,可包含一个或多个麦克风、一个或多个扬声器以及音频电路。便于机器人从环境捕捉声音信号,以及将通过麦克风或扬声器与人进行交流。
触控屏幕在机器人与人之间同时提供一个输出及输入界面。具体的,触控屏幕向人显示视频输出,这些视频输出的内容可包括文字、图形、视频及其任意组合。一些输入结果是对应与一些用户解密对象。触控屏幕还接收人类的点击、滑动等手势操作。触控屏幕的具体实施例包括但不限于液晶显示器或发光聚合物显示器。
本发明实施例中,所述基于机器视觉的棋子定位方法及系统、存储介质与机器人属于同一构思,在所述机器人上,通过处理器执行所述存储介质中存储的指令,可以运行相应的所述基于机器视觉的棋子定位方法实施例中提供的方法,其具体实现过程详见前面的基于机器视觉的棋子定位方法实施例,此处不再赘述。
需要说明的是,本领域普通测试人员可以理解实现本发明实施例所述基于机器视觉的棋子定位方法的全部或部分流程,是可以通过计算机程序来控制相关的硬件来完成,所述计算机程序可存储于一计算机可读取存储介质中,如存储在机器人的存储器中,并被该机器人内的至少一个处理器执行,在执行过程中可包括如所述基于机器视觉的棋子定位方法实施例的流程。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (16)

1.一种基于机器视觉的棋子定位方法,其特征在于,应用于对设有平面标识物的棋盘上的棋子进行定位,所述棋子定位方法包括:
S100通过摄像头获取视频流,并从所述视频流中采集视频图像帧;
S200对所述视频图像帧进行图像处理,识别所述平面标识物;所述平面标识物具备明显特征点;
S300根据所述平面标识物及预先获取的所述摄像头的内参矩阵,计算棋盘上的棋子相对于所述标识物的位置,从而定位棋子的位置;
其中:所述步骤S200对所述视频图像帧进行图像处理,识别所述平面标识物具体为:
S210对所述视频图像帧进行二值分割,并从分割后的二值化图像中提取外形轮廓;
S220根据预存的所述平面标识物所对应的外形轮廓的共性特征,从提取的外形轮廓中选取具有所述共性特征的外形轮廓作为备选轮廓;
S230获取所述备选轮廓的正视图;
S240当所述备选轮廓的正视图与预存的所述平面标识物模板一致时,识别所述备选轮廓对应的图像为所述平面标识物的图像。
2.根据权利要求1所述的一种基于机器视觉的棋子定位方法,其特征在于,在所述步骤S100通过摄像头获取视频流,并从所述视频流中采集视频图像帧之前还包括:
S010对所述摄像头进行标定,获取所述摄像头的内参矩阵。
3.根据权利要求1所述的一种基于机器视觉的棋子定位方法,其特征在于,所述平面标识物为正方形,所述步骤S220中预存的所述平面标识物所对应的外形轮廓的共性特征为四边形;
所述步骤S230获取所述备选轮廓的正视图具体为:
S231读取所述备选轮廓的四个顶点的像素坐标;
S232定义所述备选轮廓经过射影变换为正视图后的四个顶点的像素坐标为预存的所述平面标志物的正视图的四个顶点的像素坐标;
S233将上述获取的四组所述备选轮廓的顶点的像素坐标及所述定义的备选轮廓转换为正视图后的顶点的像素坐标分别代入下述方程,求取射影变换矩阵H:
Figure FDA0003157896420000021
其中,Q为备选轮廓顶点的齐次像素坐标,其非齐次像素坐标为
Figure FDA0003157896420000022
Figure FDA0003157896420000025
Q′为射影变换后顶点的齐次坐标,其非齐次像素坐标为
Figure FDA0003157896420000024
S234根据所述射影变换矩阵H,对所述备选轮廓对应的二值化图像的所有像素都执行射影变换,获得所述备选轮廓包含的区域对应的正视图。
4.根据权利要求1-3任一项所述的一种基于机器视觉的棋子定位方法,其特征在于,所述步骤S300根据所述平面标识物及预先获取的所述摄像头的内参矩阵,计算棋盘上的棋子相对于所述标识物的位置,从而定位棋子的位置具体为:
S310根据所述平面标识物及预先获取的所述摄像头的内参矩阵,计算所述摄像头当前视场的单应性矩阵;
S320根据棋盘上预设参考点在平面标识物坐标系中的已知坐标及在棋盘上的行列位置,结合所述棋盘的网格长度特征,获取所述棋盘的四个角点在所述平面标识物坐标系中的坐标;
S330识别所述视频图像帧中的棋子,读取所述棋子的像素坐标,并根据所述单应性矩阵获取所述棋子在所述平面标识物坐标系中的坐标;
S340根据所述棋子及所述棋盘的四个角点在所述平面标识物坐标系中的坐标,结合所述棋盘的网格长度特征,获取所述棋子在棋盘上的位置。
5.根据权利要求4所述的一种基于机器视觉的棋子定位方法,其特征在于,所述步骤S310根据所述平面标识物及预先获取的所述摄像头的内参矩阵,计算所述摄像头当前视场的单应性矩阵具体为:
S311选取所述平面标识物坐标系为世界坐标系;
S312读取所述平面标识物的四个顶点的像素坐标;
S313将已知的所述平面标识物的四个顶点在世界坐标系的坐标、所述平面标识物的四个顶点的像素坐标,及所述预先获取的所述摄像头的内部参数分别代入下述公式:
Figure FDA0003157896420000031
计算出当前视场的单应性矩阵T=M[r1,r2,r3,t];
其中,(x,y,1)表示所述平面标识物中任一顶点在摄像机的图像坐标系中像素坐标的齐次坐标,(X,Y,Z,1)表示所述顶点在世界坐标系中的齐次坐标,简化为(X,Y,0,1),s为引入的任意尺度比例参数,M为摄像机内参矩阵,r1、r2、r3分别表示所述平面标识物坐标系相对于摄像机坐标系的旋转矩阵中的三个列向量,t为平移向量。
6.根据权利要求4所述的一种基于机器视觉的棋子定位方法,其特征在于,在所述步骤S330之后、所述步骤S340之前,还包括:
S335根据所述棋子及所述棋盘的四个角点在所述平面标识物坐标系中的坐标,确定所述棋子处于所述棋盘的四个角点组成的四边形区域内。
7.根据权利要求4所述的一种基于机器视觉的棋子定位方法,其特征在于,在所述步骤S320之后、所述步骤S330之前,还包括:
S325根据所述棋盘的四个角点在所述平面标识物坐标系中的坐标、及所述摄像头当前视场的单应性矩阵,获得所述棋盘四个角点的像素坐标;
S326根据所述棋盘四个角点的像素坐标,选取所述棋盘四个角点组成的四边形区域作为所述视频图像帧中的目标区域;
所述步骤S330识别所述视频图像帧中的棋子,并读取所述棋子的像素坐标,并根据所述单应性矩阵获取所述棋子在所述平面标识物坐标系中的坐标具体为:
S331在所述视频图像帧中的目标区域内识别棋子,并读取所述棋子的像素坐标;
S332根据所述棋子的像素坐标及所述单应性矩阵,获取所述棋子在所述平面标识物坐标系中的坐标。
8.一种基于机器视觉的棋子定位系统,其特征在于,应用于对设有平面标识物的棋盘上的棋子进行定位,所述基于机器视觉的棋子定位系统包括:
摄像采集模块,用于获取视频流,并从所述视频流中采集视频图像帧;
图像识别模块,用于对所述摄像采集模块采集的视频图像帧进行图像处理,从而在所述视频图像帧中识别出所述平面标识物;所述平面标识物具备明显特征点;
定位模块,用于根据所述平面标识物及预先获取的所述摄像头的内参矩阵,计算棋盘上的棋子相对于所述标识物的位置,从而定位棋子的位置;
其中,所述图像识别模块包括:
二值分割子模块,用于对所述视频图像帧进行二值分割;
外形提取子模块,用于从分割后的二值化图像中提取外形轮廓;
存储子模块,用于存储所述平面标志物所对应的外形轮廓的共性特征、所述平面标识物模板;
判断处理子模块,用于根据所述存储子模块中存储的所述平面标识物所对应的外形轮廓的共性特征,从所述外形提取子模块提取的外形轮廓中选取具有所述共性特征的外形轮廓作为备选轮廓;
正视图获取子模块,用于获取所述备选轮廓的正视图;
识别子模块,用于当所述备选轮廓的正视图与所述存储子模块预存的所述平面标识物模板一致时,识别所述备选轮廓对应的图像为所述平面标识物的图像。
9.根据权利要求8所述的一种基于机器视觉的棋子定位系统,其特征在于,还包括:
标定模块,用于对所述摄像头进行标定,获取所述摄像头的内参矩阵。
10.根据权利要求8所述的一种基于机器视觉的棋子定位系统,其特征在于,所述平面标识物为正方形,所述存储子模块存储的所述平面标识物所对应的外形轮廓的共性特征为四边形;
所述正视图获取子模块包括:
读取单元,用于读取所述备选轮廓的四个顶点的像素坐标;
定义单元,用于定义所述备选轮廓经过射影变换为正视图后的四个顶点的像素坐标为预存的所述平面标志物的正视图的四个顶点的像素坐标;
计算单元,用于根据所述读取单元读取的四个顶点像素坐标及所述定义单元定义的四个顶点像素坐标,通过下述方程,求取射影变换矩阵H,
Figure FDA0003157896420000061
其中,Q为备选轮廓顶点的齐次像素坐标,其非齐次像素坐标为
Figure FDA0003157896420000062
Figure FDA0003157896420000065
Q′为射影变换后顶点的齐次坐标,其非齐次像素坐标为
Figure FDA0003157896420000064
变换单元,用于根据所述计算单元求取的射影变换矩阵H,对所述备选轮廓对应的二值化图像的所有像素都执行射影变换,获得所述备选轮廓包含的区域对应的正视图。
11.根据权利要求8-10任一项所述的一种基于机器视觉的棋子定位系统,其特征在于,所述图像识别模块,还用于对所述视频图像帧进行图像处理,从而在所述视频图像帧中识别出棋子;
所述定位模块包括:
单应性矩阵获取子模块,用于根据所述平面标识物及预先获取的所述摄像头的内参矩阵,计算所述摄像头当前视场的单应性矩阵;
角点坐标获取子模块,用于根据棋盘上预设参考点在平面标识物坐标系中的已知坐标及在棋盘上的行列位置,结合所述棋盘的网格长度特征,获取所述棋盘的四个角点在所述平面标识物坐标系中的坐标;
棋子坐标获取子模块,用于根据所述图像识别模块识别出的棋子,读取所述棋子的像素坐标,并根据所述单应性矩阵,获取所述棋子在所述平面标识物坐标系中的坐标;
棋子定位子模块,用于根据所述棋子及所述棋盘的四个角点在所述平面标识物坐标系中的坐标,结合所述棋盘的网格长度特征,获取所述棋子在棋盘上的位置。
12.根据权利要求11所述的一种基于机器视觉的棋子定位系统,其特征在于,所述单应性矩阵获取子模块包括:
坐标系确定单元,用于选取所述平面标识物坐标系为世界坐标系;
顶点坐标读取单元,用于读取所述平面标识物的四个顶点的像素坐标;
运算单元,用于将已知的所述平面标识物的四个顶点在世界坐标系的坐标、所述平面标识物的四个顶点的像素坐标,及所述预先获取的所述摄像头的内部参数分别代入下述公式:
Figure FDA0003157896420000071
计算出当前视场的单应性矩阵T=M[r1,r2,r3,t];
其中,(x,y,1)表示视觉定位标识中任一角点在摄像机的图像坐标系中像素坐标的齐次坐标,(X,Y,Z,1)表示所述顶点在世界坐标系中的齐次坐标,简化为(X,Y,0,1),s为引入的任意尺度比例参数,M为摄像机内参矩阵,r1、r2、r3分别表示视觉定位标识坐标系相对于摄像机坐标系的旋转矩阵中的三个列向量,t为平移向量。
13.根据权利要求11所述的一种基于机器视觉的棋子定位系统,其特征在于,所述定位模块还包括:
判断子模块,用于根据所述棋子及所述棋盘的四个角点在所述平面标识物坐标系中的坐标,确定所述棋子处于所述棋盘的四个角点组成的四边形区域内。
14.根据权利要求11所述的一种基于机器视觉的棋子定位系统,其特征在于,所述定位模块还包括:
目标区域确定子模块,用于根据所述棋盘的四个角点在所述平面标识物坐标系中的坐标、及所述摄像头当前视场的单应性矩阵,获得所述棋盘四个角点的像素坐标;并选取所述棋盘四个角点组成的四边形区域作为所述视频图像帧中的目标区域;
所述棋子坐标获取子模块包括:
棋子像素坐标读取单元,用于所述图像识别模块在所述视频图像帧中的目标区域内识别出棋子后,读取所述棋子的像素坐标;
棋子坐标计算单元,用于根据所述棋子的像素坐标及所述单应性矩阵,获取所述棋子在所述平面标识物坐标系中的坐标。
15.一种存储介质,其特征在于,所述存储介质存储有多条指令,所述多条指令被一个或者多个处理器执行,以实现权利要求1-7中任一项所述的基于机器视觉的棋子定位方法的步骤。
16.一种机器人,其特征在于,包括:
处理器,用于实现各指令;
存储介质,用于存储多条指令;
其中:所述处理器用于执行所述存储介质存储的指令,以实现权利要求1-7任一项所述的基于机器视觉的棋子定位方法的步骤。
CN201711006222.4A 2017-10-25 2017-10-25 基于机器视觉的棋子定位方法、系统、存储介质及机器人 Active CN107766855B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201711006222.4A CN107766855B (zh) 2017-10-25 2017-10-25 基于机器视觉的棋子定位方法、系统、存储介质及机器人
PCT/CN2017/112210 WO2019080229A1 (zh) 2017-10-25 2017-11-21 基于机器视觉的棋子定位方法、系统、存储介质及机器人

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711006222.4A CN107766855B (zh) 2017-10-25 2017-10-25 基于机器视觉的棋子定位方法、系统、存储介质及机器人

Publications (2)

Publication Number Publication Date
CN107766855A CN107766855A (zh) 2018-03-06
CN107766855B true CN107766855B (zh) 2021-09-07

Family

ID=61271298

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711006222.4A Active CN107766855B (zh) 2017-10-25 2017-10-25 基于机器视觉的棋子定位方法、系统、存储介质及机器人

Country Status (2)

Country Link
CN (1) CN107766855B (zh)
WO (1) WO2019080229A1 (zh)

Families Citing this family (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110310334B (zh) * 2018-03-20 2023-05-16 深圳市华大智造软件技术有限公司 生物芯片定位方法、基因测序仪及系统、存储介质
CN108627092A (zh) * 2018-04-17 2018-10-09 南京阿凡达机器人科技有限公司 一种包裹体积的测量方法、系统、储存介质及移动终端
CN108550169B (zh) * 2018-04-24 2021-08-10 中北大学 三维空间中象棋棋子位置的确定及其高度的计算方法
CN110660186B (zh) * 2018-06-29 2022-03-01 杭州海康威视数字技术股份有限公司 基于雷达信号在视频图像中识别目标对象的方法及装置
CN108986163A (zh) * 2018-06-29 2018-12-11 南京睿悦信息技术有限公司 基于多标识识别的增强现实定位算法
CN109084953B (zh) * 2018-08-28 2020-03-31 水利部交通运输部国家能源局南京水利科学研究院 水槽中波浪特征参数获取装置及其获取方法
CN109445455B (zh) * 2018-09-21 2022-09-30 深圳供电局有限公司 一种无人飞行器自主降落方法及其控制系统
CN109448045B (zh) * 2018-10-23 2021-02-12 南京华捷艾米软件科技有限公司 基于slam的平面多边形物体测量方法及机器可读存储介质
CN109886278A (zh) * 2019-01-17 2019-06-14 柳州康云互联科技有限公司 一种基于ARMarker的图像特征采集方法
CN109829454A (zh) * 2019-01-17 2019-05-31 柳州康云互联科技有限公司 一种基于预训练标识的图像特征采集方法
CN109815758A (zh) * 2019-01-17 2019-05-28 柳州康云互联科技有限公司 一种基于二维码的图像特征采集方法
CN110211183B (zh) * 2019-06-13 2022-10-21 广州番禺职业技术学院 基于单次成像大视场led透镜贴装的多目标定位系统
CN110322508B (zh) * 2019-06-19 2023-05-05 四川阿泰因机器人智能装备有限公司 一种基于计算机视觉的辅助定位方法
CN112215884A (zh) * 2019-07-09 2021-01-12 北京地平线机器人技术研发有限公司 一种平面标志物的位姿确定方法和装置
CN110260866A (zh) * 2019-07-19 2019-09-20 闪电(昆山)智能科技有限公司 一种基于视觉传感器的机器人定位与避障方法
CN110472625B (zh) * 2019-08-05 2022-12-20 浙江大学 一种基于傅里叶描述子的象棋棋子视觉识别方法
CN112686959A (zh) * 2019-10-18 2021-04-20 菜鸟智能物流控股有限公司 待识别图像的矫正方法及装置
CN111177673B (zh) * 2019-12-30 2023-07-14 四川云盾光电科技有限公司 一种基于视觉的设备安全控制器
CN113192123A (zh) * 2020-01-14 2021-07-30 杭州海康威视数字技术股份有限公司 一种图像处理方法、装置及设备
CN111136669B (zh) * 2020-01-17 2022-09-20 沈阳航空航天大学 一种基于全局视觉的下棋机器人及其控制方法
CN111340891B (zh) * 2020-02-25 2021-02-19 卡莱特(深圳)云科技有限公司 一种利用led屏幕进行相机标定的方法及系统
CN111369614B (zh) * 2020-02-26 2023-07-18 辽宁中新自动控制集团股份有限公司 一种自动寻迹记录围棋棋谱智能小车及方法
CN113450414A (zh) * 2020-03-24 2021-09-28 阿里巴巴集团控股有限公司 一种摄像机标定方法、设备、系统及存储介质
CN111429530B (zh) * 2020-04-10 2023-06-02 浙江大华技术股份有限公司 一种坐标标定方法及相关装置
CN111680685B (zh) * 2020-04-14 2023-06-06 上海高仙自动化科技发展有限公司 一种基于图像的定位方法、装置、电子设备及存储介质
CN111627070B (zh) * 2020-04-30 2024-01-19 如你所视(北京)科技有限公司 一种对旋转轴进行标定的方法、装置和存储介质
CN111798511B (zh) * 2020-05-21 2023-03-24 扬州哈工科创机器人研究院有限公司 一种棋盘棋子定位方法及装置
CN111781113B (zh) * 2020-07-08 2021-03-09 湖南九九智能环保股份有限公司 一种粉尘网格化定位方法及粉尘网格化监测方法
CN112001945B (zh) * 2020-07-13 2023-04-07 西安理工大学 一种适用于生产线作业的多机器人监控方法
CN112037281B (zh) * 2020-08-18 2022-09-23 重庆大学 一种用于引导自动化毛囊采集机器的视觉系统
CN112184831B (zh) * 2020-09-23 2023-06-16 深兰自动驾驶研究院(山东)有限公司 一种rgb图像及ir图像的自动对应标定方法、系统及装置
CN112288751A (zh) * 2020-10-12 2021-01-29 董宇青 一种自动扫地装置及控制算法
CN112270330A (zh) * 2020-11-05 2021-01-26 国网甘肃省电力公司电力科学研究院 一种基于Mask R-CNN神经网络被关注目标的智能检测方法
CN112308933B (zh) * 2020-11-06 2023-01-20 歌尔光学科技有限公司 相机内参标定的方法、装置及计算机存储介质
CN112465916A (zh) * 2020-11-27 2021-03-09 浙江光珀智能科技有限公司 一种基于全视场平面标定板的rgbd双目标定方法及系统
CN112507926B (zh) * 2020-12-16 2022-07-01 电子科技大学 一种基于视频图像分析的围棋复盘方法
CN112529097B (zh) * 2020-12-23 2024-03-26 北京百度网讯科技有限公司 样本图像生成方法、装置以及电子设备
CN112614193B (zh) * 2020-12-25 2024-03-22 中国农业大学 基于机器视觉的小麦返青期喷雾感兴趣区域智能标定方法
CN112907506B (zh) * 2021-01-11 2023-07-07 昆明理工大学 一种基于水尺颜色信息的不定长水尺水位检测方法、装置及存储介质
CN113128499B (zh) * 2021-03-23 2024-02-20 苏州华兴源创科技股份有限公司 视觉成像设备的震动测试方法、计算机设备及存储介质
CN113421307B (zh) * 2021-06-22 2022-11-22 恒睿(重庆)人工智能技术研究院有限公司 一种目标定位方法、装置、计算机设备和存储介质
CN113628273B (zh) * 2021-07-23 2023-12-15 深圳市优必选科技股份有限公司 地图定位方法、装置、计算机可读存储介质及终端设备
CN113808195B (zh) * 2021-08-26 2024-04-12 领翌技术(横琴)有限公司 视觉定位方法、装置及存储介质
CN113743492B (zh) * 2021-08-30 2024-04-19 许继集团有限公司 一种压板行列位置排序方法及装置
CN113888558A (zh) * 2021-09-26 2022-01-04 武汉钢铁有限公司 钢包渣面图像校正方法
CN114001674B (zh) * 2021-09-30 2023-07-04 西北工业大学 一种自由视角下的线束弯曲半径机器视觉测量方法
CN113838149B (zh) * 2021-10-09 2023-08-18 智道网联科技(北京)有限公司 自动驾驶车辆的相机内参标定方法、服务器及系统
CN114544052B (zh) * 2022-01-19 2023-03-28 清华大学 触觉传感器、机器人、实现触觉信息获取的方法及装置
CN116772804A (zh) * 2022-03-10 2023-09-19 华为技术有限公司 一种定位方法和相关设备
CN114399507B (zh) * 2022-03-25 2022-06-17 季华实验室 一种手机外观质量检测方法、装置、电子设备及存储介质
CN114693708B (zh) * 2022-04-20 2024-04-02 太原理工大学 一种锚网孔同行列中心点匹配方法及系统
CN115026828B (zh) * 2022-06-23 2023-07-28 池州市安安新材科技有限公司 一种机器人手臂抓取控制方法及系统
CN114882124B (zh) * 2022-07-06 2022-09-30 季华实验室 标定器具和标定方法、装置、电子设备和存储介质
CN115797467B (zh) * 2023-02-02 2023-07-28 深圳市德驰微视技术有限公司 车辆相机标定结果检测方法、装置、设备及存储介质
CN116499456B (zh) * 2023-06-28 2023-09-05 苏州中德睿博智能科技有限公司 移动机器人自动定位装置、方法及无人割草机定位系统

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN201374082Y (zh) * 2009-03-24 2009-12-30 上海水晶石信息技术有限公司 基于图像特征点提取与随机树分类的增强现实系统
CN101850178A (zh) * 2010-04-22 2010-10-06 北京联合大学生物化学工程学院 基于图像识别的自动计时记谱的围棋棋具
CN201744156U (zh) * 2010-04-22 2011-02-16 北京联合大学生物化学工程学院 基于图像识别的自动计时记谱的围棋棋具
KR20150135005A (ko) * 2014-05-23 2015-12-02 (주)도울정보기술 스마트 장기 로봇
CN106110648A (zh) * 2016-08-25 2016-11-16 张选琪 Agv象棋系统
CN106327534A (zh) * 2016-08-31 2017-01-11 杭州沃朴物联科技有限公司 一种基于定位块的轮胎内壁纹理识别方法
CN106484081A (zh) * 2015-08-24 2017-03-08 吕广兴 一种基于计算机视觉的五子棋人机对弈的解决方案
CN106548519A (zh) * 2016-11-04 2017-03-29 上海玄彩美科网络科技有限公司 基于orb‑slam和深度相机的真实感的增强现实方法
CN106924961A (zh) * 2017-04-01 2017-07-07 哈尔滨工业大学 一种智能象棋对弈控制方法及系统
CN107230234A (zh) * 2017-05-08 2017-10-03 上海工程技术大学 一种基于三线结构光的相机平面标定方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2003900861A0 (en) * 2003-02-26 2003-03-13 Silverbrook Research Pty Ltd Methods,systems and apparatus (NPS042)
FR3043235B1 (fr) * 2015-11-04 2018-04-27 Smartpixels Calibration d'un systeme de mapping video
CN106529531A (zh) * 2016-10-31 2017-03-22 华南理工大学 一种基于图像处理的中国象棋识别系统及方法
CN106920261B (zh) * 2017-03-02 2019-09-03 江南大学 一种机器人手眼静态标定方法

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN201374082Y (zh) * 2009-03-24 2009-12-30 上海水晶石信息技术有限公司 基于图像特征点提取与随机树分类的增强现实系统
CN101850178A (zh) * 2010-04-22 2010-10-06 北京联合大学生物化学工程学院 基于图像识别的自动计时记谱的围棋棋具
CN201744156U (zh) * 2010-04-22 2011-02-16 北京联合大学生物化学工程学院 基于图像识别的自动计时记谱的围棋棋具
KR20150135005A (ko) * 2014-05-23 2015-12-02 (주)도울정보기술 스마트 장기 로봇
CN106484081A (zh) * 2015-08-24 2017-03-08 吕广兴 一种基于计算机视觉的五子棋人机对弈的解决方案
CN106110648A (zh) * 2016-08-25 2016-11-16 张选琪 Agv象棋系统
CN106327534A (zh) * 2016-08-31 2017-01-11 杭州沃朴物联科技有限公司 一种基于定位块的轮胎内壁纹理识别方法
CN106548519A (zh) * 2016-11-04 2017-03-29 上海玄彩美科网络科技有限公司 基于orb‑slam和深度相机的真实感的增强现实方法
CN106924961A (zh) * 2017-04-01 2017-07-07 哈尔滨工业大学 一种智能象棋对弈控制方法及系统
CN107230234A (zh) * 2017-05-08 2017-10-03 上海工程技术大学 一种基于三线结构光的相机平面标定方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
机器人视觉系统中的物体检测技术研究;毛玉仁;《中国优秀硕士学位论文全文数据库信息科技辑》;20170815;论文第2章 *
毛玉仁.机器人视觉系统中的物体检测技术研究.《中国优秀硕士学位论文全文数据库信息科技辑》.2017, *

Also Published As

Publication number Publication date
CN107766855A (zh) 2018-03-06
WO2019080229A1 (zh) 2019-05-02

Similar Documents

Publication Publication Date Title
CN107766855B (zh) 基于机器视觉的棋子定位方法、系统、存储介质及机器人
CN110675487B (zh) 基于多角度二维人脸的三维人脸建模、识别方法及装置
CN106683070B (zh) 基于深度相机的身高测量方法及装置
WO2019200837A1 (zh) 一种包裹体积的测量方法、系统、储存介质及移动终端
CN108921907B (zh) 一种运动测试评分的方法、装置、设备及存储介质
EP3067861A2 (en) Determination of a coordinate conversion parameter
US8917317B1 (en) System and method for camera calibration
CN101697233A (zh) 一种基于结构光的三维物体表面重建方法
CN112132907B (zh) 一种相机标定方法、装置、电子设备及存储介质
CN111307039A (zh) 一种物体长度识别方法、装置、终端设备和存储介质
CN111681186A (zh) 图像处理方法、装置、电子设备及可读存储介质
CN115035546A (zh) 三维人体姿态检测方法、装置及电子设备
CA3131590C (en) Golf ball set-top detection method, system and storage medium
CN109876417B (zh) 基于计算机视觉检测技术的羽毛球发球助理裁判系统
CN109254663B (zh) 一种儿童图书辅助阅读机器人的使用方法
Valgma et al. Iterative closest point based 3d object reconstruction using rgb-d acquisition devices
CN115239801A (zh) 一种对象定位方法及装置
CN115345927A (zh) 展品导览方法及相关装置、移动终端和存储介质
CN110674817B (zh) 一种基于双目摄像头的车牌防伪的方法及装置
CN113587895A (zh) 双目测距方法及装置
CN112749664A (zh) 一种手势识别方法、装置、设备、系统及存储介质
CN111387987A (zh) 一种基于图像识别的身高测量方法、装置、设备及存储介质
CN111860544B (zh) 一种投影辅助衣物特征提取方法及系统
KR102603819B1 (ko) 골프공 착지형 검출방법, 시스템 및 저장매체
CN116503387B (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