CN115194793A - 控制棋子移动的方法、装置、设备、对弈机器人及介质 - Google Patents

控制棋子移动的方法、装置、设备、对弈机器人及介质 Download PDF

Info

Publication number
CN115194793A
CN115194793A CN202210898728.5A CN202210898728A CN115194793A CN 115194793 A CN115194793 A CN 115194793A CN 202210898728 A CN202210898728 A CN 202210898728A CN 115194793 A CN115194793 A CN 115194793A
Authority
CN
China
Prior art keywords
chess piece
chess
piece
image
point
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.)
Withdrawn
Application number
CN202210898728.5A
Other languages
English (en)
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.)
Shenzhen Sensetime Technology Co Ltd
Original Assignee
Shenzhen Sensetime 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 Shenzhen Sensetime Technology Co Ltd filed Critical Shenzhen Sensetime Technology Co Ltd
Priority to CN202210898728.5A priority Critical patent/CN115194793A/zh
Publication of CN115194793A publication Critical patent/CN115194793A/zh
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J11/00Manipulators not otherwise provided for
    • B25J11/003Manipulators for entertainment
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F3/00Board games; Raffle games
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1602Programme controls characterised by the control system, structure, architecture
    • B25J9/161Hardware, e.g. neural networks, fuzzy logic, interfaces, processor
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1661Programme controls characterised by programming, planning systems for manipulators characterised by task planning, object-oriented languages

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Automation & Control Theory (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Fuzzy Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Image Analysis (AREA)

Abstract

本实施例公开了一种控制棋子移动的方法、装置、电子设备、对弈机器人和计算机存储介质,该方法包括:获取针对棋盘采集的第一点云数据,或者,获取图像采集设备采集的第一图像;利用神经网络对第一点云数据或第一图像进行处理,确定棋盘中每个棋子的属性数据;神经网络是根据样本数据和标注信息训练得到的;样本数据为样本图像集或样本点云数据;标注信息是根据仿真场景的场景配置参数确定的;根据每个棋子的三维位置和棋子类别,生成决策信息,决策信息用于指示待移动棋子以及待移动棋子的目的位置;根据待移动棋子的三维旋转角度,确定待移动棋子的抓取角度;控制机械臂以抓取角度抓取待移动棋子,并将待移动棋子移动至目的位置。

Description

控制棋子移动的方法、装置、设备、对弈机器人及介质
技术领域
本公开涉及但不限于计算机视觉处理技术,涉及但不限于一种控制棋子移动的方法、装置、电子设备、对弈机器人和计算机存储介质。
背景技术
在相关技术中,基于计算机视觉处理技术的对弈机器人具有成本低,精度高,交互性更好的优势;在实际应用中,可以利用训练完成的神经网络对棋子的点云数据或棋子的图像数据进行处理,从而确定棋子的类别、位置和旋转角度,然而,为了训练神经网络,需要在点云数据或图像数据中对棋子的类别、位置和旋转角度进行手动标注,实现较为困难并增加了人力成本。
发明内容
本公开实施例至少提供了一种控制棋子移动的方法、装置、对弈机器人和计算机存储介质。
本公开实施例提供了一种控制棋子移动的方法,该方法可以包括:
获取针对棋盘采集的第一点云数据,或者,获取图像采集设备采集的第一图像,所述第一点云数据表示所述棋盘上各棋子的点云数据,所述第一图像表示棋盘和各棋子的图像;
利用神经网络对所述第一点云数据或所述第一图像进行处理,确定所述棋盘中每个棋子的属性数据,所述属性数据包括棋子的三维位置、棋子类别和棋子的三维旋转角度;所述神经网络是根据样本数据和标注信息训练得到的;所述样本数据为样本图像集或仿真场景中各仿真棋子的样本点云数据,所述样本图像集中的每个样本图像为仿真场景中仿真棋盘和各仿真棋子的图像;所述标注信息表示所述各仿真棋子标注的属性数据,所述标注信息是根据所述仿真场景的场景配置参数确定的;
根据所述每个棋子的三维位置、以及所述每个棋子的棋子类别,生成决策信息,所述决策信息用于指示所述棋盘中的待移动棋子、以及所述待移动棋子的目的位置;
根据所述待移动棋子的三维旋转角度,确定所述待移动棋子的抓取角度;
控制机械臂以所述抓取角度抓取所述待移动棋子,并将所述待移动棋子移动至所述目的位置。
在一些实施例中,所述样本点云数据是由仿真图像采集设备采集的所述各仿真棋子的点云数据,所述样本图像是由仿真图像采集设备采集的图像;所述场景配置参数包括每个仿真棋子的三维位置、所述每个仿真棋子的三维旋转角度、所述每个仿真棋子的类别、以及所述仿真图像采集设备与所述每个仿真棋子的相对位姿。
可以看出,本公开实施例基于场景配置参数,较为准确地确定每个仿真棋子标注的属性数据,有利于实现每个仿真棋子的属性数据的自动标注。
在一些实施例中,所述方法还包括:基于所述仿真图像采集设备与所述每个仿真棋子的相对位姿、所述每个仿真棋子的三维位置、以及所述每个仿真棋子的三维旋转角度,在所述样本数据中确定所述每个仿真棋子的标注的三维位置、以及所述每个仿真棋子的标注的三维旋转角度;基于所述仿真图像采集设备与所述每个仿真棋子的相对位姿、以及所述每个仿真棋子的类别,在所述样本数据中确定所述每个仿真棋子的标注的棋子类别。
可以看出,本公开实施例可以基于仿真图像采集设备与每个仿真棋子的相对位姿,较为准确地在样本数据中针对每个仿真棋子对应的点云数据或图像数据进行标注,从而可以较为准确地实现每个仿真棋子的属性数据的自动标注。
在一些实施例中,利用神经网络对所述第一点云数据进行处理,确定所述棋盘中每个棋子的属性数据,包括:利用神经网络的骨干网络提取所述第一点云数据的特征;利用神经网络的位置检测头、旋转角度检测头和类别检测头分别对所述第一点云数据的特征进行处理,得到所述第一点云数据中每个点的位置、所述第一点云数据中每个点对应的棋子类别、以及所述第一点云数据中每个点对应的棋子三维旋转角度;基于所述第一点云数据中各个点的位置,对所述第一点云数据中的所述各个点进行聚类处理,确定聚类结果;将所述聚类结果中每一类点确定为一个棋子的点;基于所述每个棋子中各个点的位置、所述每个棋子中各个点对应的棋子类别、以及所述每个棋子中各个点对应的棋子三维旋转角度,确定所述每个棋子的属性数据。
可以看出,由于每个棋子中各个点的信息可以较为准确地反映对应棋子的属性数据,因此,基于每个棋子中各个点的位置、每个棋子中各个点对应的棋子类别、以及每个棋子中各个点对应的棋子三维旋转角度,有利于较为准确地确定每个棋子的属性数据。
在一些实施例中,所述基于所述每个棋子中各个点的位置、所述每个棋子中各个点对应的棋子类别、以及所述每个棋子中各个点对应的棋子三维旋转角度,确定所述每个棋子的属性数据,包括:基于所述聚类结果中每一类点的聚类中心,确定所述每个棋子的三维位置;基于所述每个棋子中各个点对应的棋子类别,确定所述每个棋子的棋子类别;基于所述每个棋子中各个点对应的棋子三维旋转角度,确定所述每个棋子的三维旋转角度。
可以看出,由于每个棋子中各个点的位置、每个棋子中各个点对应的棋子类别、以及每个棋子中各个点对应的棋子三维旋转角度可以较为准确地反映对应棋子的属性数据,并且,在本公开实施例中,可以基于每个棋子中各个点的位置、每个棋子中各个点对应的棋子类别、以及每个棋子中各个点对应的棋子三维旋转角度,分别确定出每个棋子的三维位置、棋子类别和三维旋转角度,因此,在一定程度上可以提高每个棋子的三维位置、棋子类别和三维旋转角度的准确性。
在一些实施例中,利用神经网络对所述第一图像进行处理,确定所述棋盘中每个棋子的属性数据,包括:利用神经网络的骨干网络提取所述第一图像的特征;利用神经网络的类别检测头、位置检测头和旋转角度检测头分别对所述第一图像的特征进行处理,得到所述第一图像中每个像素点对应的棋子类别、所述第一图像中每个像素点对应的三维位置、以及所述第一图像中每个像素点对应的三维旋转角度;基于所述第一图像中每个像素点对应的三维位置,对所述第一图像中的各个像素点进行聚类处理,确定聚类结果;将所述聚类结果中每一类像素点确定为一个棋子的像素点;基于所述每个棋子中各个像素点对应的棋子类别、所述每个棋子中各个像素点对应的三维位置、以及所述每个棋子中各个像素点对应的棋子三维旋转角度,确定所述每个棋子的属性数据。
可以看出,由于每个棋子中各个像素点的信息可以较为准确地反映对应棋子的属性数据,因此,基于每个棋子中各个像素点的位置、每个棋子中各个像素点对应的棋子类别、以及每个棋子中各个像素点点对应的棋子三维旋转角度,有利于较为准确地确定每个棋子的属性数据。
在一些实施例中,所述基于所述每个棋子中各个像素点对应的棋子类别、所述每个棋子中各个像素点对应的三维位置、以及所述每个棋子中各个像素点对应的棋子三维旋转角度,确定所述每个棋子的属性数据,包括:基于所述每个棋子中各个像素点对应的棋子类别,确定所述每个棋子的棋子类别;基于所述每个棋子中各个像素点对应的三维位置,确定所述每个棋子的三维位置;基于所述每个棋子中各个像素点对应的棋子三维旋转角度,确定所述每个棋子的三维旋转角度。
可以看出,由于每个棋子中各个像素点的位置、每个棋子中各个像素点对应的棋子类别、以及每个棋子中各个像素点对应的棋子三维旋转角度可以较为准确地反映对应棋子的属性数据,并且,在本公开实施例中,可以基于每个棋子中各个像素点的位置、每个棋子中各个像素点对应的棋子类别、以及每个棋子中各个像素点对应的棋子三维旋转角度,分别确定出每个棋子的三维位置、棋子类别和三维旋转角度,因此,在一定程度上可以提高每个棋子的三维位置、棋子类别和三维旋转角度的准确性。
在一些实施例中,所述属性数据还包括棋子的检测框;所述方法还包括:利用神经网络的检测框输出层对所述第一图像的特征进行处理,得到所述第一图像中每个棋子的检测框;所述基于所述第一图像中每个像素点对应的三维位置,对所述第一图像中的各个像素点进行聚类处理,确定聚类结果,包括:基于所述每个棋子的检测框中各个像素点对应的三维位置,对所述第一图像中的各个像素点进行聚类处理,得到初步聚类结果;针对所述初步聚类结果中的每一类像素点,将位于对应棋子的检测框之外的像素点删除,得到所述聚类结果。
可以看出,由于同一棋子的对应的像素点需要位于同一检测框之内,因此,针对初步聚类结果中的每一类像素点,将位于检测框之外的像素点删除,有利于每一类像素点中不属于棋子的像素点排除,从而使得聚类结果中的每一类像素点能够更加准确地表示同一棋子的像素点,即,有利于提升聚类结果的精度。
在一些实施例中,所述神经网络是采用以下步骤训练得到的:通过对所述仿真场景或所述样本数据进行至少一项领域随机化处理,得到更新后的样本数据;基于所述更新后的样本数据、以及所述各仿真棋子的标注的属性数据,训练所述神经网络。
可以看出,本公开实施例通过对仿真场景或样本数据进行至少一项领域随机化处理,有利于使样本数据更加与真实场景相符,即,有利于使训练数据跨越从仿真到真实的差异,从而使基于训练数据训练得到的神经网络能够较为准确地处理真实场景中棋子的点云数据或图像数据。
在一些实施例中,所述通过对所述仿真场景或所述样本数据进行至少一项领域随机化处理,得到更新后的样本数据,包括:对所述仿真场景的光照、所述仿真场景中仿真图像采集设备的位姿、所述仿真场景中棋盘的位置、所述仿真场景中棋子的数量、以及所述仿真场景中每个棋子的摆放位姿的至少一项进行领域随机化处理,得到所述更新后的样本数据。
可以看出,通过对仿真场景或样本数据进行至少一项领域随机化处理,有利于使样本数据更加与真实场景相符,即,有利于使训练数据跨越从仿真到真实的差异,从而使基于训练数据训练得到的神经网络能够较为准确地处理真实场景中棋子的点云数据或图像数据。
在一些实施例中,在所述样本数据为所述样本点云数据的情况下,所述通过对所述仿真场景或所述样本数据进行至少一项领域随机化处理,包括以下至少一项:对所述样本点云数据随机删除部分点云数据、对所述样本点云数据随机添加噪声;在所述样本数据为所述样本图像集的情况下,所述通过对所述仿真场景或所述样本数据进行至少一项领域随机化处理,包括以下至少一项:对所述样本图像集中的样本图像随机改变背景、对所述样本图像集中的样本图像随机添加噪声。
可以看出,通过对样本数据进行至少一项领域随机化处理,有利于使样本数据更加与真实场景相符,即,有利于使训练数据跨越从仿真到真实的差异,从而使基于训练数据训练得到的神经网络能够较为准确地处理真实场景中棋子的点云数据或图像数据。
本公开实施例还提供了一种控制棋子移动的装置,该装置可以包括:获取模块、处理模块和控制模块,其中,获取模块,用于针对棋盘采集的第一点云数据,或者,获取图像采集设备采集的第一图像,所述第一点云数据表示所述棋盘上各棋子的点云数据,所述第一图像表示棋盘和各棋子的图像;处理模块,用于利用神经网络对所述第一点云数据或所述第一图像进行处理,确定所述棋盘中每个棋子的属性数据,所述属性数据包括棋子的三维位置、棋子类别和棋子的三维旋转角度;所述神经网络是根据样本数据和标注信息训练得到的;所述样本数据为样本图像集或仿真场景中各仿真棋子的样本点云数据,所述样本图像集中的每个样本图像为仿真场景中仿真棋盘和各仿真棋子的图像;所述标注信息表示所述各仿真棋子标注的属性数据,所述标注信息是根据所述仿真场景的场景配置参数确定的;处理模块,还用于根据所述每个棋子的三维位置、以及所述每个棋子的棋子类别,生成决策信息,所述决策信息用于指示所述棋盘中的待移动棋子、以及所述待移动棋子的目的位置;处理模块,还用于根据所述待移动棋子的三维旋转角度,确定所述待移动棋子的抓取角度;控制模块,用于控制机械臂以所述抓取角度抓取所述待移动棋子,并将所述待移动棋子移动至所述目的位置。
在一些实施例中,所述样本点云数据是由仿真图像采集设备采集的所述各仿真棋子的点云数据,所述样本图像是由仿真图像采集设备采集的图像;所述场景配置参数包括每个仿真棋子的三维位置、所述每个仿真棋子的三维旋转角度、所述每个仿真棋子的类别、以及所述仿真图像采集设备与所述每个仿真棋子的相对位姿。
可以看出,本公开实施例基于场景配置参数,较为准确地确定每个仿真棋子标注的属性数据,有利于实现每个仿真棋子的属性数据的自动标注。
在一些实施例中,所述处理模块,还用于基于所述仿真图像采集设备与所述每个仿真棋子的相对位姿、所述每个仿真棋子的三维位置、以及所述每个仿真棋子的三维旋转角度,在所述样本数据中确定所述每个仿真棋子的标注的三维位置、以及所述每个仿真棋子的标注的三维旋转角度;所述处理模块,还用于基于所述仿真图像采集设备与所述每个仿真棋子的相对位姿、以及所述每个仿真棋子的类别,在所述样本数据中确定所述每个仿真棋子的标注的棋子类别。
可以看出,本公开实施例可以基于仿真图像采集设备与每个仿真棋子的相对位姿,较为准确地在样本数据中针对每个仿真棋子对应的点云数据或图像数据进行标注,从而可以较为准确地实现每个仿真棋子的属性数据的自动标注。
在一些实施例中,所述处理模块,用于利用神经网络对所述第一点云数据进行处理,确定所述棋盘中每个棋子的属性数据,包括:利用神经网络的骨干网络提取所述第一点云数据的特征;利用神经网络的位置检测头、旋转角度检测头和类别检测头分别对所述第一点云数据的特征进行处理,得到所述第一点云数据中每个点的位置、所述第一点云数据中每个点对应的棋子类别、以及所述第一点云数据中每个点对应的棋子三维旋转角度;基于所述第一点云数据中各个点的位置,对所述第一点云数据中的所述各个点进行聚类处理,确定聚类结果;将所述聚类结果中每一类点确定为一个棋子的点;基于所述每个棋子中各个点的位置、所述每个棋子中各个点对应的棋子类别、以及所述每个棋子中各个点对应的棋子三维旋转角度,确定所述每个棋子的属性数据。
可以看出,由于每个棋子中各个点的信息可以较为准确地反映对应棋子的属性数据,因此,基于每个棋子中各个点的位置、每个棋子中各个点对应的棋子类别、以及每个棋子中各个点对应的棋子三维旋转角度,有利于较为准确地确定每个棋子的属性数据。
在一些实施例中,所述处理模块,用于基于所述每个棋子中各个点的位置、所述每个棋子中各个点对应的棋子类别、以及所述每个棋子中各个点对应的棋子三维旋转角度,确定所述每个棋子的属性数据,包括:基于所述聚类结果中每一类点的聚类中心,确定所述每个棋子的三维位置;基于所述每个棋子中各个点对应的棋子类别,确定所述每个棋子的棋子类别;基于所述每个棋子中各个点对应的棋子三维旋转角度,确定所述每个棋子的三维旋转角度。
可以看出,由于每个棋子中各个点的位置、每个棋子中各个点对应的棋子类别、以及每个棋子中各个点对应的棋子三维旋转角度可以较为准确地反映对应棋子的属性数据,并且,在本公开实施例中,可以基于每个棋子中各个点的位置、每个棋子中各个点对应的棋子类别、以及每个棋子中各个点对应的棋子三维旋转角度,分别确定出每个棋子的三维位置、棋子类别和三维旋转角度,因此,在一定程度上可以提高每个棋子的三维位置、棋子类别和三维旋转角度的准确性。
在一些实施例中,所述处理模块,用于利用神经网络对所述第一图像进行处理,确定所述棋盘中每个棋子的属性数据,包括:利用神经网络的骨干网络提取所述第一图像的特征;利用神经网络的类别检测头、位置检测头和旋转角度检测头分别对所述第一图像的特征进行处理,得到所述第一图像中每个像素点对应的棋子类别、所述第一图像中每个像素点对应的三维位置、以及所述第一图像中每个像素点对应的三维旋转角度;基于所述第一图像中每个像素点对应的三维位置,对所述第一图像中的各个像素点进行聚类处理,确定聚类结果;将所述聚类结果中每一类像素点确定为一个棋子的像素点;基于所述每个棋子中各个像素点对应的棋子类别、所述每个棋子中各个像素点对应的三维位置、以及所述每个棋子中各个像素点对应的棋子三维旋转角度,确定所述每个棋子的属性数据。
可以看出,由于每个棋子中各个像素点的信息可以较为准确地反映对应棋子的属性数据,因此,基于每个棋子中各个像素点的位置、每个棋子中各个像素点对应的棋子类别、以及每个棋子中各个像素点点对应的棋子三维旋转角度,有利于较为准确地确定每个棋子的属性数据。
在一些实施例中,所述处理模块,用于基于所述每个棋子中各个像素点对应的棋子类别、所述每个棋子中各个像素点对应的三维位置、以及所述每个棋子中各个像素点对应的棋子三维旋转角度,确定所述每个棋子的属性数据,包括:基于所述每个棋子中各个像素点对应的棋子类别,确定所述每个棋子的棋子类别;基于所述每个棋子中各个像素点对应的三维位置,确定所述每个棋子的三维位置;基于所述每个棋子中各个像素点对应的棋子三维旋转角度,确定所述每个棋子的三维旋转角度。
可以看出,由于每个棋子中各个像素点的位置、每个棋子中各个像素点对应的棋子类别、以及每个棋子中各个像素点对应的棋子三维旋转角度可以较为准确地反映对应棋子的属性数据,并且,在本公开实施例中,可以基于每个棋子中各个像素点的位置、每个棋子中各个像素点对应的棋子类别、以及每个棋子中各个像素点对应的棋子三维旋转角度,分别确定出每个棋子的三维位置、棋子类别和三维旋转角度,因此,在一定程度上可以提高每个棋子的三维位置、棋子类别和三维旋转角度的准确性。
在一些实施例中,所述属性数据还包括棋子的检测框;所述处理模块,还用于利用神经网络的检测框输出层对所述第一图像的特征进行处理,得到所述第一图像中每个棋子的检测框;所述处理模块,用于基于所述第一图像中每个像素点对应的三维位置,对所述第一图像中的各个像素点进行聚类处理,确定聚类结果,包括:基于所述每个棋子的检测框中各个像素点对应的三维位置,对所述第一图像中的各个像素点进行聚类处理,得到初步聚类结果;针对所述初步聚类结果中的每一类像素点,将位于对应棋子的检测框之外的像素点删除,得到所述聚类结果。
可以看出,由于同一棋子的对应的像素点需要位于同一检测框之内,因此,针对初步聚类结果中的每一类像素点,将位于检测框之外的像素点删除,有利于每一类像素点中不属于棋子的像素点排除,从而使得聚类结果中的每一类像素点能够更加准确地表示同一棋子的像素点,即,有利于提升聚类结果的精度。
在一些实施例中,所述处理模块,还用于采用以下步骤训练神经网络:通过对所述仿真场景或所述样本数据进行至少一项领域随机化处理,得到更新后的样本数据;基于所述更新后的样本数据、以及所述各仿真棋子的标注的属性数据,训练所述神经网络。
可以看出,本公开实施例通过对仿真场景或样本数据进行至少一项领域随机化处理,有利于使样本数据更加与真实场景相符,即,有利于使训练数据跨越从仿真到真实的差异,从而使基于训练数据训练得到的神经网络能够较为准确地处理真实场景中棋子的点云数据或图像数据。
在一些实施例中,所述处理模块,用于通过对所述仿真场景或所述样本数据进行至少一项领域随机化处理,得到更新后的样本数据,包括:对所述仿真场景的光照、所述仿真场景中仿真图像采集设备的位姿、所述仿真场景中棋盘的位置、所述仿真场景中棋子的数量、以及所述仿真场景中每个棋子的摆放位姿的至少一项进行领域随机化处理,得到所述更新后的样本数据。
可以看出,通过对仿真场景或样本数据进行至少一项领域随机化处理,有利于使样本数据更加与真实场景相符,即,有利于使训练数据跨越从仿真到真实的差异,从而使基于训练数据训练得到的神经网络能够较为准确地处理真实场景中棋子的点云数据或图像数据。
在一些实施例中,在所述样本数据为所述样本点云数据的情况下,所述处理模块,用于通过对所述仿真场景或所述样本数据进行至少一项领域随机化处理,包括以下至少一项:对所述样本点云数据随机删除部分点云数据、对所述样本点云数据随机添加噪声;在所述样本数据为所述样本图像集的情况下,所述处理模块,用于通过对所述仿真场景或所述样本数据进行至少一项领域随机化处理,包括以下至少一项:对所述样本图像集中的样本图像随机改变背景、对所述样本图像集中的样本图像随机添加噪声。
可以看出,通过对样本数据进行至少一项领域随机化处理,有利于使样本数据更加与真实场景相符,即,有利于使训练数据跨越从仿真到真实的差异,从而使基于训练数据训练得到的神经网络能够较为准确地处理真实场景中棋子的点云数据或图像数据。
本公开实施例还提供了一种电子设备,该电子设备包括处理器和用于存储能够在处理器上运行的计算机程序的存储器;其中,所述处理器用于运行所述计算机程序以执行上述任意一种控制棋子移动的方法。
本公开实施例还提供了一种对弈机器人,该对弈机器人包括用于抓取待移动棋子的机械臂,还包括上述任意一种控制棋子移动的装置或上述任意一种电子设备。
本公开实施例还提供了一种计算机存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述任意一种控制棋子移动的方法。
可以看出,在本公开实施例中,可以根据仿真场景的场景配置参数,确定各仿真棋子的标注的属性数据,与相关技术中手动标注棋子的属性数据的方案相比,实现较为简单并降低了人力成本;从而,基于各仿真棋子的标注的属性数据,可以方便快捷地实现神经网络的训练,进而,有利于基于训练完成的神经网络快捷地对点云数据或图像数据进行处理。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,而非限制本公开的技术方案。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。
图1为本公开实施例中对弈机器人的结构示意图;
图2为本公开实施例的一种控制棋子移动的方法的流程图;
图3为本公开实施例中确定仿真棋子的标注的属性数据的流程图;
图4为本公开实施例中神经网络的训练方法的一种流程图;
图5为本公开实施例中神经网络的训练方法的另一种流程图;
图6为本公开实施例中确定棋子的属性数据的流程图一;
图7为本公开实施例中一种神经网络的架构示意图;
图8为本公开实施例中确定棋子的属性数据的流程图二;
图9为本公开实施例中确定棋子的属性数据的流程图三;
图10为本公开实施例中另一种神经网络的架构示意图;
图11为本公开实施例中确定棋子的属性数据的流程图四;
图12为本公开实施例中确定聚类结果的流程图;
图13为本公开实施例的控制棋子移动的装置的结构示意图;
图14为本公开实施例中电子设备的一种硬件实体示意图。
具体实施方式
为了使本公开的目的、技术方案和优点更加清楚,下面结合附图和实施例对本公开的技术方案进一步详细阐述,所描述的实施例不应视为对本公开的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本公开保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
所涉及的术语“第一/第二/第三”仅仅是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一/第二/第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本公开实施例能够以除了在这里图示或描述的以外的顺序实施。
除非另有定义,本文所使用的所有的技术和科学术语与属于本公开的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本公开的目的,不是旨在限制本公开。
为了更好地理解本公开实施例的技术方案,下面先对相关技术中的对弈机器人进行说明。
随着机器人相关技术的发展,机器人的成本得到了有效的下降,同时,其可靠性和安全性得到了进一步提升;基于计算机视觉处理技术的中国象棋对弈机器人已经在市场中崭露头角。
对于中国象棋而言,中国象棋的棋子上存在文字信息,并且中国象棋的每类棋子都是圆形的棋子,因此,对弈机器人可以通过单目红绿蓝(Red Green Blue,RGB)相机采集中国象棋的棋盘图像,并通过文字识别技术识别棋盘图像中的棋子;由于中国象棋的各棋子的高度是一致的,因而,便于通过对棋盘和相机的标定来确定象棋的棋子在棋盘的位置。可以看出,对于中国象棋的棋子的定位方案是一种在二维图像中进行定位的方案。
上述在二维图像中进行棋子定位的方案的实现难度较低,但是不适应于处理多种常见情况,降低了用户体验;首先,只对棋子在棋盘的二维图像进行定位,会使得机械臂只能垂直向下去抓取棋子,但是国际象棋的棋子不是完全对称的,垂直向下去抓取有可能导致棋子不能顺利地被抓起和放下。其次,在下棋的过程中,棋子可能由于各种原因而倾倒或掉落在棋盘上,这种情况只有估计出棋子的6D位姿,机械臂才能将棋子捡起来放好。这里,棋子的6D位姿包括棋子的三维位置以及三维旋转角度,棋子的三维位置表示棋子在三维空间坐标系中的三维坐标位置,棋子的三维旋转角度为棋子旋转的欧拉角,由章动角α、旋进角β和自转角γ组成。
可以看出,由于仅仅在二维图像中进行棋子定位的方案不能处理多种常见情况,因此,不仅需要识别棋子的类别,还需要准确确定棋子的6D位姿,以便于处于多种常见情况,从而完成国际象棋的对弈和摆棋。
在一些实施例中,可以采用单目RGB相机倾斜拍摄国际象棋的棋盘和各棋子的图像,从而实现国际象棋棋子识别和6D位姿估计,这种方案实现成本较低,但是由于难以获取像素点的深度信息,因此,对国际象棋进行棋子识别和6D位姿估计的难度较大,误识别率较高。在一些实施例中,可以使用深度相机采集国际象棋的棋盘和各棋子的点云数据,从而实现国际象棋棋子识别和6D位姿估计,然而,深度相机的成本较高,难以实现大规模应用。
对于单目RGB相机采集的图像数据或深度相机采集的点云数据,需要利用训练完成的神经网络对棋子的图像数据或点云数据进行处理,从而确定棋子的类别、位置和旋转角度,然而,为了训练神经网络,需要在图像数据或点云数据中对棋子的类别、位置和旋转角度进行手动标注,实现较为困难并增加了人力成本。
针对上述技术问题,本公开实施例提出了一种控制棋子移动的方法,可以应用于对弈机器人中,对弈机器人可以包括处理器和用于抓取物体的机械臂;示例性地,处理器用于控制机械臂的工作状态,机械臂的末端可以设置夹具等器件。上述处理器可以为特定用途集成电路(Application Specific Integrated Circuit,ASIC)、数字信号处理器(Digital Signal Processor,DSP)、数字信号处理装置(Digital Signal ProcessingDevice,DSPD)、可编程逻辑装置(Programmable Logic Device,PLD)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器中的至少一种。
本公开实施例中,上述控制棋子移动的方法也可以应用于电子设备中,电子设备可以是对弈机器人中的一部分,也可以是与对弈机器人形成通信连接的其它设备,在电子设备是与对弈机器人形成通信连接的其它设备的情况下,电子设备可以包括对应机器人的上位机和云端设备中的至少一项;电子设备可以包括处理器;在电子设备是与对弈机器人形成通信连接的其它设备的情况下,电子设备可以通过数据线、网络或其它传输方式与对弈机器人进行数据交互。
对弈机器人或电子设备中可以设置图像采集设备,该图像采集设备可以是单目RGB相机或深度相机,对弈机器人的处理器可以控制对弈机器人的单目RGB相机采集图像数据,或者,可以控制对弈机器人的深度相机采集点云数据;在电子设备是与对弈机器人形成通信连接的其它设备的情况下,电子设备可以控制单目RGB相机采集图像数据,或者,控制深度相机采集点云数据。
示例性地,参照图1,对弈机器人中的机械臂101用于抓取棋盘102中的棋子,对弈机器人中的图像采集设备103用于针对棋盘102采集图像数据或点云数据;棋盘102可以是国际象棋的棋盘或其它类型的棋盘。在一些实施例中,参照图1,图像采集设备103可以由支架固定在棋盘102的斜上方,图像采集设备103可以倾斜拍摄棋盘102和各棋子,即,图像采集设备103的镜头朝向并不垂直于棋盘平面,图像采集设备103拍摄棋盘102的角度为倾斜拍摄角度。
图2为本公开实施例的一种控制棋子移动的方法的流程图,如图2所示,该流程可以包括:
步骤201:获取针对棋盘采集的第一点云数据,或者,获取图像采集设备采集的第一图像,第一点云数据表示棋盘上各棋子的点云数据,第一图像表示棋盘和各棋子的图像。
本公开实施例中,在图像采集设备为深度相机的情况下,可以获取深度相机采集的第二点云数据,深度相机可以朝向棋盘设置,用于通过拍摄采集第二点云数据;示例性地,深度相机的拍摄区域还可以包括棋盘的周围区域。第二点云数据至少包括棋盘的点云数据和所述各棋子的点云数据;在获取第二点云数据后,可以基于深度相机的标定参数,将第二点云数据中除所述各棋子的点云数据之外的点云数据剔除,得到第一点云数据;即,第一点云数据为第二点云数据中的一部分,示例性地,除所述各棋子的点云数据之外的点云数据可以是棋盘的点云数据,也可以是桌子的点云数据。
在一些实施例中,第二点云数据由棋盘的点云数据和棋子的点云数据组成,深度相机的标定参数可以包括深度相机的内参和外参,基于深度相机的标定参数可以确定物体的三维位置以及物体的点云数据的对应关系,从而,在预先确定棋盘的三维位置的情况下,可以基于深度相机的标定参数确定第二点云数据中棋盘的点云数据,通过在第二点云数据中删除棋盘的点云数据,可以得到第一点云数据。
在一些实施例中,首先确定深度相机的拍摄位姿,使得基于该拍摄位姿采集的点云数据存在较少的棋子之间的互相遮挡;然后,在深度相机与棋盘之间的相对位姿保持不变的情况下,利用深度相机拍摄棋盘,得到第二点云数据;本公开实施例中,相对位姿包括相对位置和相对角度,拍摄位姿包括拍摄棋盘的拍摄角度和拍摄位置。
可以看出,基于深度相机的标定参数,可以在第二点云数据中较为准确地删除除各棋子的点云数据之外的点云数据,即有利于较为准确地获取各棋子的点云数据。
在一些实施例中,在图像采集设备为单目RGB相机的情况下,可以获取单目RGB相机采集的第一图像。单目RGB相机可以朝向棋盘设置,用于通过拍摄采集第一图像;示例性地,单目RGB相机的拍摄区域还可以包括棋盘的周围区域。
在一些实施例中,首先确定单目RGB相机的拍摄位姿,使得基于该拍摄位姿采集的图像数据存在较少的棋子之间的互相遮挡;然后,在单目RGB相机与棋盘之间的相对位姿保持不变的情况下,利用单目RGB相机拍摄棋盘,得到第一图像。
在一些实施例中,第一点云数据也可以是在对弈机器人或电子设备的存储器中存储的点云数据,第一图像也可以是在对弈机器人或电子设备的存储器中存储的图像。
步骤202:利用神经网络对第一点云数据或第一图像进行处理,确定棋盘中每个棋子的属性数据,属性数据包括棋子的三维位置、棋子类别和棋子的三维旋转角度;神经网络是根据样本数据和标注信息训练得到的;样本数据为样本图像集或仿真场景中各仿真棋子的样本点云数据,样本图像集中的每个样本图像为仿真场景中仿真棋盘和各仿真棋子的图像,标注信息表示各仿真棋子标注的属性数据,标注信息是根据仿真场景的场景配置参数确定的。
在一些实施例中,可以在训练神经网络之前,可以基于预设的场景配置参数生成仿真场景,仿真场景至少包括各仿真棋子和仿真图像采集设备,这里,仿真图像采集设备可以是仿真单目RGB相机或仿真深度相机。通过仿真深度相机对各仿真棋子进行点云数据的采集,可以得到样本点云数据。
在一些实施例中,仿真场景还可以包括仿真棋盘,各仿真棋子可以位于仿真棋盘上;通过仿真单目RGB相机对仿真棋盘和各仿真棋子进行图像数据的采集,可以得到样本图像集。
在一些实施例中,通过仿真深度相机对仿真棋盘和各仿真棋子进行点云数据的采集,可以得到初始点云数据;在获取初始点云数据后,可以在初始点云数据中提取出各仿真棋子的点云数据,即,提取出样本点云数据。示例性地,可以基于仿真深度相机的标定参数,将初始点云数据中除各棋子的点云数据之外的点云数据剔除,从而得到样本点云数据。这里,仿真深度相机的标定参数为已知数据,例如,仿真深度相机的标定参数为预设的场景配置参数中的数据。
在一些实施例中,可以针对仿真棋子的每种棋子分布信息,通过对仿真棋子进行点云数据的采集,得到样本点云数据;即,样本点云数据可以包括多种点云数据,每种点云数据对应一种棋子分布信息,棋子分布信息表示仿真棋盘上每类仿真棋子的位置分布信息。本公开实施例中,样本点云数据中不同类型的点云数据可以对应不同的棋子分布信息。
在一些实施例中,可以针对仿真棋子的每种棋子分布信息,通过对仿真棋盘和各仿真棋子进行图像采集,得到样本图像集;即,样本图像集可以包括多种样本图像,每种样本图像对应一种棋子分布信息。本公开实施例中,样本图像集中不同类型的样本图像可以对应不同的棋子分布信息。
在一些实施例中,可以在基于虚幻引擎(Unreal Engine,UE)4的仿真平台中,根据预设的场景配置参数生成仿真场景,在仿真场景中,设置仿真棋盘和各仿真棋子,不设置机械臂,各仿真棋子位于仿真棋盘上。示例性地,预设的场景配置参数可以包括每个仿真棋子的6D位姿和棋子类别;在获取样本数据后,可以基于样本数据、以及每个仿真棋子的6D位姿和棋子类别,可以确定各仿真棋子的标注的属性数据。可见,在生成仿真场景后,有利于在仿真场景中生成大量带特定标注的训练数据。
本公开实施例中,棋子类别可以用于区分对弈双方的棋子,也可以用于区分对弈一方不同类型的棋子;以国际象棋为例,国际象棋的棋子类别可以包括黑方的王、黑方的后、黑方的车、黑方的象、黑方的马、黑方的兵,白方的王、白方的后、白方的车、白方的象、白方的马和白方的兵。
在一些实施例中,在仿真图像采集设备是仿真单目RGB相机的情况下,预设的场景配置参数还可以包括样本图像对应的语义分割图像,这里,样本图像为仿真单目RGB相机采集的RGB图像,语义分割图像用于表示按照棋子类别对RGB图像进行语义分割的结果,在语义分割图像中,同一个棋子对应的区域标签值相同,不同类型棋子对应语义标签值不同,这里,语义标签值为棋子的类别标识。
本公开实施例中,在确定样本数据、以及各仿真棋子的标注的属性数据后,可以根据样本数据、以及各仿真棋子的标注的属性数据训练神经网络,得到训练完成的神经网络;这里,并不对上述神经网络的架构进行限定,例如,上述神经网络的网络架构可以包括YOLO(You Only Look Once)网络、残差网络(ResNet)或其它网络架构。
在得到训练完成的神经网络后,可以将第一点云数据或第一图像输入至训练完成的神经网络,利用训练完成的神经网络对第一点云数据或第一图像进行处理;训练完成的神经网络输出棋盘中每个棋子的属性数据。
在一些实施例中,属性数据还可以包括棋子的检测框。在仿真图像采集设备是仿真单目RGB相机的情况下,预设的场景配置参数还可以包括样本图像中每个棋子的标注的检测框,示例性地,每个棋子的标注的检测框可以是包含对应棋子的最小矩形框,可见,可以基于每个棋子的标注的检测框的位置,确定每个棋子在图像中的位置。
相应地,在标注信息包括棋子的标注的检测框的情况下,基于样本数据以及标注信息训练神经网络,可以使训练完成的神经网络具有输出棋子的检测框的功能。
步骤203:根据每个棋子的三维位置、以及每个棋子的棋子类别,生成决策信息,决策信息用于指示棋盘中的待移动棋子、以及待移动棋子的目的位置。
在一些实施例中,可以基于每个棋子的三维位置以及棋盘的三维位置,确定每个棋子在棋盘坐标系的位置;基于每个棋子在棋盘坐标系中的位置和每个棋子的棋子类别,确定棋盘中的棋子分布信息;根据棋子分布信息和预设的对弈规则,确定待移动棋子和待移动棋子的行棋策略:根据待移动棋子和待移动棋子的行棋策略,生成决策信息。
这里,可以预先确定棋盘的三维位置,也可以在获取第二点云数据后,通过对第二点云数据进行分析,确定棋盘的三维位置;还可以在获取第一图像后,将第一图像中的棋盘从棋盘坐标系转换至三维空间坐标系,从而确定棋盘的三维位置。棋盘坐标系可以表示棋盘所在平面的二维直角坐标系。
在一些实施例中,可以基于棋盘的三维位置以及每个棋子的三维位置,确定每个棋子与棋盘的相对位置,从而可以确定每个棋子在棋盘坐标系的位置。
由于每个棋子在棋盘坐标系的位置可以反映每个棋子在棋盘中的位置,因此,根据每个棋子在棋盘坐标系的位置、以及每个棋子的棋子类别,可以准确地确定棋盘中的棋子分布信息。
本公开实施例中,预设的对弈规则可以标准的棋类对弈规则,也可以是对弈双方约定的其它对弈规则;以国际象棋为例,预设的对应规则可以是标准的国际象棋的对弈规则。基于预设的对弈规则,可以确定每个棋子允许的每种移动方式。待移动棋子的行棋策略用于表征待移动棋子的一种移动方式。
在一些实施例中,可以根据上述棋子分布信息、以及预设的对弈规则,以提高对弈胜率为目的,确定待移动棋子和待移动棋子的行棋策略。
本公开实施例中,在确定待移动棋子的行棋策略后,可以根据待移动棋子的行棋策略表征的移动方式,确定待移动棋子的移动路径,这里,移动路径的起点可以通过待移动棋子在棋盘坐标系中的位置确定,移动路径的终点为待移动棋子的目的位置;即,根据移动路径的终点可以确定待移动棋子的目的位置,从而,可以生成决策信息。
可以看出,本公开实施例可以根据每个棋子在棋盘坐标系中的位置、以及每个棋子的棋子类别,准确地确定棋盘中的棋子分布信息;从而,根据准确得出的棋子分布信息,可以准确地确定待移动棋子和待移动棋子的行棋策略,进而可以生成准确的决策信息。
步骤204:根据待移动棋子的三维旋转角度,确定待移动棋子的抓取角度。
在一些实施例中,可以预先确定棋子的三维旋转角度与棋子的抓取角度之间的对应关系,从而,在确定待移动棋子的三维旋转角度后,可以确定与待移动棋子的三维旋转角度对应的抓取角度。
步骤205:控制机械臂以抓取角度抓取待移动棋子,并将待移动棋子移动至目的位置。
可以看出,在本公开实施例中,可以根据仿真场景的场景配置参数,确定各仿真棋子的标注的属性数据,与相关技术中手动标注棋子的属性数据的方案相比,实现较为简单并降低了人力成本;从而,基于各仿真棋子的标注的属性数据,可以方便快捷地实现神经网络的训练,进而,有利于基于训练完成的神经网络快捷地对点云数据或图像数据进行处理。
进一步地,由于训练完成的神经网络可以识别棋子的属性数据;由于属性数据不仅包括棋子的三维位置和棋子类别,还包括棋子的三维选择角度,因此,在识别棋子的三维位置和棋子类别的基础上,可以根据待移动棋子的三维旋转角度,确定有利于机械臂可靠地抓取待移动棋子的抓取角度,即,本公开实施例可以通过机械臂更加可靠地抓取棋子,有利于可靠地实现对弈。
本公开的一些实施例中,样本点云数据是由仿真图像采集设备采集的各仿真棋子的点云数据,样本图像是由仿真图像采集设备采集的图像;场景配置参数包括每个仿真棋子的三维位置、每个仿真棋子的三维旋转角度、每个仿真棋子的类别、以及仿真图像采集设备与每个仿真棋子的相对位姿。
这里,可以预先确定场景配置参数,根据场景配置参数生成三维的仿真场景,三维的仿真场景中的物体至少包括仿真图像采集设备和各个仿真棋子;基于仿真图像采集设备与每个仿真棋子的相对位姿,可以确定在样本数据中确定与三维仿真场景中每个仿真棋子对应的点云数据或图像数据,从而确定每个仿真棋子标注的属性数据。
可以看出,本公开实施例基于场景配置参数,较为准确地确定每个仿真棋子标注的属性数据,有利于实现每个仿真棋子的属性数据的自动标注。
本公开的一些实施例中,参照图3,确定仿真棋子的标注的属性数据的流程可以包括:
步骤301:基于仿真图像采集设备与每个仿真棋子的相对位姿、每个仿真棋子的三维位置、以及每个仿真棋子的三维旋转角度,在样本数据中确定每个仿真棋子的标注的三维位置、以及每个仿真棋子的标注的三维旋转角度。
可以理解地,基于仿真图像采集设备与每个仿真棋子的相对位姿,可以在样本数据中确定与三维仿真场景中每个仿真棋子对应的点云数据或图像数据,从而,基于每个仿真棋子的三维位置,可以在样本数据中针对每个仿真棋子对应的点云数据或图像数据,实现三维位置的自动标注;这里,每个仿真棋子对应的点云数据可以包括多个点,每个仿真棋子对应的点云数据中的每个点均可以标注对应的三维位置,从而可以在样本点云数据中,实现各个仿真棋子的各个点的三维位置的自动标注。同理,每个仿真棋子对应的图像可以包括多个像素点,每个仿真棋子对应的每个像素点均可以标注对应的三维位置,从而可以在样本图像中,实现各个仿真棋子的各个像素点的三维位置的自动标注。
在一些实施例中,基于每个仿真棋子的各个点的三维位置,可以在样本点云数据中,标注每个仿真棋子的中心点的三维位置;对于每个仿真棋子对应的点云数据中的每个点,均可以标注该点与仿真棋子中心点的位置偏移向量,示例性地,仿真棋子中一个点的位置偏移向量可以记为(x,y,z)。即,可以在样本点云数据中,实现每个仿真棋子的三维位置的标注、以及每个仿真棋子的各个点的三维位置的标注。在一些实施例中,可以在样本图像中,标注每个仿真棋子的各个像素点对应的三维位置,从而实现每个仿真棋子的三维位置的标注。
在一些实施例中,基于仿真场景中每个仿真棋子的三维旋转角度,可以在样本点云数据中针对每个仿真棋子对应的点云数据,实现每个仿真棋子的各个点的三维旋转角度的标注,示例性地,仿真棋子中每个点的三维旋转角度均为仿真场景对应的仿真棋子的三维旋转角度,该三维旋转角度可以记为(α,β,γ)。在一些实施例中,基于仿真场景中每个仿真棋子的三维旋转角度,可以在样本图像中针对每个仿真棋子对应的图像,实现每个仿真棋子的各个像素点的三维旋转角度的标注。
步骤302:基于仿真图像采集设备与每个仿真棋子的相对位姿、以及每个仿真棋子的类别,在样本数据中确定每个仿真棋子的标注的棋子类别。
这里,基于仿真场景中每个仿真棋子的类别,可以在样本点云数据中针对每个仿真棋子对应的点云数据,实现每个仿真棋子的棋子类别的标注;或者,可以在样本图像中针对每个仿真棋子对应的图像,实现每个仿真棋子的棋子类别的标注。
需要说明的是,本公开实施例并不对步骤301与步骤302的执行顺序进行限定,步骤301可以在步骤302之前执行,也可以在步骤302之后执行;步骤301和步骤302也可以同时执行。
在一些实施例中,在获取样本数据、每个仿真棋子的标注的属性数据、每个仿真棋子各个点的标注的属性数据后,可以保存样本数据、每个仿真棋子的标注的属性数据、每个仿真棋子各个点的标注的属性数据,以便于后续使用。
可以看出,本公开实施例可以基于仿真图像采集设备与每个仿真棋子的相对位姿,较为准确地在样本数据中针对每个仿真棋子对应的点云数据或图像数据进行标注,从而可以较为准确地实现每个仿真棋子的属性数据的自动标注。
本公开的一些实施例中,参照图4,神经网络的训练方法的流程可以包括:
步骤401:通过对仿真场景或样本数据进行至少一项领域随机化处理,得到更新后的样本数据。
本公开实施例中,领域随机化处理表示对数据进行随机改变的处理方式,可以看出,对样本数据进行至少一项领域随机化处理,可以实现样本数据的直接改变;由于样本数据是仿真场景中各仿真棋子的点云数据或图像数据,因此,对仿真场景进行至少一项领域随机化处理,可以实现仿真场景的随机改变,从而实现样本数据的间接改变。
在一些实施例中,通过对仿真场景进行至少一项领域随机化处理,得到更新后的样本数据,可以包括:对仿真场景的光照、仿真场景中仿真图像采集设备的位姿、仿真场景中棋盘的位置、仿真场景中棋子的数量、仿真场景中桌面的纹理、仿真场景中桌面的颜色、以及仿真场景中每个棋子的摆放位姿的至少一项进行领域随机化处理,得到更新后的样本数据。
这里,对于仿真棋盘,可以在仿真深度相机的拍摄范围内,进行一定范围内的棋盘位置的改变;对棋子的摆放位姿的领域随机化处理的方式可以是:棋子竖直摆放,或棋子从仿真棋盘上方随机落下后静止处于棋盘上等。
可以看出,通过对仿真场景进行至少一项领域随机化处理,有利于使样本数据更加与真实场景相符,即,有利于使训练数据跨越从仿真到真实的差异,从而使基于训练数据训练得到的神经网络能够较为准确地处理真实场景中棋子的点云数据或图像数据。
在一些实施例中,在样本数据为样本点云数据的情况下,通过对仿真场景或样本数据进行至少一项领域随机化处理,包括以下至少一项:对样本点云数据随机删除部分点云数据、对样本点云数据随机添加噪声;
示例性地,可以通过对样本点云数据的一小块点云进行随机缺失处理,实现部分点云数据的随机删除。对样本点云数据随机添加的噪声可以是高斯噪声或其它类型的噪声。
在一些实施例中,在样本数据为样本图像集的情况下,通过对仿真场景或样本数据进行至少一项领域随机化处理,包括以下至少一项:对样本图像集中的样本图像随机改变背景、对样本图像集中的样本图像随机添加噪声。
示例性地,样本图像的背景可以是桌面,桌面为仿真场景中用于放置棋盘的仿真桌子的表面;通过对仿真场景中桌面的纹理或仿真场景中桌面的颜色进行随机改变,可以实现对样本图像的领域随机化处理。对样本图像随机添加的噪声可以是高斯噪声或其它类型的噪声。
可以看出,通过对仿真场景或样本数据进行至少一项领域随机化处理,有利于使样本数据更加与真实场景相符,即,有利于使训练数据跨越从仿真到真实的差异,从而使基于训练数据训练得到的神经网络能够较为准确地处理真实场景中棋子的点云数据或图像数据。
步骤402:基于更新后的样本数据、以及各仿真棋子的标注的属性数据,训练神经网络。
在一些实施例中,参照图5,步骤402的实现流程可以包括:
步骤4021:获取更新后的样本数据、以及各仿真棋子的标注的属性数据。
步骤4022:将更新后的样本数据中输入至神经网络,利用神经网络对更新后的样本数据进行处理,得到每个仿真棋子的属性数据。
步骤4023:根据每个仿真棋子的属性数据、以及每个仿真棋子的标注的属性数据,调整神经网络的网络参数值。
对于本步骤的实现方式,示例性地,可以根据每个仿真棋子的属性数据、以及每个仿真棋子的标注的属性数据,确定神经网络的损失;根据神经网络的损失,调整神经网络的网络参数值。
步骤4024:判断网络参数值调整后的神经网络是否满足训练结束条件,如果否,则重新执行步骤4021至步骤4024;如果是,则执行步骤4025。
本公开实施例中,训练结束条件可以是训练神经网络时的迭代次数达到设定次数,或者,网络参数值调整后的神经网络对数据的处理满足设定的精度需求;这里,设定次数和设定的精度需求可以是预先设置的参数;示例性地,设定的精度需求与神经网络的损失相关,例如,设定的精度需求可以是上述神经网络的损失小于设定阈值,设定阈值可以根据实际应用需求预先设置。
步骤4025:将网络参数值调整后的神经网络作为训练完成的神经网络。
在实际应用中,步骤4021至步骤4025可以利用上述处理器实现。
可以看出,本公开实施例通过对仿真场景或样本数据进行至少一项领域随机化处理,有利于使样本数据更加与真实场景相符,即,有利于使训练数据跨越从仿真到真实的差异,从而使基于训练数据训练得到的神经网络能够较为准确地处理真实场景中棋子的点云数据或图像数据。
本公开的一些实施例中,参照图6,在神经网络为处理点云数据的网络的情况下,确定每个棋子的属性数据的流程可以包括:
步骤601:利用神经网络的骨干(Backbone)网络提取第一点云数据的特征。
示例性地,参照图7,神经网络的骨干网络为第一骨干网络701,第一骨干网络701可以是pointnet++网络,第一骨干网络701可以对第一点云数据700进行处理,得到第一点云数据的特征。
步骤602:利用神经网络的位置检测头、旋转角度检测头和类别检测头分别对所述第一点云数据的特征进行处理,得到第一点云数据中每个点的位置、第一点云数据中每个点对应的棋子类别、以及第一点云数据中每个点对应的棋子三维旋转角度。
示例性地,参照图7,神经网络的位置检测头为第一位置检测头702,神经网络的旋转角度检测头为第一旋转角度检测头703,神经网络的类别检测头为第一类别检测头704;第一骨干网络701分别连接第一位置检测头702、第一旋转角度检测头703和第一类别检测头704,第一骨干网络701用于将第一骨干网络的输出结果分别发送至第一位置检测头702、第一旋转角度检测头703和第一类别检测头704;第一位置检测头702用于输出第一点云数据中每个点的位置,第一点云数据中每个点的位置可以通过三维坐标表示;第一旋转角度检测头703用于输出第一点云数据中每个点对应的棋子三维旋转角度;第一类别检测头704用于输出第一点云数据中每个点对应的棋子类别的类别标识,这里,棋子类别的类别标识可以是数字或者英文字符。
示例性地,第一骨干网络701可以是ResNet50网络,第一位置检测头702、第一旋转角度检测头703和第一类别检测头704的网络架构可以是YOLOv5网络架构,也可以是与YOLOv5网络类似的网络架构。
步骤603:基于第一点云数据中各个点的位置,对第一点云数据中的各个点进行聚类处理,确定聚类结果。
步骤604:将聚类结果中每一类点确定为一个棋子的点。
可以理解地,每个棋子对应的不同点彼此相互靠近,而不同棋子之间的点的距离通常大于同一个棋子中不同点的距离,因此,基于第一点云数据中各个点的位置,对第一点云数据中的各个点进行聚类处理,可以将位置互相接近的点视为一类点,从而可以将聚类结果中每一类点确定为一个棋子的点。
步骤605:基于每个棋子中各个点的位置、每个棋子中各个点对应的棋子类别、以及每个棋子中各个点对应的棋子三维旋转角度,确定每个棋子的属性数据。
可以看出,由于每个棋子中各个点的信息可以较为准确地反映对应棋子的属性数据,因此,基于每个棋子中各个点的位置、每个棋子中各个点对应的棋子类别、以及每个棋子中各个点对应的棋子三维旋转角度,有利于较为准确地确定每个棋子的属性数据。
本公开的一些实施例中,参照图8,确定所述每个棋子的属性数据的流程可以包括:
步骤801:基于聚类结果中每一类点的聚类中心,确定每个棋子的三维位置。
这里,每个棋子的三维位置可以包括每个棋子的中心点的三维位置,也可以包括每个棋子的其它点相对于中心点的位置偏移向量。示例性地,可以将聚类结果中每一类点的聚类中心的位置,确定为对应棋子的中心点位置;基于每一类点中各个点的位置、以及相应的聚类中心的位置,可以确定每个棋子的其它点相对于中心点的位置偏移向量。
步骤802:基于每个棋子中各个点对应的棋子类别,确定每个棋子的棋子类别。
示例性地,可以基于投票机制,从每个棋子中各个点对应的棋子类别中选取出每个棋子的棋子类别,即,在每个棋子中各个点对应的棋子类别,将投票数最高的棋子类别作为每个棋子的棋子类别。
步骤803:基于每个棋子中各个点对应的棋子三维旋转角度,确定每个棋子的三维旋转角度。
示例性地,可以每个棋子中各个点对应的棋子三维旋转角度进行平均值计算,从而得出每个棋子的三维旋转角度。
需要说明的是,本公开实施例并不对步骤801、步骤802和步骤803的执行顺序进行限定。
可以看出,由于每个棋子中各个点的位置、每个棋子中各个点对应的棋子类别、以及每个棋子中各个点对应的棋子三维旋转角度可以较为准确地反映对应棋子的属性数据,并且,在本公开实施例中,可以基于每个棋子中各个点的位置、每个棋子中各个点对应的棋子类别、以及每个棋子中各个点对应的棋子三维旋转角度,分别确定出每个棋子的三维位置、棋子类别和三维旋转角度,因此,在一定程度上可以提高每个棋子的三维位置、棋子类别和三维旋转角度的准确性。
本公开的一些实施例中,参照图9,在神经网络为处理图像数据的网络的情况下,确定每个棋子的属性数据的流程可以包括:
步骤901:利用神经网络的骨干网络提取第一图像的特征。
示例性地,参照图10,神经网络的骨干网络为第二骨干网络1001,第二骨干网络1001可以是卷积神经网络,第二骨干网络1001可以对第一图像1000进行处理,得到第一图像的特征。
步骤902:利用神经网络的类别检测头、位置检测头和旋转角度检测头分别对第一图像的特征进行处理,得到第一图像中每个像素点对应的棋子类别、第一图像中每个像素点对应的三维位置、以及第一图像中每个像素点对应的三维旋转角度。
示例性地,参照图10,神经网络的位置检测头为第二位置检测头1002,神经网络的旋转角度检测头为第二旋转角度检测头1003,神经网络的类别检测头为第二类别检测头1004;第二骨干网络1001分别连接第二位置检测头1002、第二旋转角度检测头1003和第二类别检测头1004,第二骨干网络1001用于将第二骨干网络的输出结果分别发送至第二位置检测头1002、第二旋转角度检测头1003和第二类别检测头1004;第二位置检测头1002用于输出第一图像中每个像素点对应的三维位置,第一图像中每个像素点对应的三维位置可以通过三维坐标表示;第二旋转角度检测头1003用于输出第一图像中每个像素点对应的三维旋转角度;第二类别检测头1004用于输出第一图像中每个像素点对应的棋子类别的类别标识,这里,棋子类别的类别标识可以是数字或者英文字符。
示例性地,第二位置检测头1002、第二旋转角度检测头1003和第二类别检测头1004的网络架构可以是YOLOv5网络架构,也可以是与YOLOv5网络类似的网络架构。
步骤903:基于第一图像中每个像素点对应的三维位置,对第一图像中的各个像素点进行聚类处理,确定聚类结果。
步骤904:将聚类结果中每一类像素点确定为一个棋子的像素点。
可以理解地,棋子的各个像素点对应的三维坐标点彼此相互靠近,而不同棋子的三维坐标点之间的距离通常大于同一个棋子中不同三维坐标点的距离,因此,基于第一图像中各个像素点对应的三维位置,对第一图像中的各个像素点进行聚类处理,可以将位置互相接近的点视为一类点,从而可以将聚类结果中每一类点确定为一个棋子的点。
步骤905:基于每个棋子中各个像素点对应的棋子类别、每个棋子中各个像素点对应的三维位置、以及每个棋子中各个像素点对应的棋子三维旋转角度,确定每个棋子的属性数据。
可以看出,由于每个棋子中各个像素点的信息可以较为准确地反映对应棋子的属性数据,因此,基于每个棋子中各个像素点的位置、每个棋子中各个像素点对应的棋子类别、以及每个棋子中各个像素点点对应的棋子三维旋转角度,有利于较为准确地确定每个棋子的属性数据。
本公开的一些实施例中,参照图11,确定所述每个棋子的属性数据的流程可以包括:
步骤1101:基于每个棋子中各个像素点对应的棋子类别,确定每个棋子的棋子类别。
示例性地,第二类别检测头1004用于输出第一图像中每个像素点对应的类别标签,同一棋子的各个像素点对应的类别标签是唯一固定的,即,每个棋子中各个像素点对应的棋子类别相同。
示例性地,可以基于投票机制,从每个棋子中各个像素点对应的棋子类别中选取出每个棋子的棋子类别,即,在每个棋子中各个像素点对应的棋子类别,将投票数最高的棋子类别作为每个棋子的棋子类别。
步骤1102:基于每个棋子中各个像素点对应的三维位置,确定每个棋子的三维位置。
示例性地,每个棋子中各个像素点对应的三维位置可以通过三维坐标表示,可以对每个棋子中各个像素点对应的三维坐标进行平均值计算,从而确定每个棋子的三维坐标。
步骤1103:基于每个棋子中各个像素点对应的棋子三维旋转角度,确定每个棋子的三维旋转角度。
示例性地,可以对每个棋子中各个像素点对应的棋子三维旋转角度进行平均值计算,从而确定每个棋子的三维旋转角度。
需要说明的是,本公开实施例并不对步骤1101、步骤1102和步骤1103的执行顺序进行限定。
可以看出,由于每个棋子中各个像素点的位置、每个棋子中各个像素点对应的棋子类别、以及每个棋子中各个像素点对应的棋子三维旋转角度可以较为准确地反映对应棋子的属性数据,并且,在本公开实施例中,可以基于每个棋子中各个像素点的位置、每个棋子中各个像素点对应的棋子类别、以及每个棋子中各个像素点对应的棋子三维旋转角度,分别确定出每个棋子的三维位置、棋子类别和三维旋转角度,因此,在一定程度上可以提高每个棋子的三维位置、棋子类别和三维旋转角度的准确性。
在一些实施例中,在神经网络为用于处理图像的网络,且属性数据还包括棋子的检测框的情况下,还可以利用神经网络的检测框输出层对第一图像的特征进行处理,得到第一图像中每个棋子的检测框。
参照图10,第二骨干网络1001还连接检测框输出层1005,检测框输出层1005用于对第一图像1000的特征进行处理,并输出第一图像1000中各个棋子的检测框的位置;示例性地,可以每个棋子的检测框的位置可以通过检测框的宽、检测框的高以及检测框的中心坐标表示。
相应地,参照图12,确定聚类结果的流程可以包括:
步骤1201:基于每个棋子的检测框中各个像素点对应的三维位置,对第一图像中的各个像素点进行聚类处理,得到初步聚类结果。
步骤1202:针对初步聚类结果中的每一类像素点,将位于对应棋子的检测框之外的像素点删除,得到聚类结果。
可以看出,由于同一棋子的对应的像素点需要位于同一检测框之内,因此,针对初步聚类结果中的每一类像素点,将位于检测框之外的像素点删除,有利于每一类像素点中不属于棋子的像素点排除,从而使得聚类结果中的每一类像素点能够更加准确地表示同一棋子的像素点,即,有利于提升聚类结果的精度。
以国际象棋为例,下面通过一个应用场景对上述控制棋子移动的方法进行示例性说明。在一些实施例中,可以在生成仿真场景后,获取仿真深度相机采集的初始点云数据,在获取初始点云数据后,可以在初始点云数据中提取出样本点云数据;在提取出样本点云数据后,可以通过对样本点云数据进行下采样,得到更新后的样本点云数据,然后,基于更新后的样本点云数据训练神经网络;示例性地,更新后的样本点云数据包括8192个点。
在一些实施例中,将更新后的样本点云数据分别输入至第一位置检测头702、第一旋转角度检测头703和第一类别检测头704,可以确定每个点的三维位置、每个点对应的棋子类别以及每个点对应的棋子三维旋转角度;通过对每个点的三维位置进行聚类处理,可以在样本点云数据中确定归属于同一个仿真棋子的点,从而,可以确定样本点云数据中每个点对应的棋子中心点的三维位置,这样,基于样本点云数据中每个点的三维位置、以及样本点云数据中每个点对应的棋子中心点的三维位置,可以确定出每个点的位置与对应的棋子中心点位置的位置偏移向量;基于样本点云数据中每个点的三维位置、以及样本点云数据中每个点对应的棋子中心点的三维位置,可以确定样本点云数据中每个点对应的仿真棋子的三维位置。
在一些实施例中,在得到深度相机采集的第二点云数据后,可以获取训练完成的用于实现点云数据分割的深度学习网络,利用该深度学习网络对第二点云数据进行点云实例分割,通过点云实例分割,可以分割出各棋子的点云数据,即得出第一点云数据。在得到第一点云数据后,可以通过对第一点云数据进行下采样,得到更新后的第一点云数据,然后,利用训练完成的神经网络对更新后的第一点云数据进行处理。示例性地,更新后的第一点云数据包括8192个点。
基于前述记载的内容可知,利用训练完成的神经网络对更新后的第一点云数据进行处理,可以得到每个棋子的三维位置、棋子类别和棋子的三维旋转角度,即,本公开实施例可以基于提出一种从仿真到现实的基于深度相机的控制移动的方法,可以实现对国际象棋的棋子的6D位姿估计和类型识别,具有一定的应用价值。
进一步地,在确定每个棋子的三维位置、棋子类别和棋子的三维旋转角度,可以确定待移动棋子、待移动棋子的目的位置、以及待移动棋子的抓取角度,即,本公开实施例提出了一种基于视觉引导的国际象棋机器人棋子识别、位姿估计和抓取方案。本公开实施例在使用深度相机倾斜拍摄棋盘的情况下,可以对国际象棋的棋子进行类型识别和6D位姿估计,为机械臂抓取棋子提供了更可靠的信息,使得国际象棋对弈机器人功能更强大,在一定程度上提高了用户体验。
本公开实施例提出了一种从仿真到真实的样本数据采集方案和针对样本数据的领域迁移方法,以解决棋子的6D位姿估计方案中存在的数据标注困难的问题,节约了大量的标注耗时和标注成本,并提高了标注的精度。
基于前述的实施例,本公开实施例提供一种控制棋子移动的装置,该装置包括的各单元、以及各单元所包括的各模块,可以通过电子设备中的处理器来实现;当然也可通过具体的逻辑电路实现;在实施的过程中,处理器可以为ASIC、DSP、DSPD、PLD、FPGA、CPU、控制器、微控制器、微处理器中的至少一种。
图13为本公开实施例的控制棋子移动的装置的结构示意图,如图13所示,该装置包括获取模块1301、处理模块1302和控制模块1303,其中,
获取模块1301,用于针对棋盘采集的第一点云数据,或者,获取图像采集设备采集的第一图像,所述第一点云数据表示所述棋盘上各棋子的点云数据,所述第一图像表示棋盘和各棋子的图像;
处理模块1302,用于利用神经网络对所述第一点云数据或所述第一图像进行处理,确定所述棋盘中每个棋子的属性数据,所述属性数据包括棋子的三维位置、棋子类别和棋子的三维旋转角度;所述神经网络是根据样本数据和标注信息训练得到的;所述样本数据为样本图像集或仿真场景中各仿真棋子的样本点云数据,所述样本图像集中的每个样本图像为仿真场景中仿真棋盘和各仿真棋子的图像;所述标注信息表示所述各仿真棋子标注的属性数据,所述标注信息是根据所述仿真场景的场景配置参数确定的;
处理模块1302,还用于根据所述每个棋子的三维位置、以及所述每个棋子的棋子类别,生成决策信息,所述决策信息用于指示所述棋盘中的待移动棋子、以及所述待移动棋子的目的位置;
处理模块1302,还用于根据所述待移动棋子的三维旋转角度,确定所述待移动棋子的抓取角度;
控制模块1303,用于控制机械臂以所述抓取角度抓取所述待移动棋子,并将所述待移动棋子移动至所述目的位置。
可以看出,在本公开实施例中,可以根据仿真场景的场景配置参数,确定各仿真棋子的标注的属性数据,与相关技术中手动标注棋子的属性数据的方案相比,实现较为简单并降低了人力成本;从而,基于各仿真棋子的标注的属性数据,可以方便快捷地实现神经网络的训练,进而,有利于基于训练完成的神经网络快捷地对点云数据或图像数据进行处理。
在一些实施例中,所述样本点云数据是由仿真图像采集设备采集的所述各仿真棋子的点云数据,所述样本图像是由仿真图像采集设备采集的图像;所述场景配置参数包括每个仿真棋子的三维位置、所述每个仿真棋子的三维旋转角度、所述每个仿真棋子的类别、以及所述仿真图像采集设备与所述每个仿真棋子的相对位姿。
可以看出,本公开实施例基于场景配置参数,较为准确地确定每个仿真棋子标注的属性数据,有利于实现每个仿真棋子的属性数据的自动标注。
在一些实施例中,所述处理模块1302,还用于基于所述仿真图像采集设备与所述每个仿真棋子的相对位姿、所述每个仿真棋子的三维位置、以及所述每个仿真棋子的三维旋转角度,在所述样本数据中确定所述每个仿真棋子的标注的三维位置、以及所述每个仿真棋子的标注的三维旋转角度;
所述处理模块1302,还用于基于所述仿真图像采集设备与所述每个仿真棋子的相对位姿、以及所述每个仿真棋子的类别,在所述样本数据中确定所述每个仿真棋子的标注的棋子类别。
可以看出,本公开实施例可以基于仿真图像采集设备与每个仿真棋子的相对位姿,较为准确地在样本数据中针对每个仿真棋子对应的点云数据或图像进行标注,从而可以较为准确地实现每个仿真棋子的属性数据的自动标注。
在一些实施例中,所述处理模块1302,用于利用神经网络对所述第一点云数据进行处理,确定所述棋盘中每个棋子的属性数据,包括:利用神经网络的骨干网络提取所述第一点云数据的特征;利用神经网络的位置检测头、旋转角度检测头和类别检测头分别对所述第一点云数据的特征进行处理,得到所述第一点云数据中每个点的位置、所述第一点云数据中每个点对应的棋子类别、以及所述第一点云数据中每个点对应的棋子三维旋转角度;基于所述第一点云数据中各个点的位置,对所述第一点云数据中的所述各个点进行聚类处理,确定聚类结果;将所述聚类结果中每一类点确定为一个棋子的点;基于所述每个棋子中各个点的位置、所述每个棋子中各个点对应的棋子类别、以及所述每个棋子中各个点对应的棋子三维旋转角度,确定所述每个棋子的属性数据。
可以看出,由于每个棋子中各个点的信息可以较为准确地反映对应棋子的属性数据,因此,基于每个棋子中各个点的位置、每个棋子中各个点对应的棋子类别、以及每个棋子中各个点对应的棋子三维旋转角度,有利于较为准确地确定每个棋子的属性数据。
在一些实施例中,所述处理模块1302,用于基于所述每个棋子中各个点的位置、所述每个棋子中各个点对应的棋子类别、以及所述每个棋子中各个点对应的棋子三维旋转角度,确定所述每个棋子的属性数据,包括:基于所述聚类结果中每一类点的聚类中心,确定所述每个棋子的三维位置;基于所述每个棋子中各个点对应的棋子类别,确定所述每个棋子的棋子类别;基于所述每个棋子中各个点对应的棋子三维旋转角度,确定所述每个棋子的三维旋转角度。
可以看出,由于每个棋子中各个点的位置、每个棋子中各个点对应的棋子类别、以及每个棋子中各个点对应的棋子三维旋转角度可以较为准确地反映对应棋子的属性数据,并且,在本公开实施例中,可以基于每个棋子中各个点的位置、每个棋子中各个点对应的棋子类别、以及每个棋子中各个点对应的棋子三维旋转角度,分别确定出每个棋子的三维位置、棋子类别和三维旋转角度,因此,在一定程度上可以提高每个棋子的三维位置、棋子类别和三维旋转角度的准确性。
在一些实施例中,所述处理模块1302,用于利用神经网络对所述第一图像进行处理,确定所述棋盘中每个棋子的属性数据,包括:利用神经网络的骨干网络提取所述第一图像的特征;利用神经网络的类别检测头、位置检测头和旋转角度检测头分别对所述第一图像的特征进行处理,得到所述第一图像中每个像素点对应的棋子类别、所述第一图像中每个像素点对应的三维位置、以及所述第一图像中每个像素点对应的三维旋转角度;基于所述第一图像中每个像素点对应的三维位置,对所述第一图像中的各个像素点进行聚类处理,确定聚类结果;将所述聚类结果中每一类像素点确定为一个棋子的像素点;基于所述每个棋子中各个像素点对应的棋子类别、所述每个棋子中各个像素点对应的三维位置、以及所述每个棋子中各个像素点对应的棋子三维旋转角度,确定所述每个棋子的属性数据。
可以看出,由于每个棋子中各个像素点的信息可以较为准确地反映对应棋子的属性数据,因此,基于每个棋子中各个像素点的位置、每个棋子中各个像素点对应的棋子类别、以及每个棋子中各个像素点点对应的棋子三维旋转角度,有利于较为准确地确定每个棋子的属性数据。
在一些实施例中,所述处理模块1302,用于基于所述每个棋子中各个像素点对应的棋子类别、所述每个棋子中各个像素点对应的三维位置、以及所述每个棋子中各个像素点对应的棋子三维旋转角度,确定所述每个棋子的属性数据,包括:基于所述每个棋子中各个像素点对应的棋子类别,确定所述每个棋子的棋子类别;基于所述每个棋子中各个像素点对应的三维位置,确定所述每个棋子的三维位置;基于所述每个棋子中各个像素点对应的棋子三维旋转角度,确定所述每个棋子的三维旋转角度。
可以看出,由于每个棋子中各个像素点的位置、每个棋子中各个像素点对应的棋子类别、以及每个棋子中各个像素点对应的棋子三维旋转角度可以较为准确地反映对应棋子的属性数据,并且,在本公开实施例中,可以基于每个棋子中各个像素点的位置、每个棋子中各个像素点对应的棋子类别、以及每个棋子中各个像素点对应的棋子三维旋转角度,分别确定出每个棋子的三维位置、棋子类别和三维旋转角度,因此,在一定程度上可以提高每个棋子的三维位置、棋子类别和三维旋转角度的准确性。
在一些实施例中,所述属性数据还包括棋子的检测框;
所述处理模块1302,还用于利用神经网络的检测框输出层对所述第一图像的特征进行处理,得到所述第一图像中每个棋子的检测框;
所述处理模块1302,用于基于所述第一图像中每个像素点对应的三维位置,对所述第一图像中的各个像素点进行聚类处理,确定聚类结果,包括:基于所述每个棋子的检测框中各个像素点对应的三维位置,对所述第一图像中的各个像素点进行聚类处理,得到初步聚类结果;针对所述初步聚类结果中的每一类像素点,将位于对应棋子的检测框之外的像素点删除,得到所述聚类结果。
可以看出,由于同一棋子的对应的像素点需要位于同一检测框之内,因此,针对初步聚类结果中的每一类像素点,将位于检测框之外的像素点删除,有利于每一类像素点中不属于棋子的像素点排除,从而使得聚类结果中的每一类像素点能够更加准确地表示同一棋子的像素点,即,有利于提升聚类结果的精度。
在一些实施例中,所述处理模块1302,还用于采用以下步骤训练神经网络:通过对所述仿真场景或所述样本数据进行至少一项领域随机化处理,得到更新后的样本数据;基于所述更新后的样本数据、以及所述各仿真棋子的标注的属性数据,训练所述神经网络。
可以看出,本公开实施例通过对仿真场景或样本数据进行至少一项领域随机化处理,有利于使样本数据更加与真实场景相符,即,有利于使训练数据跨越从仿真到真实的差异,从而使基于训练数据训练得到的神经网络能够较为准确地处理真实场景中棋子的点云数据或图像数据。
在一些实施例中,所述处理模块1302,用于通过对所述仿真场景或所述样本数据进行至少一项领域随机化处理,得到更新后的样本数据,包括:对所述仿真场景的光照、所述仿真场景中仿真图像采集设备的位姿、所述仿真场景中棋盘的位置、所述仿真场景中棋子的数量、以及所述仿真场景中每个棋子的摆放位姿的至少一项进行领域随机化处理,得到所述更新后的样本数据。
可以看出,通过对仿真场景或样本数据进行至少一项领域随机化处理,有利于使样本数据更加与真实场景相符,即,有利于使训练数据跨越从仿真到真实的差异,从而使基于训练数据训练得到的神经网络能够较为准确地处理真实场景中棋子的点云数据或图像数据。
在一些实施例中,在所述样本数据为所述样本点云数据的情况下,所述处理模块1302,用于通过对所述仿真场景或所述样本数据进行至少一项领域随机化处理,包括以下至少一项:对所述样本点云数据随机删除部分点云数据、对所述样本点云数据随机添加噪声;
在所述样本数据为所述样本图像集的情况下,所述处理模块1302,用于通过对所述仿真场景或所述样本数据进行至少一项领域随机化处理,包括以下至少一项:对所述样本图像集中的样本图像随机改变背景、对所述样本图像集中的样本图像随机添加噪声。
可以看出,通过对样本数据进行至少一项领域随机化处理,有利于使样本数据更加与真实场景相符,即,有利于使训练数据跨越从仿真到真实的差异,从而使基于训练数据训练得到的神经网络能够较为准确地处理真实场景中棋子的点云数据或图像数据。
以上装置实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。在一些实施例中,本公开实施例提供的装置具有的功能或包含的模块可以用于执行上述方法实施例描述的方法,对于本公开装置实施例中未披露的技术细节,请参照本公开方法实施例的描述而理解。
需要说明的是,本公开实施例中,如果以软件功能模块的形式实现上述的控制棋子移动的方法,并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本公开实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本公开各个实施例所述方法的全部或部分。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ReadOnly Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本公开实施例不限制于任何特定的硬件、软件或固件,或者硬件、软件、固件三者之间的任意结合。
本公开实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述任意一种控制棋子移动的方法中的部分或全部步骤。所述计算机可读存储介质可以是瞬时性的,也可以是非瞬时性的。
本公开实施例提供一种计算机程序,包括计算机可读代码,在所述计算机可读代码在计算机设备中运行的情况下,所述计算机设备中的处理器执行用于实现上述任意一种控制棋子移动的方法中的部分或全部步骤。
本公开实施例提供一种计算机程序产品,所述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,所述计算机程序被计算机读取并执行时,实现上述控制棋子移动的方法中的部分或全部步骤。该计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一些实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一些实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(SoftwareDevelopment Kit,SDK)等等。
这里需要指出的是:上文对各个实施例的描述倾向于强调各个实施例之间的不同之处,其相同或相似之处可以互相参考。以上设备、存储介质、计算机程序及计算机程序产品实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于设备、存储介质、计算机程序及计算机程序产品实施例中未披露的技术细节,请参照本公开方法实施例的描述而理解。
需要说明的是,图14为本公开实施例中电子设备的一种硬件实体示意图,如图14所示,电子设备1400可以包括:存储器1401、处理器1402以及存储在存储器1401上并可在处理器1402上运行的计算机程序;其中,
所述处理器1402用于运行所述计算机程序以执行上述任意一种控制棋子移动的方法。
在实际应用中,上述存储器1401可以是易失性存储器(volatile memory),例如随机存取存储器(Random Access Memory,RAM);或者非易失性存储器(non-volatilememory),例如ROM,快闪存储器(flash memory),硬盘(Hard Disk Drive,HDD)或固态硬盘(Solid-State Drive,SSD);或者上述种类的存储器的组合,并向处理器1402提供指令和数据。
本公开实施例还提供了一种对弈机器人,该对弈机器人包括用于抓取待移动棋子的机械臂,还包括上述任意一种控制棋子移动的装置或上述任意一种电子设备。
应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本公开的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本公开的各种实施例中,上述各步骤/过程的序号的大小并不意味着执行顺序的先后,各步骤/过程的执行顺序应以其功能和内在逻辑确定,而不应对本公开实施例的实施过程构成任何限定。上述本公开实施例序号仅仅为了描述,不代表实施例的优劣。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
在本公开所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本公开各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、ROM、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本公开上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本公开各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本公开的实施方式,但本公开的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本公开的保护范围之内。

Claims (15)

1.一种控制棋子移动的方法,其特征在于,所述方法包括:
获取针对棋盘采集的第一点云数据,或者,获取图像采集设备采集的第一图像,所述第一点云数据表示所述棋盘上各棋子的点云数据,所述第一图像表示棋盘和各棋子的图像;
利用神经网络对所述第一点云数据或所述第一图像进行处理,确定所述棋盘中每个棋子的属性数据,所述属性数据包括棋子的三维位置、棋子类别和棋子的三维旋转角度;所述神经网络是根据样本数据和标注信息训练得到的;所述样本数据为样本图像集或仿真场景中各仿真棋子的样本点云数据,所述样本图像集中的每个样本图像为仿真场景中仿真棋盘和各仿真棋子的图像;所述标注信息表示所述各仿真棋子标注的属性数据,所述标注信息是根据所述仿真场景的场景配置参数确定的;
根据所述每个棋子的三维位置、以及所述每个棋子的棋子类别,生成决策信息,所述决策信息用于指示所述棋盘中的待移动棋子、以及所述待移动棋子的目的位置;
根据所述待移动棋子的三维旋转角度,确定所述待移动棋子的抓取角度;
控制机械臂以所述抓取角度抓取所述待移动棋子,并将所述待移动棋子移动至所述目的位置。
2.根据权利要求1所述的方法,其特征在于,所述样本点云数据是由仿真图像采集设备采集的所述各仿真棋子的点云数据,所述样本图像是由仿真图像采集设备采集的图像;所述场景配置参数包括每个仿真棋子的三维位置、所述每个仿真棋子的三维旋转角度、所述每个仿真棋子的类别、以及所述仿真图像采集设备与所述每个仿真棋子的相对位姿。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
基于所述仿真图像采集设备与所述每个仿真棋子的相对位姿、所述每个仿真棋子的三维位置、以及所述每个仿真棋子的三维旋转角度,在所述样本数据中确定所述每个仿真棋子的标注的三维位置、以及所述每个仿真棋子的标注的三维旋转角度;
基于所述仿真图像采集设备与所述每个仿真棋子的相对位姿、以及所述每个仿真棋子的类别,在所述样本数据中确定所述每个仿真棋子的标注的棋子类别。
4.根据权利要求1至3任一项所述的方法,其特征在于,利用神经网络对所述第一点云数据进行处理,确定所述棋盘中每个棋子的属性数据,包括:
利用神经网络的骨干网络提取所述第一点云数据的特征;
利用神经网络的位置检测头、旋转角度检测头和类别检测头分别对所述第一点云数据的特征进行处理,得到所述第一点云数据中每个点的位置、所述第一点云数据中每个点对应的棋子类别、以及所述第一点云数据中每个点对应的棋子三维旋转角度;
基于所述第一点云数据中各个点的位置,对所述第一点云数据中的所述各个点进行聚类处理,确定聚类结果;
将所述聚类结果中每一类点确定为一个棋子的点;
基于所述每个棋子中各个点的位置、所述每个棋子中各个点对应的棋子类别、以及所述每个棋子中各个点对应的棋子三维旋转角度,确定所述每个棋子的属性数据。
5.根据权利要求4所述的方法,其特征在于,所述基于所述每个棋子中各个点的位置、所述每个棋子中各个点对应的棋子类别、以及所述每个棋子中各个点对应的棋子三维旋转角度,确定所述每个棋子的属性数据,包括:
基于所述聚类结果中每一类点的聚类中心,确定所述每个棋子的三维位置;
基于所述每个棋子中各个点对应的棋子类别,确定所述每个棋子的棋子类别;
基于所述每个棋子中各个点对应的棋子三维旋转角度,确定所述每个棋子的三维旋转角度。
6.根据权利要求1至3任一项所述的方法,其特征在于,利用神经网络对所述第一图像进行处理,确定所述棋盘中每个棋子的属性数据,包括:
利用神经网络的骨干网络提取所述第一图像的特征;
利用神经网络的类别检测头、位置检测头和旋转角度检测头分别对所述第一图像的特征进行处理,得到所述第一图像中每个像素点对应的棋子类别、所述第一图像中每个像素点对应的三维位置、以及所述第一图像中每个像素点对应的三维旋转角度;
基于所述第一图像中每个像素点对应的三维位置,对所述第一图像中的各个像素点进行聚类处理,确定聚类结果;
将所述聚类结果中每一类像素点确定为一个棋子的像素点;
基于所述每个棋子中各个像素点对应的棋子类别、所述每个棋子中各个像素点对应的三维位置、以及所述每个棋子中各个像素点对应的棋子三维旋转角度,确定所述每个棋子的属性数据。
7.根据权利要求6所述的方法,其特征在于,所述基于所述每个棋子中各个像素点对应的棋子类别、所述每个棋子中各个像素点对应的三维位置、以及所述每个棋子中各个像素点对应的棋子三维旋转角度,确定所述每个棋子的属性数据,包括:
基于所述每个棋子中各个像素点对应的棋子类别,确定所述每个棋子的棋子类别;
基于所述每个棋子中各个像素点对应的三维位置,确定所述每个棋子的三维位置;
基于所述每个棋子中各个像素点对应的棋子三维旋转角度,确定所述每个棋子的三维旋转角度。
8.根据权利要求6或7所述的方法,其特征在于,所述属性数据还包括棋子的检测框;
所述方法还包括:利用神经网络的检测框输出层对所述第一图像的特征进行处理,得到所述第一图像中每个棋子的检测框;
所述基于所述第一图像中每个像素点对应的三维位置,对所述第一图像中的各个像素点进行聚类处理,确定聚类结果,包括:
基于所述每个棋子的检测框中各个像素点对应的三维位置,对所述第一图像中的各个像素点进行聚类处理,得到初步聚类结果;
针对所述初步聚类结果中的每一类像素点,将位于对应棋子的检测框之外的像素点删除,得到所述聚类结果。
9.根据权利要求1至8任一项所述的方法,其特征在于,所述神经网络是采用以下步骤训练得到的:
通过对所述仿真场景或所述样本数据进行至少一项领域随机化处理,得到更新后的样本数据;
基于所述更新后的样本数据、以及所述各仿真棋子的标注的属性数据,训练所述神经网络。
10.根据权利要求9所述的方法,其特征在于,所述通过对所述仿真场景或所述样本数据进行至少一项领域随机化处理,得到更新后的样本数据,包括:
对所述仿真场景的光照、所述仿真场景中仿真图像采集设备的位姿、所述仿真场景中棋盘的位置、所述仿真场景中棋子的数量、以及所述仿真场景中每个棋子的摆放位姿的至少一项进行领域随机化处理,得到所述更新后的样本数据。
11.根据权利要求9所述的方法,其特征在于,在所述样本数据为所述样本点云数据的情况下,所述通过对所述仿真场景或所述样本数据进行至少一项领域随机化处理,包括以下至少一项:对所述样本点云数据随机删除部分点云数据、对所述样本点云数据随机添加噪声;
在所述样本数据为所述样本图像集的情况下,所述通过对所述仿真场景或所述样本数据进行至少一项领域随机化处理,包括以下至少一项:对所述样本图像集中的样本图像随机改变背景、对所述样本图像集中的样本图像随机添加噪声。
12.一种控制棋子移动的装置,其特征在于,所述装置包括:
获取模块,用于针对棋盘采集的第一点云数据,或者,获取图像采集设备采集的第一图像,所述第一点云数据表示所述棋盘上各棋子的点云数据,所述第一图像表示棋盘和各棋子的图像;
处理模块,用于利用神经网络对所述第一点云数据或所述第一图像进行处理,确定所述棋盘中每个棋子的属性数据,所述属性数据包括棋子的三维位置、棋子类别和棋子的三维旋转角度;所述神经网络是根据样本数据和标注信息训练得到的;所述样本数据为样本图像集或仿真场景中各仿真棋子的样本点云数据,所述样本图像集中的每个样本图像为仿真场景中仿真棋盘和各仿真棋子的图像;所述标注信息表示所述各仿真棋子标注的属性数据,所述标注信息是根据所述仿真场景的场景配置参数确定的;
所述处理模块,还用于根据所述每个棋子的三维位置、以及所述每个棋子的棋子类别,生成决策信息,所述决策信息用于指示所述棋盘中的待移动棋子、以及所述待移动棋子的目的位置;
所述处理模块,还用于根据所述待移动棋子的三维旋转角度,确定所述待移动棋子的抓取角度;
控制模块,用于控制机械臂以所述抓取角度抓取所述待移动棋子,并将所述待移动棋子移动至所述目的位置。
13.一种电子设备,其特征在于,包括处理器和用于存储能够在处理器上运行的计算机程序的存储器;其中,所述处理器用于运行所述计算机程序以执行权利要求1至11任一项所述的控制棋子移动的方法。
14.一种对弈机器人,其特征在于,包括用于抓取待移动棋子的机械臂,还包括权利要求12所述的控制棋子移动的装置或权利要求13所述的电子设备。
15.一种计算机存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至11任一项所述的控制棋子移动的方法。
CN202210898728.5A 2022-07-28 2022-07-28 控制棋子移动的方法、装置、设备、对弈机器人及介质 Withdrawn CN115194793A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210898728.5A CN115194793A (zh) 2022-07-28 2022-07-28 控制棋子移动的方法、装置、设备、对弈机器人及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210898728.5A CN115194793A (zh) 2022-07-28 2022-07-28 控制棋子移动的方法、装置、设备、对弈机器人及介质

Publications (1)

Publication Number Publication Date
CN115194793A true CN115194793A (zh) 2022-10-18

Family

ID=83584398

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210898728.5A Withdrawn CN115194793A (zh) 2022-07-28 2022-07-28 控制棋子移动的方法、装置、设备、对弈机器人及介质

Country Status (1)

Country Link
CN (1) CN115194793A (zh)

Similar Documents

Publication Publication Date Title
US9636588B2 (en) System and method for object extraction for embedding a representation of a real world object into a computer graphic
US9595108B2 (en) System and method for object extraction
JP5453000B2 (ja) 対象物を3dデジタル化するための方法及び装置
CN110232369B (zh) 一种人脸识别方法和电子设备
KR101121034B1 (ko) 복수의 이미지들로부터 카메라 파라미터를 얻기 위한 시스템과 방법 및 이들의 컴퓨터 프로그램 제품
CN109271937B (zh) 基于图像处理的运动场地标志物识别方法及系统
CN105453546B (zh) 图像处理装置、图像处理系统和图像处理方法
CN108416902A (zh) 基于差异识别的实时物体识别方法和装置
CN109993086B (zh) 人脸检测方法、装置、系统及终端设备
CN110493595B (zh) 摄像头的检测方法和装置、存储介质及电子装置
CN109035330A (zh) 箱体拟合方法、设备和计算机可读存储介质
CN117124302B (zh) 一种零件分拣方法、装置、电子设备及存储介质
CN109934873B (zh) 标注图像获取方法、装置及设备
Xie et al. Chess piece recognition using oriented chamfer matching with a comparison to cnn
CN113870350A (zh) 图像样本标注方法、装置、终端设备和图像标注系统
CN115194793A (zh) 控制棋子移动的方法、装置、设备、对弈机器人及介质
CN109409387A (zh) 图像采集设备的采集方向确定方法、装置及电子设备
CN113469216B (zh) 零售终端海报识别与完整性判断方法、系统及存储介质
CN116993654A (zh) 摄像头模组缺陷检测方法、装置、设备、存储介质及产品
CN114734456A (zh) 摆棋方法、装置、电子设备、对弈机器人及存储介质
CN114782534A (zh) 图像处理方法、装置、电子设备、对弈机器人及存储介质
CN107967447B (zh) 对象的显示方法、装置、存储介质和电子装置
CN114821177A (zh) 图像处理方法、装置、电子设备、对弈机器人及存储介质
KR102469411B1 (ko) 이미지 기반 당구 가이드 방법 및 기록매체
Alves et al. PoolLiveAid: Augmented reality pool table to assist inexperienced players

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
WW01 Invention patent application withdrawn after publication

Application publication date: 20221018

WW01 Invention patent application withdrawn after publication