掌桥专利:专业的专利平台
掌桥专利
首页

一种无人设备的控制方法、装置、存储介质及电子设备

文献发布时间:2023-06-19 10:32:14


一种无人设备的控制方法、装置、存储介质及电子设备

技术领域

本说明书涉及自动驾驶技术领域,尤其涉及一种无人设备的控制方法、装置、存储介质及电子设备。

背景技术

随着自动化与机器人技术的发展,无人设备在各种领域中逐渐发挥越来越重要的作用。

在现有技术中,无人设备的自动控制主要通过较为复杂的动力学模型或机器学习模型来实现,实现难度较高,而且自动控制的结果往往不尽如人意。

可见,如何简单高效且准确的实现无人设备的自动控制,成为一个亟待解决的问题。

发明内容

本说明书实施例提供一种无人设备的控制方法、装置、存储介质及电子设备,以部分解决上述现有技术存在的问题。

本说明书实施例采用下述技术方案:

本说明书提供的一种无人设备的控制方法,无人设备上安装有图像采集设备,所述无人设备所在的场地中预置有不同类型的目标,所述不同类型的目标用于引导所述无人设备,所述方法包括:

所述无人设备识别所述图像采集设备采集的图像中的前景区域,将位于所述前景区域中的像素作为前景像素;

在所述图像中,确定前景像素在不同方向上的数量分布直方图;其中,所述不同方向包括水平方向和竖直方向;

根据所述前景像素在不同方向上的数量分布直方图,识别所述图像中的目标的类型;

根据识别出的所述目标的类型,确定所述无人设备当前的可选行驶方向;

根据确定出的各可选行驶方向以及所述无人设备当前执行的任务对应的行驶路线,对所述无人设备自身进行控制。

可选地,所述不同类型的目标包括:水平方向的水平条带、竖直方向的竖直条带,以及由水平条带和竖直条带交叉构成的交叉条带。

可选地,确定前景像素在不同方向上的数量分布直方图,具体包括:

针对所述图像中的每个像素列,确定该像素列中前景像素的数量;根据每个像素列中前景像素的数量,确定前景像素在水平方向上的数量分布直方图;

针对所述图像中的每个像素行,确定该像素行中前景像素的数量;根据每个像素行中前景像素的数量,确定前景像素在竖直方向上的数量分布直方图。

可选地,根据所述前景像素在不同方向上的数量分布直方图,识别所述图像中的目标的类型,具体包括:

根据前景像素在水平方向上的数量分布直方图,确定前景像素的数量大于第一阈值的像素列,作为指定像素列;根据前景像素在竖直方向上的数量分布直方图,确定前景像素的数量大于第二阈值的像素行,作为指定像素行;

若所述指定像素列的数量大于第三阈值,且所述指定像素行的数量不大于第四阈值,则确定所述图像中的目标的类型为竖直条带;

若所述指定像素列的数量不大于第三阈值,且所述指定像素行的数量大于第四阈值,则确定所述图像中的目标的类型为水平条带;

若所述指定像素列的数量大于第三阈值,且所述指定像素行的数量大于第四阈值,则确定所述图像中的目标的类型为交叉条带。

可选地,根据识别出的所述目标的类型,确定所述无人设备当前的可选行驶方向,具体包括:

当识别出的所述目标的类型为水平条带时,确定所述无人设备当前的可选行驶方向为水平方向;

当识别出的所述目标的类型为竖直条带时,确定所述无人设备当前的可选行驶方向为竖直方向;

当识别出的所述目标的类型为交叉条带时,确定所述无人设备当前的可选行驶方向为水平方向和竖直方向。

可选地,根据确定出的各可选行驶方向以及所述无人设备当前执行的任务对应的行驶路线,对所述无人设备自身进行控制,具体包括:

在所述图像对应的图像坐标中,确定由各指定像素列对应的横坐标所构成的横坐标区间的水平区间中点;确定所述图像中的指定点对应的横坐标相对于所述水平区间中点的偏移,作为所述无人设备相对于所述目标在水平方向上的位置偏移;在所述图像对应的图像坐标中,确定由各指定像素行对应的纵坐标所构成的纵坐标区间的竖直区间中点;确定所述图像中的指定点对应的纵坐标相对于所述竖直区间中点的偏移,作为所述无人设备相对于所述目标在竖直方向上的位置偏移;

根据确定出的各可选行驶方向、所述无人设备当前执行的任务对应的行驶路线,以及所述无人设备相对于所述目标在水平方向和/或竖直方向上的位置偏移,对所述无人设备自身进行控制。

可选地,所述图像采集设备采集的图像的中心点在所述场地中对应的位置,与所述无人设备的中心点在所述场地上的投影重合;

所述图像中的指定点为所述图像的中心点。

可选地,根据确定出的各可选行驶方向以及所述无人设备当前执行的任务对应的行驶路线,对所述无人设备自身进行控制,具体包括:

对所述前景区域的轮廓进行直线检测,获得所述前景区域的轮廓对应的各直线;

在获得的各直线中筛选出与竖直方向的夹角的绝对值小于第五阈值的直线,根据筛选出的直线与竖直方向的角度以及筛选出的直线的长度,确定所述无人设备相对于竖直方向的角度偏移;在获得的各直线中筛选出与水平方向的夹角的绝对值小于第六阈值的直线,根据筛选出的直线与水平方向的角度以及筛选出的直线的长度,确定所述无人设备相对于水平方向的角度偏移;

根据确定出的各可选行驶方向、所述无人设备当前执行的任务对应的行驶路线,以及所述无人设备相对于水平方向和/或竖直方向的角度偏移,对所述无人设备自身进行控制。

本说明书提供的一种无人设备的控制装置,无人设备上安装有图像采集设备,所述无人设备所在的场地中预置有不同类型的目标,所述不同类型的目标用于引导所述无人设备,所述装置包括:

前景提取模块,用于识别所述图像采集设备采集的图像中的前景区域,将位于所述前景区域中的像素作为前景像素;

统计模块,用于在所述图像中,确定前景像素在不同方向上的数量分布直方图;其中,所述不同方向包括水平方向和竖直方向;

识别模块,用于根据所述前景像素在不同方向上的数量分布直方图,识别所述图像中的目标的类型;

确定模块,用于根据识别出的所述目标的类型,确定所述无人设备当前的可选行驶方向;

控制模块,用于根据确定出的各可选行驶方向以及所述无人设备当前执行的任务对应的行驶路线,对所述无人设备自身进行控制。

本说明书提供的一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述的无人设备的控制方法。

本说明书提供的一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述的无人设备的控制方法。

本说明书实施例采用的上述至少一个技术方案能够达到以下有益效果:

本说明书实施例在场地中预置不同类型的目标,用于引导无人设备,将图像采集设备采集的图像中位于前景区域的像素作为前景像素,并确定前景像素在水平方向和竖直方向上的数量分布直方图,根据前景像素在不同方向上的数量分布直方图识别图像中的目标的类型,再根据识别出的目标的类型确定无人设备当前的可选行驶方向,根据各可选行驶方向和无人设备当前执行的任务对应的行驶路线,实现无人设备的自动控制,从而通过场地中预置的条带实现了简单高效且准确的自动控制。

附图说明

此处所说明的附图用来提供对本说明书的进一步理解,构成本说明书的一部分,本说明书的示意性实施例及其说明用于解释本说明书,并不构成对本说明书的不当限定。在附图中:

图1为本说明书实施例提供的无人设备的控制方法示意图;

图2A为本说明书实施例提供的图像中出现竖直条带的示意图;

图2B为本说明书实施例提供的图像中出现水平条带的示意图;

图2C为本说明书实施例提供的图像中出现交叉条带的示意图;

图3A为本说明书实施例提供的图像中存在竖直条带时前景像素在竖直方向上的数量分布直方图;

图3B为本说明书实施例提供的图像中存在竖直条带时前景像素在水平方向上的数量分布直方图;

图3C为本说明书实施例提供的图像中存在水平条带时前景像素在竖直方向上的数量分布直方图;

图3D为本说明书实施例提供的图像中存在水平条带时前景像素在水平方向上的数量分布直方图;

图3E为本说明书实施例提供的图像中存在交叉条带时前景像素在竖直方向上的数量分布直方图;

图3F为本说明书实施例提供的图像中存在交叉条带时前景像素在水平方向上的数量分布直方图;

图4为本说明书实施例提供的一种无人设备的控制装置的结构示意图;

图5为本说明书实施例提供的电子设备的结构示意图。

具体实施方式

本说明书在无人设备上安装图像采集设备,并在无人设备所运行的场地上预置不同类型的目标,这些不同类型的目标用于引导无人设备。具体的,可在场地中预置相互垂直的多条条带对无人设备进行引导,这些条带横纵交错呈“网格型”部署在场地中,这就需要由无人设备上的图像采集设备采集场地地面的图像,并识别图像中的条带,最后由无人设备控制自身沿识别出的条带的延伸方向行驶。为使本说明书的目的、技术方案和优点更加清楚,下面将结合本说明书具体实施例及相应的附图对本说明书技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本说明书保护的范围。

以下结合附图,详细说明本说明书各实施例提供的技术方案。

图1为本说明书实施例提供的无人设备的控制方法示意图,包括:

S100:无人设备识别所述图像采集设备采集的图像中的前景区域,将位于所述前景区域中的像素作为前景像素。

在本说明书实施例中,图像采集设备可安装在无人设备上,无人设备则运行在场地中,场地中预置的用于引导无人设备的不同类型的目标可以是相互垂直的多条条带。本说明书实施例中所述的目标既可以是条带,也可以是二维码或其他可以用于引导无人设备的物体。

需要说明的是,本说明书实施例中所述的无人设备既可以是应用在仓储领域用于搬运商品和货物的搬运设备,也可以是用于执行配送任务的无人车,所述的配送任务包括外卖配送,也包括其他种类的物流配送。

下面仅以所需识别的目标为条带为例进行说明。

在本说明书实施例中,可先根据预设的二值化阈值,对无人设备上安装的图像采集设备采集的图像进行二值化。具体的,该二值化阈值可根据需要进行设置,对图像进行二值化时,针对该图像中的每个像素,若该像素的像素值大于二值化阈值,则将该像素的像素值设置为第一像素值(如255,即纯白),若该像素的像素值不大于二值化阈值,则将该像素的像素值设置为第二像素值(如0,即纯黑)。上述第一像素值大于第二像素值。

对图像进行二值化后,即可识别二值化后的图像中的前景区域。具体的,可将像素值为第一像素值的像素所在的区域确定为前景区域,也可将像素值为第二像素值的像素所在的区域确定为前景区域。例如,若场地的地面为深色,而铺设的条带为浅色,则可将像素值为第一像素值的像素所在的区域确定为前景区域,相反的,若场地的地面为浅色,而铺设的条带为深色,则可将像素值为第二像素值的像素所在的区域确定为前景区域。

确定了前景区域后,该图像中位于前景区域的像素即为前景像素。

S102:在所述图像中,确定前景像素在不同方向上的数量分布直方图;其中,所述不同方向包括水平方向和竖直方向。

根据场地中铺设的这些相互垂直的条带在图像采集设备采集到的图像中的表现形式,本说明书将这些条带分为水平方向的水平条带、竖直方向的竖直条带,以及由水平条带和竖直条带交叉构成的交叉条带三种。

其中,竖直方向是指无人设备由头到尾或由尾到头的方向,竖直条带在图像采集设备采集到的图像中的表现形式如图2A所示,图2A中即为无人设备上的图像采集设备采集到的图像中出现竖直条带的情况。

水平方向则垂直于竖直方向,即无人设备由左到右或由右到左的方向,水平条带在图像采集设备采集到的图像中的表现形式如图2B所示,图2B中即为无人设备上的图像采集设备采集到的图像中出现水平条带的情况。

交叉条带则是由水平条带和竖直条带相互垂直交叉构成,交叉条带在图像采集设备采集到的图像中的表现形式如图2C所示,图2C中即为无人设备上的图像采集设备采集到的图像中出现交叉条带的情况。

为了简单且准确的识别竖直条带、水平条带和交叉条带这三种不同类型的目标,在本说明书实施例中,确定出图像中的前景像素后,可针对不同的方向(水平方向和竖直方向),确定前景像素在该方向上的数量分布直方图。即,确定前景像素在水平方向上的数量分布直方图,确定前景像素在竖直方向上的数量分布直方图。

具体的,在确定前景像素在水平方向上的数量分布直方图时,可针对图像中的每个像素列,确定该像素列中前景像素的数量,根据每个像素列中前景像素的数量,确定前景像素在水平方向上的数量分布直方图。在确定前景像素在竖直方向上的数量分布直方图时,可针对图像中的每个像素行,确定该像素行中前景像素的数量;根据每个像素行中前景像素的数量,确定前景像素在竖直方向上的数量分布直方图。

S104:根据所述前景像素在不同方向上的数量分布直方图,识别所述图像中的目标的类型。

由于竖直条带、水平条带和交叉条带在图像中大体上就是如图2A~图2C所示,因此,如果图像中存在竖直条带,那么如图3A~3B所示,该图像中的前景像素在水平方向上的数量分布直方图就会存在一个较为突出的峰值,而前景像素在竖直方向上的数量分布直方图较为平均。相反的,如果图像中存在水平条带,那么如图3C~3D所示,该图像中的前景像素在竖直方向上的数量分布直方图就会存在一个较为突出的峰值,而前景像素在水平方向上的数量分布直方图较为平均。进一步的,如果图像中存在交叉条带,那么如图3E~3F所示,该图像中的前景像素在竖直方向上和水平方向上的数量分布直方图都会存在一个较为突出的峰值。

从而,根据前景像素在水平方向和竖直方向上的数量分布直方图,识别该图像中的目标是竖直条带、水平条带和交叉条带中的哪一种。

具体的,可先根据前景像素在水平方向上的数量分布直方图,确定前景像素的数量大于第一阈值的像素列,作为指定像素列,并根据前景像素在竖直方向上的数量分布直方图,确定前景像素的数量大于第二阈值的像素行,作为指定像素行。其中,第一阈值与第二阈值可以相等,也可以不相等,第一阈值可以设定为该图像中总像素行数的预设百分比,第二阈值可以设定为该图像总像素列数的预设百分比,例如,第一阈值可以设定为图像中总像素行数的50%,第二阈值可以设定为该图像总像素列数的50%。

若指定像素列的数量大于第三阈值,且指定像素行的数量不大于第四阈值,即说明前景像素在水平方向上的数量分布直方图存在较为突出的峰值,而前景像素在竖直方向上的数量分布直方图较为平均,则确定所述图像中的目标的类型为竖直条带。

若指定像素列的数量不大于第三阈值,且指定像素行的数量大于第四阈值,即说明前景像素在竖直方向上的数量分布直方图存在较为突出的峰值,而前景像素在水平方向上的数量分布直方图较为平均,则确定所述图像中的目标的类型为水平条带。

若指定像素列的数量大于第三阈值,且指定像素行的数量大于第四阈值,即说明前景像素在竖直方向和水平方向上的数量分布直方图都存在较为突出的峰值,则确定所述图像中的目标的类型为交叉条带。

其中,上述第三阈值和第四阈值可以相等,也可以不相等,例如,第三阈值和第四阈值均可以设置为5。

S106:根据识别出的所述目标的类型,确定所述无人设备当前的可选行驶方向。

由于无人设备需要控制自身沿识别出的条带的延伸方向行驶,因此,在本说明书实施例中,从图像采集设备采集到的图像中识别出条带后,即可将条带的延伸方向确定为无人设备当前的可选行驶方向。也就是说,当识别出的目标的类型为水平条带时,确定无人设备当前的可选行驶方向为水平方向,当识别出的目标的类型为竖直条带时,确定无人设备当前的可选行驶方向为竖直方向,当识别出的目标的类型为交叉条带时,确定无人设备当前的可选行驶方向为水平方向和竖直方向。

S108:根据确定出的各可选行驶方向以及所述无人设备当前执行的任务对应的行驶路线,对所述无人设备自身进行控制。

由于无人设备在执行任务时会预先确定出该任务对应的行驶路线,因此,在确定出无人设备当前的可选行驶方向后,则可根据各可选行驶方向以及该任务对应的行驶路线,对无人设备自身进行控制。具体的,可在各可选行驶方向中,选择与该任务对应的行驶路线的夹角最小的可选行驶方向,并控制自身沿选择出的可选行驶方向行驶。

通过上述方法可见,上述方法可通过在场地中铺设的条带,简单高效的实现无人设备的自动控制。而且,对不同类型的条带的识别方法也摒弃了机器学习模型,采用较为简单且准确的数量分布直方图进行识别,可有效提高识别精度,从而提高自动控制的准确性。

虽然在现有技术的某些领域中也存在识别条带的方法,但是,现有技术中识别条带的方法往往采用不同的识别模型来识别不同类型的条带,也就是说,一个识别模型只能识别一个方向上的条带,如,只能识别“车头到车尾”方向的竖直条带,而无法识别垂直于该竖直条带的水平条带以及交叉条带。因此,采用现有技术中识别条带的方法,无人设备要么只能采用一个识别模型来识别一种类型的条带,而无法切换到另一个识别模型来识别其他类型的条带,要么同时使用多种识别模型同时识别,但这会增加识别的复杂度,而且当多个识别模型的识别结果出现冲突时,也会产生误判,这显然不利于无人设备的自动控制。

另外,图2A~图2C所示出的三种类型的条带在图像中的表现形式只是理想中的表现形式,在实际应用场景中,无人设备相对于条带存在偏移时,条带在图像中所处的位置也会存在偏移,因此,无人设备还需要根据条带在图像中所处的位置和/或角度,确定出无人设备相对于条带的位置偏移和/或角度偏移,并根据位置偏移和/或角度偏移进行自身的自动控制。

下面分别对确定位置偏移和角度偏移的过程进行说明。

在确定无人设备相对于目标的位置偏移时,可先建立由无人设备上的图像采集设备采集到的图像对应的图像坐标,并在该图像坐标中,确定由各指定像素列(前景像素的数量大于第一阈值的像素列)对应的横坐标所构成的横坐标区间的水平区间中点,确定该图像中的指定点对应的横坐标相对于所述水平区间中点的偏移,作为无人设备相对于目标在水平方向上的位置偏移。

相应的,在确定无人设备相对于目标在竖直方向上的位置偏移时,可在该图像坐标中,确定由各指定像素行(前景像素的数量大于第二阈值的像素行)对应的纵坐标所构成的纵坐标区间的竖直区间中点,确定该图像中的指定点对应的纵坐标相对于所述竖直区间中点的偏移,作为无人设备相对于目标在竖直方向上的位置偏移。

本说明书实施例中,图像采集设备采集的图像的中心点在场地中对应的位置,与无人设备的中心点在所述场地上的投影重合。也就是说,图像采集设备的镜头可垂直向下朝向场地拍摄,且无人设备的中心点在镜头中轴线上。这也就意味着,图像采集设备采集的图像的中心点就是无人设备中心点正下方的场地的地面点。因此,上述图像中的指定点可以是图像的中心点。

在确定出无人设备相对于目标在水平方向和竖直方向上的位置偏移后,则可根据确定出的各可选行驶方向、无人设备当前执行的任务对应的行驶路线,以及无人设备相对于目标在水平方向和/或竖直方向上的位置偏移,对无人设备自身进行控制。例如,可根据无人设备相对于目标在水平方向和/或竖直方向上的位置偏移,确定补偿方向,并在各可选行驶方向中确定出与行驶路线的夹角最小的可选行驶方向,再根据该补偿方向和选择出的可选行驶方向,确定最终行驶方向,并控制无人设备自身沿最终行驶方向行驶。

进一步的,若通过图1所示的步骤S100~S104识别出图像中存在竖直条带,则可只确定无人设备相对于目标(即竖直条带)在水平方向上的位置偏移,后续也仅根据无人设备相对于目标在竖直方向上的位置偏移进行自动控制。若通过图1所示的步骤S100~S104识别出图像中存在水平条带,则可只确定无人设备相对于目标(即水平条带)在竖直方向上的位置偏移,后续也仅根据无人设备相对于目标在水平方向上的位置偏移进行自动控制。若通过图1所示的步骤S100~S104识别出图像中存在交叉条带,则需要确定无人设备相对于目标(即交叉条带)在水平方向和竖直方向上的位置偏移,后续则同时根据无人设备相对于目标在水平方向和竖直方向上的位置偏移进行自动控制。

在确定无人设备相对于目标的角度偏移时,可对通过如图1所示的步骤S100确定出的前景区域进行直线检测,以获得该前景区域中的各直线。具体可通过霍夫变换对前景区域进行直线检测。由于前景区域中各像素的像素值基本相同,因此,可只对前景区域的轮廓进行直线检测,获取前景区域的轮廓对应的各直线。

获得了前景区域的轮廓对应的各直线后,可在获得的各直线中筛选出与竖直方向 的夹角的绝对值小于第五阈值的直线,并根据筛选出的直线与竖直方向的角度以及筛选出 的直线的长度,确定无人设备相对于竖直方向的角度偏移。具体的,可采用公式

相应的,在确定无人设备相对于水平方向的角度偏移时,可在获得的各直线中筛 选出与水平方向的夹角的绝对值小于第六阈值的直线,根据筛选出的直线与水平方向的角 度以及筛选出的直线的长度,确定无人设备相对于水平方向的角度偏移。具体的,可采用公 式

其中,上述第五阈值和第六阈值均可根据需要进行设置,例如均设置为5度。

在确定出无人设备相对于水平方向和竖直方向的角度偏移后,则可根据确定出的各可选行驶方向、无人设备当前执行的任务对应的行驶路线,以及无人设备相对于水平方向和/或竖直方向的角度偏移,对无人设备自身进行控制。例如,可根据无人设备相对于水平方向和/或竖直方向的角度偏移,确定补偿方向,并在各可选行驶方向中确定出与行驶路线的夹角最小的可选行驶方向,再根据该补偿方向和选择出的可选行驶方向,确定最终行驶方向,并控制无人设备自身沿最终行驶方向行驶。

进一步的,若通过图1所示的步骤S100~S104识别出图像中存在竖直条带,则可只确定无人设备相对于竖直方向的角度偏移,后续也仅根据无人设备相对于竖直方向的角度偏移进行自动控制。若通过图1所示的步骤S100~S104识别出图像中存在水平条带,则可只确定无人设备相对于水平方向的角度偏移,后续也仅根据无人设备相对于水平方向的角度偏移进行自动控制。若通过图1所示的步骤S100~S104识别出图像中存在交叉条带,则需要确定无人设备相对于水平方向和竖直方向的角度偏移,后续则同时根据无人设备相对于水平方向和竖直方向的角度偏移进行自动控制。

以上为本说明书实施例提供的无人设备的控制方法,基于同样的思路,本说明书还提供了相应的装置、存储介质和电子设备。

图4为本说明书实施例提供的一种无人设备的控制装置的结构示意图,无人设备上安装有图像采集设备,所述无人设备所在的场地中预置有不同类型的目标,所述不同类型的目标用于引导所述无人设备,所述装置包括:

前景提取模块401,用于识别所述图像采集设备采集的图像中的前景区域,将位于所述前景区域中的像素作为前景像素;

统计模块402,用于在所述图像中,确定前景像素在不同方向上的数量分布直方图;其中,所述不同方向包括水平方向和竖直方向;

识别模块403,用于根据所述前景像素在不同方向上的数量分布直方图,识别所述图像中的目标的类型;

确定模块404,用于根据识别出的所述目标的类型,确定所述无人设备当前的可选行驶方向;

控制模块405,用于根据确定出的各可选行驶方向以及所述无人设备当前执行的任务对应的行驶路线,对所述无人设备自身进行控制。

可选地,所述不同类型的目标包括:水平方向的水平条带、竖直方向的竖直条带,以及由水平条带和竖直条带交叉构成的交叉条带。

可选地,所述统计模块402具体用于,针对所述图像中的每个像素列,确定该像素列中前景像素的数量;根据每个像素列中前景像素的数量,确定前景像素在水平方向上的数量分布直方图;针对所述图像中的每个像素行,确定该像素行中前景像素的数量;根据每个像素行中前景像素的数量,确定前景像素在竖直方向上的数量分布直方图。

可选地,所述识别模块403具体用于,根据前景像素在水平方向上的数量分布直方图,确定前景像素的数量大于第一阈值的像素列,作为指定像素列;根据前景像素在竖直方向上的数量分布直方图,确定前景像素的数量大于第二阈值的像素行,作为指定像素行;若所述指定像素列的数量大于第三阈值,且所述指定像素行的数量不大于第四阈值,则确定所述图像中的目标的类型为竖直条带;若所述指定像素列的数量不大于第三阈值,且所述指定像素行的数量大于第四阈值,则确定所述图像中的目标的类型为水平条带;若所述指定像素列的数量大于第三阈值,且所述指定像素行的数量大于第四阈值,则确定所述图像中的目标的类型为交叉条带。

可选地,所述确定模块404具体用于,当识别出的所述目标的类型为水平条带时,确定所述无人设备当前的可选行驶方向为水平方向;当识别出的所述目标的类型为竖直条带时,确定所述无人设备当前的可选行驶方向为竖直方向;当识别出的所述目标的类型为交叉条带时,确定所述无人设备当前的可选行驶方向为水平方向和竖直方向。

可选地,所述控制模块405,具体用于在所述图像对应的图像坐标中,确定由各指定像素列对应的横坐标所构成的横坐标区间的水平区间中点;确定所述图像中的指定点对应的横坐标相对于所述水平区间中点的偏移,作为所述无人设备相对于所述目标在水平方向上的位置偏移;在所述图像对应的图像坐标中,确定由各指定像素行对应的纵坐标所构成的纵坐标区间的竖直区间中点;确定所述图像中的指定点对应的纵坐标相对于所述竖直区间中点的偏移,作为所述无人设备相对于所述目标在竖直方向上的位置偏移;根据确定出的各可选行驶方向、所述无人设备当前执行的任务对应的行驶路线,以及所述无人设备相对于所述目标在水平方向和/或竖直方向上的位置偏移,对所述无人设备自身进行控制。

可选地,所述控制模块405,用于对所述前景区域的轮廓进行直线检测,获得所述前景区域的轮廓对应的各直线;在获得的各直线中筛选出与竖直方向的夹角的绝对值小于第五阈值的直线,根据筛选出的直线与竖直方向的角度以及筛选出的直线的长度,确定所述无人设备相对于竖直方向的角度偏移;在获得的各直线中筛选出与水平方向的夹角的绝对值小于第六阈值的直线,根据筛选出的直线与水平方向的角度以及筛选出的直线的长度,确定所述无人设备相对于水平方向的角度偏移;根据确定出的各可选行驶方向、所述无人设备当前执行的任务对应的行驶路线,以及所述无人设备相对于水平方向和/或竖直方向的角度偏移,对所述无人设备自身进行控制。

本说明书还提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序被处理器执行时可用于执行上述提供的无人设备的控制方法。

基于上述提供的无人设备的控制方法,本说明书实施例还提供了图5所示的电子设备的结构示意图。如图5,在硬件层面,该无人设备包括处理器、内部总线、网络接口、内存以及非易失性存储器,当然还可能包括其他业务所需要的硬件。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,以实现上述的资源分配方法。

当然,除了软件实现方式之外,本说明书并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。

在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device, PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。

控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20 以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。

上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。

为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书时可以把各单元的功能在同一个或多个软件和/或硬件中实现。

本领域内的技术人员应明白,本说明书的实施例可提供为方法、系统、或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本说明书是参照根据本说明书实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本说明书的实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。

相关技术
  • 无人机控制方法、装置、电子设备、无人机和存储介质
  • 一种无人设备控制方法、装置、存储介质及电子设备
技术分类

06120112588208