具体实施方式
本申请实施例描述的系统架构以及业务场景是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着系统架构的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
需要说明的是,本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
需要说明的是,本申请实施例中,“的(英文:of)”,“相应的(英文:corresponding,relevant)”和“对应的(英文:corresponding)”有时可以混用,应当指出的是,在不强调其区别时,其所要表达的含义是一致的。
避障系统,用于检测特定区域是否存在障碍物,可应用于移动机器人、导盲系统中等。障碍物检测为避障系统的基本功能。本申请实施例提供一种避障系统,如图1所示,该避障系统10包括:图像采集设备11、障碍物检测设备12和决策设备13。其中,图像采集设备11用于采集用于进行障碍物检测的特定区域的图像信息,如移动机器人行进前方的图像,并将采集到的图像信息发送至障碍物检测设备12;示例性的,该图像采集设备包括一个或多个采集平面图像的摄像机以及采集立体图像的双目摄像机等。障碍物检测设备12用于对图像采集设备11发送的图像信息进行处理以得到是否包含障碍物以及障碍物的轮廓、大小、位置、种类等信息,并将处理得到的信息发送至决策设备13。决策设备13,用于根据障碍物检测设备12发送的信息作出如何避障的决策,决策设备可以为具有处理运算功能的设备,如服务器等。图像采集设备11和决策设备13的具体实现可参考现有技术,此处不再赘述。
深度图像(depth image)也被称为距离影像(range image),是指将从图像采集器,如双目摄像机到待检测区域中各点的距离(或者称为深度)作为像素值的图像,能够直接反映物体可见表面的几何形状,也即能够直接确定各个物体的轮廓线。深度图像经过坐标转换可以计算为点云数据,有规则及必要信息的点云数据也可以反算为深度图像数据。深度图像中,每一个像素点代表的是在图像采集器的视野中,该特定的(x,y)坐标处物体到摄像头平面的距离。根据深度图像中的距离和各个物体的轮廓可以达到检测障碍物的目的。如图2所示为对左图所示的待检测区域进行拍摄并处理后得到右图所示的深度图像,在该深度图像中不同的亮度值表示不同的距离,颜色越亮表示目标距离越近。结合图2所示的深度图像,能够将椅子、垃圾桶和人确定为障碍物。深度图像的具体实现原理以及根据深度图像进行障碍物检测的具体实现过程可参考现有技术,此处不再赘述。虽然可以利用深度图像实现障碍物检测,但这种方法精度较低,只能检测较大的障碍物,对于路面上的小障碍则无能为力。
为了检测路面上的微小障碍物,本申请通过获取待检测区域对应的像素信息,从待检测区域中确定出路面区域,然后再检测路面区域中的微小障碍物。
基于此,本发明实施例提供一种障碍物检测方法,实现既可以检测较大障碍物,也可以检测到较小障碍物,并能够根据深度图像进一步得到障碍物的三维空间位置。该方法可应用于图1所示的系统中,当应用于图1所示的系统中时,该方法的执行主体为障碍物检测设备12。
如图3所示,该方法包括:
步骤101、分别获取待检测区域对应的像素图像和深度图像。
其中,所述像素图像中各个像素点与像素类别对应。具体的,像素图像的一种实现方式为:对待检测区域进行拍摄,得到该待检测区域对应的二维彩色图像;结合包括像素点的像素取值与像素类别的对应关系的预设对应关系,对该二维彩色图像中的各个像素点的像素取值进行分析,确定各个像素点的类别,并生成所述像素图像,在该像素图像中,同一像素类别的像素取值相同,或者说其颜色相同。
可选的,所述预设对应关系中包括像素点的取值与路面像素的对应关系,则生成的相应像素图像为二值图像,该二值图像中各个像素点对应的像素类别为路面像素或非路面像素,所有路面像素组成的区域为路面区域,所有非路面像素组成的区域为非路面区域。
所述深度图像中各个像素点与深度值对应。深度图像的具体实现可参考现有技术,此处不再赘述。
如图4所示,本发明实施例提供了待检测区域对应的二维彩色图像以及其分别对应的像素图像和深度图像。该像素图像中的白色区域的各像素点对应的像素类别为路面像素,因此该白色区域可称为路面区域。黑色区域的各像素点对应的像素类别为非路面像素,因此,该黑色区域可称为非路面区域。
步骤102、根据像素图像中的各个像素点的像素类别确定待检测区域中的路面区域以及路面区域中的第一类障碍物;以及根据深度图像确定待检测区域中的第二类障碍物。
如上所述,根据像素图像中的各个像素点的像素类别,将所有像素类别为路面像素的像素点组成的区域确定为路面区域,将所有像素类别为非路面像素的像素点组成的区域确定为非路面区域。在确定路面区域后,通过在路面区域中进行目标障碍物检测或者通过检测路面区域和非路面区域的轮廓线,进一步检测是否存在非路面区域的轮廓线被路面区域的轮廓线包围的非路面区域等方式检测路面区域中的障碍物。本申请实施例中将此类通过对像素图像进行分析得到的障碍物称为第一类障碍物。
另外,该第一类障碍物可能无法包含待检测区域中的所有障碍物。因此,本申请实施例中还提供了根据深度图像确定深度图像中各个物体的轮廓,进而确定待检测区域中的障碍物,获取深度图像后,按照设定的深度阈值,将深度图像分割为不同深度的子图像,每张子图像只包含某一深度范围内的物体,检测每一子图像的轮廓信息(即物体轮廓),从而确定待检测区域中的障碍物。根据深度图像确定障碍物的具体实现可参考现有技术,此处不再赘述。本申请实施例中将通过对深度图像进行分析得到的障碍物称为第二类障碍物。
步骤103、根据像素图像和深度图像确定第一类障碍物的空间位置以及根据深度图像确定所述第二类障碍物的空间位置。
对于第一类障碍物,根据所述第一类障碍物中每个障碍物在所述像素图像中的坐标,分别确定所述第一类障碍物中每个障碍物在所述待检测区域中的二维位置;然后根据所述第一类障碍物中每个障碍物在所述待检测区域中的二维位置,确定所述第一类障碍物中每个障碍物在所述深度图像中坐标;再分别根据所述第一类障碍物中每个障碍物在所述深度图像中的坐标对应的像素点,分别确定所述第一类障碍物中每个障碍物的深度值;根据所述第一类障碍物中每个障碍物在所述待检测区域中的二维位置以及深度值,得到所述第一类障碍物中每个障碍物的空间位置。
对于第二类障碍物,根据所述第二类障碍物中每个障碍物在所述深度图像中的坐标,分别确定所述第二类障碍物中每个障碍物在所述待检测区域中的二维位置和深度值,得到所述第二类障碍物中每个障碍物的空间位置。
本申请提供的方案,通过分别获取待检测区域对应的像素图像和深度图像,该像素图像中各个像素点与像素类别对应,该深度图像中各个像素点与深度值对应;再根据像素图像中的各个像素点的像素类别确定待检测区域中的路面区域以及路面区域中的第一类障碍物;以及根据深度图像确定待检测区域中的第二类障碍物;最后再根据像素图像和深度图像确定第一类障碍物的空间位置以及根据深度图像确定第二类障碍物的空间位置,与现有技术中的各种障碍物检测方法其障碍物检测精度有限相比,本发明通过像素图像能够检测到路面区域中的一类障碍物,如路面中的微小障碍物,通过深度图像能够检测到待检测区域中的体积较大的障碍物,因此,能够较为全面的检测待检测区域中的的障碍物;此外,在检测出障碍物后,本申请还能够输出障碍物的空间位置,有助于避障决策。
实际应用中,有些障碍物位于道路两侧,如道路两旁的路牌、树木等,其可能并不影响行进,因此,本申请实施例还提供了一种障碍物检测方法,用于从第二类障碍物中排除不影响行进的障碍物。在步骤102“确定出第二类障碍物后,可对第二类障碍物进行在所述根据所述像素图像中的各个像素点的像素类别确定所述待检测区域中的路面区域”之后,如图5所示,所述方法还包括:
步骤201、确定路面区域在所述待检测区域中的二维位置。
在根据像素图像确定出待检测区域中的路面区域后,能够确定路面区域在待检测区域中的二维位置。
步骤202、根据所述路面区域在所述待检测区域中的二维位置,确定所述深度图像中的路面区域。
由于深度图像和像素图像对应的都是同一待检测区域,因此,在根据像素图像确定了路面区域在待检测区域中的二维位置后,可根据该二维位置确定深度图像中所表示的路面区域。
需要说明的是,在深度图像中确定路面区域时,由于整个路面一般位于同一水平面,也即整个路面对应的各个像素的深度值相同,因此,可根据路面区域在待检测区域中的二维位置确定路面区域的初步范围,如果还存在其他像素点的像素取值与已初步确定的路面区域的像素取值相同,则将这些像素点也确定为路面区域的像素点,进而得到最终的路面区域。
步骤203、从所述第二类障碍物中筛选得到位于所述路面区域的障碍物。
通过上述步骤201至步骤203的实现过程,可将第二类障碍物中位于路面区域以外的障碍物,也即不影响前进的障碍物从第二类障碍物中删除。
考虑到在采用上述方法确定出第一类障碍物和第二类障碍物后,可能存在第一类障碍物和第二类障碍物中存在障碍物重复确定的情况。因此,本申请实施例中,在步骤102“在所述根据所述像素图像中的各个像素点的像素类别确定所述待检测区域中的路面区域以及所述路面区域中的第一类障碍物;以及根据所述深度图像确定所述待检测区域中的第二类障碍物”之后,如图6所示,所述方法还包括:
步骤301、根据第一类障碍物中每个障碍物在像素图像中的坐标,分别确定第一类障碍物中每个障碍物在所述待检测区域中的二维位置。
步骤302、根据第二类障碍物中每个障碍物在深度图像中的坐标,分别确定第二类障碍物中每个障碍物在待检测区域中的二维位置。
步骤303、当存在既属于第一类障碍物又属于第二类障碍物,且在待检测区域中的二维位置相同的目标障碍物时,从第一类障碍物或第二类障碍物中删除目标障碍物。
通过上述步骤301至步骤303的实现过程,在确定出第一类障碍物和第二类障碍物后,通过分别确定第一类障碍物和第二类障碍物中每个障碍物在待检测区域中的二维位置,当某个障碍物分别通过像素图像和深度图像确定出来的二维位置相同时,可以认为该障碍物为既属于第一类障碍物又属于第二类障碍物且重复计算了的障碍物。
可选的,本申请中,在检测到障碍物后并确定出障碍物的空间位置后,还可以分别确定障碍物的轮廓信息、位置信息以及障碍物的类别等信息,因此能够为避障决策提供更加完整的决策信息。
在步骤103“根据所述像素图像和深度图像确定所述第一类障碍物的空间位置以及根据所述深度图像确定所述第二类障碍物的空间位置”之后,如图7所示,所述方法还包括:
步骤401、输出深度值位于预设范围内的所述第一类障碍物的空间位置信息和轮廓信息以及第二类障碍物的空间位置信息和轮廓信息。
其中,预设范围可以根据实际需要设定并调整。示例性的,可以输出深度值两米以内的障碍物的空间位置信息和轮廓信息,忽略更远的障碍物。这是因为本申请提供的障碍物检测方法为实时检测的过程,可在行进过程中一直检测,因此对于预设范围外的障碍物可能对目前行进尚无影响,可在这些障碍物的深度值位于该预设范围内后再继续检测。
在将本方法应用于图1所示的系统中时,障碍物检测设备12可将步骤401中得到的信息发送给决策设备以便于决策设备13根据这些信息作出避障决策。
本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对障碍物检测设备进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
在采用对应各个功能划分各个功能模块的情况下,图8示出了上述实施例中所涉及的障碍物检测设备的一种可能的结构示意图,障碍物检测设备包括:获取单元501、障碍物确定单元502以及位置确定单元503。获取单元501用于支持障碍物检测设备执行图3中的过程101;障碍物确定单元502用于支持障碍物检测设备执行图3中的步骤102,图5中的步骤202、步骤203,图6中的步骤303;位置确定单元503用于支持障碍物检测设备执行图3中的步骤103,图5中的步骤201,图6中的步骤301、步骤302。其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
可选的,如图9所示,所述障碍物检测设备还包括输出单元601,用于支持障碍物检测设备执行图7中的过程401。
在采用集成的单元的情况下,图10示出了上述实施例中所涉及的障碍物检测设备的一种可能的结构示意图。障碍物检测设备包括:处理模块701和通信模块702。处理模块701用于对障碍物检测设备的动作进行控制管理,例如,处理模块701用于支持障碍物检测设备执行图3中的过程102、103,图5中的过程201、202、203,图6中的过程301、302、303,和/或用于本文所描述的技术的其它过程。通信模块702用于支持障碍物检测设备与其他网络实体的通信,例如与图1中示出的功能模块或网络实体之间的通信。障碍物检测设备还可以包括存储模块703,用于存储障碍物检测设备的程序代码和数据。
其中,处理模块701可以是处理器或控制器,例如可以是中央处理器(CentralProcessing Unit,CPU),通用处理器,数字信号处理器(Digital Signal Processor,DSP),专用集成电路(Application-Specific Integrated Circuit,ASIC),现场可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等等。通信模块702可以是收发器、收发电路或通信接口等。存储模块703可以是存储器。
当处理模块701为处理器,通信模块702为收发器,存储模块703为存储器时,本申请实施例所涉及的障碍物检测设备可以为图11所示的电子设备。
参阅图11所示,该电子设备包括:处理器801、通信接口802存储器803以及总线804。其中,处理器801、通信接口802、以及存储器803通过总线804相互连接;总线804可以是外设部件互连标准(Peripheral Component Interconnect,PCI)总线或扩展工业标准结构(Extended Industry Standard Architecture,EISA)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图11中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
结合本申请公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(Random Access Memory,RAM)、闪存、只读存储器(ReadOnly Memory,ROM)、可擦除可编程只读存储器(Erasable Programmable ROM,EPROM)、电可擦可编程只读存储器(Electrically EPROM,EEPROM)、寄存器、硬盘、移动硬盘、只读光盘(CD-ROM)或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本申请所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
以上所述的具体实施方式,对本申请的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本申请的具体实施方式而已,并不用于限定本申请的保护范围,凡在本申请的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本申请的保护范围之内。