掌桥专利:专业的专利平台
掌桥专利
首页

图像处理方法、装置、电子设备、对弈机器人及存储介质

文献发布时间:2023-06-19 16:06:26



技术领域

本公开涉及但不限于计算机视觉处理技术,尤其涉及一种图像处理方法、装置、对弈机器人和计算机存储介质。

背景技术

在相关技术中,基于计算机视觉处理技术的对弈机器人具有成本低,精度高,交互性更好的优势,上述对弈机器人可以通过文字识别技术识别中国象棋的棋子,由于国际象棋的棋子上并不存在文字信息,并且,国际象棋的部分棋子并不是中心对称的,不利于抓取棋子;因此,在对弈机器人中,如何识别图像中国际象棋的棋子,并通过机械臂可靠地抓取棋子,是亟待解决的技术问题。

发明内容

本公开实施例至少提供了一种图像处理方法、装置、对弈机器人和计算机存储介质。

本公开实施例提供了一种图像处理方法,该方法可以包括:获取第一图像,所述第一图像表示国际象棋的棋盘和各棋子的图像;利用神经网络对所述第一图像进行处理,确定所述第一图像中每个棋子的属性数据,所述属性数据包括检测框、棋子类别和棋子的旋转角度;所述神经网络是根据样本图像集和标注信息训练得到的;所述样本图像集中的每个图像表示所述棋盘和各棋子的样本图像;所述标注信息包括所述样本图像中棋子的标注的属性数据;根据所述每个棋子的检测框在所述第一图像中的位置、以及所述每个棋子的棋子类别,生成决策信息,所述决策信息用于指示所述棋盘中的待移动棋子、以及所述第一图像中所述待移动棋子的目的位置;根据所述待移动棋子的旋转角度,确定所述待移动棋子的抓取角度;控制机械臂以所述抓取角度抓取所述待移动棋子,并将所述待移动棋子移动至所述目的位置。

在一些实施例中,所述方法还包括:在所述第一图像是图像采集设备采集的图像的情况下,确定所述图像采集设备的相机坐标系与机械臂的基座坐标系的第一变换关系;所述控制机械臂以所述抓取角度抓取所述待移动棋子,并将所述待移动棋子移动至所述目的位置,包括:根据所述待移动棋子的检测框在所述第一图像中的位置、以及所述第一变换关系,确定所述基座坐标系中所述待移动棋子的起点位置;根据所述目的位置、以及所述第一变换关系,确定所述基座坐标系中所述待移动棋子的终点位置;控制所述机械臂在所述起点位置按照所述抓取角度抓取所述待移动棋子,并在所述终点位置放置所述待移动棋子。

可以看出,本公开实施例可以根据待移动棋子的检测框在第一图像中的位置、以及第一图像中待移动棋子的目的位置,分别确定出基座坐标系中待移动棋子的起点位置和终点位置,由于该起点位置和终点位置是基座坐标系中的位置,而基座坐标系是根据机械臂的基座的平面确定的坐标系,因此,有利于机械臂根据起点位置和终点位置准确地抓取棋子和放置棋子;并且,由于机械臂可以在起点位置按照抓取角度抓取待移动棋子,而抓取角度是根据待移动棋子的旋转角度确定的,因此,本公开实施例可以通过机械臂在起点位置更加可靠地抓取国际象棋的棋子,有利于可靠地实现国际象棋的对弈。

在一些实施例中,所述方法还包括:在所述第一图像是双目相机采集的图像的情况下,获取所述第一图像中各摆棋位置的深度信息;所述控制机械臂以所述抓取角度抓取所述待移动棋子,并将所述待移动棋子移动至所述目的位置,包括:根据所述待移动棋子的检测框在所述第一图像中的位置、以及所述待移动棋子所处在的摆棋位置的深度信息,确定三维空间坐标系中所述待移动棋子的起点位置;根据所述目的位置、以及所述目的位置所处在的摆棋位置的深度信息,确定所述三维空间坐标系中所述待移动棋子的终点位置;控制所述机械臂在所述起点位置按照所述抓取角度抓取所述待移动棋子,并在所述终点位置放置所述待移动棋子。

可以看出,在第一图像是双目相机采集的图像的情况下,无需预先确定第一变换关系,而是可以根据待移动棋子所处在的摆棋位置的已知深度信息、以及目的位置所处在的摆棋位置的已知深度信息,确定基座坐标系中待移动棋子的起点位置和终点位置,因此,在一定程度上可以更加简单地确定基座坐标系中待移动棋子的起点位置和终点位置。并且,由于机械臂可以在起点位置按照抓取角度抓取待移动棋子,而抓取角度是根据待移动棋子的旋转角度确定的,因此,本公开实施例可以通过机械臂在起点位置更加可靠地抓取国际象棋的棋子,有利于可靠地实现国际象棋的对弈。

在一些实施例中,所述方法还包括:在图像采集设备的至少一个拍摄位姿中,确定每个拍摄位姿对应的第二变换关系,其中,拍摄位姿包括图像采集设备拍摄所述棋盘的拍摄角度和拍摄位置,所述第二变换关系表示图像坐标系和棋盘坐标系之间的变换关系;所述根据所述每个棋子的检测框在所述第一图像中的位置、以及所述每个棋子的棋子类别,生成决策信息,包括:响应于第一图像是所述图像采集设备处于第一拍摄位姿采集的图像,且所述第一拍摄位姿为所述至少一个拍摄位姿中的拍摄位姿,根据所述第一图像中每个棋子的检测框的位置、以及所述第一拍摄位姿对应的第二变换关系,确定所述每个棋子在所述棋盘坐标系中的位置;根据所述每个棋子在所述棋盘坐标系中的位置和所述每个棋子的棋子类别,生成所述决策信息。

可以看出,本公开实施例可以针对图像采集设备的至少一个拍摄位姿中的每个拍摄位姿,预先确定图像坐标系和棋盘坐标系之间的变换关系;在获取每个棋子的检测框在第一图像中的位置后,可以根据预先确定的变换关系,在棋盘坐标系中确定棋子的检测框的位置;棋盘坐标系中棋子的检测框的位置可以视为棋盘的俯视图像中对应检测框的位置,因此,在一定程度上降低拍摄位姿对第一图像中棋子定位的影响,例如,在第一图像是图像采集设备对棋盘进行倾斜拍摄得到的图像的情况下,可以降低倾斜拍摄棋盘对第一图像中棋子定位的影响;从而,有利于根据棋子在所述棋盘坐标系中的位置,准确地生成决策信息。

在一些实施例中,所述根据所述每个棋子在所述棋盘坐标系中的位置和所述每个棋子的棋子类别,生成所述决策信息,包括:根据所述每个棋子在所述棋盘坐标系中的位置和所述每个棋子的棋子类别,确定所述棋盘中的棋子分布信息;根据所述棋子分布信息和所述国际象棋的对弈规则,确定所述待移动棋子和所述待移动棋子的行棋策略;根据所述待移动棋子和所述待移动棋子的行棋策略,生成所述决策信息。

可以看出,本公开实施例可以根据每个棋子在棋盘坐标系中的位置、以及每个棋子的棋子类别,准确地确定棋盘中的棋子分布信息;从而,根据准确得出的棋子分布信息,可以准确地确定待移动棋子和待移动棋子的行棋策略,进而可以生成准确的决策信息。

在一些实施例中,所述确定每个拍摄位姿对应的第二变换关系,包括:针对所述每个拍摄位姿,通过对所述图像采集设备和所述棋盘进行标定,确定所述图像采集设备的成像平面与所述棋盘的平面之间的单应性矩阵;将所述单应性矩阵确定为所述第二变换关系。

可以看出,本公开实施例可以通过对图像采集设备和棋盘进行标定,直接确定出第二变换关系,具有简单易实现的特点。

在一些实施例中,在获取所述第一图像后,所述方法还包括:通过对所述第一图像进行角点检测,确定所述第一图像中的棋盘图像;所述利用神经网络对所述第一图像进行处理,确定所述第一图像中每个棋子的属性数据,包括:利用神经网络对所述棋盘图像进行处理,确定所述棋盘图像中每个棋子的属性数据。

可以看出,本公开实施例可以利用神经网络对第一图像中的棋盘图像进行处理,由于无需针对第一图像的全部图像区域进行处理,因此,在一定程度上降低了神经网络处理的数据量,提高了神经网络的图像处理效率。

在一些实施例中,所述神经网络是采用以下步骤训练得到的:将所述样本图像集中的每个样本图像输入至所述神经网络,利用所述神经网络对所述每个样本图像进行处理,得到所述每个样本图像中每个棋子的属性数据;根据所述每个样本图像中每个棋子的属性数据、以及所述标注信息,调整所述神经网络的网络参数值。

可以看出,在本公开实施例中,通过预先训练神经网络,可以使训练完成的神经网络能够识别第一图像中棋子的属性数据,进而,有利于较为准确地生成决策信息。

在一些实施例中,在对所述神经网络进行训练之前,所述方法还包括:利用图像采集设备采集至少两种数据采集状态下的所述棋盘的图像,得到初始图像集;所述数据采集状态是根据以下至少一项确定的:光照强度、棋盘的位姿、棋子的位姿、图像采集设备拍摄所述棋盘的拍摄位姿;对所述初始图像集进行预处理,得到所述样本图像集,或者,将所述初始图像集确定为所述样本图像集。

可以看出,本公开实施例可以根据至少两种数据采集状态下的棋盘的图像,生成初始图像集,从而,根据初始图像集得到样本图像集,即,本公开实施例可以根据至少两种数据采集状态下的棋盘的图像,生成样本图像集,因此,样本图像集的图像可以更加全面地反映不同数据采集状态下的棋盘的图像,在基于样本图像集训练神经网络的情况下,有利于使训练完成的神经网络能够识别各种数据采集状态下的棋盘图像,从而,提升了神经网络处理各类图像的准确性。

在一些实施例中,所述对所述初始图像集进行预处理,得到所述样本图像集,包括以下任意一项:在所述初始图像集中将不符合图像质量要求的图像删除,得到所述样本图像集;基于所述初始图像集中图像的属性,对所述初始图像集进行数据增强,得到所述样本图像集;在所述初始图像集中将不符合图像质量要求的图像删除,得到数据筛选后的图像集;基于所述数据筛选后的图像集中图像的属性,对所述数据筛选后的图像集进行数据增强,得到所述样本图像集。

可以看出,本公开实施例通过将初始图像集中将不符合图像质量要求的图像删除,可以准确地实现数据筛选,将不符合图像质量要求的图像删除,从而可以得到符合图像质量要求的样本图像集,在基于样本图像集训练神经网络的情况下,有利于使训练完成的神经网络能够准确地处理棋盘图像;本公开实施例通过将图像集进行数据增强,有利于得到全面丰富的样本图像集,在基于样本图像集训练神经网络的情况下,有利于提升训练完成的神经网络处理各类棋盘图像的鲁棒性。

本公开实施例还提供了一种图像处理装置,该装置可以包括:

获取模块,用于获取第一图像,所述第一图像表示国际象棋的棋盘和各棋子的图像;

处理模块,用于利用神经网络对所述第一图像进行处理,确定所述第一图像中每个棋子的属性数据,所述属性数据包括检测框、棋子类别和棋子的旋转角度;所述神经网络是根据样本图像集和标注信息训练得到的;所述样本图像集中的每个图像表示所述棋盘和各棋子的样本图像;所述标注信息包括所述样本图像中棋子的标注的属性数据;

所述处理模块,还用于根据所述每个棋子的检测框在所述第一图像中的位置、以及所述每个棋子的棋子类别,生成决策信息,所述决策信息用于指示所述棋盘中的待移动棋子、以及所述第一图像中所述待移动棋子的目的位置;

所述处理模块,还用于根据所述待移动棋子的旋转角度,确定所述待移动棋子的抓取角度;

控制模块,用于控制机械臂以所述抓取角度抓取所述待移动棋子,并将所述待移动棋子移动至所述目的位置。

本公开实施例还提供了一种电子设备,该电子设备包括图像采集设备、处理器和用于存储能够在处理器上运行的计算机程序的存储器;其中,所述处理器用于运行所述计算机程序以执行上述任意一种图像处理方法。

本公开实施例还提供了一种对弈机器人,该对弈机器人包括用于抓取待移动棋子的机械臂,还包括上述任意一种图像处理装置或上述任意一种电子设备。

本公开实施例还提供了一种计算机存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述任意一种图像处理方法。

可以看出,在本公开实施例中,由于神经网络是根据样本图像集和标注信息训练得到的,而样本图像集中的图像为国际象棋的棋盘和各棋子的图像,标注信息包括国际象棋的棋子的标注的属性数据,因此,预先训练的神经网络可以较为准确地识别国际象棋的棋子的属性数据;由于属性数据不仅包括检测框和棋子类别,还包括棋子的旋转角度,因此,在识别第一图像中棋子的检测框位置和棋子类别的基础上,可以根据待移动棋子的旋转角度,确定有利于机械臂可靠地抓取待移动棋子的抓取角度,即,本公开实施例可以通过机械臂更加可靠地抓取国际象棋的棋子,有利于可靠地实现国际象棋的对弈。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,而非限制本公开的技术方案。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。

图1为本公开实施例中对弈机器人、棋盘以及相机的位置示意图;

图2为本公开实施例的一种图像处理方法的流程示意图;

图3为本公开实施例中的另一种图像处理方法的流程示意图;

图4为本公开实施例中的又一种图像处理方法的流程示意图;

图5为本公开实施例中一种生成决策信息的流程示意图;

图6为本公开实施例中另一种生成决策信息的流程示意图;

图7为本公开实施例中神经网络的训练方法的流程图;

图8为本公开实施例中确定样本图像集的流程示意图;

图9为本公开实施例中神经网络的结构示意图;

图10为本公开实施例的图像处理装置的结构示意图;

图11为本公开实施例中电子设备的一种硬件实体示意图。

具体实施方式

为了使本公开的目的、技术方案和优点更加清楚,下面结合附图和实施例对本公开的技术方案进一步详细阐述,所描述的实施例不应视为对本公开的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本公开保护的范围。

在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。

所涉及的术语“第一/第二/第三”仅仅是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一/第二/第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本公开实施例能够以除了在这里图示或描述的以外的顺序实施。

除非另有定义,本文所使用的所有的技术和科学术语与属于本公开的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本公开的目的,不是旨在限制本公开。

为了更好地理解本公开实施例的技术方案,下面先对相关技术中的对弈机器人进行说明。

随着机器人相关技术的发展,机器人的成本得到了有效的下降,同时,其可靠性和安全性得到了进一步提升;基于计算机视觉处理技术的中国象棋对弈机器人已经在市场中崭露头角。

对于中国象棋而言,中国象棋的棋子上存在文字信息,并且中国象棋的每类棋子都是圆形的棋子,因此,对弈机器人可以通过单目红绿蓝(Red Green Blue,RGB)相机采集中国象棋的棋盘图像,并通过文字识别技术识别棋盘图像中的棋子;由于中国象棋的各棋子的高度是一致的,因而,便于通过对棋盘和相机的标定来确定象棋的棋子在棋盘的位置。

对于国际象棋而言,由于国际象棋的棋子上并不存在文字信息,并且,国际象棋中不同类型的棋子的高度并不相同,国际象棋中不同类型的棋子的尺寸也不相同;在采用RGB相机采集国际象棋的棋盘图像后,难以从棋盘图像中准确地对国际象棋的棋子进行识别和定位,进而,不利于对弈机器人对国际象棋的棋局进行准确地决策。

中国象棋的棋子是中心对称的棋子,机械臂可以按照任意的角度抓取中国象棋的棋子;而国际象棋的部分棋子并不是中心对称的棋子,例如,国际象棋中类别为马的棋子不是中心对称的棋子,对于非中心对称的棋子而言,不利于通过机械臂抓取棋子,在这种情况下,需要预先识别棋子的旋转角度,以便于机械臂根据棋子的旋转角度确定相应的抓取角度,从而提升机械臂抓取棋子的可靠性,并降低机械臂触碰周围棋子的概率。

进一步地,在相机朝向国际象棋的棋盘的中心,采用相机垂直拍摄棋盘,可以得到棋盘的垂直拍摄图像,国际象棋棋子的识别依赖于棋子的外观特征,因此,可以根据棋子的外观特征对垂直拍摄图像中棋子进行识别;然而,在相机倾斜拍摄国际象棋的棋盘的图像的情况下,可能对图像中棋子的识别和定位带来挑战;例如,通过倾斜拍摄得到的图像中棋子的特征可能不明显,一些特定的棋子姿态会增加棋子识别的难度。在倾斜拍摄棋盘的相机仅为单目RGB相机的情况下,通过倾斜拍摄得到的图像对棋子进行定位,需要棋子的检测框非常贴近被检测棋子,从而使用检测框的下边缘的坐标数据乘以标定矩阵来近似获得棋子在棋盘上的位置;这里,标定矩阵为成像平面与棋盘所在平面之间的单应性矩阵(Homography)。

本公开实施例提出了一种图像处理方法,可以应用于对弈机器人中,对弈机器人可以包括处理器和用于抓取物体的机械臂;示例性地,处理器用于控制机械臂的工作状态,机械臂的末端可以设置夹具等器件。上述处理器可以为特定用途集成电路(ApplicationSpecific Integrated Circuit,ASIC)、数字信号处理器(Digital Signal Processor,DSP)、数字信号处理装置(Digital Signal Processing Device,DSPD)、可编程逻辑装置(Programmable Logic Device,PLD)、现场可编程门阵列(Field-Programmable GateArray,FPGA)、中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器中的至少一种。

本公开实施例中,上述图像处理方法也可以应用于电子设备中,电子设备可以是对弈机器人中的一部分,也可以是与对弈机器人形成通信连接的其它设备,在电子设备是与对弈机器人形成通信连接的其它设备的情况下,电子设备可以包括对应机器人的上位机和云端设备中的至少一项;电子设备可以包括处理器;在电子设备是与对弈机器人形成通信连接的其它设备的情况下,电子设备可以通过数据线、网络或其它传输方式与对弈机器人进行数据交互。

对弈机器人或电子设备中可以设置图像采集设备,对弈机器人的处理器可以控制对弈机器人的图像采集设备采集图像;在电子设备是与对弈机器人形成通信连接的其它设备的情况下,电子设备可以控制图像采集设备采集图像。

示例性地,参照图1,对弈机器人中的机械臂101用于抓取棋盘102中的棋子,对弈机器人中的图像采集设备103用于拍摄棋盘102的图像;棋盘102可以是国际象棋的棋盘。图像采集设备103可以是单目RGB相机或双目RGB相机;在一些实施例中,参照图1,图像采集设备103可以由支架固定在棋盘102的斜上方,图像采集设备103可以倾斜拍摄棋盘102和各棋子,即,图像采集设备103的镜头朝向并不垂直于棋盘平面,图像采集设备103拍摄棋盘102的角度为倾斜拍摄角度。

图2为本公开实施例的一种图像处理方法的流程图,如图2所示,该流程可以包括:

步骤201:获取第一图像,第一图像表示国际象棋的棋盘和各棋子的图像。

本公开实施例中,第一图像可以是图像采集设备采集的图像,图像采集设备可以朝向棋盘设置,用于至少拍摄棋盘的图像,示例性地,图像采集设备的拍摄区域还可以包括棋盘的周围区域。在一些实施例中,第一图像也可以是在对弈机器人或电子设备的存储器中存储的图像。

在一些实施例中,首先确定图像采集设备的拍摄位姿,使得基于该拍摄位姿拍摄得到的图像存在较少的棋子之间的互相遮挡;然后,在图像采集设备与棋盘之间的相对位姿保持不变的情况下,利用图像采集设备拍摄棋盘,得到第一图像;本公开实施例中,相对位姿包括相对位置和相对角度,拍摄位姿包括图像采集设备拍摄棋盘的拍摄角度和拍摄位置。

步骤202:利用神经网络对第一图像进行处理,确定第一图像中每个棋子的属性数据,属性数据包括检测框、棋子类别和棋子的旋转角度;神经网络是根据样本图像集和标注信息训练得到的;样本图像集中的每个图像表示棋盘和各棋子的样本图像;标注信息包括样本图像中棋子的标注的属性数据。

在一些实施例中,可以在获取第一图像之前,从本地存储区域或网络获取样本图像集;在一些实施例中,可以针对国际象棋的棋盘中的每种棋子分布信息,通过对国际象棋的棋盘进行拍摄,得到样本图像集;这里,国际象棋的棋盘上存在棋子,棋子分布信息表示棋盘上每类棋子的位置分布信息。本公开实施例中,样本图像集中的不同图像可以对应不同的棋子分布信息。

本公开实施例中,检测框可以是矩形检测框或其它形状的检测框,在检测框内的棋子为第一棋子的情况下,检测框在第一图像中的位置可以反映出第一棋子在棋盘中的位置;国际象棋的棋子类别可以包括黑方的王、黑方的后、黑方的车、黑方的象、黑方的马、黑方的兵,白方的王、白方的后、白方的车、白方的象、白方的马和白方的兵。

本公开实施例中,棋子的旋转角度表示棋子的标志部位的朝向在水平面的投影与参考方向之间的角度,参考方向可以是水平面上过棋子底座的中心点的任意射线的方向;棋子的旋转角度可以表示棋子的姿态信息。示例性地,棋子的标志部位可以是棋子上相对突出的位置,例如,对于国际象棋的类型为马的棋子,标志部位可以是马嘴;对于中心对称的棋子,棋子的标志部位可以任意设置。

在一些实施例中,在获取样本图像集后,可以针对样本图像集中的每个图像,标注每个棋子的检测框、每个棋子的棋子类别以及每个棋子的旋转角度,从而得到标注信息;示例性地,在图像中需要准确地根据棋子和棋盘的接触位置标注检测框;图像中标注的检测框与棋子的距离小于设定距离阈值,以使图像中标注的检测框尽可能贴近棋子,图像中标注的检测框与棋子的距离可以是图像中标注的检测框的下边缘与棋子的距离;设定距离阈值可以根据神经网络对图像中的棋子进行定位的精度需求进行设置,神经网络对图像中的棋子进行定位的精度要求越高,则设定距离阈值越小。

示例性地,可以采用棋子类别的类别标识标注棋子类别。示例性地,可以采用整数表示棋子的旋转角度,不同的整数对应不同的角度取值范围;例如,在棋子的旋转角度在0°至45°之间的情况下,可以采用数字0表示表示棋子的旋转角度;在棋子的旋转角度在45°至90°之间的情况下,可以采用数字1表示表示棋子的旋转角度;在棋子的旋转角度在90°至135°之间的情况下,可以采用数字2表示表示棋子的旋转角度;在棋子的旋转角度在135°至180°之间的情况下,可以采用数字3表示表示棋子的旋转角度;在棋子的旋转角度在180°至225°之间的情况下,可以采用数字4表示表示棋子的旋转角度;以此类推,可以采用数字对棋子的任意旋转角度进行标注。

当然,在另一些实施例中,可以针对国际象棋中非中心对称的棋子,标注棋子的旋转角度;对于国际象棋中中心对称的棋子,无需标注棋子的旋转角度。

本公开实施例中,在确定样本图像集和标注信息后,可以根据样本图像集和上述标注信息训练神经网络,得到训练完成的神经网络;这里,并不对上述神经网络的架构进行限定,例如,上述神经网络的网络架构可以包括YOLO(You Only Look Once)网络、残差网络(ResNet)或其它网络架构。

在得到训练完成的神经网络后,可以将第一图像输入至训练完成的神经网络,利用训练完成的神经网络对第一图像进行处理;训练完成的神经网络输出第一图像中每个棋子的属性数据。

步骤203:根据每个棋子的检测框在第一图像中的位置、以及每个棋子的棋子类别,生成决策信息,决策信息用于指示棋盘中的待移动棋子以及第一图像中待移动棋子的目的位置。

步骤204:根据待移动棋子的旋转角度,确定待移动棋子的抓取角度。

可以看出,待移动棋子的旋转角度可以表示待移动棋子的标志部位的朝向,因此,根据待移动棋子的旋转角度,确定待移动棋子的标志部位的朝向相匹配的抓取角度,即,确定出待移动棋子的抓取角度。

步骤205:控制机械臂以抓取角度抓取待移动棋子,并将待移动棋子移动至目的位置。

可以看出,在本公开实施例中,由于神经网络是根据样本图像集和标注信息训练得到的,而样本图像集中的图像为国际象棋的棋盘和各棋子的图像,标注信息包括国际象棋的棋子的标注的属性数据,因此,预先训练的神经网络可以较为准确地识别国际象棋的棋子的属性数据;由于属性数据不仅包括检测框和棋子类别,还包括棋子的旋转角度,因此,在识别第一图像中棋子的检测框位置和棋子类别的基础上,可以根据待移动棋子的旋转角度,确定有利于机械臂可靠地抓取待移动棋子的抓取角度,即,本公开实施例可以通过机械臂更加可靠地抓取国际象棋的棋子,有利于可靠地实现国际象棋的对弈。

本公开的一些实施例中,在获取第一图像之后,还可以通过对第一图像进行角点检测,确定第一图像中的棋盘图像。

这里,角点是图像中的重要特征,对帮助理解和分析图像有重要的作用。角点在保留图像重要特征的同时,可以有效地减少信息的数据量。角点检测是计算机视觉系统中获得图像特征的一种方法,本公开实施例中,上述角点检测方法可以是基于灰度图像的角点检测方法、基于二值图像的角点检测方法或基于轮廓曲线的角点检测方法。示例性地,可以基于OpenCV视觉库对第一图像进行角点检测。

本公开实施例中,通过对第一图像进行角点检测,可以确定棋盘的四个角点,从而确定国际象棋的棋盘在第一图像的位置,即可以确定第一图像中的棋盘图像。

在确定第一图像中的棋盘图像后,可以利用神经网络对棋盘图像进行处理,确定棋盘图像中每个棋子的属性数据。

可以看出,本公开实施例可以利用神经网络对第一图像中的棋盘图像进行处理,由于无需针对第一图像的全部图像区域进行处理,因此,在一定程度上降低了神经网络处理的数据量,提高了神经网络的图像处理效率。

本公开的一些实施例中,在第一图像是图像采集设备采集的图像的情况下,确定图像采集设备的相机坐标系与机械臂的基座坐标系的第一变换关系。

这里,相机坐标系可以是以图像采集设备的成像平面中心为原点,x、y轴位于成像平面的坐标系,相机坐标系的z轴为垂直于成像平面的轴;基座坐标系可以是以机械臂的基座底面的中心点为原点,x、y轴位于基座底面所在平面的坐标系;基座坐标系的z轴为垂直于基座底面所在平面的轴。

在一些实施例中,可以通过对图像采集设备和机械臂进行手眼标定,确定第一变换关系,即,第一变换关系为标准手眼标定变换关系。

在一些实施例中,参照图3,本公开实施例的另一种图像处理方法的流程可以包括:

步骤301:获取第一图像,第一图像表示国际象棋的棋盘和各棋子的图像。

步骤302:利用神经网络对第一图像进行处理,确定第一图像中每个棋子的属性数据。

步骤303:根据每个棋子的检测框在第一图像中的位置、以及每个棋子的棋子类别,生成决策信息。

步骤304:根据待移动棋子的旋转角度,确定待移动棋子的抓取角度。

这里,步骤301至步骤304的实现方式与步骤201至步骤204的实现方式相同。

步骤305:根据待移动棋子的检测框在第一图像中的位置、以及第一变换关系,确定基座坐标系中所述待移动棋子的起点位置。

这里,待移动棋子的检测框在第一图像中的位置可以是待移动棋子的检测框的任意一个边缘在第一图像中的位置;示例性地,在待移动棋子的检测框为矩形检测框的情况下,待移动棋子的检测框在第一图像中的位置可以是待移动棋子的检测框的上边缘、下边缘、左边缘或右边缘在第一图像中的位置。

在一些实施例中,第一变换关系可以通过第一坐标变换矩阵表示,待移动棋子的检测框在第一图像中的位置可以通过第一坐标数据表示,基座坐标系中待移动棋子的起点位置可以通过第二坐标数据表示;这样,可以将第一坐标数据与第一坐标变换矩阵相乘,得到第二坐标数据,即,可以确定基座坐标系中待移动棋子的起点位置。

步骤306:根据目的位置以及第一变换关系,确定基座坐标系中待移动棋子的终点位置。

在一些实施例中,第一图像中待移动棋子的目的位置可以通过第三坐标数据表示,基座坐标系中待移动棋子的终点位置可以通过第四坐标数据表示,这样,可以将第三坐标数据与第一坐标变换矩阵相乘,得到第四坐标数据,即,可以确定基座坐标系中待移动棋子的终点位置。

需要说明的是,本公开实施例并不对步骤305和步骤306的执行顺序进行限定。

步骤307:控制机械臂在起点位置按照抓取角度抓取待移动棋子,并在终点位置放置待移动棋子。

本公开实施例中,在确定基座坐标系中待移动棋子的起点位置、待移动棋子的终点位置、以及待移动棋子的抓取角度后,可以根据上述起点位置、终点位置和抓取角度对机械臂进行逆运动学求解,从而确定机械臂的可执行指令。这里,逆运动学是决定要达成所需要的姿势所要设置的关节可活动对象的参数的过程,根据上述起点位置、终点位置和抓取角度对机械臂进行逆运动学求解,可以确定机械臂的关节活动参数,并且,根据上述起点位置和终点位置,还可以确定机械臂的运动轨迹;即,机械臂的可执行指令可以指示机械臂的关节活动参数和运动轨迹。

在一些实施例中,在确定机械臂的可执行指令后,可以向机械臂下发可执行指令,从而控制机械臂执行可执行指令,使得机械臂在起点位置按照抓取角度抓取待移动棋子,并在终点位置放置待移动棋子。

可以看出,本公开实施例可以根据待移动棋子的检测框在第一图像中的位置、以及第一图像中待移动棋子的目的位置,分别确定出基座坐标系中待移动棋子的起点位置和终点位置,由于该起点位置和终点位置是基座坐标系中的位置,而基座坐标系是根据机械臂的基座的平面确定的坐标系,因此,有利于机械臂根据起点位置和终点位置准确地抓取棋子和放置棋子;并且,由于机械臂可以在起点位置按照抓取角度抓取待移动棋子,而抓取角度是根据待移动棋子的旋转角度确定的,因此,本公开实施例可以通过机械臂在起点位置更加可靠地抓取国际象棋的棋子,有利于可靠地实现国际象棋的对弈。

本公开的一些实施例中,在第一图像是双目相机采集的图像的情况下,获取第一图像中各摆棋位置的深度信息。

这里,双目相机表示采用双目立体视觉技术的图像采集设备,针对双目相机采集的第一图像,可以确定第一图像中各个位置的深度信息;深度信息用于反映第一图像中每个像素点对应的实际位置与双目相机的距离。

在一些实施例中,参照图4,本公开实施例的又一种图像处理方法的流程可以包括:

步骤401:获取第一图像,第一图像表示国际象棋的棋盘和各棋子的图像。

步骤402:利用神经网络对第一图像进行处理,确定第一图像中每个棋子的属性数据。

步骤403:根据每个棋子的检测框在第一图像中的位置、以及每个棋子的棋子类别,生成决策信息。

步骤404:根据待移动棋子的旋转角度,确定待移动棋子的抓取角度。

这里,步骤401至步骤404的实现方式与步骤201至步骤204的实现方式相同。

步骤405:根据待移动棋子的检测框在第一图像中的位置、以及待移动棋子所处在的摆棋位置的深度信息,确定三维空间坐标系中待移动棋子的起点位置。

这里,三维空间坐标系可以是机械臂的基座坐标系或其它的三维空间坐标系。由于第一图像中每个像素点的深度信息可以表征该像素点对应的实际位置与图像采集设备的距离,因此,根据每个摆棋位置在第一图像中的位置、以及每个摆棋位置与图像采集设备的距离,可以在三维空间坐标系中确定出各个摆棋位置的相对位置关系,进而,可以计算出三维空间坐标系中各个摆棋位置的坐标;在三维空间坐标系的各个摆棋位置的坐标中,可以确定待移动棋子所处在的摆棋位置的坐标,待移动棋子所处在的摆棋位置的坐标为三维空间坐标系中待移动棋子的起点位置。

步骤406:根据目的位置、以及目的位置所处在的摆棋位置的深度信息,确定三维空间坐标系中待移动棋子的终点位置。

这里,可以根据目的位置、以及目的位置所处在的摆棋位置的深度信息,并参照三维空间坐标系中待移动棋子的起点位置的计算方式,计算出三维空间坐标系中待移动棋子的终点位置。

需要说明的是,本公开实施例并不对步骤405和步骤406的执行顺序进行限定。

步骤407:控制机械臂在起点位置按照抓取角度抓取所述待移动棋子,并在终点位置放置待移动棋子。

这里,步骤407的实现方式与步骤307的实现方式相同。

可以看出,在第一图像是双目相机采集的图像的情况下,无需预先确定第一变换关系,而是可以根据待移动棋子所处在的摆棋位置的已知深度信息、以及目的位置所处在的摆棋位置的已知深度信息,确定基座坐标系中待移动棋子的起点位置和终点位置,因此,在一定程度上可以更加简单地确定基座坐标系中待移动棋子的起点位置和终点位置。并且,由于机械臂可以在起点位置按照抓取角度抓取待移动棋子,而抓取角度是根据待移动棋子的旋转角度确定的,因此,本公开实施例可以通过机械臂在起点位置更加可靠地抓取国际象棋的棋子,有利于可靠地实现国际象棋的对弈。

本公开的一些实施例中,可以在图像采集设备的至少一个拍摄位姿中,确定每个拍摄位姿对应的第二变换关系,其中,第二变换关系表示图像坐标系和棋盘坐标系之间的变换关系。

这里,图像坐标系表示图像采集设备的成像平面内的二维直角坐标系,棋盘坐标系表示棋盘所在平面的二维直角坐标系,

在一些实施例中,可以针对每个拍摄位姿,通过对图像采集设备和棋盘进行标定,确定成像平面与棋盘所在平面之间的单应性矩阵(Homography),该单应性矩阵用于表示第二变换关系。

可以看出,本公开实施例可以通过对图像采集设备和棋盘进行标定,直接确定出第二变换关系,具有简单易实现的特点。

本公开实施例中,对于图像采集设备的不同拍摄位姿,成像平面与棋盘所在平面之间的单应性矩阵可以是不同的矩阵,第二变换关系可以是不同的变换关系。

本公开的一些实施例中,参照图5,根据每个棋子的检测框在第一图像中的位置、以及每个棋子的棋子类别,生成决策信息的流程,可以包括:

步骤501:响应于第一图像是图像采集设备处于第一拍摄位姿采集的图像,且第一拍摄位姿为至少一个拍摄位姿中的拍摄位姿,根据第一图像中每个棋子的检测框的位置、以及第一拍摄位姿对应的第二变换关系,确定每个棋子在棋盘坐标系中的位置。

这里,由于第一拍摄位姿为至少一个拍摄位姿中的拍摄位姿,因此,可以在至少一个拍摄位姿对应的第二变换关系中,确定出第一拍摄位姿对应的第二变换关系。

在一些实施例中,第一拍摄位姿对应第二变换关系可以通过单应性矩阵表示,对于任意一个棋子而言,棋子的检测框在第一图像中的位置可以通过第五坐标数据表示,棋子在棋盘坐标系中的位置可以通过第六坐标数据表示;这样,可以将第五坐标数据与单应性矩阵相乘,得到第六坐标数据,即,可以确定每个棋子在棋盘坐标系中的位置。

棋盘坐标系中棋子的检测框的位置可以视为棋盘的俯视图像中检测框的位置,这里,棋盘的俯视图像是图像采集设备的镜头与棋盘的中心点正对、且镜头方向垂直于棋盘时拍摄的棋盘图像。

步骤502:根据每个棋子在棋盘坐标系中的位置和每个棋子的棋子类别,生成决策信息。

可以看出,本公开实施例可以针对图像采集设备的至少一个拍摄位姿中的每个拍摄位姿,预先确定图像坐标系和棋盘坐标系之间的变换关系;在获取每个棋子的检测框在第一图像中的位置后,可以根据预先确定的变换关系,在棋盘坐标系中确定棋子的检测框的位置;棋盘坐标系中棋子的检测框的位置可以代表棋盘的俯视图像中对应检测框的位置,因此,在一定程度上降低拍摄位姿对第一图像中棋子定位的影响,例如,在第一图像是图像采集设备对棋盘进行倾斜拍摄得到的图像的情况下,可以降低倾斜拍摄棋盘对第一图像中棋子定位的影响;从而,有利于根据棋子在所述棋盘坐标系中的位置,准确地生成决策信息。

本公开的一些实施例中,参照图6,根据每个棋子在棋盘坐标系中的位置和每个棋子的棋子类别,生成所述决策信息的流程,可以包括:

步骤601:根据每个棋子在棋盘坐标系中的位置和每个棋子的棋子类别,确定棋盘中的棋子分布信息。

可以理解地,每个棋子在棋盘坐标系的位置可以反映每个棋子在棋盘中的位置,因此,根据每个棋子在棋盘坐标系的位置、以及每个棋子的棋子类别,可以准确地确定第一图像中的棋子分布信息。

步骤602:根据棋子分布信息和国际象棋的对弈规则,确定待移动棋子和待移动棋子的行棋策略。

本公开实施例中,国际象棋的对弈规则可以是标准的国际象棋的对弈规则,根据国际象棋的对弈规则,可以确定每个棋子允许的每种移动方式。待移动棋子的行棋策略用于表征待移动棋子的一种移动方式。

在一些实施例中,可以根据上述棋子分布信息、以及国际象棋的对弈规则,以提高对弈胜率为目的,确定待移动棋子和待移动棋子的行棋策略。

步骤603:根据待移动棋子和待移动棋子的行棋策略,生成决策信息。

本公开实施例中,在确定待移动棋子的行棋策略后,可以根据待移动棋子的行棋策略表征的移动方式,确定待移动棋子的移动路径,这里,移动路径的起点可以通过每个棋子在棋盘坐标系中的位置确定,移动路径的终点为待移动棋子的目的位置;即,根据移动路径的终点可以确定第一图像中待移动棋子的目的位置,从而,可以生成决策信息。

可以看出,本公开实施例可以根据每个棋子在棋盘坐标系中的位置、以及每个棋子的棋子类别,准确地确定棋盘中的棋子分布信息;从而,根据准确得出的棋子分布信息,可以准确地确定待移动棋子和待移动棋子的行棋策略,进而可以生成准确的决策信息。

下面通过附图示例性地说明上述神经网络的训练过程。

图7为本公开实施例的神经网络的训练方法的流程图,如图7所示,该流程可以包括:

步骤701:获取样本图像集和标注信息。

步骤702:将样本图像集中的每个样本图像输入至神经网络,利用神经网络对每个样本图像进行处理,得到每个样本图像中每个棋子的属性数据。

步骤703:根据每个样本图像中每个棋子的属性数据、以及标注信息,调整神经网络的网络参数值。

对于本步骤的实现方式,示例性地,可以根据每个样本图像中每个棋子的属性数据、以及上述标注信息,确定神经网络的损失;根据神经网络的损失,调整神经网络的网络参数值。

步骤704:判断网络参数值调整后的神经网络是否满足训练结束条件,如果否,则重新执行步骤701至步骤704;如果是,则执行步骤705。

本公开实施例中,训练结束条件可以是训练神经网络时的迭代次数达到设定次数,或者,网络参数值调整后的神经网络对图像的处理满足设定的精度需求;这里,设定次数和设定的精度需求可以是预先设置的参数;示例性地,设定的精度需求与神经网络的损失相关,例如,设定的精度需求可以是上述神经网络的损失小于设定阈值,设定阈值可以根据实际应用需求预先设置。

步骤705:将网络参数值调整后的神经网络作为训练完成的神经网络。

在实际应用中,步骤701至步骤705可以利用上述处理器实现。

可以看出,在本公开实施例中,通过预先训练神经网络,可以使训练完成的神经网络能够识别第一图像中棋子的属性数据,进而,有利于较为准确地生成决策信息。

本公开的一些实施例中,参照图8,确定样本图像集的流程可以包括:

步骤801:利用图像采集设备采集至少两种数据采集状态下的棋盘的图像,得到初始图像集;数据采集状态是根据以下至少一项确定的:光照强度、棋盘的位置、棋子的位姿、图像采集设备拍摄棋盘的拍摄位姿。

这里,棋子的位姿可以表示棋子的位置和棋子的旋转角度。在一些实施例中,可以利用处于第一拍摄位姿的图像采集设备拍摄图像,得到第一拍摄位姿对应的图像,还可以利用处于其它拍摄位姿的图像采集设备拍摄图像,得到其它拍摄位姿对应的图像,将第一拍摄位姿对应的图像和其它拍摄位姿对应的图像作为初始图像集中的图像;例如,其它拍摄位姿是:第一拍摄位姿的基础上对拍摄角度和/或拍摄位置进行随机偏移得到的拍摄位姿。

可以看出,本公开实施例可以利用图像采集设备采集不同光照强度下棋盘的图像;还可以将棋盘的不同位置、棋子的不同位姿或图像采集设备拍摄棋盘的不同拍摄位姿作为不同的数据采集状态。

步骤802:对初始图像集进行预处理,得到样本图像集,或者,将初始图像集确定为样本图像集。

可以看出,本公开实施例可以根据至少两种数据采集状态下的棋盘的图像,生成初始图像集,从而,根据初始图像集得到样本图像集,即,本公开实施例可以根据至少两种数据采集状态下的棋盘的图像,生成样本图像集,因此,样本图像集的图像可以更加全面地反映不同数据采集状态下的棋盘的图像,在基于样本图像集训练神经网络的情况下,有利于使训练完成的神经网络能够识别各种数据采集状态下的棋盘图像,从而,提升了神经网络处理各类图像的准确性。

本公开的一些实施例中,可以在初始图像集中将不符合图像质量要求的图像删除,得到样本图像集。

示例性地,可以根据图像的分辨率确定图像质量要求,图像质量要求可以是图像的分辨率高于预设分辨率。这样,通过在初始图像集中将不符合图像质量要求的图像删除,有利于将不清晰的图像剔除。

示例性地,可以在初始图像集中,将棋子或棋盘被遮挡的图像删除,得到样本图像集,这里,棋子或棋盘被遮挡的图像为不符合图像质量要求的图像。

示例性地,可以在初始图像集中,将不存在棋子的图像删除,得到样本图像集,这里,不存在棋子的图像为不符合图像质量要求的图像。

示例性地,可以根据图像的光照参数确定图像质量要求,这里,图像的光照参数表示拍摄图像时的环境光照,在拍摄图像时的环境光照的光照强度大于第一光照强度阈值,或拍摄图像时的环境光照的光照强度小于第二光照强度阈值,确定图像不符合图像质量要求;第一光照强度阈值大于第二光照强度阈值。在拍摄图像时的环境光照的光照强度小于或等于第一光照强度阈值,且拍摄图像时的环境光照的光照强度大于或等于第二光照强度阈值,确定图像符合图像质量要求。可以看出,本公开实施例可以根据拍摄图像时的环境光照,在环境光照太强或太暗的情况下,将拍摄得到的图像删除。

本公开的一些实施例中,可以基于初始图像集中图像的属性,对初始图像集进行数据增强,得到样本图像集。

本公开实施例中,图像的属性可以是图像的颜色、对比度、图像的区域等;相应地,在第一个示例中,可以通过随机变换初始图像集中图像的颜色,对初始图像集进行数据增强;在第二个示例中,可以通过随机变换初始图像集中图像的对比度,对初始图像集进行数据增强;在第三个示例中,可以通过对初始图像集中图像进行随机区域的截取,对初始图像集进行数据增强;在第四个示例中,可以采用马赛克(Mosaic)数据增强方法对初始图像集进行数据增强。

本公开的一些实施例中,在初始图像集中将不符合图像质量要求的图像删除,得到数据筛选后的图像集;基于数据筛选后的图像集中图像的属性,对数据筛选后的图像集进行数据增强,得到所述样本图像集。

这里,可以参照对初始图像集进行数据增强的方式,对数据筛选后的图像集进行数据增强。

可以看出,本公开实施例通过将初始图像集中将不符合图像质量要求的图像删除,可以准确地实现数据筛选,将不符合图像质量要求的图像删除,从而可以得到符合图像质量要求的样本图像集,在基于样本图像集训练神经网络的情况下,有利于使训练完成的神经网络能够准确地处理棋盘图像;本公开实施例通过将图像集进行数据增强,有利于得到全面丰富的样本图像集,在基于样本图像集训练神经网络的情况下,有利于提升训练完成的神经网络处理各类棋盘图像的鲁棒性。

下面通过一个应用场景的实施例对上述图像处理方法进行示例性说明。在该应用场景中,图像采集设备为单目RGB相机,第一图像是单目RGB相机对国际象棋的棋盘进行倾斜拍摄得到的图像;本公开实施例提出了一种国际象棋机器人对弈系统,实现了基于单目RGB相机采集的棋盘图像的国际象棋对弈。

国际象棋机器人对弈系统包括国际象棋的棋盘和各棋子,还包括对弈机器人;其中,对弈机器人包括机械臂、单目RGB相机和运算单元,运算单元为上述处理器;运算单元可以采用通用串行总线(Universal Serial Bus,USB)或其与机械臂进行通讯,也可以采用USB与单目RGB相机进行通讯;当然,运算单元也可以采用其它通讯方式与机械臂或单目RGB相机。

在一些实施例中,在获取样本图像集后,可以基于样本图像集和标注信息对神经网络进行训练,得到训练完成的神经网络;这里,神经网络可以是基于深度学习框架的神经网络。标注信息中的棋子类别可以包括黑方的王、黑方的后、黑方的车、黑方的象、黑方的马、黑方的兵,白方的王、白方的后、白方的车、白方的象、白方的马和白方的兵。

在一些实施例中,在得到训练完成的神经网络后,可以将训练完成的神经网络量化,然后将量化后的神经网络部署在上述运算单元中。在另一些实施例中,在得到训练完成的神经网络后,可以直接将训练完成的神经网络部署在上述运算单元中。

在得到训练完成的神经网络后,首先可以确定图像采集设备的第一拍摄位姿,使得基于第一拍摄位姿拍摄得到的图像存在较少的棋子之间的互相遮挡;然后,可以对机械臂和单目RGB相机进行手眼标定,确定图像采集设备的相机坐标系与机械臂的基座坐标系的第一变换关系;针对第一拍摄位姿,对单目RGB相机和棋盘进行标定,确定第一拍摄位姿对应的第二变换关系。

在机械臂基座、单目RGB相机和棋盘三者之间的相对位置不变,且单目RGB相机处于第一拍摄位姿的情况下,采用单目RGB相机拍摄得到第一图像。单目RGB可以将第一图像传输至运算单元。

在运算单元中,可以根据训练完成的神经网络对第一图像进行处理,从而确定第一图像中每个棋子的检测框、棋子类别和旋转角度,即,实现对第一图像中棋子的识别和定位。

示例性地,参照图9,神经网络的主干(Backbone)网络901可以对第一图像900进行处理,得到主干网络的输出结果;主干网络901分别连接第一输出层902、第二输出层903和第三输出层904,主干网络901用于将主干网络的输出结果分别发送至第一输出层902、第二输出层903和第三输出层904;第一输出层902用于输出棋子的检测框的位置,例如,棋子的检测框的位置可以通过数组(x,y,w,h)表示,其中,x和y分别表示检测框的中心点的横坐标和纵坐标,w和h分别表示检测框的宽度和高度;第二输出层903用于输出棋子类别的类别标识,第三输出层904用于输出棋子的旋转角度。

示例性地,主干网络901可以是ResNet50网络,第一输出层902、第二输出层903和第三输出层904中,每个输出层的网络架构可以是YOLOv5网络架构或与YOLOv5网络类似的网络架构。

在运算单元中,可以分析第一图像中每个棋子的检测框和棋子类别,得到分析结果;然后,可以根据分析结果生成决策信息。在生成决策信息后,可以根据待移动棋子的抓取角度和决策信息,确定机械臂的可执行指令;将机械臂的可执行指令传输至机械臂。机械臂通过执行可执行指令,可以在起点位置按照上述抓取角度抓取待移动棋子,并在终点位置放置待移动棋子。

机械臂执行上述可执行指令后,可以重复执行步骤201至步骤205,直至完成一局国际象棋的对弈,或者,完成国际象棋的棋盘的相关处理,例如,国际象棋的棋盘的相关处理可以是棋局初始化过程,棋局初始化过程可以是按照国际象棋的标准开局进行摆棋的过程,也可以是按照国际象棋的预设残局进行摆棋的过程。

可以看出,本公开实施例在采用单目RGB相机对棋盘进行倾斜拍摄的情况下,搭建了国际象棋机器人对弈系统;与采集双目相机采集棋盘图像的方案相比,有效降低了硬件成本,降低了系统的复杂程度,提升了系统的交互性,并可以在对弈机器人中预留接口,以便于进一步开发更多有趣的应用。

基于前述的实施例,本公开实施例提供一种图像处理装置,该装置包括的各单元、以及各单元所包括的各模块,可以通过电子设备中的处理器来实现;当然也可通过具体的逻辑电路实现;在实施的过程中,处理器可以为ASIC、DSP、DSPD、PLD、FPGA、CPU、控制器、微控制器、微处理器中的至少一种。

图10为本公开实施例的图像处理装置的结构示意图,如图10所示,该装置包括获取模块1001、处理模块1002和控制模块1003,其中,

获取模块1001,用于获取第一图像,所述第一图像表示国际象棋的棋盘和各棋子的图像;

处理模块1002,用于利用神经网络对所述第一图像进行处理,确定所述第一图像中每个棋子的属性数据,所述属性数据包括检测框、棋子类别和棋子的旋转角度;所述神经网络是根据样本图像集和标注信息训练得到的;所述样本图像集中的每个图像表示所述棋盘和各棋子的样本图像;所述标注信息包括所述样本图像中棋子的标注的属性数据;

处理模块1002,还用于根据所述每个棋子的检测框在所述第一图像中的位置、以及所述每个棋子的棋子类别,生成决策信息,所述决策信息用于指示所述棋盘中的待移动棋子、以及所述第一图像中所述待移动棋子的目的位置;

处理模块1002,还用于根据所述待移动棋子的旋转角度,确定所述待移动棋子的抓取角度;

控制模块1003,用于控制机械臂以所述抓取角度抓取所述待移动棋子,并将所述待移动棋子移动至所述目的位置。

可以看出,在本公开实施例中,由于神经网络是根据样本图像集和标注信息训练得到的,而样本图像集中的图像为国际象棋的棋盘和各棋子的图像,标注信息包括国际象棋的棋子的标注的属性数据,因此,预先训练的神经网络可以较为准确地识别国际象棋的棋子的属性数据;由于属性数据不仅包括检测框和棋子类别,还包括棋子的旋转角度,因此,在识别第一图像中棋子的检测框位置和棋子类别的基础上,可以根据待移动棋子的旋转角度,确定有利于机械臂可靠地抓取待移动棋子的抓取角度,即,本公开实施例可以通过机械臂更加可靠地抓取国际象棋的棋子,有利于可靠地实现国际象棋的对弈。

在一些实施例中,处理模块1002,还用于在所述第一图像是图像采集设备采集的图像的情况下,确定所述图像采集设备的相机坐标系与机械臂的基座坐标系的第一变换关系;

控制模块1003,用于控制机械臂以所述抓取角度抓取所述待移动棋子,并将所述待移动棋子移动至所述目的位置,包括:根据所述待移动棋子的检测框在所述第一图像中的位置、以及所述第一变换关系,确定所述基座坐标系中所述待移动棋子的起点位置;根据所述目的位置、以及所述第一变换关系,确定所述基座坐标系中所述待移动棋子的终点位置;控制所述机械臂在所述起点位置按照所述抓取角度抓取所述待移动棋子,并在所述终点位置放置所述待移动棋子。

可以看出,本公开实施例可以根据待移动棋子的检测框在第一图像中的位置、以及第一图像中待移动棋子的目的位置,分别确定出基座坐标系中待移动棋子的起点位置和终点位置,由于该起点位置和终点位置是基座坐标系中的位置,而基座坐标系是根据机械臂的基座的平面确定的坐标系,因此,有利于机械臂根据起点位置和终点位置准确地抓取棋子和放置棋子;并且,由于机械臂可以在起点位置按照抓取角度抓取待移动棋子,而抓取角度是根据待移动棋子的旋转角度确定的,因此,本公开实施例可以通过机械臂在起点位置更加可靠地抓取国际象棋的棋子,有利于可靠地实现国际象棋的对弈。

在一些实施例中,处理模块1002,还用于在所述第一图像是双目相机采集的图像的情况下,获取所述第一图像中各摆棋位置的深度信息;

控制模块1003,用于控制机械臂以所述抓取角度抓取所述待移动棋子,并将所述待移动棋子移动至所述目的位置,包括:根据所述待移动棋子的检测框在所述第一图像中的位置、以及所述待移动棋子所处在的摆棋位置的深度信息,确定三维空间坐标系中所述待移动棋子的起点位置;根据所述目的位置、以及所述目的位置所处在的摆棋位置的深度信息,确定所述三维空间坐标系中所述待移动棋子的终点位置;控制所述机械臂在所述起点位置按照所述抓取角度抓取所述待移动棋子,并在所述终点位置放置所述待移动棋子。

可以看出,在第一图像是双目相机采集的图像的情况下,无需预先确定第一变换关系,而是可以根据待移动棋子所处在的摆棋位置的已知深度信息、以及目的位置所处在的摆棋位置的已知深度信息,确定基座坐标系中待移动棋子的起点位置和终点位置,因此,在一定程度上可以更加简单地确定基座坐标系中待移动棋子的起点位置和终点位置。并且,由于机械臂可以在起点位置按照抓取角度抓取待移动棋子,而抓取角度是根据待移动棋子的旋转角度确定的,因此,本公开实施例可以通过机械臂在起点位置更加可靠地抓取国际象棋的棋子,有利于可靠地实现国际象棋的对弈。

在一些实施例中,处理模块1002,还用于在图像采集设备的至少一个拍摄位姿中,确定每个拍摄位姿对应的第二变换关系,其中,拍摄位姿包括图像采集设备拍摄所述棋盘的拍摄角度和拍摄位置,所述第二变换关系表示图像坐标系和棋盘坐标系之间的变换关系;

处理模块1002,用于根据所述每个棋子的检测框在所述第一图像中的位置、以及所述每个棋子的棋子类别,生成决策信息,包括:响应于第一图像是所述图像采集设备处于第一拍摄位姿采集的图像,且所述第一拍摄位姿为所述至少一个拍摄位姿中的拍摄位姿,根据所述第一图像中每个棋子的检测框的位置、以及所述第一拍摄位姿对应的第二变换关系,确定所述每个棋子在所述棋盘坐标系中的位置;根据所述每个棋子在所述棋盘坐标系中的位置和所述每个棋子的棋子类别,生成所述决策信息。

可以看出,本公开实施例可以针对图像采集设备的至少一个拍摄位姿中的每个拍摄位姿,预先确定图像坐标系和棋盘坐标系之间的变换关系;在获取每个棋子的检测框在第一图像中的位置后,可以根据预先确定的变换关系,在棋盘坐标系中确定棋子的检测框的位置;棋盘坐标系中棋子的检测框的位置可以视为棋盘的俯视图像中对应检测框的位置,因此,在一定程度上降低拍摄位姿对第一图像中棋子定位的影响,例如,在第一图像是图像采集设备对棋盘进行倾斜拍摄得到的图像的情况下,可以降低倾斜拍摄棋盘对第一图像中棋子定位的影响;从而,有利于根据棋子在所述棋盘坐标系中的位置,准确地生成决策信息。

在一些实施例中,处理模块1002,用于根据所述每个棋子在所述棋盘坐标系中的位置和所述每个棋子的棋子类别,生成所述决策信息,包括:根据所述每个棋子在所述棋盘坐标系中的位置和所述每个棋子的棋子类别,确定所述棋盘中的棋子分布信息;根据所述棋子分布信息和所述国际象棋的对弈规则,确定所述待移动棋子和所述待移动棋子的行棋策略;根据所述待移动棋子和所述待移动棋子的行棋策略,生成所述决策信息。

可以看出,本公开实施例可以根据每个棋子在棋盘坐标系中的位置、以及每个棋子的棋子类别,准确地确定棋盘中的棋子分布信息;从而,根据准确得出的棋子分布信息,可以准确地确定待移动棋子和待移动棋子的行棋策略,进而可以生成准确的决策信息。

在一些实施例中,处理模块1002,用于确定每个拍摄位姿对应的第二变换关系,包括:针对所述每个拍摄位姿,通过对所述图像采集设备和所述棋盘进行标定,确定所述图像采集设备的成像平面与所述棋盘的平面之间的单应性矩阵;将所述单应性矩阵确定为所述第二变换关系。

可以看出,本公开实施例可以通过对图像采集设备和棋盘进行标定,直接确定出第二变换关系,具有简单易实现的特点。

在一些实施例中,处理模块1002,还用于通过对所述第一图像进行角点检测,确定所述第一图像中的棋盘图像;所述利用神经网络对所述第一图像进行处理,确定所述第一图像中每个棋子的属性数据,包括:利用神经网络对所述棋盘图像进行处理,确定所述棋盘图像中每个棋子的属性数据。

可以看出,本公开实施例可以利用神经网络对第一图像中的棋盘图像进行处理,由于无需针对第一图像的全部图像区域进行处理,因此,在一定程度上降低了神经网络处理的数据量,提高了神经网络的图像处理效率。

在一些实施例中,该装置还包括训练模块,训练模块用于采用以下步骤训练所述神经网络:将所述样本图像集中的每个样本图像输入至所述神经网络,利用所述神经网络对所述每个样本图像进行处理,得到所述每个样本图像中每个棋子的属性数据;根据所述每个样本图像中每个棋子的属性数据、以及所述标注信息,调整所述神经网络的网络参数值。

可以看出,在本公开实施例中,通过预先训练神经网络,可以使训练完成的神经网络能够识别第一图像中棋子的属性数据,进而,有利于较为准确地生成决策信息。

在一些实施例中,训练模块,还用于在对所述神经网络进行训练之前,利用图像采集设备采集至少两种数据采集状态下的所述棋盘的图像,得到初始图像集;所述数据采集状态是根据以下至少一项确定的:光照强度、棋盘的位姿、棋子的位姿、图像采集设备拍摄所述棋盘的拍摄位姿;对所述初始图像集进行预处理,得到所述样本图像集,或者,将所述初始图像集确定为所述样本图像集。

可以看出,本公开实施例可以根据至少两种数据采集状态下的棋盘的图像,生成初始图像集,从而,根据初始图像集得到样本图像集,即,本公开实施例可以根据至少两种数据采集状态下的棋盘的图像,生成样本图像集,因此,样本图像集的图像可以更加全面地反映不同数据采集状态下的棋盘的图像,在基于样本图像集训练神经网络的情况下,有利于使训练完成的神经网络能够识别各种数据采集状态下的棋盘图像,从而,提升了神经网络处理各类图像的准确性。

在一些实施例中,训练模块,用于对所述初始图像集进行预处理,得到所述样本图像集,包括以下任意一项:在所述初始图像集中将不符合图像质量要求的图像删除,得到所述样本图像集;基于所述初始图像集中图像的属性,对所述初始图像集进行数据增强,得到所述样本图像集;在所述初始图像集中将不符合图像质量要求的图像删除,得到数据筛选后的图像集;基于所述数据筛选后的图像集中图像的属性,对所述数据筛选后的图像集进行数据增强,得到所述样本图像集。

可以看出,本公开实施例通过将初始图像集中将不符合图像质量要求的图像删除,可以准确地实现数据筛选,将不符合图像质量要求的图像删除,从而可以得到符合图像质量要求的样本图像集,在基于样本图像集训练神经网络的情况下,有利于使训练完成的神经网络能够准确地处理棋盘图像;本公开实施例通过将图像集进行数据增强,有利于得到全面丰富的样本图像集,在基于样本图像集训练神经网络的情况下,有利于提升训练完成的神经网络处理各类棋盘图像的鲁棒性。

以上装置实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。在一些实施例中,本公开实施例提供的装置具有的功能或包含的模块可以用于执行上述方法实施例描述的方法,对于本公开装置实施例中未披露的技术细节,请参照本公开方法实施例的描述而理解。

需要说明的是,本公开实施例中,如果以软件功能模块的形式实现上述的图像处理方法,并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本公开实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本公开各个实施例所述方法的全部或部分。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read OnlyMemory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本公开实施例不限制于任何特定的硬件、软件或固件,或者硬件、软件、固件三者之间的任意结合。

本公开实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述任意一种图像处理方法中的部分或全部步骤。所述计算机可读存储介质可以是瞬时性的,也可以是非瞬时性的。

本公开实施例提供一种计算机程序,包括计算机可读代码,在所述计算机可读代码在计算机设备中运行的情况下,所述计算机设备中的处理器执行用于实现上述任意一种图像处理方法中的部分或全部步骤。

本公开实施例提供一种计算机程序产品,所述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,所述计算机程序被计算机读取并执行时,实现上述图像处理方法中的部分或全部步骤。该计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一些实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一些实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software DevelopmentKit,SDK)等等。

这里需要指出的是:上文对各个实施例的描述倾向于强调各个实施例之间的不同之处,其相同或相似之处可以互相参考。以上设备、存储介质、计算机程序及计算机程序产品实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于设备、存储介质、计算机程序及计算机程序产品实施例中未披露的技术细节,请参照本公开方法实施例的描述而理解。

需要说明的是,图11为本公开实施例中电子设备的一种硬件实体示意图,如图11所示,电子设备1100可以包括:存储器1101、处理器1102、图像采集设备1103以及存储在存储器1101上并可在处理器1102上运行的计算机程序;其中,

所述处理器1102用于运行所述计算机程序以执行上述任意一种图像处理方法。

在实际应用中,上述存储器1101可以是易失性存储器(volatile memory),例如随机存取存储器(Random Access Memory,RAM);或者非易失性存储器(non-volatilememory),例如ROM,快闪存储器(flash memory),硬盘(Hard Disk Drive,HDD)或固态硬盘(Solid-State Drive,SSD);或者上述种类的存储器的组合,并向处理器1102提供指令和数据。

本公开实施例还提供了一种对弈机器人,该对弈机器人包括用于抓取待移动棋子的机械臂,还包括上述任意一种图像处理装置或上述任意一种电子设备。

应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本公开的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本公开的各种实施例中,上述各步骤/过程的序号的大小并不意味着执行顺序的先后,各步骤/过程的执行顺序应以其功能和内在逻辑确定,而不应对本公开实施例的实施过程构成任何限定。上述本公开实施例序号仅仅为了描述,不代表实施例的优劣。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。

在本公开所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。

上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。

另外,在本公开各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、ROM、磁碟或者光盘等各种可以存储程序代码的介质。

或者,本公开上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本公开各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本公开的实施方式,但本公开的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本公开的保护范围之内。

技术分类

06120114703959