本发明涉及图像处理领域,尤其涉及一种相机图像处理方法、装置及电子设备。
背景技术:
1、自动驾驶技术的快速发展带来了对高效、快速、稳定图像处理的强烈需求。在自动驾驶场景下,相机扮演着至关重要的角色,用于实现诸如障碍物检测、车道线检测等关键算法。然而,由于图像处理数据量庞大,传统的cpu算力已经无法满足实时、高帧率的处理要求,导致在处理复杂场景下的图像时出现性能瓶颈。
2、在嵌入式场景下,特别是自动驾驶系统中,cpu算力有限是制约系统整体性能的关键因素之一。传统的图像处理方法无法满足对稳定30帧图像帧率的要求,这对于实时感知和决策至关重要。因此,寻找一种能够提升图像处理效率、提高帧率并保持稳定性的解决方案变得迫在眉睫,借助图形处理单元(graphics processing unit,gpu)并行处理的优势,能够加速繁重的图像处理任务,从而有效提升图像处理速度,实现快速且稳定的图像处理,然而会导致数据传输以及通信成本升高,导致性能损失,而单独使用cpu进行图像处理又存在算力不足的情况,如何合理地分配任务给cpu和gpu,充分利用两者的优势,在保证计算性能的同时提升图像处理的速度和效率成为了目前亟待解决的技术问题。
3、而目前并没有一种能够解决上述技术问题的技术方案,并没有一种相机图像处理方法、装置及电子设备。
技术实现思路
1、本发明提供了一种相机图像处理方法、装置及电子设备,通过合理地分配任务给cpu和gpu,可以充分利用两者的优势,在保证计算性能的同时提升图像处理的速度和效率,需要根据实际情况选择合适的计算资源进行处理,以实现最佳的图像处理效果。
2、第一方面,本发明提供了一种相机图像处理方法,包括:
3、对于所有图像中的任一图像,在确定当前cpu模块算力不足的情况下,重复执行如下步骤:
4、根据当前图像对应的相机参数,从预设数据库中确定所述相机参数对应的畸变参数;
5、发送所述当前图像以及所述畸变参数至gpu模块,指示所述gpu模块根据所述当前图像以及所述畸变参数创建计算机视觉编程接口(vision programming interface,vpi)流,在vpi流中根据所述畸变参数处理所述当前图像,得到处理后图像;
6、接收来自所述gpu模块发送的处理后图像,直至完成所有图像的处理;
7、所述预设数据库中包括每一预设相机参数与所述预设相机参数对应的预设畸变参数的对应关系。
8、根据本发明提供的相机图像处理方法,对于所有图像中的任一图像,在确定当前cpu模块算力充足的情况下,所述步骤还包括:
9、输入所述当前图像至预设图像处理模型,得到所述预设图像处理模型输出的处理后图像;
10、所述预设图像处理模型是根据所有携带有畸变参数标签的样本图像,以及每一样本图像对应的处理后样本图像训练后确定的。
11、根据本发明提供的相机图像处理方法,在根据当前图像对应的相机参数,从预设数据库中确定所述相机参数对应的畸变参数之前,所述方法还包括:
12、对于任一处理任务,在确定当前cpu模块执行所述处理任务的时间超过预设处理时长的情况下,确定当前cpu模块算力不足;
13、或,利用系统监控工具获取cpu模块利用率,在确定当前cpu模块的利用率大于预设利用率的情况下,确定当前cpu模块算力不足;
14、对于任一响应操作,在确定响应时长大于预设响应时长的情况下,确定当前cpu模块算力不足;
15、在确定出现错误提示、卡顿提示或闪退的情况下,确定当前cpu模块算力不足。
16、根据本发明提供的相机图像处理方法,所述畸变参数包括径向畸变参数以及切向畸变参数,所述在vpi流中根据所述畸变参数处理所述当前图像,得到处理后图像,包括:
17、根据所述径向畸变参数以及所述切向畸变参数处理所述当前图像,得到去畸变后图像;
18、对去畸变图像进行裁剪和缩放处理,得到所述处理后图像。
19、根据本发明提供的相机图像处理方法,所述根据所述径向畸变参数以及所述切向畸变参数处理所述当前图像,得到去畸变后图像,包括:
20、x′=x(1+k1r2+k2r4+k3r6)+2p1xy+p2(r2+2x2)
21、y′=y(1+k1r2+k2r4+k3r6)+2p2xy+p1(r2+2y2)
22、其中,x为当前图像的x轴坐标,y为当前图像的y轴坐标,x′为去畸变后图像的x轴坐标,y′为去畸变后图像的y轴坐标,k1、k2、k3为径向畸变参数,p1、p2为切向畸变参数,r为代数值,
23、根据本发明提供的相机图像处理方法,所述对去畸变图像进行裁剪和缩放处理,得到所述处理后图像,包括:
24、指示gpu模块调用预设配置参数nvbufferrect,裁剪所述去畸变图像,得到裁剪后图像;
25、指示gpu模块调用nvidia提供的nvbufsurftransform函数,缩放所述裁剪后图像,得到所述处理后图像。
26、根据本发明提供的相机图像处理方法,在vpi流中根据所述畸变参数处理所述当前图像,得到处理后图像之后,所述方法还包括:
27、指示gpu模块调用jpeg编解码库nvjpeg对处理后图像进行压缩,指定压缩后图像的质量分数;
28、指示gpu模块将压缩后图像发送至所述当前cpu模块。
29、根据本发明提供的相机图像处理方法,在发送所述当前图像以及所述畸变参数至gpu模块之前,所述方法还包括:
30、对于所有图像中的任一图像,转换所述图像的原始色彩格式为yuv420格式;
31、所述所有图像是在自动驾驶场景下,基于底层驱动读入的视频流确定的。
32、第二方面,提供了一种相机图像处理装置,包括重复单元,所述重复单元包括确定单元、指示单元以及接收单元;
33、对于所有图像中的任一图像,在确定当前cpu模块算力不足的情况下,所述确定单元用于根据当前图像对应的相机参数,从预设数据库中确定所述相机参数对应的畸变参数;
34、所述指示单元用于发送所述当前图像以及所述畸变参数至gpu模块,指示所述gpu模块根据所述当前图像以及所述畸变参数创建计算机视觉编程接口vpi流,在vpi流中根据所述畸变参数处理所述当前图像,得到处理后图像;
35、所述接收单元用于接收来自所述gpu模块发送的处理后图像,直至完成所有图像的处理;
36、所述预设数据库中包括每一预设相机参数与所述预设相机参数对应的预设畸变参数的对应关系。
37、第三方面,提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现所述机相图像处理方法。
38、本发明提供了一种相机图像处理方法、装置及电子设备,通过多种检测策略动态确定何时由gpu执行图像处理任务,节约了cpu算力,并确保了系统在各种负载情况下的稳定性,当cpu算力不足时,通过重复执行在gpu模块上处理图像的步骤,充分发挥了gpu在图像处理方面的优势,提高了图像处理效率和速度,通过提取畸变参数进行去畸变、裁剪、缩放等处理,结合压缩质量控制,有效减少图像数据量,提高图像传输效率和处理速度;在cpu算力充足时使用预设图像处理模型,该模型基于带有畸变参数标签的样本图像进行训练,为图像处理提供了准确、高效的解决方案;在自动驾驶等领域具有重要意义,能够有效提升图像处理性能,实现快速、稳定的图像处理,为自动驾驶系统的感知和决策能力提供重要支持。
1.一种相机图像处理方法,其特征在于,包括:
2.根据权利要求1所述的相机图像处理方法,其特征在于,对于所有图像中的任一图像,在确定当前cpu模块算力充足的情况下,所述步骤还包括:
3.根据权利要求1所述的相机图像处理方法,其特征在于,在根据当前图像对应的相机参数,从预设数据库中确定所述相机参数对应的畸变参数之前,所述方法还包括:
4.根据权利要求1所述的相机图像处理方法,其特征在于,所述畸变参数包括径向畸变参数以及切向畸变参数,所述在vpi流中根据所述畸变参数处理所述当前图像,得到处理后图像,包括:
5.根据权利要求4所述的相机图像处理方法,其特征在于,所述根据所述径向畸变参数以及所述切向畸变参数处理所述当前图像,得到去畸变后图像,包括:
6.根据权利要求4所述的相机图像处理方法,其特征在于,所述对去畸变图像进行裁剪和缩放处理,得到所述处理后图像,包括:
7.根据权利要求1所述的相机图像处理方法,其特征在于,在vpi流中根据所述畸变参数处理所述当前图像,得到处理后图像之后,所述方法还包括:
8.根据权利要求1所述的相机图像处理方法,其特征在于,在发送所述当前图像以及所述畸变参数至gpu模块之前,所述方法还包括:
9.一种相机图像处理装置,其特征在于,包括重复单元,所述重复单元包括确定单元、指示单元以及接收单元;
10.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至8任一项所述相机图像处理方法。