CN114425773B - 基于深度学习及龙芯派的对弈机器人***及其对弈方法 - Google Patents
基于深度学习及龙芯派的对弈机器人***及其对弈方法 Download PDFInfo
- Publication number
- CN114425773B CN114425773B CN202111368871.5A CN202111368871A CN114425773B CN 114425773 B CN114425773 B CN 114425773B CN 202111368871 A CN202111368871 A CN 202111368871A CN 114425773 B CN114425773 B CN 114425773B
- Authority
- CN
- China
- Prior art keywords
- chessboard
- playing
- chess
- coordinates
- information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 31
- 238000013135 deep learning Methods 0.000 title claims abstract description 17
- 238000001514 detection method Methods 0.000 claims abstract description 33
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 16
- 238000012549 training Methods 0.000 claims description 14
- 238000004364 calculation method Methods 0.000 claims description 11
- 230000009466 transformation Effects 0.000 claims description 6
- 230000006870 function Effects 0.000 claims description 3
- 238000005457 optimization Methods 0.000 claims description 3
- 241000209202 Bromus secalinus Species 0.000 claims description 2
- 230000003993 interaction Effects 0.000 abstract description 7
- 238000010586 diagram Methods 0.000 description 6
- 238000013461 design Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000002787 reinforcement Effects 0.000 description 4
- 239000008186 active pharmaceutical agent Substances 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 238000010146 3D printing Methods 0.000 description 2
- 230000003203 everyday effect Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 238000011426 transformation method Methods 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 239000008452 qiyu Substances 0.000 description 1
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1602—Programme controls characterised by the control system, structure, architecture
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F3/00—Board games; Raffle games
- A63F3/00895—Accessories for board games
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1656—Programme controls characterised by programming, planning systems for manipulators
- B25J9/1664—Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1694—Programme controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
- B25J9/1697—Vision controlled systems
Landscapes
- Engineering & Computer Science (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Automation & Control Theory (AREA)
- Multimedia (AREA)
- Manipulator (AREA)
Abstract
本发明公开了一种基于深度学***高,可支持的人机对弈***体积小巧及便于移动携带的优点。
Description
技术领域
本发明涉及深度学习、强化学习和嵌入式开发领域,具体涉及一种基于深度学习及龙芯派的对弈机器人***及其对弈方法。
背景技术
随着深度学习和人工智能的不断发展,越来越多的新兴技术开始出现,基于强化学习的人机对弈逐步走入大众视野。人机对弈机器人***是面向服务型机器人的一个典型复杂应用,结合嵌入式技术是实现***小型化和提升人机交互性的关键。
目前,国内外机构在人机对弈问题方面已有不少的研究,许多基于深度强化学***和高人机交互性的人机对弈机器人***依然存在难题,往往因为算力不足问题无法实现嵌入式的智能决策;而实现高对弈水平则必然牺牲小型化的嵌入式***,导致人机交互性差。
发明内容
发明目的:为了克服现有技术中存在的因算力不足导致的决策水平不高的问题以及现有人机对弈***体积较大问题,提供一种基于深度学习及龙芯派的对弈机器人***及其对弈方法。
技术方案:为实现上述目的,本发明提供一种基于深度学习及龙芯派对弈机器人***及其对弈方法,该对弈方法包括如下步骤:
S1:拍摄棋盘状态图像,送入棋盘检测网络检测棋盘信息,并根据棋盘信息进行对弈人行棋状态判断,若判断对弈人行棋结束则输出棋盘信息,否则重新检测棋盘信息并判断棋盘状态;
S2:将步骤S1输出的棋盘信息,转换成FEN码送入自升级云端决策网络,决策后给出行棋指令;
S3:将步骤S2给出的行棋指令变换成三维坐标的移动指令,根据三维坐标的移动指令,利用机械臂移动逆运算算法,控制机械臂抓取和移动棋子。
进一步地,所述步骤S1具体为:
A1:通过单目相机拍摄整个棋盘,得到棋盘状态图像,并将棋盘状态图像送入棋盘检测网络中;
A2:棋盘检测网络检测输入的棋盘状态图像,输出检测到的每一个棋子的像素中心点坐标和棋子对应的种类,利用棋子位置判断算法,判断所有棋子在棋盘上的位置,得到棋盘信息;
A3:得到棋盘信息后先进行一次对弈人行棋状态判断,判断对弈人是否已经完成了行棋,若完成了行棋则输出棋盘信息,若没有完成则回到步骤A1重新检测。
进一步地,所述步骤A2中利用棋子位置判断算法,判断所有棋子在棋盘上的位置,得到棋盘信息的具体方式为:记棋子的像素中心点坐标为(xz,yz),z指代该棋子,记棋盘网格点的像素坐标为(xi,yi),i为1到90的整数,指代90个棋盘网格点,将棋子的像素中心点坐标与棋盘网格点的像素坐标进行一一对比计算,找出像素距离最近的一组,即得到棋子在棋盘上的位置。
计算公式如下,记D(i)为棋子与第i个棋盘网格点的像素距离:
进一步地,所述步骤A3中对弈人行棋状态判断的方式为:
B1:根据棋盘四个角的像素坐标,记左上坐标为(xa,ya),右上坐标为(xb,yb),左下坐标为(xc,yc),右下坐标为(xd,yd),利用OpenCV中的直线检测函数识别棋盘边缘的四条直线,得到包括棋盘边缘直线的二值图,即图像上所有直线位置的像素为255,其余位置的像素为0;
B2:利用直线遮挡判断算法判断遮挡位置,即取一个像素边长为5的正方形,正方形中心坐标从(xa,ya)开始沿顺时在棋盘边缘上移动最后回到(xa,ya),遍历正方形内的所有像素点,计算出正方形内像素点值为255的像素点数量n,若n>15,则正方形中心点的坐标在直线上,即正方形内包含直线,否则表示直线被遮挡,记录所有直线被遮挡时的正方形中心点坐标,存入集合V;
B3:利用步骤A2检测到的棋子的像素中心点坐标(xz,yz),计算集合V中每一个点坐标与(xz,yz)的像素距离M,若M<10则从集合V中去除此点坐标,并记录集合V中剩余坐标的数量为S;
B4:根据S判断棋盘边缘是否被其它物体遮挡,若S>20,则说明棋盘被手或其它物体遮挡,判断对弈人还在行棋;若S<=20,则说明没有被棋子以外的物体遮挡,再对比检测到的棋盘信息与上一步机械臂行棋后的棋盘信息,若两者相同则判断对弈人还未行棋,若两者不同则判断对弈人行棋结束。
进一步地,所述步骤S2具体为:
C1:将步骤S1输出的棋盘信息,根据中国象棋FEN码的生成规则,转换成棋盘信息对应的FEN码,同时通过基于HTTP的RESTful API来接入搭建的中国象棋自升级云端决策网络;
C2:自升级云端决策网络通过接收发送的FEN码,给出决策后的行棋指令,并发送回人机对弈***,同时根据每一场人机对弈的胜负情况,收集完成对局且机器落败的局面,作为新的训练数据升级云端决策网络。
进一步地,所述步骤C2中决策后的行棋指令具体为:将90个棋盘网格点一一标记,以黑方为下方,红方为上方,从左至右纵轴从A到I标记,从下往上横轴从0到9标记,每个棋盘网格点以两者坐标表示,如左下角为A0,右上角为I9,行棋指令为例如“黑车从A0到A4”的形式表示。
进一步地,所述步骤C2中云端决策网络的升级方法为:在一局对弈完成后,云端决策网络会暂存对弈时的所有FEN码和最后的机器人***的输赢状态,根据FEN的生成规则,将所有状态为输对局的FEN反向生成得到FEN对应的棋局信息,依据下棋的时间顺序排列,制作成一份训练数据,保存在服务器中,将训练数据制作成一组数据集,使用此数据集进行云端决策网络的优化训练。同时为防止数据过多,每天最多只接受100份数据,每有1000份数据制作成一组数据集。
棋盘检测网络由YOLOV3网络改进而来,减小输入图像的像素大小为224x224,训练网络的数据集是自主收集制作的。
进一步地,所述步骤S3具体为:
D1:接收行棋指令,根据现实棋盘网格点的坐标标定,对行棋指令进行坐标变换,变换生成现实中棋子三维坐标的移动指令,将棋子三维坐标的移动指令送入机械臂控制***;
D2:根据得到的棋子三维坐标的移动指令,规划机械臂的运动轨迹,具体轨迹包括了4组三维坐标,分别为:抓取棋子的起点三维坐标、起点三维坐标正上方5厘米的三维坐标、落子终点三维坐标正上方5厘米的三维坐标、落子的终点三维坐标,再利用机械臂逆运动算法,将这些三维坐标转换成机械臂的控制参数,控制机械臂移动。
现实棋盘网格点的坐标标定方法为:固定住棋盘位置和单目相机位置,试探性地调整机械臂移动到棋盘的四个角上,微调输入机械臂的三维坐标直至同现实棋盘四个角的三维坐标重合,然后根据棋盘网格点的数量均分出所有90个棋盘网格点的三维坐标,最后调整机械臂移动,一一标定90个棋盘网格点的准确三维坐标。
坐标变换方法为:将行棋指令例如“黑车从A0到A4”,在标定好的现实棋盘网格点的坐标中找到“A0”对应的三维坐标(xA0,yA0,zA0)和“A4”对应的三维坐标(xA4,yA4,zA4),生成现实中棋子三维坐标的移动指令“黑车从(xA0,yA0,zA0)到(xA4,yA4,zA4)”。
本发明还提供一种基于深度学习及龙芯派的对弈机器人***,包括棋盘检测模块、行棋检测模块和机械臂控制模块,
所述棋盘检测模块用于对对弈人行棋状态进行判断,输出棋盘信息;
所述行棋检测模块用于根据棋盘信息生成行棋指令;
所述机械臂控制模块用于根据行棋指令控制机械臂移动进行行棋。
进一步地,嵌入式人机对弈机器人***还包括语音模块,所述语音模块用于给出行棋语音提示。在棋盘信息检测阶段,对弈人走完棋后,语音提示“正在识别棋盘,请勿操作”;识别完成后,语音提示“识别完成,正在思考”;在云端决策阶段,每隔10秒语音提示“正在思考,请稍等”;在机械臂行棋阶段,语音提示“正在走棋,请小心”,走完棋后,语音提示“请走棋”。
本发明中单目相机架设在利用三维打印制造的支架上,用一根数据线连接在龙芯派上;机械臂用一根数据线连接在龙芯派上,语音模块直接安装在龙芯派上,棋盘检测网络则直接编写在龙芯派里,整个嵌入式***的运行通过一块龙芯派控制。
为了提升人机交互性,本发明设计了对弈人行棋状态判断方法,无需对弈人手动表明结束行棋,通过***自主判断对弈人是否结束行棋,模拟真实的对弈过程;为了解决因算力不足导致的决策水平不高的问题,本发明设计了自升级云端决策网络,既解决了嵌入式***算力不足的问题,提高决策速度,也通过自升级方法不断提高决策质量,提高对弈水平,使得人机对弈***能够不断更新;为解决以往人机对弈***体积较大问题,本发明将整个***搭建于嵌入式芯片之上,缩小了人机对弈***大小,方便移动和使用。
有益效果:本发明与现有技术相比,设计的对弈人行棋状态判断方法,无需对弈人手动表明结束行棋,通过***可自主判断对弈人是否结束行棋,大大增强了人机交互性,自升级云端决策网络,既解决了嵌入式***算力不足的问题,提高决策速度,也通过自升级方法不断提高决策质量,具有人机对弈交互性高,行棋决策速度快、水平高,可支持的人机对弈***体积小巧及便于移动携带的优点。
附图说明
图1是本发明实施例基于深度学习及龙芯派的对弈机器人***及其对弈方法的工作流程示意图;
图2是本发明实施例提供的国产单目相机图;
图3是本发明实施例提供的棋盘信息示意图;
图4是本发明实施例提供的棋盘网格点标记图;
图5是本发明实施例提供的机械臂轨迹移动图;
图6是本发明实施例提供的嵌入式人机对弈机器人***俯视图;
图7是本发明实施例提供的嵌入式人机对弈机器人***总览图。
具体实施方式
下面结合附图和具体实施例,进一步阐明本发明,应理解这些实施例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于本申请所附权利要求所限定的范围。
如图1所示,本发明提供一种基于深度学习及龙芯派的对弈机器人***,包括棋盘检测模块、行棋检测模块、机械臂控制模块和语音模块,棋盘检测模块用于对对弈人行棋状态进行判断,输出棋盘信息;行棋检测模块用于根据棋盘信息生成行棋指令;机械臂控制模块用于根据行棋指令控制机械臂移动进行行棋;语音模块用于给出行棋语音提示。
本实施例中将上述嵌入式人机对弈机器人***应用于中国象棋的人机对弈,参照图1,该***的对弈方法包括如下步骤:
S1:将国产单目相机架设在棋盘的正上方,从上往下拍摄整个棋盘,得到棋盘状态图像,将棋盘状态图像送入棋盘检测网络检测棋盘信息,并根据棋盘信息进行对弈人行棋状态判断,若判断对弈人行棋结束则输出棋盘信息,否则重新检测棋盘信息并判断棋盘状态;
S2:将步骤S1输出的棋盘信息,转换成FEN码送入自升级云端决策网络,决策后给出行棋指令;
S3:将步骤S2给出的行棋指令变换成三维坐标的移动指令,根据三维坐标的移动指令,利用机械臂移动逆运算算法,控制机械臂抓取和移动棋子。
本实施例中步骤S1具体为:
A1:通过单目相机拍摄整个棋盘,得到棋盘状态图像,并将棋盘状态图像送入棋盘检测网络中;图2是本实施例提供的国产单目相机图;
A2:棋盘检测网络检测输入的棋盘状态图像,输出检测到的每一个棋子的像素中心点坐标和棋子对应的种类,利用棋子位置判断算法,判断所有棋子在棋盘上的位置,得到棋盘信息;图3是本实施例提供的棋盘信息示意图;
本实施例中棋盘检测网络由YOLOV3网络改进而来,减小输入图像的像素大小为227x227,训练网络的数据集是自主收集制作的;
利用棋子位置判断算法,判断所有棋子在棋盘上的位置,得到棋盘信息的具体方式为:记棋子的像素中心点坐标为(xz,yz),z指代该棋子,记棋盘网格点的像素坐标为(xi,yi),i为1到90的整数,指代90个棋盘网格点,将棋子的像素中心点坐标与棋盘网格点的像素坐标进行一一对比计算,找出像素距离最近的一组,即得到棋子在棋盘上的位置。
计算公式如下,记D(i)为棋子与第i个棋盘网格点的像素距离:
A3:得到棋盘信息后先进行一次对弈人行棋状态判断,判断对弈人是否已经完成了行棋,若完成了行棋则输出棋盘信息,若没有完成则等待5秒后再次回到步骤A1重新检测。
对弈人行棋状态判断的方式为:
B1:根据棋盘四个角的像素坐标,记左上坐标为(xa,ya),右上坐标为(xb,yb),左下坐标为(xc,yc),右下坐标为(xd,yd),利用OpenCV中的直线检测函数识别棋盘边缘的四条直线,得到包括棋盘边缘直线的二值图,即图像上所有直线位置的像素为255,其余位置的像素为0;
B2:利用直线遮挡判断算法判断遮挡位置,即取一个像素边长为5的正方形,正方形中心坐标从(xa,ya)开始沿顺时在棋盘边缘上移动最后回到(xa,ya),遍历正方形内的所有像素点,计算出正方形内像素点值为255的像素点数量n,若n>15,则正方形中心点的坐标在直线上,即正方形内包含直线,否则表示直线被遮挡,记录所有直线被遮挡时的正方形中心点坐标,存入集合V;
B3:利用步骤A2检测到的棋子的像素中心点坐标(xz,yz),计算集合V中每一个点坐标与(xz,yz)的像素距离M,若M<10则从集合V中去除此点坐标,并记录集合V中剩余坐标的数量为S;
B4:根据S判断棋盘边缘是否被其它物体遮挡,若S>20,则说明棋盘被手或其它物体遮挡,判断对弈人还在行棋;若S<=20,则说明没有被棋子以外的物体遮挡,再对比检测到的棋盘信息与上一步机械臂行棋后的棋盘信息,若两者相同则判断对弈人还未行棋,若两者不同则判断对弈人行棋结束。
本实施例中步骤S2具体为:
C1:将步骤S1输出的棋盘信息,根据中国象棋FEN码的生成规则,转换成棋盘信息对应的FEN码,同时通过基于HTTP的RESTful API来接入搭建的中国象棋自升级云端决策网络;
C2:自升级云端决策网络通过接收发送的FEN码,给出决策后的行棋指令,并发送回人机对弈***,同时根据每一场人机对弈的胜负情况,收集完成对局且机器落败的局面,作为新的训练数据升级云端决策网络。
图4是本实施例提供的棋盘网格点标记图,参照图4,决策后的行棋指令具体为:将90个棋盘网格点一一标记,以黑方为下方,红方为上方,从左至右纵轴从A到I标记,从下往上横轴从0到9标记,每个棋盘网格点以两者坐标表示,如左下角为A0,右上角为I9,行棋指令为例如“黑车从A0到A4”的形式表示。
云端决策网络的升级方法为:在一局对弈完成后,云端决策网络会暂存对弈时的所有FEN码和最后的机器人***的输赢状态,根据FEN的生成规则,将所有状态为输对局的FEN反向生成得到FEN对应的棋局信息,依据下棋的时间顺序排列,制作成一份训练数据,保存在服务器中,将训练数据制作成一组数据集,使用此数据集进行云端决策网络的优化训练。同时为防止数据过多,每天最多只接受100份数据,每有1000份数据制作成一组数据集。
这里需要说明的是,自升级云端决策网络是本发明的创新,其创新在于决策网络的自升级,能够自主地不断提高决策网络的下棋水平,云端决策网络则是将现有的决策网络通过云端调用的方法搭建,云端调用【可参考,曾青松,魏斌.基于RESTfulAPI的访问权限***的设计与实现[J].电脑编程技巧与维护,2020(11):3-6.】,决策网络搭建【可参考,吴启宇,谢非,黄磊,刘宗熙,赵静,刘锡祥.基于深度/单目融合视觉及强化学习的机器人定位棋局与行棋策略[J/OL].控制与决策:1-10[2021-10-14].】。
FEN码是棋盘信息的一种国际通用表示方式【可参考,李勇.基于移动互联网的国际象棋对弈***的设计与实现[D].华中科技大学,2011.】,FEN码是直接送入决策网络的,具体行棋指令是决策层网络给出的,即FEN码经过决策网络得到了行棋指令。
由于把决策网络放在了云端,不依赖于嵌入式开发板的算力,故速度提升。
本实施例中步骤S3具体为:
D1:接收行棋指令,根据现实棋盘网格点的坐标标定,对行棋指令进行坐标变换,变换生成现实中棋子三维坐标的移动指令,将棋子三维坐标的移动指令送入机械臂控制***;
D2:根据得到的棋子三维坐标的移动指令,规划机械臂的运动轨迹,图5是本实施例提供的机械臂轨迹移动图,具体轨迹包括了4组三维坐标,分别为:抓取棋子的起点三维坐标、起点三维坐标正上方5厘米的三维坐标、落子终点三维坐标正上方5厘米的三维坐标、落子的终点三维坐标,再利用机械臂逆运动算法,将这些三维坐标转换成机械臂的控制参数,控制机械臂移动。
现实棋盘网格点的坐标标定方法为:固定住棋盘位置和单目相机位置,试探性地调整机械臂移动到棋盘的四个角上,微调输入机械臂的三维坐标直至同现实棋盘四个角的三维坐标重合,然后根据棋盘网格点的数量均分出所有90个棋盘网格点的三维坐标,最后调整机械臂移动,一一标定90个棋盘网格点的准确三维坐标。
坐标变换方法为:将行棋指令例如“黑车从A0到A4”,在标定好的现实棋盘网格点的坐标中找到“A0”对应的三维坐标(xA0,yA0,zA0)和“A4”对应的三维坐标(xA4,yA4,zA4),生成现实中棋子三维坐标的移动指令“黑车从(xA0,yA0,zA0)到(xA4,yA4,zA4)”。
关于语音模块,本实施例中在棋盘信息检测阶段,对弈人走完棋后,语音提示“正在识别棋盘,请勿操作”;识别完成后,语音提示“识别完成,正在思考”;在云端决策阶段,每隔10秒语音提示“正在思考,请稍等”;在机械臂行棋阶段,语音提示“正在走棋,请小心”,走完棋后,语音提示“请走棋”。
图6是本实施例提供的嵌入式人机对弈机器人***俯视图,图7是本实施例提供的嵌入式人机对弈机器人***总览图。国产单目相机架设在利用三维打印制造的支架上,用一根数据线连接在龙芯派上;机械臂用一根数据线连接在龙芯派上,语音模块直接安装在龙芯派上,棋盘检测网络则直接编写在龙芯派里,整个嵌入式***的运行通过一块龙芯派控制。
Claims (5)
1.一种基于深度学习及龙芯派的对弈机器人***的对弈方法,其特征在于,对弈机器人***包括棋盘检测模块、行棋检测模块、机械臂控制模块和语音模块,
所述棋盘检测模块用于对对弈人行棋状态进行判断,输出棋盘信息;
所述行棋检测模块用于根据棋盘信息生成行棋指令;
所述机械臂控制模块用于根据行棋指令控制机械臂移动进行行棋;
所述语音模块用于给出行棋语音提示;
基于深度学习及龙芯派的对弈机器人***的对弈方法包括如下步骤:
S1:拍摄棋盘状态图像,送入棋盘检测网络检测棋盘信息,并根据棋盘信息进行对弈人行棋状态判断,若判断对弈人行棋结束则输出棋盘信息,否则重新检测棋盘信息并判断棋盘状态;
S2:将步骤S1输出的棋盘信息,转换成FEN码送入自升级云端决策网络,决策后给出行棋指令;
S3:将步骤S2给出的行棋指令变换成三维坐标的移动指令,根据三维坐标的移动指令,利用机械臂移动逆运算算法,控制机械臂抓取和移动棋子;
所述步骤S1具体为:
A1:通过单目相机拍摄整个棋盘,得到棋盘状态图像,并将棋盘状态图像送入棋盘检测网络中;
A2:棋盘检测网络检测输入的棋盘状态图像,输出检测到的每一个棋子的像素中心点坐标和棋子对应的种类,利用棋子位置判断算法,判断所有棋子在棋盘上的位置,得到棋盘信息;
A3:得到棋盘信息后先进行一次对弈人行棋状态判断,判断对弈人是否已经完成了行棋,若完成了行棋则输出棋盘信息,若没有完成则回到步骤A1重新检测;
所述步骤A3中对弈人行棋状态判断的方式为:
B1:根据棋盘四个角的像素坐标,记左上坐标为(xa,ya),右上坐标为(xb,yb),左下坐标为(xc,yc),右下坐标为(xd,yd),利用OpenCV中的直线检测函数识别棋盘边缘的四条直线,得到包括棋盘边缘直线的二值图,即图像上所有直线位置的像素为255,其余位置的像素为0;
B2:利用直线遮挡判断算法判断遮挡位置,即取一个正方形,正方形中心坐标从(xa,ya)开始沿顺时在棋盘边缘上移动最后回到(xa,ya),遍历正方形内的所有像素点,计算出正方形内像素点值为255的像素点数量n,若n>15,则正方形中心点的坐标在直线上,即正方形内包含直线,否则表示直线被遮挡,记录所有直线被遮挡时的正方形中心点坐标,存入集合V;
B3:利用步骤A2检测到的棋子的像素中心点坐标(xz,yz),计算集合V中每一个点坐标与(xz,yz)的像素距离M,若M<10则从集合V中去除此点坐标,并记录集合V中剩余坐标的数量为S;
B4:根据S判断棋盘边缘是否被其它物体遮挡,若S>20,则说明棋盘被手或其它物体遮挡,判断对弈人还在行棋;若S<=20,则说明没有被棋子以外的物体遮挡,再对比检测到的棋盘信息与上一步机械臂行棋后的棋盘信息,若两者相同则判断对弈人还未行棋,若两者不同则判断对弈人行棋结束;
所述步骤S2具体为:
C1:将步骤S1输出的棋盘信息,根据中国象棋FEN码的生成规则,转换成棋盘信息对应的FEN码,同时通过基于HTTP的RESTful API来接入搭建的中国象棋自升级云端决策网络;
C2:自升级云端决策网络通过接收发送的FEN码,给出决策后的行棋指令,并发送回人机对弈***,同时根据每一场人机对弈的胜负情况,收集完成对局且机器落败的局面,作为新的训练数据升级云端决策网络。
2.根据权利要求1所述的一种基于深度学习及龙芯派的对弈机器人***的对弈方法,其特征在于,所述步骤A2中利用棋子位置判断算法,判断所有棋子在棋盘上的位置,得到棋盘信息的具体方式为:记棋子的像素中心点坐标为(xz,yz),z指代该棋子,记棋盘网格点的像素坐标为(xi,yi),i为1到90的整数,指代90个棋盘网格点,将棋子的像素中心点坐标与棋盘网格点的像素坐标进行一一对比计算,找出像素距离最近的一组,即得到棋子在棋盘上的位置。
3.根据权利要求1所述的一种基于深度学习及龙芯派的对弈机器人***的对弈方法,其特征在于,所述步骤C2中决策后的行棋指令具体为:将90个棋盘网格点一一标记,以黑方为下方,红方为上方,从左至右纵轴从A到I标记,从下往上横轴从0到9标记,每个棋盘网格点以两者坐标表示。
4.根据权利要求1所述的一种基于深度学习及龙芯派的对弈机器人***的对弈方法,其特征在于,所述步骤C2中云端决策网络的升级方法为:在一局对弈完成后,云端决策网络会暂存对弈时的所有FEN码和最后的机器人***的输赢状态,根据FEN的生成规则,将所有状态为输对局的FEN反向生成得到FEN对应的棋局信息,依据下棋的时间顺序排列,制作成一份训练数据,保存在服务器中,将训练数据制作成一组数据集,使用此数据集进行云端决策网络的优化训练。
5.根据权利要求1所述的一种基于深度学习及龙芯派的对弈机器人***的对弈方法,其特征在于,所述步骤S3具体为:
D1:接收行棋指令,根据现实棋盘网格点的坐标标定,对行棋指令进行坐标变换,变换生成现实中棋子三维坐标的移动指令,将棋子三维坐标的移动指令送入机械臂控制***;
D2:根据得到的棋子三维坐标的移动指令,规划机械臂的运动轨迹,具体轨迹包括了4组三维坐标,分别为:抓取棋子的起点三维坐标、起点三维坐标正上方5厘米的三维坐标、落子终点三维坐标正上方5厘米的三维坐标、落子的终点三维坐标,再利用机械臂逆运动算法,将这些三维坐标转换成机械臂的控制参数,控制机械臂移动。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111368871.5A CN114425773B (zh) | 2021-11-18 | 2021-11-18 | 基于深度学习及龙芯派的对弈机器人***及其对弈方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111368871.5A CN114425773B (zh) | 2021-11-18 | 2021-11-18 | 基于深度学习及龙芯派的对弈机器人***及其对弈方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114425773A CN114425773A (zh) | 2022-05-03 |
CN114425773B true CN114425773B (zh) | 2024-03-26 |
Family
ID=81310964
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111368871.5A Active CN114425773B (zh) | 2021-11-18 | 2021-11-18 | 基于深度学习及龙芯派的对弈机器人***及其对弈方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114425773B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106924961A (zh) * | 2017-04-01 | 2017-07-07 | 哈尔滨工业大学 | 一种智能象棋对弈控制方法及*** |
CN110555517A (zh) * | 2019-09-05 | 2019-12-10 | 中国石油大学(华东) | 基于AlphaGo Zero改进的国际象棋博弈方法 |
CN111136669A (zh) * | 2020-01-17 | 2020-05-12 | 沈阳航空航天大学 | 一种基于全局视觉的下棋机器人及其控制方法 |
CN112507926A (zh) * | 2020-12-16 | 2021-03-16 | 电子科技大学 | 一种基于视频图像分析的围棋复盘方法 |
CN113599798A (zh) * | 2021-08-25 | 2021-11-05 | 上海交通大学 | 基于深度强化学习方法的中国象棋博弈学习方法及*** |
-
2021
- 2021-11-18 CN CN202111368871.5A patent/CN114425773B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106924961A (zh) * | 2017-04-01 | 2017-07-07 | 哈尔滨工业大学 | 一种智能象棋对弈控制方法及*** |
CN110555517A (zh) * | 2019-09-05 | 2019-12-10 | 中国石油大学(华东) | 基于AlphaGo Zero改进的国际象棋博弈方法 |
CN111136669A (zh) * | 2020-01-17 | 2020-05-12 | 沈阳航空航天大学 | 一种基于全局视觉的下棋机器人及其控制方法 |
CN112507926A (zh) * | 2020-12-16 | 2021-03-16 | 电子科技大学 | 一种基于视频图像分析的围棋复盘方法 |
CN113599798A (zh) * | 2021-08-25 | 2021-11-05 | 上海交通大学 | 基于深度强化学习方法的中国象棋博弈学习方法及*** |
Also Published As
Publication number | Publication date |
---|---|
CN114425773A (zh) | 2022-05-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103875004B (zh) | 动态选择真实世界中的表面以用于在上面投影信息 | |
CN103279191B (zh) | 一种基于手势识别技术的3d虚拟交互方法及*** | |
CN111136669B (zh) | 一种基于全局视觉的下棋机器人及其控制方法 | |
CN106924961B (zh) | 一种智能象棋对弈控制方法及*** | |
CN105413198B (zh) | Ar儿童早教积木*** | |
US8602893B2 (en) | Input for computer device using pattern-based computer vision | |
Soltani et al. | Developing a gesture-based game for deaf/mute people using microsoft kinect | |
CN111709301B (zh) | 一种冰壶球运动状态估计方法 | |
WO2016035941A1 (ko) | 인간 모델의 3차원 공간 데이터를 이용한 포즈 인식 시스템 및 그 방법 | |
CN106310678A (zh) | 智能积木***及其控制方法 | |
CN105396287B (zh) | 台球游戏控制方法及*** | |
CN109739358A (zh) | 基于裸眼3d的手势碰撞检测方法及设备 | |
US20220223065A1 (en) | Robot control system for coding education | |
CN114425773B (zh) | 基于深度学习及龙芯派的对弈机器人***及其对弈方法 | |
CN106249901B (zh) | 一种以Android原生游戏支持体感设备操控的适配方法 | |
CN102867174B (zh) | 一种人脸特征定位方法及装置 | |
CN110147198A (zh) | 一种手势识别方法、手势识别装置及车辆 | |
Juang | Humanoid robots play chess using visual control | |
CN111798511B (zh) | 一种棋盘棋子定位方法及装置 | |
WO2023142555A1 (zh) | 数据处理方法和装置、计算机设备、存储介质及计算机程序产品 | |
CN107813321A (zh) | 一种五子棋机器人控制方法 | |
Dolce et al. | ARmy: A study of multi-user interaction in spatially augmented games | |
CN106408654A (zh) | 一种三维地图的创建方法及*** | |
KR102564072B1 (ko) | 복수 플레이어에 대한 컨텐츠 게임 기반의 인지 훈련 디바이스 및 방법 | |
CN112785949B (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 |