CN114425773B - 基于深度学习及龙芯派的对弈机器人系统及其对弈方法 - Google Patents

基于深度学习及龙芯派的对弈机器人系统及其对弈方法 Download PDF

Info

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
Application number
CN202111368871.5A
Other languages
English (en)
Other versions
CN114425773A (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 Normal University
Original Assignee
Nanjing Normal University
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 Normal University filed Critical Nanjing Normal University
Priority to CN202111368871.5A priority Critical patent/CN114425773B/zh
Publication of CN114425773A publication Critical patent/CN114425773A/zh
Application granted granted Critical
Publication of CN114425773B publication Critical patent/CN114425773B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • 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
    • A63F3/00895Accessories for board 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/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1694Programme 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/1697Vision controlled systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Automation & Control Theory (AREA)
  • Multimedia (AREA)
  • Manipulator (AREA)

Abstract

本发明公开了一种基于深度学习及龙芯派的对弈机器人系统及其对弈方法,该方法包括:拍摄棋盘状态图像,送入棋盘检测网络检测棋盘信息,并根据棋盘信息进行对弈人行棋状态判断;将输出的棋盘信息,转换成FEN码送入自升级云端决策网络,决策后给出行棋指令;将给出的行棋指令变换成三维坐标的移动指令,根据三维坐标的移动指令,利用机械臂移动逆运算算法,控制机械臂抓取和移动棋子。本发明通过系统可自主判断对弈人是否结束行棋,大大增强了人机交互性,自升级云端决策网络,提高决策速度,也通过自升级方法不断提高决策质量,具有人机对弈交互性高,行棋决策速度快、水平高,可支持的人机对弈系统体积小巧及便于移动携带的优点。

Description

基于深度学习及龙芯派的对弈机器人系统及其对弈方法
技术领域
本发明涉及深度学习、强化学习和嵌入式开发领域,具体涉及一种基于深度学习及龙芯派的对弈机器人系统及其对弈方法。
背景技术
随着深度学习和人工智能的不断发展,越来越多的新兴技术开始出现,基于强化学习的人机对弈逐步走入大众视野。人机对弈机器人系统是面向服务型机器人的一个典型复杂应用,结合嵌入式技术是实现系统小型化和提升人机交互性的关键。
目前,国内外机构在人机对弈问题方面已有不少的研究,许多基于深度强化学习的智能体,如AlphaGo zero,绝艺等,在围棋对弈领域取得较大研究进展。同时,国内已有部分专利技术涉及到人机对弈机器人系统的研究,但兼具高对弈水平和高人机交互性的人机对弈机器人系统依然存在难题,往往因为算力不足问题无法实现嵌入式的智能决策;而实现高对弈水平则必然牺牲小型化的嵌入式系统,导致人机交互性差。
发明内容
发明目的:为了克服现有技术中存在的因算力不足导致的决策水平不高的问题以及现有人机对弈系统体积较大问题,提供一种基于深度学习及龙芯派的对弈机器人系统及其对弈方法。
技术方案:为实现上述目的,本发明提供一种基于深度学习及龙芯派对弈机器人系统及其对弈方法,该对弈方法包括如下步骤:
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厘米的三维坐标、落子的终点三维坐标,再利用机械臂逆运动算法,将这些三维坐标转换成机械臂的控制参数,控制机械臂移动。
CN202111368871.5A 2021-11-18 2021-11-18 基于深度学习及龙芯派的对弈机器人系统及其对弈方法 Active CN114425773B (zh)

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)

* Cited by examiner, † Cited by third party
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 上海交通大学 基于深度强化学习方法的中国象棋博弈学习方法及系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
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
CN106924961B (zh) 一种智能象棋对弈控制方法及系统
CN105413198B (zh) Ar儿童早教积木系统
CN111136669B (zh) 一种基于全局视觉的下棋机器人及其控制方法
CN105373224A (zh) 一种基于普适计算的混合现实游戏系统及方法
CN107498558A (zh) 全自动手眼标定方法及装置
EP2392990A2 (en) Input for computer device using pattern-based computer vision
CN103279191A (zh) 一种基于手势识别技术的3d虚拟交互方法及系统
Soltani et al. Developing a gesture-based game for deaf/mute people using microsoft kinect
CN103875004A (zh) 动态选择真实世界中的表面以用于在上面投影信息
CN111709301B (zh) 一种冰壶球运动状态估计方法
CN106310678A (zh) 智能积木系统及其控制方法
CN105396287B (zh) 台球游戏控制方法及系统
KR102580282B1 (ko) 테이블톱 게임들의 상태들을 전환하는 방법들, 장치들, 디바이스들 및 저장 매체들
CN113033369B (zh) 动作捕捉方法、装置、电子设备及计算机可读存储介质
CN109739358A (zh) 基于裸眼3d的手势碰撞检测方法及设备
CN114425773B (zh) 基于深度学习及龙芯派的对弈机器人系统及其对弈方法
CN106249901B (zh) 一种以Android原生游戏支持体感设备操控的适配方法
CN102867174B (zh) 一种人脸特征定位方法及装置
CN110147198A (zh) 一种手势识别方法、手势识别装置及车辆
CN111798511B (zh) 一种棋盘棋子定位方法及装置
WO2023142555A1 (zh) 数据处理方法和装置、计算机设备、存储介质及计算机程序产品
CN107592464A (zh) 一种变倍过程中变倍跟随曲线的切换方法及装置
Juang Humanoid robots play chess using visual control
US20220223065A1 (en) Robot control system for coding education
CN107813321A (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