实现八皇后棋子摆放的方法及装置与流程

文档序号:17081587发布日期:2019-03-09 00:20阅读:603来源:国知局
实现八皇后棋子摆放的方法及装置与流程

本发明涉及图像处理技术领域,尤其是涉及一种实现八皇后棋子摆放的方法及装置。



背景技术:

近年来,智能车已成为人们热议的话题,智能车也将在未来的日常生活扮演重要的角色,而图像识别与处理在是体现智能车设计水平的一个重要标志。八皇后问题是典型的回溯法案例,即任意两个皇后不能处于同一行,同一列或者同一斜线上。在使用智能车完成八皇后棋子摆放的过程中,为了提高智能车的自主处理功能并提高棋子摆放的效率,需要对特定点进行棋子的抓取和摆放,而目前,尚未对解决该问题形成更好的技术方案。



技术实现要素:

有鉴于此,本发明的目的在于提供一种实现八皇后棋子摆放的方法及装置,可以实现智能车的自身定位、路径识别和规划,从而对特定点进行棋子的抓取和摆放。

第一方面,本发明实施例提供了一种实现八皇后棋子摆放的方法,应用于智能车的控制器,该方法包括:获取棋盘上棋子初始位置,并根据八皇后规则确定目标摆放位置;根据目标摆放位置确定智能车的目标路径;当智能车沿目标路径移动时,获取棋盘的图像;根据图像确定智能车的当前定位及棋子定位;当智能车沿目标路径移动时,根据当前定位和棋子定位抓取棋子,并根据当前定位和目标摆放位置摆放棋子。

结合第一方面,本发明实施例提供了第一方面的第一种可能的实施方式,其中,获取棋盘上棋子初始位置,并根据八皇后规则确定目标摆放位置的步骤,包括:获取棋盘上棋子的初始位置;根据遗传算法确定满足八皇后规则的摆放方式;选择从初始位置开始移动所需步数最少的摆放方式作为目标摆放方式,将目标摆放方式对应的摆放位置作为目标摆放位置。

结合第一方面,本发明实施例提供了第一方面的第二种可能的实施方式,其中,根据目标摆放位置确定智能车的目标路径的步骤,包括:在棋盘的边线上选择智能车的起始位置;根据起始位置和贪心算法逐步确定下一步的移动路线,得到行驶路径;行驶路径包括将棋子由初始位置移动到目标摆放位置的路径;遍历所有的起始位置,得到多个行驶路径;选择步数最少的行驶路径作为目标路径。

结合第一方面,本发明实施例提供了第一方面的第三种可能的实施方式,其中,在根据图像确定智能车的当前定位及棋子定位的步骤之前,还包括:对图像进行预处理;预处理包括二值化、腐蚀和膨胀。

结合第一方面或其第三种可能的实施方式,本发明实施例提供了第一方面的第四种可能的实施方式,其中,根据图像确定智能车的当前定位及棋子定位的步骤,包括:提取图像中的标识;标识为棋盘上的位置标识;通过预先训练的模型对标识进行识别,获取智能车的当前定位及棋子定位。

结合第一方面,本发明实施例提供了第一方面的第五种可能的实施方式,其中,根据当前定位和棋子定位抓取棋子,并根据当前定位和目标摆放位置摆放棋子的步骤,包括:当当前定位与棋子定位相同,抓取棋子;当当前定位与目标摆放位置相同,摆放棋子。

第二方面,本发明实施例还提供一种实现八皇后棋子摆放的装置,应用于智能车的控制器,该装置包括:位置规划模块,用于获取棋盘上棋子初始位置,并根据八皇后规则确定目标摆放位置;路径规划模块,用于根据目标摆放位置确定智能车的目标路径;图像获取模块,用于当智能车沿目标路径移动时,获取棋盘的图像;定位模块,用于根据图像确定智能车的当前定位及棋子定位;执行模块,用于当智能车沿目标路径移动时,根据当前定位和棋子定位抓取棋子,并根据当前定位和目标摆放位置摆放棋子。

结合第二方面,本发明实施例提供了第二方面的第一种可能的实施方式,其中,位置规划模块,还用于:获取棋盘上棋子的初始位置;根据遗传算法确定满足八皇后规则的摆放方式;选择从初始位置开始移动所需步数最少的摆放方式作为目标摆放方式,将目标摆放方式对应的摆放位置作为目标摆放位置。

结合第二方面,本发明实施例提供了第二方面的第二种可能的实施方式,其中,路径规划模块,还用于:在棋盘的边线上选择智能车的起始位置;根据起始位置和贪心算法逐步确定下一步的移动路线,得到行驶路径;行驶路径包括将棋子由初始位置移动到目标摆放位置的路径;遍历所有的起始位置,得到多个行驶路径;选择步数最少的行驶路径作为目标路径。

结合第二方面,本发明实施例提供了第二方面的第三种可能的实施方式,其中,定位模块,还用于:提取图像中的标识;标识为棋盘上的位置标识;通过预先训练的模型对标识进行识别,获取智能车的当前定位及棋子定位。

本发明实施例带来了以下有益效果:本发明实施例提供了一种实现八皇后棋子摆放的方法及装置,在获取到棋子在棋盘上的初始位置后,根据八皇后规则确定目标摆放位置,根据目标摆放位置可以得到移动棋子时智能车可以走的多条路径,从多条路径中选择目标路径;在智能车沿着目标路径移动时,不断获取棋盘的图像,根据图像可以得到智能车本身的当前定位和各个棋子的定位,结合定位对棋子进行摆放。本发明实施例能够实现智能车的自身定位、路径识别和规划,从而对特定点进行棋子的抓取和摆放。

本公开的其他特征和优点将在随后的说明书中阐述,或者,部分特征和优点可以从说明书推知或毫无疑义地确定,或者通过实施本公开的上述技术即可得知。

为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。

附图说明

为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的实现八皇后棋子摆放的方法的流程图;

图2为本发明实施例提供的实现八皇后棋子摆放的方法的流程示意图;

图3为本发明实施例提供的实现八皇后棋子摆放的方法的选择目标路径的流程图;

图4为本发明实施例提供的实现八皇后棋子摆放的方法的图像处理流程图;

图5为本发明实施例提供的实现八皇后棋子摆放的装置的结构框图。

图标:

51-位置规划模块;52-路径规划模块;53-图像获取模块;54-定位模块;55-执行模块。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

为了实现八皇后问题的棋子摆放,传统的智能车图像识别可以按照既定的轨道进行移动,但是当小车需要确定自身的位置坐标时,传统的智能车路径识别算法并不能进行准确的定位。因此并不能对特定点进行信息处理。同时,为了使智能车的自主处理能力得到加强,需要在图像识别的基础上,解决智能车自主规划路径,以完成八皇后棋子摆放的问题。

基于此,本发明实施例提供的一种实现八皇后棋子摆放的方法及装置,可以实现智能车的自身定位、路径识别和规划,从而对特定点进行棋子的抓取和摆放。

为便于对本实施例进行理解,首先对本发明实施例所公开的一种实现八皇后棋子摆放的方法进行详细介绍。

实施例1

本发明实施例1提供了一种实现八皇后棋子摆放的方法,参见图1所示的实现八皇后棋子摆放的方法的流程图,该方法包括如下步骤:

步骤s102,获取棋盘上棋子初始位置,并根据八皇后规则确定目标摆放位置。

棋盘可以是8*8个格子的按照一定比例缩小或放大的国际象棋棋盘。棋子共有8个,棋子也可以是其他能够被智能车抓取的物件。初始位置是在棋盘上随机选择的位置。八皇后规则是指任两个皇后都不能处于同一条横行、纵行或斜线上。目标摆放位置是满足八皇后规则的棋子摆放位置。

步骤s104,根据目标摆放位置确定智能车的目标路径。

目标路径包括智能车连续将所有棋子从初始位置分别移动到目标摆放位置所需要经过的路径。在确定目标摆放位置之后,根据目标摆放位置和初始位置确定目标路径。

步骤s106,当智能车沿目标路径移动时,获取棋盘的图像。

在确定了目标路径之后,控制器控制智能车沿目标路径在棋盘上移动,智能车上设置有摄像头,可以不断获取智能车四周的棋盘的图像与视频。

步骤s108,根据图像确定智能车的当前定位及棋子定位。

当前定位是指智能车在棋盘上的位置,棋子定位是指棋子在棋盘上的位置。定位可以使用所在方格的位置或所在方格的序号来描述。棋盘上共有64个方格,根据图像中方格的位置情况可以确定智能车的当前定位和棋子定位。

步骤s110,当智能车沿目标路径移动时,根据当前定位和棋子定位抓取棋子,并根据当前定位和目标摆放位置摆放棋子。

智能车沿着规划好的目标路径移动,以抓取或摆放棋子,从而将随机放置的棋子移动到目标摆放位置。根据当前定位可以确定智能车的位置,当智能车移动到随机放置的棋子处,控制智能车抓取棋子,当移动到该棋子的目标摆放位置时,控制智能车摆放棋子。

本发明实施例提供了一种实现八皇后棋子摆放的方法,在获取到棋子在棋盘上的初始位置后,根据八皇后规则确定目标摆放位置,根据目标摆放位置可以得到移动棋子时智能车可以走的多条路径,从多条路径中选择目标路径;在智能车沿着目标路径移动时,不断获取棋盘的图像,根据图像可以得到智能车本身的当前定位和各个棋子的定位,结合定位对棋子进行摆放。本发明实施例能够实现智能车的自身定位、路径识别和规划,从而对特定点进行棋子的抓取和摆放。

考虑到满足八皇后规则的目标摆放位置较多,从棋子的初始位置分别移动到目标摆放位置会有多种路径,花费的步数各不相同,因此,需要对目标摆放位置进行筛选。为了提高智能车的摆放棋子的效率,获取棋盘上棋子初始位置,并根据八皇后规则确定目标摆放位置的步骤,包括以下各步骤:

(1)获取棋盘上棋子的初始位置。

棋子的初始位置可以由系统随机生成,也可以人工手动输入。棋子的初始位置可以是8个棋子在棋盘上的任意位置。

(2)根据遗传算法确定满足八皇后规则的摆放方式。

遗传算法是模拟达尔文生物进化论的自然选择和遗传学机理的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的方法。通过遗传算法得到满足八皇后问题的解,将计算得到的解作为满足八皇后规则的摆放方式。使用遗传算法求解八皇后问题,可以大大降低算法的时间复杂度。

(3)选择从初始位置开始移动所需步数最少的摆放方式作为目标摆放方式,将目标摆放方式对应的摆放位置作为目标摆放位置。

计算智能车将8个棋子分别从初始位置移动移动到摆放方式所需要移动的步数,可以得到一个步数统计结果;分别计算智能车将棋子移动到每个满足八皇后规则的摆放方式所需要的步数,可以得到多个步数统计结果。选择需要步数最少的摆放方式作为目标摆放方式,目标摆放方式对应的摆放位置即为目标摆放位置。

考虑到在确定了目标摆放位置后,智能车可以按照多种路径将棋子从初始位置移动到目标摆放位置,而步数少的路径未必最省时,为了使智能车更快完成棋子的摆放,根据目标摆放位置确定智能车的目标路径的步骤,包括:

(1)在棋盘的边线上选择智能车的起始位置。

起始位置是智能车出发摆放棋子的起点。起始位置可以设置在棋盘的任意一条边上,棋盘由8*8个各组组成,可以选择任意一条边上的任意格子作为起始位置。

(2)根据起始位置和贪心算法逐步确定下一步的移动路线,得到行驶路径;行驶路径包括将棋子由初始位置移动到目标摆放位置的路径。

贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。从起始位置根据贪心算法确定第一个要移动的棋子及移动路线,根据第一个要移动的棋子和贪心算法确定第二个要移动的棋子及移动路线,直至将8个棋子均移动完毕,得到的总的移动路线就是行驶路径。行驶路径即为智能车要完成全部棋子的摆放所要移动的轨迹。

(3)遍历所有的起始位置,得到多个行驶路径。

参见图3所示的选择目标路径的流程图,在每次选择起始位置,经过所有棋子,得到一个行驶路径后,需要判断是否已经遍历了所有起始位置,如果有未被遍历的起始位置,则选择该起始位置,得到新的行驶路径。

(4)选择步数最少的行驶路径作为目标路径。

根据用户的需求,可以从多个行驶路径中选择步数最少的路径作为目标路径。

为了增强图像的识别率,在根据图像确定智能车的当前定位及棋子定位的步骤之前,还包括:对图像进行预处理;预处理包括二值化、腐蚀和膨胀。

二值化可以把灰度图像转换成二值图像。把大于某个临界灰度值的像素灰度设为灰度极大值,把小于这个值的像素灰度设为灰度极小值,从而实现二值化。膨胀和腐蚀是两种基本的形态学运算。腐蚀就是使用算法,将图像的边缘腐蚀掉,作用就是将目标的边缘的“毛刺”剔除掉,即将物体与周围背景点分离。膨胀就是使用算法,将图像的边缘扩大些,作用就是将目标的边缘或者是内部的坑填掉,即将物体与周围背景点结合。经过预处理的图像可以减少识别的复杂度,增强图像的识别率。

为了实现对智能车自身及棋子精准定位,从而实现对特定点进行信息处理,根据图像确定智能车的当前定位及棋子定位的步骤,包括:提取图像中的标识;标识为棋盘上的位置标识;通过预先训练的模型对标识进行识别,获取智能车的当前定位及棋子定位。

标识是图像中用于识别坐标位置的标记。例如,可以是标记在棋盘不同方格上的数字字符。参见图4所示的图像处理流程图,在对得到的原图进行图片预处理之后,对字符进行轮廓提取,对该字符所在格子进行特征提取。例如,可以得到“0”-“9”的数字字符,如果是双位数的字符,如“32”,需要字符切割,分别识别“3”和“2”,再进行字符拼接得到“32”。根据字符和字符标记所在格子对智能车进行训练,可以使用支持向量机(supportvectormachine,svm)模型进行训练,从而使智能车可以根据字符识别棋盘的位置,从而得到智能车的当前定位及棋子定位。

考虑到要使智能车对棋子进行特定位置的抓取和摆放,根据当前定位和棋子定位抓取棋子,并根据当前定位和目标摆放位置摆放棋子的步骤,包括:当当前定位与棋子定位相同,抓取棋子;当当前定位与目标摆放位置相同,摆放棋子。

在获取到智能车的当前定位及棋子定位之后,在智能车移动的过程中,如果当前定位与棋子定位相同,则智能车抓取该棋子,继续沿目标路径移动,当智能车移动到该棋子的目标摆放位置,即当前定位与目标摆放位置相同,智能车摆放棋子,继续沿目标路径移动,以抓取和摆放下一棋子,直至走完目标路径,将全部棋子抓取并摆放完毕。

本发明实施例涉及一种基于图像识别的智能车完成八皇后棋子摆放方法,提出了一种新思路的路径识别和规划方法,参见图2所示的摆放的方法的流程示意图,在确定棋子初始位置之后进行路径规划和图像采集,通过对图像处理与分析,实现路径的判断,细分了图像识别的具体实现手段,通过数字识别确定自身位置并确定棋子要摆放的位置,较适用于车辆的定位与棋子摆放。并且,基于贪心算法的路径规划,使得智能车完成棋子摆放的路径达到较优的效果。本发明通过合理的逻辑思维实现小车定位和棋子摆放位置的确定,提高了执行效率,本发明可以实现智能车自动寻迹、路径规划、棋子识别这三个功能。

实施例2

本发明实施例2提供一种实现八皇后棋子摆放的装置,参见图5所示的实现八皇后棋子摆放的装置的结构框图,该装置包括:

位置规划模块51,用于获取棋盘上棋子初始位置,并根据八皇后规则确定目标摆放位置;路径规划模块52,用于根据目标摆放位置确定智能车的目标路径;图像获取模块53,用于当智能车沿目标路径移动时,获取棋盘的图像;定位模块54,用于根据图像确定智能车的当前定位及棋子定位;执行模块55,用于当智能车沿目标路径移动时,根据当前定位和棋子定位抓取棋子,并根据当前定位和目标摆放位置摆放棋子。

位置规划模块51,还用于:获取棋盘上棋子的初始位置;根据遗传算法确定满足八皇后规则的摆放方式;选择从初始位置开始移动所需步数最少的摆放方式作为目标摆放方式,将目标摆放方式对应的摆放位置作为目标摆放位置。

路径规划模块52,还用于:在棋盘的边线上选择智能车的起始位置;根据起始位置和贪心算法逐步确定下一步的移动路线,得到行驶路径;行驶路径包括将棋子由初始位置移动到目标摆放位置的路径;遍历所有的起始位置,得到多个行驶路径;选择步数最少的行驶路径作为目标路径。

定位模块54,还用于:提取图像中的标识;标识为棋盘上的位置标识;通过预先训练的模型对标识进行识别,获取智能车的当前定位及棋子定位。

本发明实施例所提供的实现八皇后棋子摆放的装置,其实现原理及产生的技术效果和前述实现八皇后棋子摆放的方法实施例相同,为简要描述,实现八皇后棋子摆放的装置实施例部分未提及之处,可参考前述方法实施例中相应内容。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的实现八皇后棋子摆放的装置的具体工作过程,可以参考前述实现八皇后棋子摆放的方法实施例中的对应过程,在此不再赘述。

最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1