发明内容
本发明的一个目的是提供一种AGV小车定位的新的技术方案。
根据本发明的第一方面,提供了一种AGV小车定位方法,所述方法包括:
获取待识别的第一图片;
对所述第一图片进行分区域处理,得到第一预设数量的区域图片,并为每个区域图片设置位置标记信息;所述位置标记信息用于标记所述区域图片在所述第一图片中的位置;
获取至少一个区域图片作为待比对区域图片;
将预存样本图片中的样本区域图片与所述待比对区域图片进行匹配,得到匹配结果;其中,用于执行匹配的所述样本区域图片在所述样本图片中的位置与所述待比对区域图片在所述第一图片中的位置相同;
根据匹配结果,获取唯一对应第一图片的定位信息并发送给所述AGV小车。
可选的,所述获取至少一个区域图片作为待比对区域图片的步骤,包括:
从所述第一预设数量的区域图片中随机选择一个区域图片;
判断所选择的区域图片的像素值是否完整;
若否,从所述第一预设数量的区域图片中随机选择另一个区域图片,返回执行判断所选择的区域图片的像素值是否完整的步骤;
若是,将所选择的区域图片作为所述待比对区域图片。
可选的,所述获取至少一个区域图片作为待比对区域图片的步骤,包括:
从所述第一预设数量的区域图片中随机选择第二预设数量的区域图片作为所述待比对区域图片;所述第二预设数量大于1且小于所述第一预设数量。
可选的,所述将预存样本图片中的样本区域图片与所述待比对区域图片进行匹配的步骤,包括:
将所述样本区域图片与所述待比对区域图片进行像素值跳跃式匹配;和/或,
将所述样本区域图片与所述待比对区域图片进行像素值逐一匹配。
可选的,所述将预存样本图片中的样本区域图片与所述待比对区域图片进行匹配,得到匹配结果的步骤,包括:
对所述样本区域图片与所述待比对区域图片分别进行降维处理,得到所述样本区域图片的一维向量和所述待比对区域图片的一维向量,通过投影比对算法计算出两个一维向量的相似度,根据所述相似度和预设相似度阈值,确定所述匹配结果。
可选的,所述根据匹配结果,获取唯一对应第一图片的定位信息并发送给所述AGV小车的步骤,包括:
判断所述样本区域图片与所述待比对区域图片匹配后是否得到唯一对应的定位信息;
若是,将所述定位信息发送给所述AGV小车;
若否,重新选择或进一步选择所述待比对区域图片,返回执行所述将预存样本图片中的样本区域图片与所述待比对区域图片进行匹配的步骤。
可选的,所述根据匹配结果,获取唯一对应第一图片的定位信息的步骤,包括:
根据匹配结果,获取唯一对应第一图片的二维码信息;
根据所述二维码信息,获取对应的定位信息。
可选的,所述获取待识别的第一图片的步骤,包括:
接收所述AGV小车发送的所述第一图片;所述第一图片是所述AGV小车对采集到的第二图片进行处理后获得的;或者,
接收所述AGV小车采集的第二图片;对所述第二图片进行处理,获取所述第一图片。
根据本发明的第二方面,提供了一种AGV小车定位装置,所述装置包括:存储器和处理器,所述存储器用于存储指令;所述指令用于控制所述处理器进行操作,以执行如本发明第一方面中的任意一项所述的AGV小车定位方法。
根据本发明的第三方面,提供了一种AGV小车定位***,所述***包括所述AGV小车和服务器;
其中,所述AGV小车用于采集待识别的第一图片并发送至所述服务器,接收来自服务器的定位信息,并根据所述定位信息执行相应的操作;
所述服务器中设置有如本发明第二方面所述的AGV小车定位装置;或者,所述服务器被设计为用于执行根据本发明第一方面中的任意一项所述的AGV小车定位方法中的操作。
根据本发明实施例,通过将获取的待识别的第一图片与预存样本图片进行匹配,根据图片的匹配结果获取与第一图片唯一对应的定位信息发送给AGV小车,由于图片的少量损毁不会影响识别,从而避免了图片部分损毁导致的定位信息无法识别的问题。进一步的,本发明实施例中,对第一图片经过分区域处理后得到第一预设数量的区域图片,在执行匹配时,从第一预设数量的区域图片中获取至少一个区域图片作为待比对区域图片,将预存样本图片中的样本区域图片与待比对区域图片进行匹配,从而可以减少对整个图片进行比对的运算量,进一步提升了图片识别速度。
通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。
具体实施方式
现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
在这里示出和讨论的所有例子中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它例子可以具有不同的值。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
<方法实施例>
图1是根据本发明实施例的AGV小车定位方法的流程示意图。本实施例提供的AGV小车定位方法可以由服务器执行。
具体的,如图1所示,本实施例的AGV小车定位方法可以包括如下步骤:
步骤1100,获取待识别的第一图片。
在一种可行的实施方式中,AGV小车通过摄像头采集所经过的位置点的第二图片,并对第二图片进行校正、降噪、光线调节等处理后得到第一图片,将第一图片发送给服务器,使服务器获取待识别的第一图片。
在另一种可行的实施方式中,AGV小车通过摄像头采集到所经过的位置点的第二图片后,直接发给服务器。服务器接收第二图片,对第二图片进行校正、降噪、光线调节等处理后,获取到待识别的第一图片。
步骤1200,对第一图片进行分区域处理,得到第一预设数量的区域图片,并为每个区域图片设置位置标记信息;位置标记信息用于标记区域图片在第一图片中的位置。
为了减少图片比对的运算量,在本实施例中,服务器获取到待识别的第一图片后,会对第一图片进行分区域处理。
例如,第一预设数量为4,服务器在获取待识别的第一图片后,将第一图片分为4个区域图片。并对每个区域图片设置位置标记信息,例如,将4个区域图片的位置标记信息分别设置为1、2、3、4。其中,1对应于第一图片左上角的位置,2对应于第一图片右上角的位置,3对应于第一图片左下角的位置,4对应于第一图片右下角的位置。
步骤1300,获取至少一个区域图片作为待比对区域图片。
在本步骤中,可以在每次匹配时,从第一预设数量的区域图片中选择一个区域图片作为待比对区域图片,或者,也可以在每次匹配时,从第一预设数量的区域图片中选择第二预设数量个区域图片同时作为待比对区域图片。本实施例对此不作具体限定。
具体的,对于在每次匹配时仅选择一个区域图片作为待比对区域图片的情况,服务器从第一预设数量的区域图片中随机选择一个区域图片作为待比对区域图片。
进一步的,为避免所选择的区域图片损坏严重而无法识别,服务器在随机选择一个区域图片作为待比对区域图片后,还可以判断所选择的区域图片的像素值是否完整。如果区域图片的像素值不完整,说明该区域图片损坏严重,无法根据该区域图片得到匹配结果,需要重新选取待比对区域图片。从而避免使用损坏严重的区域图片执行匹配操作,影响匹配效率。
也就是说,若判断该区域图片的像素值不完整,则需要重新从第一预设数量的区域图片中随机选择另一个区域图片,然后再进行像素值完整性的判断,直至判断出所选择的区域图片的像素值完整,才会将该区域图片作为待比对区域图片。
对于在每次匹配时选择多个区域图片作为待比对区域图片的情况,服务器从第一预设数量的区域图片中随机选择第二预设数量的区域图片作为待比对区域图片;所述第二预设数量大于1且小于所述第一预设数量。
例如,第一图片被分为4个区域图片,服务器可以从4个区域图片中随机选择2个区域图片作为待比对区域图片。
步骤1400,将预存样本图片中的样本区域图片与所述待比对区域图片进行匹配,得到匹配结果;其中,用于执行匹配的所述样本区域图片在所述样本图片中的位置与所述待比对区域图片在所述第一图片中的位置相同。
需要说明的是,服务器对预存样本图片也进行了分区域处理,将预存样本图片分为第一预设数量个样本区域图片,并按照同样的方式对第一预设数量个样本区域图片设置了位置标记信息。
在一个可行的实施方式中,服务器在执行图片匹配时,可以将所述样本区域图片与所述待比对区域图片进行像素值跳跃式匹配;和/或,将所述样本区域图片与所述待比对区域图片进行像素值逐一匹配。
例如,服务器可以以2的倍数,对样本区域图片与待比对区域图片进行像素值跳跃式比对,以减少图片比对的运算量。或者,对样本区域图片与待比对区域图片进行像素值逐一匹配,以提高图片比对的精度。或者,可以先以2的倍数,对样本区域图片与待比对区域图片进行像素值跳跃式比对,在匹配到相同的像素值时,再执行像素值逐一匹配,从而进一步确定样本区域图片与待比对区域图片是相似还是相同。
在另一个可行的实施方式中,服务器在执行图片匹配时,可以对所述样本区域图片与所述待比对区域图片分别进行降维处理,得到所述样本区域图片的一维向量和所述待比对区域图片的一维向量,通过投影比对算法计算出两个一维向量的相似度,根据所述相似度和预设相似度阈值,确定所述匹配结果。
例如,在计算出的相似度小于预设相似度阈值时,确定待比对区域图片与样本区域图片相同;在计算出的相似度大于等于预设相似度阈值时,确定待比对区域图片与样本区域图片不相同,需要换一个样本区域图片执行图片匹配。
步骤1500,根据匹配结果,获取唯一对应第一图片的定位信息并发送给所述AGV小车。
在一个例子中,服务器中预先存储有多个预存样本图片,每个预存样本图片唯一对应于一个定位信息,以保证AGV小车采集到第一图片后可以获取到唯一的定位信息。
具体的,服务器根据匹配结果,获取唯一对应第一图片的定位信息并发送给所述AGV小车的步骤可以包括:判断所述样本区域图片与所述待比对区域图片匹配后是否得到唯一对应的定位信息。
若得到唯一对应的定位信息,则将定位信息发送给所述AGV小车即可。若得到多个与区域图片匹配的定位信息,则需要重新选择或进一步选择待比对区域图片,返回执行步骤1400,直至判断出得到唯一对应的定位信息。
例如,若得到两个与区域图片匹配的定位信息,服务器可以重新选择一个待比对区域图片与样本区域图片进行匹配,根据匹配结果确定唯一对应的定位信息。或者,服务器可以进一步选择一个待比对区域图片与样本区域图片进行匹配,根据两次匹配结果,确定出唯一对应的定位信息。
在另一个例子中,服务器中预先存储有多个预存样本图片,每个预存样本图片唯一对应于一个二维码信息,每个二维码信息对应一个定位信息,以保证AGV小车采集到第一图片后可以根据唯一对应的二维码信息获取到定位信息。
具体的,服务器根据匹配结果,获取唯一对应第一图片的定位信息的步骤可以包括:根据匹配结果,获取唯一对应第一图片的二维码信息;根据所述二维码信息,获取对应的定位信息。
根据本实施例,服务器通过将获取的待识别的第一图片与预存样本图片进行匹配,根据图片的匹配结果获取与第一图片唯一对应的定位信息发送给AGV小车,由于图片的少量损毁不会影响识别,从而避免了图片部分损毁导致的定位信息无法识别的问题。进一步的,本发明实施例中,对第一图片经过分区域处理后得到第一预设数量的区域图片,在执行匹配时,从第一预设数量的区域图片中获取至少一个区域图片作为待比对区域图片,将预存样本图片中的样本区域图片与待比对区域图片进行匹配,从而可以减少对整个图片进行比对的运算量,进一步提升了图片识别速度。
<装置>
图2是根据本公开实施例的AGV小车定位装置的结构示意图。
如图2所示,本实施例的AGV小车定位装置2000可以包括存储器2100和处理器2200,所述存储器2100用于存储指令;所述指令用于控制所述处理器2200进行操作,以执行前面参照图1所示的AGV小车定位方法中的操作。技术人员可以根据本公开所公开方案设计指令。指令如何控制处理器进行操作,这是本领域公知,故在此不再详细描述。
本实施例的AGV小车定位装置,可用于执行上述方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
<***>
图3是根据本发明实施例的AGV小车定位***的结构示意图。
如图3所示,本实施例的AGV小车定位***可以包括:AGV小车和服务器。
其中,AGV小车用于采集待识别的第一图片并发送至所述服务器,接收来自服务器的定位信息,并根据所述定位信息执行相应的操作。
在一个例子中,服务器中可以设置如图2所示实施例所述的AGV小车定位装置。在另一个例子中,服务器可以被设计为用于执行上述方法实施例所述的AGV小车定位方法中的操作。
<例子>
图4是根据本发明实施例的AGV小车定位方法的例子的流程示意图。
如图4所示,在步骤4100,服务器获取待识别的第一图片。
其中,AGV小车通过摄像头采集所经过位置点的第二图片后,可以对第二图片进行校正、降噪、光线调节等处理后得到待识别的第一图片,将第一图片发送给服务器。或者AGV小车可以直接将包含待识别的第一图片的第二图片发送给服务器,由服务器执行校正、降噪、光线调节等处理后得到待识别的第一图片。本实施例对此不作具体限定。
在步骤4200,服务器将第一图片分为第一预设数量的区域图片。
例如,服务器将第一图片分为4个区域图片,并分别为4个区域图片设置位置标记信息:A、B、C、D,其中,A对应于第一图片左上角的位置,B对应于第一图片右上角的位置,C对应于第一图片左下角的位置,D对应于第一图片右下角的位置。
步骤4300,服务器从第一预设数量的区域图片中随机选择一个区域图片。
例如,服务器从区域图片A、B、C、D中随机选择区域图片A。
步骤4400,服务器判断所选择的区域图片的像素值是否完整。
服务器判断区域图片A的像素值是否完整,如果区域图片A的像素值不完整,表明区域图片A损坏严重,无法用于执行匹配操作。
步骤4500,若服务器判断所选择的区域图片的像素值不完整,从第一预设数量的区域图片中随机选择另一个区域图片,返回执行步骤4400中的操作。
例如,重新选择区域图片B,判断区域图片B的像素值是否完整。若判断结果为是,则执行步骤4600,若判断结果为否,再重新选择区域图片C,重复上述步骤,直至判断出区域图片的像素值完整,执行步骤4600。
步骤4600,若服务器判断所选择的区域图片的像素值完整,将所选择的区域图片作为待比对区域图片。执行步骤4700。
步骤4700,将预存样本图片中的样本区域图片与所述待比对区域图片进行匹配,得到匹配结果。
其中,用于执行匹配的样本区域图片在样本图片中的位置与待比对区域图片在第一图片中的位置相同。例如,若区域图片A为待比对区域图片,用于执行匹配的就是样本区域图片A;若区域图片B为待比对区域图片,用于执行匹配的就是样本区域图片B。
服务器在执行匹配时,可以将样本区域图片与待比对区域图片进行像素值跳跃式匹配;和/或,将样本区域图片与所述待比对区域图片进行像素值逐一匹配。或者,服务器还可以对样本区域图片与待比对区域图片分别进行降维处理,得到样本区域图片的一维向量和待比对区域图片的一维向量,通过投影比对算法计算出两个一维向量的相似度,根据相似度和预设相似度阈值,确定匹配结果。
步骤4800,服务器判断样本区域图片与待比对区域图片匹配后是否得到唯一对应的定位信息。若判断结果为否,执行步骤4300;若判断结果为是,则执行步骤4900。
步骤4900,服务器将定位信息发送给AGV小车。
本实施例的技术方案,服务器对获取的待识别的第一图片经过分区域处理后得到第一预设数量的区域图片,在执行匹配时,从第一预设数量的区域图片中获取至少一个区域图片作为待比对区域图片,将预存样本图片中的样本区域图片与待比对区域图片进行匹配,以根据匹配结果获取与第一图片唯一对应的定位信息发送给AGV小车,可以避免图片部分损毁导致的定位信息无法识别的问题,并减少图片比对的运算量,提升图片识别速度。
<硬件配置>
图5是可以实现本发明实施例的服务器5000的硬件配置的框图。
服务器5000例如可以是刀片服务器等。在一个例子中,服务器5000可以是一台计算机。在另一个例子中,服务器5000可以如图5所示,包括处理器5100、存储器5200、接口装置5300、通信装置5400、显示装置5500、输入装置5600。尽管服务器也可以包括扬声器、麦克风等等,但是,这些部件与本发明无关,故在此省略。其中,处理器5100例如可以是中央处理器CPU、微处理器MCU等。存储器5200例如包括ROM(只读存储器)、RAM(随机存取存储器)、诸如硬盘的非易失性存储器等。接口装置5300例如包括USB接口、串行接口等。通信装置5400例如能够进行有线或无线通信。显示装置5500例如是液晶显示屏。输入装置5600例如可以包括触摸屏、键盘等。
图5所示的服务器仅仅是说明性的并且决不意味着对本发明、其应用或使用的任何限制。应用于本发明的实施例中,服务器5000的的所述存储器5200用于存储指令,所述指令用于控制所述处理器5100进行操作以执行本发明实施例提供的任意一项AGV小车定位方法。本领域技术人员应当理解,尽管在图5中对服务器5000的示出了多个装置,但是,本发明可以仅涉及其中的部分装置,例如,服务器5000的只涉及处理器5100和存储装置5200。技术人员可以根据本发明所公开方案设计指令。指令如何控制处理器进行操作,这是本领域公知,故在此不再详细描述。
本领域技术人员公知的是,随着诸如大规模集成电路技术的电子信息技术的发展和软件硬件化的趋势,要明确划分计算机***软、硬件界限已经显得比较困难了。因为,任何操作可以软件来实现,也可以由硬件来实现。任何指令的执行可以由硬件完成,同样也可以由软件来完成。对于某一机器功能采用硬件实现方案还是软件实现方案,取决于价格、速度、可靠性、存储容量、变更周期等非技术性因素。对于技术人员来说,软件实现方式和硬件实现方式是等同的。技术人员可以根据需要选择软件或硬件来实现上述方案。因此,这里不对具体的软件或硬件进行限制。
本发明可以是设备、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
这里参照根据本发明实施例的方法、装置(***)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本发明的多个实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。对于本领域技术人员来说公知的是,通过硬件方式实现、通过软件方式实现以及通过软件和硬件结合的方式实现都是等价的。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。本发明的范围由所附权利要求来限定。