一种深度图处理方法、装置和无人机与流程

文档序号:17433105发布日期:2019-04-17 03:45阅读:142来源:国知局
一种深度图处理方法、装置和无人机与流程

本发明实施例涉及无人机技术领域,特别涉及一种深度图处理方法、装置和无人机。



背景技术:

无人机在自主飞行过程中,要躲避障碍物飞行,因此需要对障碍物的位置进行检测,从而使无人机能根据障碍物的位置采取避障措施。目前,无人机多采用视觉系统(例如单目视觉系统、双目视觉系统等)进行障碍物位置检测,其利用摄像装置拍摄无人机周围区域的图像,并对所述图像进行处理来确定周围障碍物的位置信息。然后,无人机根据自身的速度、姿态和所述障碍物的位置信息等采取绕行、减速或暂停等避障措施来躲避障碍物。

实现本发明过程中,发明人发现相关技术中至少存在如下问题:无人机在进行图像处理及根据处理结果执行避障措施时,如果图像采集的帧率较高,容易造成图像处理阻塞,从而导致延时较大。



技术实现要素:

本发明实施例的目的是提供一种深度图处理方法、装置和无人机,能改善无人机利用视觉系统过程中图像处理阻塞、延时大的问题。

第一方面,本发明实施例提供了一种深度图处理方法,用于无人机的控制器,所述无人机还包括图像采集装置,所述图像采集装置与所述控制器通信连接,所述方法包括:

s1、对所述图像采集装置采集的目标区域的图像进行校正;

s2、对所述图像进行双目匹配,以获得所述目标区域的深度图;

s3、根据所述深度图,获取所述无人机周围的障碍物分布;

该方法还包括:

在执行所述步骤s1、所述步骤s2和所述步骤s3之前,获取所述步骤s1的执行时间、所述步骤s2的执行时间和所述步骤s3的执行时间;

根据所述步骤s1的执行时间、所述步骤s2的执行时间和所述步骤s3的执行时间,建立至少两个线程和至少一个环形队列,由所述至少两个线程分别执行所述步骤s1、所述步骤s2和所述步骤s3,以降低总的执行时间;

其中,执行相邻步骤的两个线程中,执行前一步骤的线程的处理结果送至所述环形队列,执行后一步骤的线程从所述环形队列中取出所述处理结果并根据所述处理结果执行所述后一步骤。

在一些实施例中,所述根据所述步骤s1的执行时间、所述步骤s2的执行时间和所述步骤s3的执行时间,建立至少两个线程和至少一个环形队列,由所述至少两个线程分别执行所述步骤s1、所述步骤s2和所述步骤s3,以降低总的执行时间,包括:

判断所述步骤s1、所述步骤s2以及所述步骤s3的执行时间之和是否满足第一预设条件;

若是,则建立第一线程、第二线程和第一环形队列,由所述第一线程和所述第二线程分别执行所述步骤s1、所述步骤s2和所述步骤s3;

其中,所述第一线程和所述第二线程中,执行前一步骤的线程的处理结果送至所述第一环形队列,执行后一步骤的线程从所述第一环形队列中取出所述处理结果并根据所述处理结果执行所述后一步骤。

在一些实施例中,所述第一预设条件为:

所述步骤s1、所述步骤s2以及所述步骤s3的执行时间之和大于预设值。

在一些实施例中,所述预设值为1000/p,其中,p为图像帧率。

在一些实施例中于,所述第一线程执行所述步骤s1、所述步骤s2以及所述步骤s3中的两个步骤,所述第二线程执行所述步骤s1、所述步骤s2以及所述步骤s3中的一个步骤;

所述若所述步骤s1、所述步骤s2以及所述步骤s3的执行时间之和满足第一预设条件,则建立第一线程、第二线程和第一环形队列,由所述第一线程和所述第二线程分别执行所述步骤s1、所述步骤s2和所述步骤s3,包括:

判断所述第一线程执行的两个步骤的执行时间之和是否满足第二预设条件;

若是,则建立第三线程和第二环形队列,由所述第一线程和所述第三线程分别执行所述两个步骤;

其中,所述第一线程和所述第三线程中,执行前一步骤的线程的处理结果送至所述第二环形队列,执行后一步骤的线程从所述第二环形队列中取出所述处理结果并根据所述处理结果执行所述后一步骤。

在一些实施例中,所述第二预设条件为所述第一线程执行的两个步骤的执行时间之和大于预设值。

在一些实施例中,所述预设值为1000/p,其中,p为图像帧率。

在一些实施例中,所述控制器包括硬件加速通道,所述图像采集装置包括至少两组双目单元;

则,所述对所述图像进行双目匹配,以获得所述目标区域的深度图,包括:

将所述至少两组双目单元采集的图像送至所述硬件加速通道,通过时分复用所述硬件加速通道,对所述至少两组双目单元采集的图像进行双目匹配,以获得所述深度图。

在一些实施例中,所述硬件加速通道的数量为至少两个,在所述至少两组双目单元采集的图像中包括分辨率为第一分辨率的图像组和分辨率为第二分辨率的图像组,其中,所述第二分辨率大于所述第一分辨率;

则,所述对所述图像进行双目匹配,以获得所述目标区域的深度图,包括:

将分辨率为所述第二分辨率的图像组送至所述至少两个硬件加速通道中的其中一个进行双目匹配,以获得与之对应的深度图;

将分辨率为第一分辨率的图像组送至所述至少两个硬件加速通道中的另一个进行双目匹配,以获得与之对应的深度图。

在一些实施例中,所述硬件加速通道的数量为4个,分别为第一硬件加速通道、第二硬件加速通道、第三硬件加速通道和第四硬件加速通道;

所述图像采集装置包括6组双目单元,在所述6组双目单元中,有4组双目单元采集的图像组为所述第一分辨率的图像组,有2组双目单元采集的图像组为所述第二分辨率的图像组;

则,所述将分辨率为第一分辨率的图像组送至所述至少两个硬件加速通道中的另一个进行双目匹配,以获得与之对应的深度图,包括:

将所述2组双目单元采集的图像组分别送至所述第一硬件加速通道和所述第二硬件加速通道;

所述将分辨率为所述第二分辨率的图像组送所述至少两个硬件加速通道中的其中一个进行双目匹配,以获得与之对应的深度图,包括:

将所述4组双目单元中的2组双目单元采集的图像组送至所述第三硬件加速通道,并将所述4组双目单元中剩下的2组双目单元采集的图像组送至所述第四硬件加速通道。

第二方面,本发明实施例提供了一种深度图处理装置,用于无人机的控制器,所述无人机还包括图像采集装置,所述图像采集装置与所述控制器通信连接,所述装置包括:

图像校正模块,用于执行步骤s1,对所述图像采集装置采集的目标区域的图像进行校正;

深度图获取模块,用于执行步骤s2,对所述图像进行双目匹配,以获得所述目标区域的深度图;

障碍物分布获取模块,用于执行步骤s3,根据所述深度图,获取所述无人机周围的障碍物分布;

该装置还包括:

时间获取模块,用于在执行所述步骤s1、所述步骤s2和所述步骤s之前,获取所述步骤s1的执行时间、所述步骤s2的执行时间和所述步骤s3的执行时间;

线程和环形队列建立模块,用于根据所述步骤s1的执行时间、所述步骤s2的执行时间和所述步骤s3的执行时间,建立至少两个线程和至少一个环形队列,由所述至少两个线程分别执行所述步骤s1、所述步骤s2和所述步骤s3,以降低总的执行时间;

其中,执行相邻步骤的两个线程中,执行前一步骤的线程的处理结果送至所述环形队列,执行后一步骤的线程从所述环形队列中取出所述处理结果并根据所述处理结果执行所述后一步骤。

在一些实施例中,所述线程和环形队列建立模块包括:

判断子模块,用于判断所述步骤s1、所述步骤s2以及所述步骤s3的执行时间之和是否满足第一预设条件;

线程和环形队列建立子模块,用于若所述步骤s1、所述步骤s2以及所述步骤s3的执行时间之和满足第一预设条件,则建立第一线程、第二线程和第一环形队列,由所述第一线程和所述第二线程分别执行所述步骤s1、所述步骤s2和所述步骤s3;

其中,所述第一线程和所述第二线程中,执行前一步骤的线程的处理结果送至所述第一环形队列,执行后一步骤的线程从所述第一环形队列中取出所述处理结果并根据所述处理结果执行所述后一步骤。

在一些实施例中,所述第一预设条件为:

所述步骤s1、所述步骤s2以及所述步骤s3的执行时间之和大于预设值。

在一些实施例中,所述预设值为1000/p,其中,p为图像帧率。

在一些实施例中,所述第一线程执行所述步骤s1、所述步骤s2以及所述步骤s3中的两个步骤,所述第二线程执行所述步骤s1、所述步骤s2以及所述步骤s3中的一个步骤;

所述线程和环形队列建立子模块具体用于:

判断所述第一线程执行的两个步骤的执行时间之和是否满足第二预设条件;

若是,则建立第三线程和第二环形队列,由所述第一线程和所述第三线程分别执行所述两个步骤;

其中,所述第一线程和所述第三线程中,执行前一步骤的线程的处理结果送至所述第二环形队列,执行后一步骤的线程从所述第二环形队列中取出所述处理结果并根据所述处理结果执行所述后一步骤。

在一些实施例中,所述第二预设条件为所述第一线程执行的两个步骤的执行时间之和大于预设值。

在一些实施例中,所述预设值为1000/p,其中,p为图像帧率。

在一些实施例中,所述控制器包括硬件加速通道,所述图像采集装置包括至少两组双目单元;

则,所述深度图获取模块具体用于:

将所述至少两组双目单元采集的图像送至所述硬件加速通道,通过时分复用所述硬件加速通道,对所述至少两组双目单元采集的图像进行双目匹配,以获得所述深度图。

在一些实施例中,所述硬件加速通道的数量为至少两个,在所述至少两组双目单元采集的图像中包括分辨率为第一分辨率的图像组和分辨率为第二分辨率的图像组,其中,所述第二分辨率大于所述第一分辨率;

则,所述深度图获取模块具体用于:

将分辨率为所述第二分辨率的图像组送至所述至少两个硬件加速通道中的其中一个进行双目匹配,以获得与之对应的深度图;

将分辨率为第一分辨率的图像组送至所述至少两个硬件加速通道中的另一个进行双目匹配,以获得与之对应的深度图。

在一些实施例中,所述硬件加速通道的数量为4个,分别为第一硬件加速通道、第二硬件加速通道、第三硬件加速通道和第四硬件加速通道;

所述图像采集装置包括6组双目单元,在所述6组双目单元中,有4组双目单元采集的图像组为所述第一分辨率的图像组,有2组双目单元采集的图像组为所述第二分辨率的图像组;

则,所述深度图获取模块具体用于:

将所述2组双目单元采集的图像组分别送至所述第一硬件加速通道和所述第二硬件加速通道;

将所述4组双目单元中的2组双目单元采集的图像组送至所述第三硬件加速通道,并将所述4组双目单元中剩下的2组双目单元采集的图像组送至所述第四硬件加速通道。

第三方面,本发明实施例提供了一种无人机,所述无人机包括:

机身;

机臂,与所述机身相连;

动力装置,设于所述机臂;

图像采集装置,设置于所述机身,用于获取所述无人机目标区域的目标图像;

视觉芯片,设于所述机身,所述视觉芯片与所述图像采集装置通信连接;

所述视觉芯片包括:

至少一个处理器,以及

存储器,所述存储器与所述至少一个处理器通信连接,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述的方法。

第四方面,本发明实施例提供了一种非易失性计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,当所述计算机可执行指令被无人机执行时,使所述无人机执行上述的方法。

本发明实施例的深度图处理方法、装置和无人机,根据无人机控制器在进行深度图处理过程中各个步骤的执行时间建立至少两个线程和至少一个环形队列,由所述至少两个线程分别执行所述深度图处理的各个步骤。各个线程可以通过至少一个环形队列获得其他线程的处理结果。通过加入环形队列,多线程并行运行的方式,解决了图像处理阻塞的问题、降低了延时。

附图说明

一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。

图1是本发明实施例深度图处理方法和装置的应用场景示意图;

图2是本发明无人机的一个实施例的硬件结构示意图;

图3是本发明深度图处理方法的一个实施例的流程示意图;

图4是本发明深度图处理方法的一个实施例中应用硬件加速通道的示意图;

图5是本发明深度图处理装置的一个实施例的结构示意图;

图6是本发明深度图处理装置的一个实施例的结构示意图;

图7是本发明无人机的一个实施例中视觉芯片的硬件结构示意图。

具体实施方式

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

本发明实施例提供的深度图处理方法、装置和无人机可以适用于如图1所示的应用场景。所述应用场景包括无人机100和障碍物200,其中,无人机100可以为合适的无人飞行器,包括固定翼无人飞行器和旋转翼无人飞行器,例如直升机、四旋翼机和具有其它数量的旋翼和/或旋翼配置的飞行器。无人机100还可以是其他可移动物体,例如载人飞行器、航模、无人飞艇和无人热气球等。障碍物200例如建筑物、山体、树木、森林、信号塔或其他可移动或不可移动物体(图1中只示出了一个障碍物,实际应用中可能会有更多障碍物或者没有障碍物)。

其中,在一些实施例中,请参照图2(图2仅部分示出了无人机100的构成),无人机100包括机身10、与机身10相连的机臂、动力装置和设于机身10的控制系统。动力装置用于提供无人机10飞行的推力、升力。控制系统是无人机100的中枢神经,可以包括多个功能性单元,例如飞控系统、视觉系统以及其他具有特定功能的系统。视觉系统包括图像采集装置30和视觉芯片20等,飞控系统包括各类传感器(例如陀螺仪、加速计)和飞控芯片。

无人机100在自主飞行过程中,需要自己识别并躲避飞行前方的障碍物200。无人机100可以通过图像采集装置30和视觉芯片20检测无人机100周围的障碍物的位置信息,并根据所述位置信息采取避障措施。其中,图像采集装置30用于获取目标区域的目标图像,其可以采用例如高清摄像头或者运动摄像机等。视觉芯片20与图像采集装置30通信连接,可以获取图像采集装置30采集的目标图像,并对所述目标图像进行图像处理,获得所述目标图像对应区域的深度信息,从而获得无人机100周围障碍物200的位置信息。根据障碍物200的位置信息,视觉芯片20可以作出避障措施。飞控芯片依据所述避障措施对无人机100进行控制。其中,避障措施包括控制无人机减速或暂停等。根据障碍物200的位置信息,视觉芯片20还可以据此判断某一障碍物的距离,以及进行三维重建等。

其中,图像采集装置30可以包括至少一个单目单元或者至少一个双目单元(以下以双目单元为例说明)。每个双目单元可以获得一组目标图像,每个双目单元均以预设的帧率采集目标图像。视觉芯片20需对各个双目单元获得的目标图像组进行图像处理,分别获得各个目标图像组对应的深度信息,视觉芯片20还需根据各个目标图像组对应的深度信息,获得无人机100周围障碍物200的分布。当目标图像采集的帧率较高时,容易出现视觉芯片20处理不过来的情况,反过来会阻塞输入源的目标图像组的处理,造成图像处理阻塞,延时大。

为解决图像处理阻塞、延时大的问题,本发明实施例根据无人机控制器在进行深度图处理过程中各个步骤的执行时间,当各个步骤的执行时间总和较大时,可以建立至少两个线程和至少一个环形队列,由所述至少两个线程分别执行所述深度图处理的各个步骤。各个线程可以通过至少一个环形队列获得其他线程的处理结果。通过加入环形队列,多线程并行运行的方式,解决了图像处理阻塞的问题、降低了延时。

在上述实施例中,无人机100设置视觉芯片20来根据图像采集装置30获取的图像获得无人机100的避障措施,在另一些实施例中,无人机100也可以用其他控制器来实现视觉芯片20的功能。

图3为本发明实施例提供的深度图处理方法的流程示意图,所述方法用于图1或图2所示的无人机100的控制器,在其中一些实施例中,所述控制器可以为无人机100的视觉芯片20,如图3所示,所述方法包括:

s1、对所述图像采集装置采集的目标区域的图像进行校正。

其中,所述图像采集装置可以为双目单元,对所述图像采集装置采集的图像进行校正包括对所述图像进行图像校正,以及对所述双目单元采集的每一组图像进行标定,以获取每一组所述图像对应的标定参数。

s2、对所述图像进行双目匹配,以获得所述目标区域的深度图。

即对每一组所述图像进行双目匹配,以获取每一组所述图像对应的视差图,根据所述视差图和所述标定参数,获取每一组所述图像对应的区域的深度信息。

s3、根据所述深度图,获取所述无人机周围的障碍物分布。

根据所述深度图进行数据处理,获得所述无人机周围的障碍物分布,其中,所述障碍物分布例如各障碍物的位置信息,各障碍物的距离以及无人机周围环境的三维地图等。

s4、在执行以上各步骤之前,获取所述步骤s1的执行时间、所述步骤s2的执行时间和所述步骤s3的执行时间。

其中,各步骤的执行时间可以是设计人员基于对各步骤的处理时间的基本认识预先设定好的。也可以是先将所述步骤s1、所述步骤s2和所述步骤s3在所述控制器中试运行一段时间,由所述控制器对各步骤的执行时间进行检测,获得所述步骤s1的执行时间、所述步骤s2的执行时间和所述步骤s3的执行时间。

s5、根据所述步骤s1的执行时间、所述步骤s2的执行时间和所述步骤s3的执行时间,建立至少两个线程和至少一个环形队列,由所述至少两个线程分别执行所述步骤s1、所述步骤s2和所述步骤s3,以降低总的执行时间;其中,执行相邻步骤的两个线程中,执行前一步骤的线程的处理结果送至所述环形队列,执行后一步骤的线程从所述环形队列中取出所述处理结果并根据所述处理结果执行所述后一步骤。

根据获得的步骤s1的执行时间、步骤s2的执行时间和步骤s3的执行时间,确定是否采用至少两个线程来并行执行步骤s1、步骤s2和步骤s3。其中,线程和环形队列的数量可以根据上述各步骤的执行时间确定,例如可以是两个线程、一个环形队列,也可以是三个线程、两个环形队列。

在一些实施例中,如果步骤s1、步骤s2和步骤s3的总的执行时间较长(例如大于1000/p,其中p为图像采集装置采集图像的图像帧率),则有可能发生图像阻塞,为了避免图像阻塞,可以建立至少两个线程来并行执行步骤s1、步骤s2和步骤s3。如果相邻的两个步骤分别由不同的线程执行,则执行前一个步骤的线程可以将处理结果送至环形队列,执行后一个步骤的线程从该环形队列中获取所述处理结果。

例如可以设置第一线程、第二线程和第一环形队列,由第一线程执行步骤s1、步骤s2和步骤s3中的两个步骤,由第二线程执行步骤s1、步骤s2和步骤s3中的一个步骤。或者由第二线程执行步骤s1、步骤s2和步骤s3中的两个步骤,由第一线程执行步骤s1、步骤s2和步骤s3中的一个步骤。

例如第一线程执行步骤s1和步骤s2,第二线程执行步骤s3。第一线程将步骤s2的处理结果送至所述第一环形队列,第二线程从所述第一环形队列中获取所述处理结果并执行步骤s3。在另一些实施例中,也可以由第一线程执行步骤s1,由第二线程执行步骤s2和步骤s3,等等。

假设步骤s1的执行时间为t1、步骤s2的执行时间为t2、步骤s3的执行时间为t3,如果t1+t2+t3>1000/p,t1+t2<1000/p且t3<1000/p,第一线程执行步骤s1和步骤s2,第二线程执行步骤s3,两个线程并行执行步骤s1、步骤s2和步骤s3后,总的执行时间max(t1+t2,t3)<1000/p,降低了总的执行时间,有效的避免了图像阻塞。

其中,在一些实施例中,如果某一个线程执行相邻的两个步骤,该两个步骤的总的执行时间仍然较大(例如大于1000/p),则为了进一步避免图像阻塞,该两个步骤也可以由两个线程分别执行。

以第一线程执行步骤s1和步骤s2、第二线程执行步骤s3为例,如果t1+t2>1000/p、t3<1000/p,则可以再建立第三线程和第二环形队列,由第一线程执行步骤s1,第三线程执行步骤s2,第一线程将步骤s1的处理结果送至第二环形队列,第三线程从所述第二环形队列中取出所述处理结果并执行步骤s2。在另一些实施例中,也可以由第三线程执行步骤s1,第一线程执行步骤s2。

在另一些实施例中,如果步骤s1、步骤s2和步骤s3中某一个步骤的执行时间较长,例如t3>1000/p,则可以进一步采用两个或者两个以上的线程来执行步骤s3。

在实际应用中,通常采用多组双目单元进行深度检测,而且图像双目匹配占用时间较长,在一些实施例中,为了提高运行速度,双目匹配可以通过设置于所述控制器中的硬件加速通道来执行。硬件加速通道是一种由硬件和接口软件组成的能提升软件运行速度的装置。

在其中一些实施例中,可以利用一个硬件加速通道来提升运行速度。将至少两组双目单元连续拍摄的各帧图像组顺序送至所述硬件加速通道,并通过时分复用所述硬件加速通道对各组图像进行图像处理,获得各组图像对应的深度信息。即先将第一组图像送入硬件加速通道处理,处理完毕后,再送入第二组图像…,依次类推,轮询的复用所述硬件加速通道。

在其中另一些实施例中,可以利用至少两个硬件加速通道来提升运行速度。将各双目单元获得的图像组中,分辨率高的双目单元获得的图像组和分辨率低的双目单元获得的图像组分别用一个硬件加速通道进行双目匹配处理,以进一步提高运行速度。

在另一些实施例中,还可以将分辨率高的一个双目单元获得的图像组用一个硬件加速通道进行处理,分辨率低的至少两个双目单元获得的图像组(例如两个双目单元或者三个双目单元)共用一个硬件加速通道进行处理。将分辨率低的至少两个双目单元获得的图像组共用一个硬件加速通道,可以在硬件加速通道数量少的情况下,在不影响软件运行速度的基础上、充分合理的利用硬件加速通道。至少两个双目单元获得的图像组共用一个硬件加速通道的场合,可以通过时分复用所述硬件加速通道的方法对各目标图像组进行处理。

以下举例说明,例如在无人机的一个实现中包括2对分辨率为720p的双目单元和4对分辨率为vga的双目单元,控制器中有4个硬件加速通道。那么具体实施时,如图4所示,分辨率高的720p双目单元可以单独用一个硬件加速通道,分辨率低的vga双目单元中每两个双目单元共用一个硬件加速通道。双目单元与硬件加速通道的对应关系可以事先设置,这样可以将每个双目单元获得的图像组送往对应的硬件通道进行处理。

相应的,如图5所示,本发明实施例还提供了一种深度图处理装置,所述装置用于图1或图2所示的无人机100的控制器,在其中一些实施例中,所述控制器可以为无人机100的视觉芯片20,如图5所示,深度图处理装置500包括:

图像校正模块501,用于执行步骤s1,对所述图像采集装置采集的目标区域的图像进行校正;

深度图获取模块502,用于执行步骤s2,对所述图像进行双目匹配,以获得所述目标区域的深度图;

障碍物分布获取模块503,用于执行步骤s3,根据所述深度图,获取所述无人机周围的障碍物分布;

该装置还包括:

时间获取模块504,用于在执行所述步骤s1、所述步骤s2和所述步骤s之前,获取所述步骤s1的执行时间、所述步骤s2的执行时间和所述步骤s3的执行时间;

线程和环形队列建立模块505,用于根据所述步骤s1的执行时间、所述步骤s2的执行时间和所述步骤s3的执行时间,建立至少两个线程和至少一个环形队列,由所述至少两个线程分别执行所述步骤s1、所述步骤s2和所述步骤s3,以降低总的执行时间;

其中,执行相邻步骤的两个线程中,执行前一步骤的线程的处理结果送至所述环形队列,执行后一步骤的线程从所述环形队列中取出所述处理结果并根据所述处理结果执行所述后一步骤。

本发明实施例根据无人机控制器在进行深度图处理过程中各个步骤的执行时间建立至少两个线程和至少一个环形队列,由所述至少两个线程分别执行所述深度图处理的各个步骤。各个线程可以通过至少一个环形队列获得其他线程的处理结果。通过加入环形队列,多线程并行运行的方式,解决了图像处理阻塞的问题、降低了延时。

在深度图处理装置500的一些实施例中,如图6所示,线程和环形队列建立模块505包括:

判断子模块5051,用于判断所述步骤s1、所述步骤s2以及所述步骤s3的执行时间之和是否满足第一预设条件;

线程和环形队列建立子模块5052,用于若所述步骤s1、所述步骤s2以及所述步骤s3的执行时间之和满足第一预设条件,则建立第一线程、第二线程和第一环形队列,由所述第一线程和所述第二线程分别执行所述步骤s1、所述步骤s2和所述步骤s3;

其中,所述第一线程和所述第二线程中,执行前一步骤的线程的处理结果送至所述第一环形队列,执行后一步骤的线程从所述第一环形队列中取出所述处理结果并根据所述处理结果执行所述后一步骤。

在深度图处理装置500的一些实施例中,所述第一预设条件为:

所述步骤s1、所述步骤s2以及所述步骤s3的执行时间之和大于预设值。

在深度图处理装置500的一些实施例中,所述预设值为1000/p,其中,p为图像帧率。

在深度图处理装置500的一些实施例中,所述第一线程执行所述步骤s1、所述步骤s2以及所述步骤s3中的两个步骤,所述第二线程执行所述步骤s1、所述步骤s2以及所述步骤s3中的一个步骤;

线程和环形队列建立子模块5052具体用于:

判断所述第一线程执行的两个步骤的执行时间之和是否满足第二预设条件;

若是,则建立第三线程和第二环形队列,由所述第一线程和所述第三线程分别执行所述两个步骤;

其中,所述第一线程和所述第三线程中,执行前一步骤的线程的处理结果送至所述第二环形队列,执行后一步骤的线程从所述第二环形队列中取出所述处理结果并根据所述处理结果执行所述后一步骤。

在深度图处理装置500的一些实施例中,所述第二预设条件为所述第一线程执行的两个步骤的执行时间之和大于预设值。

在深度图处理装置500的一些实施例中,所述预设值为1000/p,其中,p为图像帧率。

在深度图处理装置500的一些实施例中,所述控制器包括硬件加速通道,所述图像采集装置包括至少两组双目单元;

则,深度图获取模块502具体用于:

将所述至少两组双目单元采集的图像送至所述硬件加速通道,通过时分复用所述硬件加速通道,对所述至少两组双目单元采集的图像进行双目匹配,以获得所述深度图。

在深度图处理装置500的一些实施例中,所述硬件加速通道的数量为至少两个,在所述至少两组双目单元采集的图像中包括分辨率为第一分辨率的图像组和分辨率为第二分辨率的图像组,其中,所述第二分辨率大于所述第一分辨率;

则,深度图获取模块502具体用于:

将分辨率为所述第二分辨率的图像组送至所述至少两个硬件加速通道中的其中一个进行双目匹配,以获得与之对应的深度图;

将分辨率为第一分辨率的图像组送至所述至少两个硬件加速通道中的另一个进行双目匹配,以获得与之对应的深度图。

在深度图处理装置500的一些实施例中,所述硬件加速通道的数量为4个,分别为第一硬件加速通道、第二硬件加速通道、第三硬件加速通道和第四硬件加速通道;

所述图像采集装置包括6组双目单元,在所述6组双目单元中,有4组双目单元采集的图像组为所述第一分辨率的图像组,有2组双目单元采集的图像组为所述第二分辨率的图像组;

则,深度图获取模块502具体用于:

将所述2组双目单元采集的图像组分别送至所述第一硬件加速通道和所述第二硬件加速通道;

将所述4组双目单元中的2组双目单元采集的图像组送至所述第三硬件加速通道,并将所述4组双目单元中剩下的2组双目单元采集的图像组送至所述第四硬件加速通道。

需要说明的是,上述装置可执行本申请实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在装置实施例中详尽描述的技术细节,可参见本申请实施例所提供的方法。

图7为无人机100的一个实施例中视觉芯片20的硬件结构示意图,如图7所示,视觉芯片20包括:

一个或多个处理器21以及存储器22,图7中以一个处理器21为例。

处理器21和存储器22可以通过总线或者其他方式连接,图7中以通过总线连接为例。

存储器22作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本申请实施例中的深度图处理方法对应的程序指令/模块(例如,附图5所示的图像校正模块501、深度图获取模块502、障碍物分布获取模块503、时间获取模块504和线程和环形队列建立模块505)。处理器21通过运行存储在存储器22中的非易失性软件程序、指令以及模块,从而执行无人机的各种功能应用以及数据处理,即实现上述方法实施例的深度图处理方法。

存储器22可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据视觉芯片的使用所创建的数据等。此外,存储器22可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器22可选包括相对于处理器21远程设置的存储器,这些远程存储器可以通过网络连接至无人机。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

所述一个或者多个模块存储在所述存储器22中,当被所述一个或者多个处理器21执行时,执行上述任意方法实施例中的深度图处理方法,例如,执行以上描述的图3中的方法步骤101至步骤105;实现图5中的模块501-505、图6中的模块501-505、5051-5052的功能。

上述产品可执行本申请实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本申请实施例所提供的方法。

本申请实施例提供了一种非易失性计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个或多个处理器执行,例如图7中的一个处理器21,可使得上述一个或多个处理器可执行上述任意方法实施例中的深度图处理方法,例如,执行以上描述的图3中的方法步骤101至步骤105;实现图5中的模块501-505、图6中的模块501-505、5051-5052的功能。

以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。

通过以上的实施例的描述,本领域普通技术人员可以清楚地了解到各实施例可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;在本发明的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本发明的不同方面的许多其它变化,为了简明,它们没有在细节中提供;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

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