一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种图像处理方法、装置、计算机设备和存储介质与流程

2021-11-05 23:14:00 来源:中国专利 TAG:


1.本发明实施例涉及计算机视觉的技术领域,尤其涉及一种图像处理方法、装置、计算机设备和存储介质。


背景技术:

2.在自动驾驶的感知系统中,有许多模块是利用相机拍摄下来的图像数据进行感知的,例如,对红绿灯,车道线,车尾灯,行人,车辆等目标进行检测。
3.这些目标检测的方法通常会建立神经网络、机器学习等模型来对图像数据进行推断得到检测的结果,在一次完整的感知过程中包括数据采集、预处理、模型的推断,时间的开销比较大的,实时性较差,影响自动驾驶的决策。


技术实现要素:

4.本发明实施例提出了一种图像处理方法、装置、计算机设备和存储介质,以解决在自动驾驶对图像数据的感知的时间开销较大的问题。
5.第一方面,本发明实施例提供了一种图像处理方法,包括:
6.在同一个检测周期中,依次调用多个摄像头采集多帧第一图像数据;
7.在所述检测周期中,每当所述第一图像数据存储至中央处理器时,将所述第一图像数据从所述中央处理器拷贝到异构处理器;
8.在所述检测周期中,在所述异构处理器中,为第一目标模型对所述第一图像数据进行预处理,得到第二图像数据,所述第一目标模型为待处理所述第一图像数据的图像处理模型;
9.在所述异构处理器中,调用所述第一目标模型对所述第二图像数据进行处理。
10.第二方面,本发明实施例还提供了一种图像处理装置,包括:
11.图像数据采集模块,用于在同一个检测周期中,依次调用多个摄像头采集多帧第一图像数据;
12.周期拷贝模块,用于在所述检测周期中,每当所述第一图像数据存储至中央处理器时,将所述第一图像数据从所述中央处理器拷贝到异构处理器;
13.周期预处理模块,用于在所述检测周期中,在所述异构处理器中,为第一目标模型对所述第一图像数据进行预处理,得到第二图像数据,所述第一目标模型为待处理所述第一图像数据的图像处理模型;
14.图像数据推断模块,用于在所述异构处理器中,调用所述第一目标模型对所述第二图像数据进行处理。
15.第三方面,本发明实施例还提供了一种计算机设备,所述计算机设备包括:
16.一个或多个处理器;
17.存储器,用于存储一个或多个程序,
18.当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理
器实现如第一方面所述的图像处理方法。
19.第四方面,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如第一方面所述的图像处理方法。
20.在本实施例中,在同一个检测周期中,依次调用多个摄像头采集多帧第一图像数据,在检测周期中,每当第一图像数据存储至中央处理器时,将第一图像数据从中央处理器拷贝到异构处理器,在检测周期中,在异构处理器中,为第一目标模型对第一图像数据进行预处理,得到第二图像数据,第一目标模型为待处理第一图像数据的图像处理模型,在异构处理器中,调用第一目标模型对第二图像数据进行处理,利用自动驾驶中摄像头与其他感知传感器融合的特点,在摄像头采集第一图像数据之间的间隙时间对已采集到的第一图像数据进行拷贝和预处理,将拷贝和预处理隐藏、压缩在检测周期中,使得整个感知流程的时间开销明显降低,保证了实时性,从而保证自动驾驶的决策的准确性。
附图说明
21.图1为本发明实施例提供的一种车辆的结构示意图;
22.图2为本发明实施例一提供的一种图像处理方法的流程图;
23.图3为本发明实施例一提供的一种摄像头与激光雷达的感知操作示意图;
24.图4为本发明实施例一提供的一种锁页内存的示例图;
25.图5为本发明实施例一提供的一种cpu与gpu的架构对比示意图;
26.图6为本发明实施例一提供的一种预处理的示例图;
27.图7是本发明实施例二提供的一种图像处理方法的流程图;
28.图8是本发明实施例二提供的一种d2d的示例图;
29.图9是本发明实施例三提供的一种图像处理方法的流程图;
30.图10为本发明实施例四提供的一种图像处理装置的结构示意图;
31.图11为本发明实施例五提供的一种计算机设备的结构示意图。
具体实施方式
32.下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
33.目前,对于自动驾驶的场景,在一次完整的、对图像数据感知的过程中,cpu(central processing unit,中央处理器)会在一个完整的检测周期之后,统一对摄像头采集的图像数据进行预处理,将预处理之后的图像数据拷贝到异构计算的设备(即异构处理器)上,例如,gpu(graphics processing unit,图形处理器),tpu(tensor processing unit,张量处理器),npu(neural network processing unit,神经网络处理器),等等,异构处理器上部署有神经网络、机器学习等图像处理模型,调用图像处理模型对预处理之后的图像数据进行感知。
34.在这一过程中,摄像头采集图像数据往往并非是同步的,而是具有顺序性,在检测周期中,排序在先的摄像头已采集完图像数据、等待排序在后的摄像头采集图像数据,存在
时间的浪费;cpu对于图像数据的预处理操作较慢,并且,图像数据从cpu拷贝到异构处理器上的延时开销比较大;对于不同的图像处理模型都拷贝同一份图像数据,存在冗余性的拷贝。
35.参见图1,示出了可以应用本发明实施例中图像处理装置的实施例的车辆100。
36.如图1所示,车辆100可以包括驾驶控制设备101,车身总线102,ecu(electronic control unit,电子控制单元)103、ecu 104、ecu 105,传感器106、传感器107、传感器108和执行器件109、执行器件110、执行器件111。
37.驾驶控制设备(又称为车载大脑)101负责整个车辆100的总体智能控制。驾驶控制设备101可以是单独设置的控制器,例如,cpu、异构处理器(如gpu、tpu、npu等)可编程逻辑控制器(programmable logiccontroller,plc)、单片机、工业控制机等;也可以是由其他具有输入/输出端口,并具有运算控制功能的电子器件组成的设备;还可以是安装有车辆驾驶控制类应用的计算机设备。驾驶控制设备可以对从车身总线102上接收到的各个ecu发来的数据和/或各个传感器发来的数据进行分析处理,作出相应的决策,并将决策对应的指令发送到车身总线。
38.车身总线102可以是用于连接驾驶控制设备101,ecu 103、ecu 104、ecu 105,传感器106、传感器107、传感器108以及车辆100的其他未示出的设备的总线。由于can(controller areanetwork,控制器局域网络)总线的高性能和可靠性已被广泛认同,因此目前机动车中常用的车身总线为can总线。当然,可以理解的是车身总线也可以是其他类型的总线。
39.车身总线102可以将驾驶控制设备101发出的指令发送给ecu 103、ecu 104、ecu 105,ecu 103、ecu 104、ecu 105再将上述指令进行分析处理后发给相应的执行器件执行。
40.传感器106、传感器107、传感器108包括但不限于激光雷达、摄像头,等等。其中,通常在车体周围架设4

8组广角、高感光摄像头,每组摄像头的数量不一,可以有2

4个摄像头。
41.需要说明的是,本发明实施例所提供的图像处理方法可以由驾驶控制设备101执行,相应地,图像处理装置一般设置于驾驶控制设备101中。
42.应该理解,图1中的车辆、驾驶控制设备、车身总线、ecu、执行器件和传感器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的车辆、驾驶控制设备、车身总线、ecu和传感器。
43.实施例一
44.图2为本发明实施例一提供的一种图像处理方法的流程图,本实施例可适用于调整图像数据从cpu拷贝到异构处理器的时机,在异构处理器上进行预处理并进行感知的情况,该方法可以由图像处理装置来执行,该图像处理装置可以由软件和/或硬件实现,可配置在计算机设备中,例如,车辆,等等,具体包括如下步骤:
45.步骤201、在同一个检测周期中,依次调用多个摄像头采集多帧第一图像数据。
46.本实施例中的车辆可支持自动驾驶,所谓自动驾驶,可以指车辆本身拥有环境感知、路径规划并且自主实现车辆控制的能力,也就是用电子技术控制车辆进行的仿人驾驶。
47.根据对车辆操控任务的把握程度,自动驾驶车辆可以分为l0非自动化(no automotion)、l1驾驶人辅助(driver assistance)、l2部分自动化(partial automation)、
l3有条件自动化(conditional automation)、l4高自动化(high automation)、l5全自动化(full automation)。
48.本实施例中自动驾驶的车辆,可以指满足l1

l5中任一要求的车辆,其中,系统在l1

l3起辅助功能,当到达l4,车辆驾驶将交给系统,因此,自动驾驶的车辆可选为满足l4、l5中任一要求的车辆。
49.在车辆上安装有多个摄像头,多个摄像头之间安装的角度存在差异,可以覆盖车辆周边的范围,而多个摄像头通常配合其他感知传感器(如激光雷达lidar、毫米波雷达、超声波雷达等)采集多帧第一图像数据,每个摄像头采集一帧第一图像数据,本实施例中,将多个摄像头与其他感知传感器配合采集多帧第一图像数据的时间记为检测周期,因此,在同一个检测周期中,可以按照其他感知传感器的感知特性对摄像头排列顺序,按照顺序依次调用多个摄像头采集多帧第一图像数据。
50.以激光雷达作为其他感知传感器的示例,激光雷达旋转一周(360
°
)为一个检测周期,车辆在自动驾驶的过程中,可以持续控制激光雷达旋转,在旋转的过程中采集车辆周围环境的点云数据,点云与第一图像数据可同时用于感知,那么,当激光雷达的角度与摄像头的角度匹配时,激光雷达扫描到第一相机的可视范围,此时,由特定的同步器触发调用该摄像头采集第一图像数据。
51.例如,如图3所示,在车辆中安装有3个摄像头,位于左侧的摄像头311,其角度为左前方60
°
,位于正面的摄像头312,位于右侧的摄像头313,其角度为右前方60
°
,激光雷达300绕顺时针旋转,在旋转到左前方60
°
时,同步器触发摄像头311采集第一图像数据,在旋转到正前方时,同步器触发摄像头312采集第一图像数据,在旋转到右前方60
°
时,同步器触发摄像头313采集第一图像数据。
52.步骤202、在检测周期中,每当第一图像数据存储至中央处理器时,将第一图像数据从中央处理器拷贝到异构处理器。
53.一般情况下,cpu作为控制的中心,每个摄像头均连接cpu,摄像头采集的第一图像数据会存储在cpu的内存中。
54.在一个完整的检测周期中,每两个摄像头采集第一图像数据之间存在间隙的时间,这部分间隙的时间可以利用起来,通过pci

e(peripheral component interconnect express,周边设备高速连接标准)将第一图像数据从cpu的内存拷贝到异构处理器的内存中。
55.将cpu视为主机host,将异构处理器视为设备device,将第一图像数据从cpu的内存拷贝到异构处理器的内存的操作可以记为h2d(host to device)。
56.例如,如图3所示,激光雷达300在旋转到左前方60
°
之后、旋转到正前方之前存在间隙的时间321,在间隙的时间321内对摄像头311采集的第一图像数据执行h2d操作,激光雷达300在旋转到正前方之后、旋转到右前方60
°
之前存在间隙的时间322,在间隙的时间322内对摄像头312采集的第一图像数据执行h2d操作。
57.一般情况下,在检测周期中,每当第一图像数据存储至中央处理器时,则每个异构处理器可从cpu拷贝第一图像数据,当然,如果某些异构处理器并不对第一图像数据进行预处理,也可以不从cpu拷贝第一图像数据,本实施例对此不加以限制。
58.cpu数据分配是可分页的,分页是把整个虚拟内存和物理内存空间切成一段段固
定尺寸的大小,这样一个连续并且尺寸固定的内存空间,叫页(page),每一页的大小由硬件决定,一般都是4kb,128个字节等。
59.虚拟地址与物理地址之间通过页表来映射,页表实际上存储在cpu的内存管理单元(mmu)中,于是cpu就可以直接通过mmu,找出要实际要访问的物理内存地址。
60.如图4所示,诸如gpu等异构处理器device不能直接从主机host可分页的内存访问数据,因此,可以预先在中央处理器cpu的可分页内存中为每个摄像头分配异构处理器可读的锁页内存,每个摄像头采集的图像数据存储在相应的锁页内存中,使得锁页内存用作从主机host传输到异构设备device的暂存区。
61.进一步而言,当摄像头为多个时,可以从在中央处理器cpu中为多个摄像头申请内存池,在内存池中每个摄像头分配异构处理器可读的锁页内存。
62.其中,内存池管理程序运行过程如下:
63.初始化:内存映射表中只有一块可用的内存信息,大小为内存池中所有可用的内存。从memory chunk pool中分配一个mem_chunk,使其指向内存映射表中的第一个block,并根据具体的内存池实现方式填充mem_chunk中的其他域,然后将该mem_chunk添加到memory chunk set中。
64.申请内存:当申请一块内存时,首先在memory chunk set中查找合适的内存块。如果找到符合要求的内存块,就在内存映射表中找到相应的chunk,并修改chunk中相应block结构体的内容,然后根据修改后的chunk修改memory chunk set中chunk的内容,最后返回分配内存的起始地址;否则返回null。
65.释放内存:当释放一块内存时,首先根据这块内存的起始地址找到其在内存映射表中对应的chunk,然后尝试将该chunk和与其相邻的chunk合并,修改chunk中相应block的内容并修改memory chunk set中相应chunk的内容或者向memory chunk set加入新的mem_chunk。
66.如图4所示,在检测周期中,每当摄像头采集的第一图像数据存储至摄像头对应的锁页内存时,异构处理器的驱动程序(如cuda(compute unified device architecture,统一计算设备架构))可以从锁页内存中将第一图像数据拷贝到异构处理器的内存中,如dram(dynamic random access memory,动态随机存取存储器)。
67.进一步地,当摄像头的分辨率等设置初始化之后,该摄像头采集的第一图像数据的体积size是固定的,因此,为每个摄像头查询摄像头采集到的第一图像数据的体积,在中央处理器中为摄像头申请与该体积匹配(如与该体积相等、比该体积略大)的、异构处理器可读的锁页内存,可节省cpu的内存空间,降低可分页内存和锁页内存之间传输第一图像数据的成本。
68.当然,除了与第一图像数据的体积匹配之外,还可以使用其他方式申请锁页内存,例如,按照默认的体积为异构处理器申请锁页内存、统一按照最大的体积为异构处理器申请锁页内存,等等,本实施例对此不加以限制。
69.此外,除了锁页内存之外,cpu也可以通过其他内存传输方式(如内存直接传送dma)将第一图像数据传输到异构处理器中,本实施例对此亦不加以限制。
70.步骤203、在检测周期中,在异构处理器中,为第一目标模型对第一图像数据进行预处理,得到第二图像数据。
71.在本实施例中,可以预先根据自动驾驶的需求在异构处理器中部署一个或多个图像处理模型,每个图像处理模块可以实现一个独立处理图像数据的功能。
72.在一种部署方式中,图像处理模型划分为主分支模型、次分支模型。
73.其中,主分支模型可以按照顺序划分为多个节点,位于下游节点的主分支模型依赖位于上游节点的主分支模型,即,位于下游节点的主分支模型的输入为位于上游节点的主分支模型的输出,主分支模型一般为对于自动驾驶比较重要的图像处理模型,使用频率较高,主分支模型部署在同一个异构处理器中,使得在同一个异构处理器中可以直接相互传输数据,减少不同处理器之间的数据传输,减少传输数据的消耗,提高处理效率。
74.主分支模型依赖次分支模型,即,主分支模型的输入为分支模型的输出,分支模型为主分支模型提供支持,次分支模型对于自动驾驶的重要性一般低于主分支模型对于自动驾驶的重要性,次分支模型的使用频率一般低于主分支模型的使用频率,次分支模型部署在其他一个或多个异构处理器中,可均衡负载计算的压力。
75.以gpu为例,gpu包括gpu1(1号卡)、gpu0(0号卡),gpu0又称集显,即集成显卡,是主板自带的显卡,gpu1又称独显,即独立显卡,是单独的一张显卡,独显的性能一般是会比集显要高。
76.在本示例,在gpu1上部署主分支模型,例如,用于融合图像数据跟点云数据的图像处理模型,用于使用融合图像数据跟点云数据检测目标的图像处理模型,用于对目标预测速度的图像处理模型,用于跟踪目标的图像处理模型,等等,从而对主分支模型配置更高的计算性能,保证主分支模型的正常运行,保证自动驾驶的性能。
77.在gpu0上部署次分支模型,例如,用于分割图像数据的图像处理模型,用于对红绿灯进行分类的图像处理模型,用于对车尾灯进行分类的图像处理模型,等等。
78.异构处理器中的部分或全部图像处理模型为待处理第一图像数据的图像处理模型,记为第一目标模型。
79.对于不同的第一目标模型,对于输入的图像数据的要求都是不统一的,例如,用于对交通灯数字进行分类的第一目标模型,输入为交通灯里面一个大小为64
×
64像素的图像数据,而对于比较复杂的、用于检测行人、车辆等目标的第一目标模型,输入为原始大小(如1024
×
796)的图像数据。
80.目前的方法都会在主机的内存里面对这些第一图像数据进行预处理,但是,在主机上处理这些缩放、平移、旋转等操作效率较低,并且存在传输的时间开销,而在本实施例中,第一图像数据已利用间隙时间传输到异构处理器,那么,可以在检测周期中,在异构处理器中,确定为第一目标模型设置的图像处理规则,如缩放、平移、旋转等,从而按照图像处理规则对第一图像数据进行预处理,得到第二图像数据。
81.一方面,异构处理器的处理核心(core)较多,一般具备高并行特性。
82.例如,如图5所示,cpu与gpu均具有运算单元all、控制单元control、缓存单元cache,而cpu的运算单元all的占比为25%、控制单元control的占比为25%、缓存单元cache的占比为50%,gpu的运算单元all的占比为90%、控制单元control的占比为5%、缓存单元cache的占比为5%,因此,cpu适于复杂逻辑控制的场景,而gpu适于并行计算,无依赖性、相互独立的场景。
83.将缩放、平移、旋转等预处理从cpu迁移到异构处理器上执行,并且对实现预处理
的不同算子提供处理核心,大大提高预处理的效率。
84.例如,如图6所示,在一个图像批量处理image batch的示例中,可以异构处理上并行对一批第一图像图像(如image0、image1、image2、
……
、imagen)进行不同感兴趣区域(egion of interest,roi)进行批量裁剪操作。
85.另一方面,在第一目标模型所在的异构处理器对第一图像数据进行预处理,使得在同一异构处理器中直接调用相应的第一目标图像对预处理之后的第二图像数据进行处理,可以减少数据传输的时间开销。
86.并且,不同图像处理模型共用同一份第一图像数据,大大减少了冗余性拷贝的情况。
87.进一步而言,如果某些异构处理器原生并不支持某些图像处理模型(如tensorflow)的并行,在本实施例中,可以在检测周期中,在异构处理器中,构建多个虚拟的异构处理器(virtual device)、作为多个虚拟处理器,每个虚拟处理器独立占用异构处理器的核core实现计算流。
88.因此,在多个虚拟处理器中,可以并行为第一目标模型对第一图像数据进行预处理,得到第二图像数据,从而保证预处理的效率。
89.步骤204、在异构处理器中,调用第一目标模型对第二图像数据进行处理。
90.当所有第一图像数据的预处理时,检测周期也随之结束,此时,可以调用异构处理器上相应的第一目标模型对第二图像数据进行处理。
91.在实际应用中,不同的图像处理模型对于输入的结构化类型是不一致的,例如,tensorrt(图像处理模型)输入的是一个裸的gpu内存指针,而tensorflow(图像处理模型)输入的是tensorflow声明的tensor,等等,将第二图像数据按照结构化类型进行整理,并输入至第一目标模型进行处理。
92.在本实施例中,在同一个检测周期中,依次调用多个摄像头采集多帧第一图像数据,在检测周期中,每当第一图像数据存储至中央处理器时,将第一图像数据从中央处理器拷贝到异构处理器,在检测周期中,在异构处理器中,为第一目标模型对第一图像数据进行预处理,得到第二图像数据,第一目标模型为待处理第一图像数据的图像处理模型,在异构处理器中,调用第一目标模型对第二图像数据进行处理,利用自动驾驶中摄像头与其他感知传感器融合的特点,在摄像头采集第一图像数据之间的间隙时间对已采集到的第一图像数据进行拷贝和预处理,将拷贝和预处理隐藏、压缩在检测周期中,使得整个感知流程的时间开销明显降低,保证了实时性,从而保证自动驾驶的决策的准确性。
93.实施例二
94.图7为本发明实施例二提供的一种图像处理方法的流程图,本实施例以前述实施例为基础,进一步增加图像传输的操作,该方法具体包括如下步骤:
95.步骤701、在同一个检测周期中,依次调用多个摄像头采集多帧第一图像数据。
96.步骤702、在检测周期中,每述第一图像数据存储至中央处理器时,将第一图像数据从中央处理器拷贝到异构处理器。
97.步骤703、在检测周期中,在异构处理器中,为第一目标模型对第一图像数据进行预处理,得到第二图像数据。
98.其中,第一目标模型为待处理第一图像数据的图像处理模型。
99.步骤704、在异构处理器中,调用第一目标模型对第二图像数据进行处理。
100.步骤705、在当前异构处理器中查询第二目标模型所处的处理器。
101.在本实施例中,可以通过元数据metadata、配置信息等方式记录记录每个处理器(cpu、异构处理器等)部署的图像处理模型,以及,图像处理模型之间的依赖关系,即哪个图像处理模型的输出为哪个图像处理模型的输入。
102.在得到第三图像数据时,即,当前异构处理器中任一图像处理模型输出的图像数据,当前异构处理器可以通过元数据metadata、配置信息等方式查询为待处理第三图像数据的图像处理模型(即第二目标模型)所处的处理器。
103.步骤706、若处理器为当前异构处理器,则将第三图像数据保留在当前异构处理器,以待调用第二目标模型处理第三图像数据。
104.如果部署第二目标模型的处理器为当前异构处理器,则可以将第三图像数据保留在当前异构处理器的内存中,等待调用部署在当前异构处理器上的第二目标模型对第三图像数据进行推断。
105.步骤707、若处理器为其他异构处理器,则将第三图像数据传输至当前异构处理器,以待调用第二目标模型处理第三图像数据。
106.如果部署第二目标模型的处理器为其他异构处理器,则如图8所示,可以通过memcpy函数(内存拷贝函数)等方式在当前异构处理器与其他异构处理器之间进行拷贝操作,记为d2d(device to device),即,将第三图像数据从当前异构处理器的内存拷贝到其他异构处理器的内存,等待调用部署在其他异构处理器上的第二目标模型对第三图像数据进行推断inference。
107.步骤708、若处理器为中央处理器,则将第三图像数据传输至中央处理器,以待调用第二目标模型处理第三图像数据。
108.cpu可以提供较强的逻辑计算能力,因此,部分依赖逻辑计算能力的图像处理模型可以部署在cpu上,例如,用于识别检测框是横的还是竖的图像处理模型、用于检测交通灯位置的图像处理模型、用于检测数字的图像处理模型,等等。
109.如果部署第二目标模型的处理器为cpu,则可以将第三图像数据从当前异构处理器的内存拷贝到cpu的内存,等待调用部署在cpu上的第二目标模型对第三图像数据进行推断。
110.实施例三
111.图9为本发明实施例三提供的一种图像处理方法的流程图,本实施例以前述实施例为基础,进一步增加图像传输的操作,该方法具体包括如下步骤:
112.步骤901、在同一个检测周期中,依次调用多个摄像头采集多帧第一图像数据。
113.步骤902、在检测周期中,每述第一图像数据存储至中央处理器时,将第一图像数据从中央处理器拷贝到异构处理器。
114.步骤903、在检测周期中,在异构处理器中,为第一目标模型对第一图像数据进行预处理,得到第二图像数据。
115.其中,第一目标模型为待处理第一图像数据的图像处理模型。
116.步骤904、在异构处理器中,调用第一目标模型对第二图像数据进行处理。
117.步骤905、在中央处理器中查询第三目标模型所处的处理器。
118.在本实施例中,可以通过元数据metadata、配置信息等方式记录记录每个处理器(cpu、异构处理器等)部署的图像处理模型,以及,图像处理模型之间的依赖关系,即哪个图像处理模型的输出为哪个图像处理模型的输入。
119.在得到第四图像数据时,即,中央处理器中任一图像处理模型输出的图像数据,cpu可以通过元数据metadata、配置信息等方式查询为待处理第四图像数据的图像处理模型(即第三目标模型)所处的处理器。
120.步骤906、若处理器为中央处理器,则将第四图像数据保留在中央处理器,以待调用第三目标模型处理第四图像数据。
121.如果部署第三目标模型的处理器为cpu,则可以将第四图像数据保留在cpu的内存中,等待调用部署在cpu上的第三目标模型对第四图像数据进行推断。
122.步骤907、若处理器为异构处理器,则将第四图像数据传输至异构处理器,以待调用第三目标模型处理第四图像数据。
123.如果部署第三目标模型的处理器为异构处理器,则可以通过执行h2d操作,将第四图像数据从cpu的内存拷贝到异构处理器的内存,等待调用部署在异构处理器上的第三目标模型对第四图像数据进行推断。
124.需要说明的是,h2d操作可以直接使用内存传输的方式传输第四图像数据,并不使用锁页内存的方式传输第四图像数据。
125.需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
126.实施例三
127.图10为本发明实施例三提供的一种图像处理装置的结构框图,具体可以包括如下模块:
128.图像数据采集模块1001,用于在同一个检测周期中,依次调用多个摄像头采集多帧第一图像数据;
129.周期拷贝模块1002,用于在所述检测周期中,每当所述第一图像数据存储至中央处理器时,将所述第一图像数据从所述中央处理器拷贝到异构处理器;
130.周期预处理模块1003,用于在所述检测周期中,在所述异构处理器中,为第一目标模型对所述第一图像数据进行预处理,得到第二图像数据,所述第一目标模型为待处理所述第一图像数据的图像处理模型;
131.图像数据推断模块1004,用于在所述异构处理器中,调用所述第一目标模型对所述第二图像数据进行处理。
132.在本发明的一个实施例中,所述图像数据采集模块1001包括:
133.雷达旋转模块,用于控制激光雷达旋转,在旋转的过程中采集点云数据,所述激光雷达旋转一周为一个检测周期;
134.同步采集模块,用于当所述激光雷达的角度与摄像头的角度匹配时,调用所述摄像头采集第一图像数据。
135.在本发明的一个实施例中,所述周期拷贝模块1002包括:
136.锁页内存分配模块,用于在中央处理器中为每个所述摄像头分配异构处理器可读的锁页内存;
137.锁页内存拷贝模块,用于在所述检测周期中,每当所述摄像头采集的所述第一图像数据存储至所述摄像头对应的所述锁页内存时,从所述锁页内存中将所述第一图像数据拷贝到所述异构处理器。
138.在本发明的一个实施例中,所述锁页内存分配模块包括:
139.体积查询模块,用于为每个所述摄像头查询所述摄像头采集到的第一图像数据的体积;
140.体积匹配申请模块,用于在中央处理器中为所述摄像头申请与所述体积匹配的、异构处理器可读的锁页内存。
141.在本发明的一个实施例中,所述周期预处理模块1003包括:
142.图像处理规则确定模块,用于在所述检测周期中,在所述异构处理器中,确定为第一目标模型设置的图像处理规则;
143.规则处理模块,用于按照所述图像处理规则对所述第一图像数据进行预处理,得到第二图像数据。
144.在本发明的另一个实施例中,所述周期预处理模块1003包括:
145.虚拟处理器构建模块,用于在所述检测周期中,在所述异构处理器中,构建多个虚拟的异构处理器、作为多个虚拟处理器,每个所述虚拟处理器独立占用所述异构处理器的核;
146.虚拟处理器处理模块,用于在多个所述虚拟处理器中,并行为第一目标模型对所述第一图像数据进行预处理,得到第二图像数据。
147.在本发明的另一个实施例中,所述图像处理模型划分为主分支模型、次分支模型;
148.位于下游节点的所述主分支模型依赖位于上游节点的所述主分支模型;
149.所述主分支模型依赖所述次分支模型;
150.所述主分支模型部署在同一个所述异构处理器中,所述次分支模型部署在其他所述异构处理器中。
151.在本发明的一个实施例中,还包括:
152.第一处理器查询模块,用于在当前所述异构处理器中查询第二目标模型所处的处理器,所述第二目标模型为待处理第三图像数据的图像处理模型,所述第三图像数据为当前所述异构处理器中任一图像处理模型输出的图像数据;
153.第一保留模块,用于若所述处理器为当前所述异构处理器,则将所述第三图像数据保留在当前所述异构处理器,以待调用所述第二目标模型处理所述第三图像数据;
154.第一异构拷贝模块,用于若所述处理器为其他所述异构处理器,则将所述第三图像数据传输至其他所述异构处理器,以待调用所述第二目标模型处理所述第三图像数据;
155.主机拷贝模块,用于若所述处理器为所述中央处理器,则将所述第三图像数据传输至所述中央处理器,以待调用所述第二目标模型处理所述第三图像数据。
156.在本发明的一个实施例中,还包括:
157.第二处理器查询模块,用于在所述中央处理器中查询第三目标模型所处的处理
器,所述第三目标模型为待处理第四图像数据的图像处理模型,所述第四图像数据为所述中央处理器中任一图像处理模型输出的图像数据;
158.第二保留模块,用于若所述处理器为所述中央处理器,则将所述第四图像数据保留在所述中央处理器,以待调用所述第三目标模型处理所述第四图像数据;
159.第二异构拷贝模块,用于若所述处理器为所述异构处理器,则将所述第四图像数据传输至所述异构处理器,以待调用所述第三目标模型处理所述第四图像数据。
160.本发明实施例所提供的图像处理装置可执行本发明任意实施例所提供的图像处理方法,具备执行方法相应的功能模块和有益效果。
161.实施例四
162.图11为本发明实施例四提供的一种计算机设备的结构示意图。图11示出了适于用来实现本发明实施方式的示例性计算机设备12的框图。图11显示的计算机设备12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
163.如图11所示,计算机设备12以通用计算设备的形式表现。计算机设备12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
164.总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(isa)总线,微通道体系结构(mac)总线,增强型isa总线、视频电子标准协会(vesa)局域总线以及外围组件互连(pci)总线。
165.计算机设备12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机设备12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
166.系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(ram)30和/或高速缓存存储器32。计算机设备12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图11未显示,通常称为“硬盘驱动器”)。尽管图11中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如cd

rom,dvd

rom或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
167.具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
168.计算机设备12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机设备12交互的设备通信,和/或与使得该计算机设备12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口22进行。并且,计算机设备12还可以通过网络适配器20与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网
络,例如因特网)通信。如图所示,网络适配器20通过总线18与计算机设备12的其它模块通信。应当明白,尽管图中未示出,可以结合计算机设备12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。
169.处理单元16通过运行存储在系统存储器28中的程序,从而执行各种功能应用以及数据处理,例如实现本发明实施例所提供的图像处理方法。
170.实施例五
171.本发明实施例五还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述图像处理方法的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
172.其中,计算机可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd

rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
173.注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献