一种图像处理方法、装置及计算机可读存储介质与流程

文档序号:34063796发布日期:2023-05-06 13:49阅读:20来源:国知局
一种图像处理方法、装置及计算机可读存储介质与流程

本技术涉及电子,尤其涉及一种图像处理方法、装置及计算机可读存储介质。


背景技术:

1、由于车载资源和成本等因素的限制,自动驾驶计算平台的计算能力、存储资源往往比较有限。在自动驾驶相关的算法中,经常会进行图像的几何变换,例如畸变校正,透视变换等,实现图像的几何变换往往会用到查像素映射表和实时运算坐标变换的方式,其中,查像素映射表的方式具体为:将原始图像和待生成图像的像素映射关系保存为一张像素映射表,通过查找像素映射表找到待生成图像中的像素在原始图像中的坐标位置,并从原始图像中的相应位置处获取像素值,即为待生成图像的像素值。实时运算坐标变换的方式具体为:根据变换矩阵计算待生成图像中的像素在原始图像中的坐标位置,并从原始图像中的相应位置处获取像素值,即为待生成图像的像素值,这两种方式在算法实现过程中存在算法时延。为了满足时延的要求,往往需要使用单指令多数据流(single instructionmultiple data,simd)技术,例如,arm、x86架构的中央处理器(central processing unit,cpu)以及数字信号处理(digital signal process,dsp)中应用simd技术,将部分代码利用simd技术进行向量化,可以有效地降低算法时延。但是,这两种方式仍旧存在一些问题,例如,像素映射表占用空间较大,在存储空间受限的情况下可能占用过多的存储资源,使得图像处理效率低,又例如,由于采用了simd技术中常常用定点数来表示小数的方式,因此在位宽有限的情况下,数据存在一定的精度误差,导致感知效果差,从而影响到自动驾驶场景的用户体验。


技术实现思路

1、本技术实施例提供一种图像处理方法、装置及计算机可读存储介质,有助于提升自动驾驶场景的用户体验。

2、第一方面,本技术实施例提供一种图像处理方法,该方法包括:图像处理装置对待生成图像进行分块,得到n个第一区域,n为大于1的整数;针对n个第一区域中的每个第一区域,执行:根据第一映射关系,确定原始图像中与该第一区域包括的第一像素点集合对应的第二像素点集合,第一像素点集合包括多个第一像素点,第二像素点包括多个第二像素点,多个第二像素点与多个第一像素点对应,第一映射关系包括待生成图像中的第一像素点的标识与原始图像中的对应第二像素点在第一坐标系下的坐标值之间的映射关系,第一坐标系为以原始图像的第一顶点为原点的坐标系。然后,确定第二像素点集合中所有的第二像素点的最小外接矩形,将第二像素点集合中包括的每个第二像素点在第一坐标系下的坐标值,转换为第二坐标系下的坐标值,第二坐标系为以最小外接矩形的第二顶点为原点的坐标系。之后,根据该第一区域包括的第一像素点集合中的多个第一像素点的标识以及该第一区域对应的第二像素点集合中的多个第二像素点分别在第二坐标系下的坐标值,生成映射表,该映射表包括待生成图像中的第一像素点的标识与原始图像中的对应第二像素点在第二坐标系下的坐标值之间的映射关系。针对该第一区域包括的任一第一像素点的标识,根据映射表确定与该第一像素点的标识对应的第二像素点在第二坐标系下的第一坐标值,并使用从第一坐标值对应的存储地址中读取的像素值填充该第一像素点。

3、通过该方法,对待生成图像分块得到n个第一区域,针对每个第一区域来说,将该第一区域包括的第一像素点集合对应的第二像素点集合中的每个第二像素点,在以原始图像的第一顶点为原点的第一坐标系下的坐标值,转换为以最小外接矩形的第二顶点为原点的第二坐标系下的坐标值,可以使得该第一区域包括的第一像素点集合对应的第二像素点集合中的每个第二像素点的坐标值以更小的数值表示,其位宽更小,然后,根据该第一区域包括的第一像素点集合中的多个第一像素点的标识以及该第一区域包括的所述第一像素点集合对应的第二像素点集合中的多个第二像素点分别在第二坐标系下的坐标值,生成映射表,相较于直接根据该第一区域包括的第一像素点集合中的多个第一像素点的标识以及该第一区域对应的第二像素点集合中的多个第二像素点分别在第一坐标系下的坐标值生成映射表来说,本技术实施例中生成的映射表中的第二像素点的坐标值所需的位宽更小,例如从16bit降低至8bit,从而可以减少存储映射表所使用的空间,而且还可以提升后续图像处理效率。

4、在一种可能的实现方式中,根据第一区域包括的第一像素点集合中的多个第一像素点的标识以及该第一区域对应的第二像素点集合中的多个第二像素点分别在第二坐标系下的坐标值,生成映射表,可以包括:根据该第一区域包括的所述第一像素点集合对应的第二像素点集合中的多个第二像素点分别在第二坐标系下的坐标值和最小外接矩形的宽和高,确定该第一区域对应的第二像素点集合中的多个第二像素点对应的索引值。然后,根据该第一区域包括的第一像素点集合中的多个第一像素点的标识、以及该第一区域对应的第二像素点集合中的多个第二像素点对应的索引值,生成映射表。针对该第一区域包括的任一第一像素点,根据映射表确定与该第一像素点的标识对应的第二像素点在第二坐标系下的第一坐标值,并使用从第一坐标值对应的存储地址中读取的像素值填充该第一像素点,可以包括:针对该第一区域包括的任一第一像素点,根据映射表确定与该第一像素点的标识对应的第二像素点对应的第一索引值,并使用从第一索引值对应的存储地址中读取的像素值填充该第一像素点。

5、通过该实现方式,在映射表所有像素点的坐标值都可以替换为索引值,从而在实际计算时便可以省略索引计算过程,可提升图像处理效率。

6、在一种可能的实现方式中,若根据原始图像中的第二像素点在第一坐标系下的坐标值和原始图像的宽和高,确定原始图像中的第二像素点对应的索引值的位宽最大值为第一预设值,则该第一区域对应的第二像素点集合中的多个第二像素点分别对应的索引值中的位宽最大值小于该第一预设值,示例的,第一预设值为32bit,该索引值的位宽最大值小于32bit,例如位宽最大值可以为16bit。通过限制每个第一区域对应的第二像素点集合中的多个第二像素点分别对应的索引值的位宽最大值,可以保证每个索引值不会超出聚集(gather)操作支持的范围,而且可以提升并行读取数据的数目。

7、在一种可能的实现方式中,n个第一区域包括的所述第一像素点集合分别对应的第二像素点集合中的多个第二像素点的像素值分别存储于n个内存块中,其中,每个第二像素点集合中的多个第二像素点的像素值存储于同一个内存块。从而可以保证gather操作可以采用映射表中的索引值并行读取数据。

8、在一种可能的实现方式中,针对该第一区域包括的任一第一像素点,根据映射表确定与该第一像素点的标识对应的第二像素点对应的第一索引值,并使用从第一索引值对应的存储地址中读取的像素值填充该第一像素点,可以包括:根据该第一区域对应的起始地址,确定该第一区域对应的内存块,针对该第一区域包括的任一第一像素点,根据映射表确定与该第一像素点的标识对应的第二像素点对应的第一索引值,从该第一区域对应的内存块中的、且与第一索引值对应的存储地址中读取像素值,然后,使用该第一像素点的标识对应的第二像素点的像素值填充该第一像素点。通过该实现方式,在获得该第一区域对应的起始地址以及该第一区域包括的任一第一像素点的标识对应的第二像素点所对应的索引值,就可以从第一区域对应的内存块中读取到该第一像素点的标识对应的第二像素点的像素值,从而可以快速得到用于填充至该第一像素点的像素值。

9、第二方面,本技术实施例提供一种图像处理方法,该方法包括:图像处理装置对待生成图像进行分块,得到n个第一区域,n为大于1的整数;针对n个第一区域中的每个第一区域,执行:根据以第一区域的第三顶点为原点的第三坐标系和以待生成图像的第四顶点为原点的第四坐标系,确定坐标系变换关系,坐标系变换关系用于变换第一像素点在第四坐标系下的坐标值与第一像素点在第三坐标系下的坐标值;根据第一坐标变换关系和坐标系变换关系,生成第二坐标变换关系;第一坐标变换关系用于变换待生成图像中的第一像素点在第四坐标系下的坐标值与原始图像中的第二像素点在第一坐标系下的坐标值;第二坐标变换关系用于变换第一矩形区域包括的第一像素点在第三坐标系下的坐标值与原始图像中的第二像素点在第一坐标系下的坐标值;第一坐标系为以原始图像的第一顶点为原点的坐标系;针对第一区域包括的任一第一像素点,根据第二坐标变换关系和第一像素点在第三坐标系下的坐标值,确定与第一像素点对应的第二像素点在第一坐标系下的第二坐标值,并使用从第二坐标值对应的存储地址中读取的像素值填充第一像素点的像素值。

10、通过该方法,对待生成图像分块得到n个第一区域,针对待生成图像中的每个第一区域来说,该第一区域包括的第一像素点集合中的多个第一像素点采用第三坐标系下的坐标值表示,可以使得第一像素点的坐标值更小,第一像素点采用第三坐标系下的坐标值通过第二坐标变换关系,与第一像素点采用以待生成图像的第四顶点的坐标系下的坐标值通过第一坐标变换关系,都可以定位到与该第一像素点对应的第二像素点在第一坐标系下的坐标值,但是本技术实施例中,通过第二坐标变换关系进行坐标变换过程中,该第一像素点的坐标值以更小的数值表示,可以在后续处理中提升计算精度,尤其在乘法运算中可以降低计算精度误差,从而自动驾驶场景的用户体验。

11、第三方面,本技术实施例提供一种图像处理装置,该图像处理装置包括执行上述第一方面、以及第一方面的任意一种可能的设计的方法或者执行上述第二方面的方法的模块/单元;这些模块/单元可以通过硬件实现,也可以通过硬件执行相应的软件实现。

12、第四方面,本技术实施例还提供一种图像处理装置,包括处理器和存储器;所述存储器用于存储程序;所述处理器用于执行所述存储器所存储的程序,以使所述图像处理装置执行本技术实施例第一方面、以及第一方面的任一可能设计的技术方案,或者,执行本技术实施例第二方面的技术方案。

13、第五方面,本技术实施例还提供一种计算机可读存储介质,所述计算机可读存储介质包括计算机程序,当计算机程序在图像处理装置上运行时,使得所述图像处理装置执行本技术实施例第一方面、以及第一方面的任一可能设计的技术方案,或者,执行本技术实施例第二方面的技术方案。

14、第六方面,本技术实施例还提供一种程序产品,包括指令,当所述程序产品在车载设备上运行时,使得所述车载设备执行本技术实施例第一方面、以及第一方面的任一可能设计的技术方案,或者,执行本技术实施例第二方面的技术方案。

15、第七方面,提供了一种芯片系统,该芯片系统可以包括处理器。该处理器与存储器耦合,可用于执行第一方面、以及第一方面的任一种可能实现方式中的方法,或者,执行本技术实施例第二方面中的方法。可选地,该芯片系统还包括存储器。存储器,用于存储计算机程序(也可以称为代码,或指令)。处理器,用于从存储器调用并运行计算机程序,使得安装有芯片系统的设备执行第一方面、以及第一方面的任一种可能实现方式中的方法,或者,执行本技术实施例第二方面中的方法。

16、上述第三方面至第七方面的相关技术效果可以参见第一方面、以及第一方面的任一种可能实现方式中的方法,或者,第二方面的方法的技术效果。

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