CN112308787B - 畸变矫正方法及装置、电子设备 - Google Patents
畸变矫正方法及装置、电子设备 Download PDFInfo
- Publication number
- CN112308787B CN112308787B CN201910711586.5A CN201910711586A CN112308787B CN 112308787 B CN112308787 B CN 112308787B CN 201910711586 A CN201910711586 A CN 201910711586A CN 112308787 B CN112308787 B CN 112308787B
- Authority
- CN
- China
- Prior art keywords
- image data
- corrected
- image
- pixel
- distortion
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000012937 correction Methods 0.000 title claims abstract description 111
- 238000000034 method Methods 0.000 title claims abstract description 40
- 238000003384 imaging method Methods 0.000 claims abstract description 16
- 239000000872 buffer Substances 0.000 claims description 108
- 238000005192 partition Methods 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 9
- 238000012545 processing Methods 0.000 description 27
- 238000004422 calculation algorithm Methods 0.000 description 22
- 238000013528 artificial neural network Methods 0.000 description 19
- 238000010586 diagram Methods 0.000 description 15
- 238000004364 calculation method Methods 0.000 description 6
- 230000011218 segmentation Effects 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 238000001514 detection method Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000013461 design Methods 0.000 description 4
- 238000013507 mapping Methods 0.000 description 3
- 238000007781 pre-processing Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000008707 rearrangement Effects 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000005215 recombination Methods 0.000 description 1
- 230000006798 recombination Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/80—Geometric correction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/28—Indexing scheme for image data processing or generation, in general involving image processing hardware
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20021—Dividing image into blocks, subimages or windows
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Image Processing (AREA)
Abstract
公开了一种畸变矫正方法及装置、电子设备。在一实施例中,畸变矫正装置,可以包括:片上存储器和运算电路;其中,片上存储器,配置为存储成像器件的部分查找表和待矫正图像中预设通道的图像数据,所述部分查找表中包含所述预设通道的图像数据的畸变参数;运算电路,配置为根据所述预设通道的图像数据对应的畸变参数,调整所述待矫正图像中预设通道的图像数据的像素值,以得到所述预设通道的矫正图像数据;所述片上存储器,还配置为存储所述运算电路输出的所述矫正图像数据。本申请至少可节省芯片中CPU的计算资源。
Description
技术领域
本申请涉及图像处理技术,尤其涉及一种畸变矫正方法及装置、电子设备。
背景技术
由于相机等成像器件本身的缺陷造成的图像畸变难以避免,因此,畸变矫正是计算机视觉系统中的基本图像处理操作,通过畸变校正可以满足计算机视觉系统的正常准确工作。然而,通过CPU来进行畸变矫正会占用大量CPU资源,效率低下,导致计算机视觉系统的帧率难以得到保证。
发明内容
为了解决上述技术问题,期望提供一种畸变矫正方法及装置、电子设备,可通过硬件来加速图像的畸变矫正,以节省芯片上CPU的计算资源。
根据本申请的一个方案,提供了一种畸变矫正装置,包括:片上存储器和运算电路;其中,片上存储器,配置为存储成像器件的部分查找表和待矫正图像中预设通道的图像数据,所述部分查找表中包含所述预设通道的图像数据的畸变参数;运算电路,配置为根据所述预设通道的图像数据对应的畸变参数,调整所述待矫正图像中预设通道的图像数据的像素值,以得到所述预设通道的矫正图像数据;所述片上存储器,还配置为存储所述运算电路输出的所述矫正图像数据。
根据本申请的一个方面,提供了一种畸变矫正方法,包括:获取成像器件的部分查找表和待矫正图像中预设通道的图像数据,所述部分查找表中包含所述预设通道的图像数据的畸变参数;根据所述预设通道的图像数据的畸变参数,调整所述待矫正图像中预设通道的图像数据的像素值,以得到所述预设通道的矫正图像数据;以及,存储所述矫正图像数据。
根据本申请的一个方面,提供了一种电子设备,包括:上述的畸变矫正装置。
根据本申请的一个方面,提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行上述的畸变矫正方法。
根据本申请实施例的畸变矫正方法及装置、电子设备,不仅可节省芯片中CPU的计算资源,而且可显著提升系统帧率。
附图说明
通过结合附图对本申请实施例进行更详细的描述,本申请的上述以及其他目的、特征和优势将变得更加明显。附图用来提供对本申请实施例的进一步理解,并且构成说明书的一部分,与本申请实施例一起用于解释本申请,并不构成对本申请的限制。在附图中,相同的参考标号通常代表相同部件或步骤。
图1是本申请一示例性实施例提供的畸变矫正装置的结构图。
图2是本申请另一示例性实施例提供的畸变矫正装置的结构图。
图3是本申请一示例性实施例提供的畸变矫正装置存放原始图像和查找表的示例图。
图4是本申请一示例性实施例提供的畸变矫正方法的流程示意图。
图5是本申请一示例性实施例提供的待矫正图像数据在四个第一缓冲区的数据排布示例图。
图6是本申请一示例性实施例提供的待矫正图像中参与一次双线性差值运算的四个像素值存入四个第一缓冲区的示意图;
图7是本申请一示例性实施例提供的待矫正图像与矫正图像中像素关系的示例图;
图8是本申请一示例性实施例提供的UV通道数据重排布的示例图。
图9是本申请一示例性实施例提供的电子设备的结构图。
具体实施方式
下面,将参考附图详细地描述根据本申请的示例实施例。显然,所描述的实施例仅仅是本申请的一部分实施例,而不是本申请的全部实施例,应理解,本申请不受这里描述的示例实施例的限制。
申请概述
如上文所述的,畸变矫正是计算机视觉系统中的基本图像处理操作,在图像进入计算机视觉系统的正常处理之前,畸变校正是十分必要的。
目前,计算机视觉领域中图像的畸变矫正主要是在相应芯片中的CPU装载具有畸变矫正功能的软件来实现,在执行计算机视觉的相关处理(例如,基于神经网络的物体识别、目标检测、语义分割等)之前先由芯片中的CPU运行上述软件来对图像做畸变矫正,这会占用芯片的大量CPU资源,处理效率低下、帧率低,难以满足计算机视觉的实际应用需求。
针对上述技术问题,本申请实施例的基本构思是提供一种畸变矫正方法及装置、电子设备,该畸变矫正方法及装置、电子设备通过现场可编程门阵列(FPGA,Field-Programmable Gate Array)来实现,通过硬件来加速图像的畸变矫正,不仅处理效率更高,可释放芯片中CPU的大量计算资源,同时还可显著提升系统帧率,从而满足计算机视觉的实际应用需求。
例如,基于供专门应用的集成电路(ASIC,Application Specific IntegratedCircuit)芯片的神经网络加速器,其硬件架构集成度较高难以更新,在类似场景中,通过FPGA可以对特定应用场景中神经网络加速器的性能起到补充的作用,例如,特定场景下需要对图像做矫正畸变时,可以直接在已有的硬件架构(例如,神经网络加速器等)中增设本申请实施例通过FPGA实现的畸变矫正装置,无需改进已有硬件架构的配置及其设计,从而可以以较低的硬件成本满足实际应用场景的需求,同时还可节省例如神经网络加速器等已有硬件架构的计算资源和存储资源,并且图像畸变校正等预处理与基于神经网络的物体识别、目标检测、语义分割等处理还可并行,这样,不仅硬件成本更低,畸变矫正处理本身的效率更高,而且计算机视觉系统的整体处理效率也更高。
尽管本申请实施例以计算机视觉为例进行说明,但可以理解,本申请实施例不仅可适用于计算机视觉领域的各类应用场景中,而且可应用于需要进行图像畸矫正的其他任意场景中。
示例性装置
图1是本申请实施例畸变矫正的示例性装置的结构图,该畸变矫正装置可通过FPGA来实现。
如图1所示,本申请实施例畸变矫正的示例性装置10可以包括:片上存储器11和运算电路12;其中,
片上存储器11,可配置为存储成像器件的部分查找表和待矫正图像中预设通道的图像数据,部分查找表中可以包含预设通道的图像数据的畸变参数;
运算电路12,可配置为根据预设通道的图像数据对应的畸变参数,调整待矫正图像中预设通道的图像数据的像素值,以得到预设通道的矫正图像数据;
片上存储器11,还可配置为存储运算电路12输出的矫正图像数据。
本申请实施例的上述示例性装置10利用运算电路12对畸变矫正进行加速,不仅可释放芯片上CPU的大量计算资源,有效提高畸变矫正效率,而且可显著提升系统帧率,从而满足计算机视觉的实际应用需求。
由于本申请实施例的上述示例性装置10可通过运算电路12对畸变矫正进行加速,不仅可以较低的硬件成本满足计算机视觉等领域实际应用场景的图像预处理需求,而且可根据需要在已有硬件架构(例如,包含神经网络加速器的芯片)中灵活配置,无需改进已有硬件架构的配置和设计,同时节省已有硬件架构的计算资源和存储资源,并且还可与已有硬件架构中的其他处理器(例如,神经网络加速器)并行,从而能够在较低的硬件成本下更高效、快速地完成畸变矫正,继而提高计算机视觉系统的整体处理效率并且降低其整体硬件成本。
本公开所述的畸变矫正装置10可通过FPGA实现,基于供专门应用的集成电路(ASIC,Application Specific Integrated Circuit)芯片实现的神经网络加速器,其硬件架构集成度较高难以更新,在类似场景中,通过FPGA可以对特定应用场景中神经网络加速器的性能起到补充的作用,例如,特定场景下需要对图像做矫正畸变时,可以直接在已有的硬件架构(例如,神经网络加速器等)中增设本申请实施例通过FPGA实现的畸变矫正装置10,无需改进已有硬件架构的配置及其设计,从而以较低的硬件成本满足了实际应用场景的需求,同时还可节省已有硬件架构中例如神经网络加速器等的计算资源和存储资源,并且图像畸变矫正等预处理与基于神经网络的物体识别、目标检测、语义分割等处理还可并行,处理效率也更高。
本申请实施例中,运算电路12可以是任何可适用于FPGA的运算电路。该运算电路12可以是能够实现下文示例性方法中步骤S402的任何类型的运算电路,对于运算电路12的具体结构、类型等,本申请实施例不予限制。
一些示例中,运算电路12可以是支持最邻近算法的运算电路,该示例中,运算电路12可配置为采用最邻近法计算得到矫正图像中像素点在预设通道上的像素值。一些示例中,运算电路12可以是双线性差值运算电路,该双线性差值运算电路可支持双线性差值运算、也可支持与双线性差值算法访存相似的其他算法。本申请实施例中,片上存储器11可以是适用于FPGA的任何类型的高速缓冲存储器。一些示例中,片上存储器11可以包括但不限于块随机存储器(BRAM,Block RAM)。具体应用中,片上存储器11可以包括多个级联的同步BRAM。
如图1所示,片上存储器11的存储空间可以划分为第一缓冲区(buffer)111、第二缓冲区112和第三缓冲区113。其中,第二缓冲区112,可配置为存储部分查找表;第三缓冲区113,可配置为按照像素的位置参数存储矫正图像数据;至少一个第一缓冲区111,可配置为按照像素的位置参数存储待矫正图像中预设通道的图像数据。该片上存储器11可通过自己内部的读写控制部来与片外存储器(例如,DDR)交互包括部分查找表中的畸变参数、待矫正图像的数据、矫正图像数据等。具体应用中,片上存储器11的每个缓冲区可以相当于一个或多个级联的BRAM,具有自己的读写端口。
图2示出了本申请实施例中畸变矫正装置10的另一示例性结构,图2为上述图1所示结构的一示例。图2的示例中,BRAM是片上存储器11的示例,双线性差值运算电路是运算电路12的示例,DDR是片外存储器的示例。图2的示例中,待矫正图像和查找表中带有填充色的部分将会被送入畸变矫正装置10的BRAM中,经畸变矫正装置10处理而得到的矫正图像中带有填充色的部分数据将会从BRAM转存到片外存储器中。
图2的示例中,运算电路12是双线性差值运算电路,该双线性差值运算电路可配置为利用双线性差值算法来实现下文示例性方法中的步骤S402。一个示例中,该双线性差值运算电路可以是但不限于包含有多个乘法器和加法器的运算阵列,其可配置为基于下文式(1)来实现下文示例性方法中的步骤S402。
由于诸如BRAM等的存储器一般具有两端口、可支持同时读两个数据,在硬件读端口有限的情况下,可以在片上存储器11中设置多个第一缓冲区111,以便同步读取一次运算所需的所有待矫正图像数据,从而提高运算效率。因此,一些示例中,片上存储器11中第一缓冲区111的数量可以由运算电路12每调整一个像素值需要使用的待矫正图像数据的个数(即待矫正图像中相关像素在预设通道上的像素值的数量)来确定。这样,片上存储器11的数据读取能力与运算电路12的运算能力可以恰好匹配,存储器的存储资源和运算电路12的计算资源均可得到充分利用,不仅可提高硬件资源的利用率,而且同时还提高了运算效率。
一些示例中,运算电路12是双线性差值运算电路时,每次运算(即每计算一个矫正数据中的像素值)最多需要使用八个待矫正图像数据(即八个像素值,例如,下文YUV格式的待矫正图像中UV通道并行时需要上下左右相邻的四个像素在U通道的像素值和在V通道上的像素值),那么可以设置四个第一缓冲区111,以便同步读取八个待矫正图像数据来直接运算。一个示例中,每个第一缓冲区111可以对应待矫正图像中的选定行和/或选定列,以满足双线性差值运算的需求,具体细节可参见下文图5及其相关说明。
一些示例中,运算电路12是支持最邻近算法的运算电路时,每次运算(即每计算一个矫正数据中的像素值)可能最多需要使用两个待矫正图像数据(即两个像素值,例如下文YUV格式待矫正图像中UV通道并行时需要相邻的一个像素在U通道的像素值和其在V通道上的像素值),那么可以在片上存储器11中设置一个第一缓冲区111,即可同步读取两个待矫正图像数据来直接运算。
本申请实施例中,片上存储器11可以基于像素坐标来存储待矫正图像数据、查找表中的畸变参数以及矫正图像数据,便于运算时读写,也便于与片外存储器交互数据,读写效率更高。
一些示例中,片上存储器11中第一缓冲区、第二缓冲区和第三缓冲区的容量需要满足畸变矫正运算中的运算的需求,以获得更高的硬件利用率和更高效的读写数据。一个示例中,例如采用双线性差值等算法时,矫正图像中一个像素点在一个通道上的像素值(即一个矫正图像数据)对应待矫正图像中四个像素点在相应通道上的像素值,也即畸变矫正过程中待矫正图像的像素点个数是矫正图像中像素点的2倍(假设去畸变之后的图像即矫正图像数据有60行,那么第一缓冲区中的待矫正图像数据需要超过120行),为避免畸变较大时对像素的查找超过边界,至少一个第一缓冲区111的总容量等于或超出第三缓冲区113容量的二倍。此外,由于畸变参数与矫正图像数据一一对应,因此,第二缓冲区112的容量可以等于或稍于第三缓冲区的容量,即第二缓冲区112的容量等于或大于第三缓冲区的容量。一个示例中,至少一个第一缓冲区111中的每个第一缓冲区111的容量大小可以相等,便于分区和操作时的寻址。
图2的示例中,由于BRAM的读端口不能一次满足四个数据的读出,所以直接从BRAM读出四个像素的Y通道灰度值会造成II(Iteration Interval)大于1的情况,形成性能瓶颈。而且,该现象在进行UV通道的畸变矫正时,会显得尤为明显。因此,同时对UV通道进行畸变矫正时,相当于从BRAM中一次读取八个数据,于是极大限制了帧率。为解决该问题,本申请实施例中,在BRAM中划分出四个第一缓冲区来存储待矫正图像的数据(即图2中的BUFFER1~BUFFER4),并且这些第一缓存区(即图2中的BUFFER1~BUFFER4)可以按照双线性差值的运算顺序存储待矫正图像中像素点在预定通道上的像素值。一个示例中,上述四个第一缓冲区分别用于存储待矫正图像中预定通道上选定行和/或选定列的像素值且每个第一缓冲区中的像素值均按照像素坐标排列,以便满足双线性差值运算的需求。例如,BUFFER1可用于存储待矫正图像中偶数行&偶数列的像素值,BUFFER2可用于存储待矫正图像中偶数行&奇数列的像素值,BUFFER3可用于存储奇数行&偶数列的像素值,BUFFER4可用于存储奇数行&奇数列的像素值,并且这四个缓冲区具有自己的读取端口。
图2的示例中,BUFFER5为上文所述第二缓冲区,配置为存储部分查找表中的数据,即预定通道上的矫正图像数据对应的畸变参数,这些畸变参数在BUFFER5中也按照对应像素的坐标来排布。BUFFER6为上文所述第三缓冲区,配置为存储矫正图像数据且这些矫正图像数据按照像素坐标排布。
例如,如图3所示,以720P、YUV420格式存储的一帧相机采集的原始图像为待矫正图像时,在列方向上将该待矫正图像分割为6个图像分区S1、同时将查找表分为对应的6个部分查找表S2,每个图像分区S1的大小是120*1280,每个部分查找表S2的大小是60*1280,图像分区S1将被分成大小为60*640的四份S3并存入四个第一缓冲区,此时,四个第一缓冲区(例如,图2中的BUFFER1~BUFFER4)的总容量大小可以是120*1280,每个第一缓冲区的容量大小可以是60*640、存放一个图像分区S1的四分之一,第二缓冲区(例如,图2中的BUFFER5)的容量大小可以是60*1280、存放一个部分查找表S2,第三缓冲区(例如,图2中的BUFFER6)的容量大小可以是60*1280、存放矫正图像数据,这些缓冲区占据FPGA片上BRAM的存储空间。
一些示例中,如图1所示,本申请实施例的上述示例性装置10中还可以包括控制单元13,该控制单元13可配置为通过时钟信号来控制运算电路12和片上存储器11执行下文所述畸变矫正的示例性方法。图2的示例中省略了控制单元13。
一个示例中,控制单元13可配置为通过时钟信号控制运算电路12和片上存储器11在至少一个时钟周期内对待矫正图像中预定通道的图像数据执行畸变矫正,该预定通道可以包括至少一个通道。这样,可以在需要时将多个通道上的图像数据并行处理,或者将多个通道上的图像数据串行处理,从而高效地完成图像畸变校正。
以YUV图像为例,上述预定通道可以至少如下之一:亮度、色度、浓度。该示例中,控制单元13可配置为通过第一时钟信号控制运算电路12和片上存储器11在第一时钟周期内对待矫正图像中亮度通道的图像数据执行一次畸变矫正;以及,还可配置为通过第二时钟信号控制运算电路12和片上存储器11在第二时钟周期内同时对待矫正图像中色度通道和浓度通道的图像数据执行一次畸变矫正。换言之,运算电路12可配置为在第一时钟周期内调整待矫正图像中亮度通道的图像数据中各像素的亮度值;以及,在第二时钟周期内,同时调整待矫正图像中色度通道和浓度通道的图像数据中各像素的色度值和浓度值。
本申请实施例中的一些示例中,控制单元13可通过包含计数器、脉冲发生器等的数字时钟管理单元来实现。可以理解,控制单元13还可通过其他具有类似功能的硬件单元来实现。
除上述控制单元13、片上存储器11和运算电路12之外,上述示例性装置10还可包括诸如用于连接各个部分的总线、微处理器等硬件模块。
示例性方法
图4是本申请实施例畸变矫正方法的示例性流程图,该畸变矫正的示例性方法可通过上文所述示例性装置10来实现。
如图4所示,本申请实施例的畸变矫正方法可以包括:
步骤S401,获取成像器件的部分查找表和待矫正图像中预设通道的图像数据,该部分查找表中可以包含该预设通道的图像数据的畸变参数;
步骤S402,根据所述预设通道的图像数据的畸变参数,调整待矫正图像中预设通道的图像数据的像素值,以得到所述预设通道的矫正图像数据;
步骤S403,存储矫正图像数据。
本申请实施例的方法使用成像器件的查找表即可实现图像的畸变矫正处理,处理逻辑较为简单,便于通过时钟信号的控制来实现,并且上述方法对硬件性能的要求也不高,因此,仅使用包括片上存储器(例如,上文所述的BRAM)和运算电路的FPGA即可实现,从而可释放大量的CPU计算资源、显著提升系统帧率,同时还可提升畸变校正的处理效率,从而满足计算机视觉的实际应用需求。
本申请实施例中,畸变参数是例如相机、摄像机等成像器件的固有参数,取决于成像器件的物理参数,例如角度、透镜类型、透镜材料、透镜厚度等,畸变参数可以由成像器件的内参数来预先标定。
本申请实施例中,成像器件的查找表可以包含整幅图像的畸变参数。为节省片上存储器的存储空间,可以取部分查找表存储于片上存储器中,其他部分的查找表可以保存于片外存储器中。这里,片上存储器中保存的部分查找表可以包含预定通道上图像数据的畸变参数。以YUV图像为例,包含亮度(Y)通道、色度(U)通道、浓度(V)通道,如果当前需要对待矫正图像中Y通道上的数据进行处理,可以在片上存储器中存储Y通道上图像数据的畸变参数(简称为Y通道畸变参数),如果当前需要对待矫正图像中U通道和V通道上的数据进行处理,可以在片上存储器中存储U通道上图像数据的畸变参数(简称为U通道畸变参数)和V通道上图像数据的畸变参数(简称为V通道畸变参数)。
本申请实施例中,每个畸变参数可以对应一个矫正图像数据(即矫正图像中一个像素在一个通道上的像素值),换言之,畸变参数与矫正图像中的像素可以一一对应。并且,每个畸变参数可以包括一位置参数和一矫正权重,畸变参数的位置参数与校正图像中对应位置处像素的坐标相对应,而矫正权重则与畸变参数中的位置参数相对应。
一些示例中,畸变参数中的位置参数可以包括横坐标的坐标值和纵坐标的坐标值。这里,畸变参数中的位置参数可以用于查找、存储矫正图像对应像素的矫正权重。该示例中,该横坐标的坐标值可以由矫正图像中对应像素的横坐标来决定,该纵坐标的坐标值可以由矫正图像中相应像素的纵坐标来决定。一个示例中,畸变参数中横坐标的坐标值可以等于矫正图像对应像素的横坐标的坐标值或由矫正图像对应像素的横坐标的坐标值映射得到,畸变参数中纵坐标的坐标值可以等于矫正图像中对应像素的纵坐标的坐标值或由矫正图像中对应像素的纵坐标的坐标值映射得到。
一些示例中,畸变参数中的矫正权重可以包括对应横坐标的第一权重(也可称为,第一去畸变系数)和对应纵坐标的第二权重(也可称为第二去畸变系数),第一权重可以表征待矫正图像中相应像素在横坐标上的待去畸变程度,第二权重可以表征待矫正图像中相应像素在纵坐标上的去畸变程度。如此,基于矫正图像中对应像素的坐标值即可查询到相应的权重,以便利用该权重对待矫正图像中相应像素的像素值进行去畸变处理从而获得矫正图像中对应像素的像素值。
本申请实施例中,一个查找表可以看做是尺寸与该矫正图像相同的参数特征图。如果矫正图像数据按照其像素坐标来存储,那么无论是在片外存储器还是在片内存储器中,都可以按照畸变参数中的位置参数(即畸变参数的坐标)来存储查找表中各个畸变参数,以便高效存取该查找表中的数据。
一个示例中,查找表的数据结构可以是32-bit的数据结构,分为高低16-bit两部分,每16-bit数据是针对矫正图像中相应位置上像素的横坐标或纵坐标的去畸变参数(即上文的第一权重或第二权重)。每16-bit数据中,高11-bit是由当前像素坐标映射得到的畸变参数的坐标,低5-bit则为权重,用于计算相应的矫正图像数据(例如,实际灰度值)。举例来说,查找表中的每个32-bit数据中,高16-bit可以是由当前像素横坐标映射得到的畸变参数的横坐标值(高16-bit中的高11-bit)及其对应的第一权重(高16-bit中的低5-bit),低16-bit可以是由当前像素纵坐标映射得到的畸变参数的纵坐标值(低16-bit中的高11-bit)及其对应的第二权重(低16-bit中的低5-bit)。
本申请实施例中,可以直接对待矫正图像整体进行畸变矫正,不进行分割,也可以先对待矫正图像和查找表进行分割,将分割获得的每个待矫正图像分区和相应的部分查找表分别存入不同的缓冲区(例如,上文的第一缓冲区、第二缓冲区),然后以缓冲区为单位进行去畸变操作。一般来说,是否分割待矫正图像可以取决于畸变矫正装置中存储器的规格(例如,容量大小)、运算电路的运算能力(例如,乘法器、加法器等的数量等)。在硬件允许的情况下可以不分割,而在待矫正图像超出硬件规格限制的情况下则可以根据需要将待矫正图像和查找表进行分割。
一些示例中,可以按照预先划分的图像分区执行所述畸变矫正。换言之,先将待矫正图像进行分割,再对分割而得的各个图像分区分别执行畸变矫正(例如,串行)。这样,使用很少的片上存储空间即可完成整幅图像的畸变校正,对存储器容量的需求较低,使用FPGA硬件架构来实现相应的畸变矫正装置时可有效减少芯片面积和硬件成本。此外,在存储器和运算电路支持的情况下,多个图像分区的畸变校正可以并行,以提升处理效率。
一些示例中,步骤S401中可以包括:将来自片外存储器的成像器件的部分查找表存储到预定的第二缓冲区;以及,按照像素的位置参数,将来自片外存储器的待矫正图像中预设通道的图像数据存储到预定的至少一个第一缓冲区。这样,每次只获取查找表中对应一个图像分区的部分,可以减小查找表占用的缓存空间。并且,步骤S401中每次只取一部分图像数据存到片上存储器中,可以减小待矫正图像数据占用的缓存空间。此外,通过至少一个第一缓冲区来存储待矫正图像的数据,在FPGA片上存储器读写端口有限的情况下,可以同步读取多个数据,从而提高计算效率。以双线性插值为例,每次可以同步读取4~8个数据。
一些示例中,步骤S401之前,上述畸变矫正的方法还可以包括:将用于缓存待矫正图像的存储空间划分为至少一个第一缓冲区,所述至少一个第一缓冲区的数量由每调整一个所述像素值需要使用的图像数据中的像素值个数确定。这样,片上存储器的规格与运算电路的运算能力可以恰好匹配,存储器的存储资源和运算电路的计算资源均可得到充分利用,从而有效提高硬件资源的利用率、同时还提高了运算效率。
一个示例中,步骤S402中采用双线性差值算法来调整像素值时,每次运算(即每计算一个矫正数据中的像素值)最多需要使用待矫正图像中八个像素点的数据(即八个像素值),可以将用于缓存待矫正图像的存储空间划分为四个第一缓冲区,并在步骤S401中将待矫正图像中的像素值按照其执行双线性差值运算时的顺序存入到这四个第一缓冲区。由于一次双线性差值运算所需的像素值是上下左右相邻的四个像素值,因此,可以将待矫正图像中预定通道中上下左右相邻的四个像素值分别存入这四个第一缓冲区中,这样,可以保证每次运行需要的4个待矫正图像数据从片上存储器11中的4个不同缓冲区读出。
上述示例中,每个第一缓冲区可以对应待矫正图像中的选定行和/或选定列。由于一次双线性差值运算所需的像素值是上下左右相邻的四个像素值,因此,可以设定,上述四个第一缓冲区分别用于存储待矫正图像中偶数行且偶数列的像素值、待矫正图像中偶数行且奇数列的像素值、待矫正图像中奇数行且偶数列的像素值、待矫正图像中奇数行且奇数列的像素值,并且在这四个第一缓冲区中的每个第一缓冲区可以按照像素值的坐标顺序存储待矫正图像中的像素值,这样,不仅可以确保一次读出四个待矫正图像的数据而且这四个数据在待矫正图像中是上下左右相邻的,满足了双线性差值运算的要求。图5是一待矫正图像或其一图像分区在四个第一缓冲区中的排布示意图。
在图2的示例中,BRAM中划分出了四个第一缓冲区来存储待矫正图像的数据(即BUFFER1~BUFFER4)。该示例下,步骤S401中,可以将待矫正图像中像素点在预定通道上的像素值按照双线性差值的运算顺序分别存储在BRAM中的这4个第一缓冲区中,即上下左右相邻的4个像素值被分别存入这4个不同的缓冲区中,这样便可以保证每次需要的4个数据从BRAM中的4个不同缓冲区读出,从而使得II=1,降低系统掩饰,消除性能瓶颈。图6示出了待矫正图像中参与一次双线性差值运算的四个像素值Y0~Y3向BRAM中这4个第一缓冲区中存储的示意图,可以看出,上下左右相邻的4个像素值Y0~Y3中,横坐标和纵坐标均为偶数的像素值Y0存入了BUFFER1,横坐标为偶数、纵坐标为奇数的像素值Y1存入了BUFFER2,横坐标为奇数、纵坐标为偶数的像素值Y2存入了BUFFER3,横坐标和纵坐标均为奇数的像素值Y4存入了BUFFER4。
一些示例中,如果步骤S402中采用最邻近算法或其他类似的算法,一次运算最多仅需读取两个像素值,此时,步骤S401中,可以按照待矫正图像中像素的坐标将待矫正图像的像素值存储在一个缓冲区里即可,一个缓冲区具有两个读端口,可以支持同时读两个数据。
一些示例中,步骤S402中可以包括:步骤a1,根据畸变参数中的位置参数,读取待矫正图像中预设通道的图像数据中相关像素的像素值;步骤a2,根据待矫正图像中预设通道的图像数据中相关像素的像素值和畸变参数中的矫正权重,计算矫正图像数据中相应像素在预设通道上的像素值。
一些示例中,步骤a1中可以包括:根据畸变参数中的位置参数,确定待矫正图像中预设通道的图像数据中相关像素的缓存地址;根据待矫正图像中预设通道的图像数据中相关像素的缓存地址,在同一时钟周期内向相应缓存区读取所述相关像素的像素值。以双线性差值算法为例,每次双线性差值运算需要上下左右相邻的四个像素值,那么可以以畸变参数的坐标为基准坐标,在待矫正图像中的对应通道上选择上下左右相邻的四个像素作为上述的相关像素,并且该上下左右相邻的四个像素中有一个像素的坐标与上述基本坐标相等或由上述基本坐标映射得到,根据预先配置的像素坐标与其缓冲地址之间的映射关系和相关像素的坐标即可确定它们的缓冲地址。
一些示例中,步骤a2中,计算矫正图像中像素值的算法包括但不限于:双线性差值算法、最邻近算法等。当然,还可通过其他任何可适用的算法来计算矫正图像中的像素值,例如,与双线性差值算法访存相似的其他算法。对于具体算法本申请实施例不予限制。
上述示例中,如果使用最邻近算法,相关像素是位置与当前畸变参数中的位置最接近的任一像素。以图7的示例为例,需要计算矫正图像中Y通道上坐标(0,0)的像素Y’00的像素值,相应畸变参数中的位置参数(即坐标)也是(0,0),此时,相关像素可以包括图7中待矫正图像中Y通道上的像素Y01(坐标(0,1))和像素Y10(坐标(1,0))中的任意一个。如果使用双线性差值算法,相关像素可以是以畸变参数中的位置参数(即坐标)为一顶点的预定双线性差值模型(几何上等价于一个矩形,该矩形的长度和宽度的大小可以预先设定,以像素为单位)中的四个像素。仍以图7为例,畸变参数中的坐标是(0,0),相关像素可以包括待矫正图像中Y通道上的像素Y00(坐标(0,0))、Y01(坐标(0,1))、Y11(坐标(1,1))、Y10(坐标(1,0)),此时双线性差值模型是Y00、Y01、Y10、Y11这四个像素点形成的1*1矩形。再例如,也可以2*1矩形作为双线性差值模型,此时,对于图7的示例而言,相关像素可以包括Y00(坐标(0,0))、Y02(坐标(0,2))、Y10(坐标(1,0))、Y12(坐标(1,2))。此外,对于某些边缘像素,双线性差值计算时其部分相关像素如果不存在,可以默认其像素值取0。仍以图7为例,需要计算矫正图像中Y通道上坐标(0,0)的像素Y’00的像素值,像素Y’00处于矫正图像的边界(即属于边缘像素),畸变参数中的坐标是(0,0),如果以1*1矩形作为双线性差值模型,相关像素也可以取待矫正图像中Y通道上的像素Y0-1(坐标(0,-1))、Y01(坐标(0,1))、Y-1-1(坐标(-1,-1))、Y00(坐标(0,0)),实际上像素Y0-1(坐标(0,-1))、Y-1-1(坐标(-1,-1))在待矫正图像中是不存在的,在计算Y’00的像素值(例如基于下文式(1)计算Y’00的像素值)时Y0-1、Y-1-1的像素值可以取默认值,该默认值可以是0或其他任意预设的值,也可以取经验值。
一些示例中,步骤a2中可以使用双线性差值算法,该算法不仅计算复杂度相对低(相对于例如回归等算法),硬件设计复杂度低、硬件架构的布设成本低,而且还可取得更高的矫正精度。该示例中,步骤a2可以包括:对上述相关像素的像素值、第一权重和第二权重执行双线性差值运算,得到矫正图像数据中相应像素在预设通道上的像素值。
以YUV图像为例,假设预设通道是Y通道,需要计算矫正图像中Y通道上像素Y的值,该像素的坐标(x,y),可以从片上存储器中存储的部分查找表中读取对应Y通道上坐标(x,y)的权重(dx,dy),在同一时钟周期内从片上存储器中四个第一缓冲区(例如,图5所示的BUFFER1~BUFFER4)读取待矫正图像中Y通道上坐标为(x,y)的像素Y0、坐标为(x+1,y)的像素Y1、坐标为(x,y+1)的像素Y2、坐标为(x+1,y+1)的像素Y3,并基于下式(1)计算出矫正图像中Y通道上像素Y的像素值:
Y=dxdy*Y3+(dy-dxdy)*Y2+(dx-dxdy)*Y1+(1-dx-dy-dxdy)*Y0(1)
其中,dx表示横坐标x对应的第一权重(例如,查找表中横坐标为x、纵坐标为y的32-bit数据中高16-bit中的低5-bit),dy表示纵坐标y对应的第二权重(例如,查找表中横坐标为x、纵坐标为y的32-bit数据中低16-bit中的低5-bit),Y0、Y1、Y2和Y3即为坐标(x,y)在待矫正图像中Y通道上的相关像素。
一些示例中,可以根据需要对待矫正图像执行至少一次上述示例性方法所示的畸变矫正,每次畸变矫正可以针对该待矫正图像中至少一个通道上的像素值进行矫正处理。这样,可以结合待矫正图像的特点针对不同通道上的图像数据以并行、串行相结合的方式来进行畸变矫正,以在不增加硬件成本的前提下更高效地完成待矫正图像的畸变矫正。
以YUV格式的待矫正图像为例,其通道包括Y通道、U通道和V通道,并且U通道上像素数量和V通道上像素数量之和等于Y通道上的像素数量。为获得更高的处理效率,可以采用UV通道并行处理,Y通道与UV通道串行的方式来对待矫正图像进行畸变矫正(相当于,预设通道先是Y通道,然后是U通道和V通道)。具体来说,可以先对待矫正图像中Y通道的图像数据进行畸变矫正,待Y通道上的图像数据的畸变矫正完成后,再同时对待矫正图像中U通道和V通道上的图像数据进行畸变矫正。
以RGB格式的待矫正图像为例,其通道包括R、G、B三个通道,这三个通道上的像素数量相同,针对RGB格式的待矫正图像以三个通道串行的方式来执行畸变矫正。例如,可以先对待矫正图像中R通道的图像数据进行畸变矫正,待R通道上的图像数据的畸变矫正完成后,再对待矫正图像中G通道上的图像数据进行畸变矫正,待G通道上的图像数据的畸变矫正完成后,再对待矫正图像中B通道上的图像数据进行畸变矫正。再例如,可以将待矫正图像分割为六个图像分区,针对每个分区来说,先对R通道上图像数据进行畸变矫正、再对G通道上的图像数据进行畸变矫正、最后对B通道上的图像数据进行畸变矫正。
对于需要在两个或更多个通道上并行的情况(即,一次畸变矫正可能涉及两个或多个通道上图像数据的情况),为更高效地读取步骤S402所需要的数据,在步骤S401中还可以包括:按照像素的位置参数,将待矫正图像中第一通道(例如,YUV格式图像中的U通道)的图像数据存储到所述至少一个第一缓冲区的第一深度区间;以及,按照像素的位置参数,将待矫正图像中第二通道(例如,YUV格式图像中的V通道)的图像数据存储到所述至少一个第一缓冲区的第二深度区间。这样,同一个像素点在第一通道上的像素值和第二通道上的像素值可以存储在同一缓冲区的不同深度上,便于操作中的寻址,方便步骤S402中可以同时读取一次运算所需的像素值。
以YUV格式的待矫正图像为例,假设U通道和V通道并行,步骤S402中采用双线性差值算法,那么可以将上下左右相邻的四个像素在U通道上的像素值存入四个不同缓冲区(例如,上文图5所示的四个缓冲区中)的一个深度区间内,将这四个像素在V通道上的像素值存入这四个不同缓冲区(例如,上文图5所示的四个缓冲区中)的另一深度区间内,这样,可以步骤S402中可以同时读取一次双线性差值运算所需的所有数据,有利于提高处理效率。
在上述示例中,片外存储器中,待矫正图像中各个像素点在U通道上的像素值和在V通道上的像素值是穿插存储时,在步骤S401中将这些数据载入片上存储器的相应缓冲区时,可以先将UV通道的像素值区分开,然后在步骤S401中可以将待校正图像中U通道的像素值按照像素坐标顺序存储于片上存储器中第一缓冲区的一个深度区间内、待校正图像中V通道的像素值按照像素坐标顺序存储于片上存储器中第一缓冲区的另一个深度区间内。具体应用中,将UV通道的像素值区分开的方式可以有多种。图8是UV通道数据重排的示例图。
一些示例中,步骤S403中可以将预设通道的矫正图像数据存储到片上存储器的第三缓冲区,该第三缓冲区配置为存储矫正图像的数据。一个示例中,该第三缓冲区可以分为一个或多个子区间,每个子区间为一个行缓存区,配置为存储矫正图像中预定行上像素的像素值。在步骤S402每得到一个矫正图像在预设通道上的像素值(即预设通道上的矫正图像数据)即根据相应像素在矫正图像中的坐标将其写入相应的行缓存区,以便后续能够更高效地读出并按照像素坐标存入到片外存储器中。
一个示例中,在片上存储器容量有限的情况下,可以在获得预设通道(例如,Y通道)上的所有或部分矫正图像数据之后先将第三缓冲区中该预定通道上的矫正图像数据转存到片外存储器中,再继续后续图像数据的畸变矫正,以避免出错。
示例性电子设备
下面,参考图9来描述根据本申请实施例的电子设备。
如图9所示,电子设备20包括上述的畸变矫正装置10。
除此之外,上述电子设备20还可以包括一个或多个处理器21和存储器22。
其中,处理器21可以是中央处理单元(CPU)、BPU、GPU或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备10中的其他组件以执行期望的功能(例如,物体识别、目标检测、语义分割等)。
存储器22可以包括一个或多个计算机程序产品,所述计算机程序产品可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器21可以运行所述程序指令,以实现诸如物体识别、目标检测、语义分割等计算机视觉的相关处理以及/或者其他期望的功能。在所述计算机可读存储介质中还可以存储诸如原始图像(例如,上文的待矫正图像)、矫正图像、查找表、图像的特征数据、例如神经网络等运算的参数等的各种内容。
一些示例中,电子设备20可以实现为用于实现计算机视觉领域相关功能的芯片,该芯片可以包括处理器21、基于FPGA实现的畸变矫正装置10和神经网络加速器(图9中未示出),该神经网络加速器可以包括计算引擎和乘法累加器阵列,畸变矫正装置10的输出端口与神经网络加速器的输入端口连接。具体应用中,原始图像可先输入到畸变矫正装置10中,经畸变矫正装置10硬件加速式地畸变矫正处理之后,该原始图像的矫正图像将被输入到神经网络加速器中以执行例如神经网络运算等处理,最终输出例如物体类别、目标位置、语义标签等的处理结果。
当然,为了简化,图9中仅示出了该电子设备20中与本申请有关的组件中的一些,省略了诸如总线、输入/输出接口、输入装置、输出装置(例如,显示器)等等的组件。除此之外,根据具体应用情况,电子设备20还可以包括任何其他适当的组件。
示例性计算机程序产品和计算机可读存储介质
除了上述方法和设备以外,本申请的实施例还可以是计算机程序产品,其包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本申请各种实施例的畸变矫正方法中的步骤。
所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本申请实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
此外,本申请的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本申请各种实施例的畸变矫正方法中的步骤。
所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
以上结合具体实施例描述了本申请的基本原理,但是,需要指出的是,在本申请中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本申请的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本申请为必须采用上述具体的细节来实现。
本申请中涉及的器件、装置、设备、系统的方框图仅作为例示性的例子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、装置、设备、系统。诸如“包括”、“包含”、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。这里所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。这里所使用的词汇“诸如”指词组“诸如但不限于”,且可与其互换使用。
还需要指出的是,在本申请的装置、设备和方法中,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本申请的等效方案。
提供所公开的方面的以上描述以使本领域的任何技术人员能够做出或者使用本申请。对这些方面的各种修改对于本领域技术人员而言是非常显而易见的,并且在此定义的一般原理可以应用于其他方面而不脱离本申请的范围。因此,本申请不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。
为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本申请的实施例限制到在此公开的形式。尽管以上已经讨论了多个示例方面和实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。
Claims (16)
1.一种畸变矫正装置,包括:片上存储器和运算电路;其中,
片上存储器,配置为从片外存储器获取并存储成像器件的部分查找表和待矫正图像中预设通道的图像数据,所述部分查找表中包含所述预设通道的图像数据的畸变参数;
运算电路,配置为根据所述预设通道的图像数据对应的畸变参数,调整所述待矫正图像中预设通道的图像数据的像素值,以得到所述预设通道的矫正图像数据;
所述片上存储器,还配置为存储所述运算电路输出的所述矫正图像数据,并将所述矫正图像数据转存到所述片外存储器中,
其中,每个所述畸变参数对应所述矫正图像数据中的一个像素,且每个所述畸变参数包括一位置参数和一矫正权重;
其中,所述运算电路配置为以如下方式根据所述预设通道的图像数据的畸变参数,调整所述预设通道的图像数据在预设通道上的像素值:
根据所述畸变参数中的位置参数,读取所述图像数据中相关像素的像素值;以及
根据所述图像数据中相关像素的像素值和所述畸变参数中的矫正权重,计算所述矫正图像数据中相应像素在所述预设通道上的像素值。
2.根据权利要求1所述的畸变矫正装置,其中,所述运算电路包括配置为执行双线性差值运算的电路。
3.根据权利要求1所述的畸变矫正装置,其中,所述片上存储器包括第二缓冲区、第三缓冲区和至少一个第一缓冲区;其中,
所述第二缓冲区,配置为存储所述部分查找表;
所述第三缓冲区,配置为按照像素的位置参数存储所述矫正图像数据;
所述至少一个第一缓冲区,配置为按照像素的位置参数存储待矫正图像中预设通道的图像数据。
4.根据权利要求3所述的畸变矫正装置,其中,所述至少一个第一缓冲区的数量由所述运算电路每调整一个所述像素值需要使用的图像数据中的像素值个数确定。
5.根据权利要求3所述的畸变矫正装置,其中,每个所述第一缓冲区对应所述待矫正图像中的选定行和/或选定列。
6.根据权利要求1所述的畸变矫正装置,还包括:控制单元,配置为通过时钟信号控制所述运算电路和所述片上存储器在至少一个时钟周期内对待矫正图像中预定通道的图像数据执行畸变矫正。
7.根据权利要求6所述的畸变矫正装置,其中,所述预定通道包括至少一个通道。
8.一种畸变矫正方法,包括:
片上存储器从片外存储器获取成像器件的部分查找表和待矫正图像中预设通道的图像数据,所述部分查找表中包含所述预设通道的图像数据的畸变参数;
运算电路根据所述预设通道的图像数据的畸变参数,调整所述待矫正图像中预设通道的图像数据的像素值,以得到所述预设通道的矫正图像数据;以及
存储所述矫正图像数据,并将所述矫正图像数据转存到所述片外存储器中,
其中,
每个所述畸变参数对应所述矫正图像数据中的一个像素,且每个所述畸变参数包括一位置参数和一矫正权重;
根据所述预设通道的图像数据的畸变参数,调整所述预设通道的图像数据在预设通道上的像素值,包括:
根据所述畸变参数中的位置参数,读取所述图像数据中相关像素的像素值;以及
根据所述图像数据中相关像素的像素值和所述畸变参数中的矫正权重,计算所述矫正图像数据中相应像素在所述预设通道上的像素值。
9.根据权利要求8所述的方法,其中,按照预先划分的图像分区执行所述畸变矫正。
10.根据权利要求8所述的方法,其中,所述获取成像器件的部分查找表和待矫正图像中预设通道的图像数据,包括:
将来自片外存储器的成像器件的部分查找表存储到预定的第二缓冲区;以及
按照像素的位置参数,将来自片外存储器的待矫正图像中预设通道的图像数据存储到预定的至少一个第一缓冲区。
11.根据权利要求10所述的方法,还包括:
将用于缓存所述待矫正图像的存储空间划分为至少一个第一缓冲区,所述至少一个第一缓冲区的数量由每调整一个所述像素值需要使用的图像数据中的像素值个数确定。
12.根据权利要求8所述的方法,其中,根据所述畸变参数中的位置参数,读取所述图像数据中相关像素的像素值,包括:
根据所述畸变参数中的位置参数,确定所述图像数据中相关像素的缓存地址;
根据所述图像数据中相关像素的缓存地址,在同一时钟周期内向相应缓存区读取所述相关像素的像素值。
13.根据权利要求8所述的方法,其中,
所述位置参数包括横坐标的坐标值和纵坐标的坐标值,所述矫正权重包括对应横坐标的第一权重和对应纵坐标的第二权重;
根据所述图像数据中相关像素的像素值和所述畸变参数中的矫正权重,计算所述矫正图像数据中相应像素在所述预设通道上的像素值,包括:对所述相关像素的像素值、所述第一权重和所述第二权重执行双线性差值运算,得到所述矫正图像数据中相应像素在所述预设通道上的像素值。
14.根据权利要求8所述的方法,其中,按照像素的位置参数,将来自片外存储器的待矫正图像中预设通道的图像数据存储到预定的至少一个第一缓冲区,包括:
按照像素的位置参数,将待矫正图像中第一通道的图像数据存储到所述至少一个第一缓冲区的第一深度区间;以及
按照像素的位置参数,将待矫正图像中第二通道的图像数据存储到所述至少一个第一缓冲区的第二深度区间。
15.一种电子设备,包括:如上述权利要求1-7任一项所述的畸变矫正装置。
16.一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行上述权利要求8-14任一所述的畸变矫正方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910711586.5A CN112308787B (zh) | 2019-08-02 | 2019-08-02 | 畸变矫正方法及装置、电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910711586.5A CN112308787B (zh) | 2019-08-02 | 2019-08-02 | 畸变矫正方法及装置、电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112308787A CN112308787A (zh) | 2021-02-02 |
CN112308787B true CN112308787B (zh) | 2024-05-07 |
Family
ID=74485927
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910711586.5A Active CN112308787B (zh) | 2019-08-02 | 2019-08-02 | 畸变矫正方法及装置、电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112308787B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114092336B (zh) * | 2022-01-19 | 2022-05-20 | 深圳鲲云信息科技有限公司 | 基于双线性插值算法的图像缩放方法、装置、设备及介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104363383A (zh) * | 2014-10-16 | 2015-02-18 | 青岛歌尔声学科技有限公司 | 一种图像预畸变校正的方法和装置 |
CN105005972A (zh) * | 2015-06-30 | 2015-10-28 | 广东欧珀移动通信有限公司 | 一种基于拍摄距离的畸变校正方法及移动终端 |
CN108053385A (zh) * | 2018-01-24 | 2018-05-18 | 桂林电子科技大学 | 一种鱼眼视频实时矫正系统及方法 |
CN108090880A (zh) * | 2017-12-29 | 2018-05-29 | 杭州联络互动信息科技股份有限公司 | 一种图像的反畸变处理方法以及装置 |
CN109785265A (zh) * | 2019-01-16 | 2019-05-21 | 西安全志科技有限公司 | 畸变矫正图像处理方法及图像处理装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4013989B2 (ja) * | 2006-02-20 | 2007-11-28 | 松下電工株式会社 | 映像信号処理装置、仮想現実感生成システム |
-
2019
- 2019-08-02 CN CN201910711586.5A patent/CN112308787B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104363383A (zh) * | 2014-10-16 | 2015-02-18 | 青岛歌尔声学科技有限公司 | 一种图像预畸变校正的方法和装置 |
CN105005972A (zh) * | 2015-06-30 | 2015-10-28 | 广东欧珀移动通信有限公司 | 一种基于拍摄距离的畸变校正方法及移动终端 |
CN108090880A (zh) * | 2017-12-29 | 2018-05-29 | 杭州联络互动信息科技股份有限公司 | 一种图像的反畸变处理方法以及装置 |
CN108053385A (zh) * | 2018-01-24 | 2018-05-18 | 桂林电子科技大学 | 一种鱼眼视频实时矫正系统及方法 |
CN109785265A (zh) * | 2019-01-16 | 2019-05-21 | 西安全志科技有限公司 | 畸变矫正图像处理方法及图像处理装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112308787A (zh) | 2021-02-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9105090B2 (en) | Wide-angle lens image correction | |
US8723989B2 (en) | Image distortion processing apparatus, and method of operating an image distortion processing apparatus | |
US7409528B2 (en) | Digital signal processing architecture with a wide memory bandwidth and a memory mapping method thereof | |
US9942510B2 (en) | Method and device for processing input image data | |
US10402196B2 (en) | Multi-dimensional sliding window operation for a vector processor, including dividing a filter into a plurality of patterns for selecting data elements from a plurality of input registers and performing calculations in parallel using groups of the data elements and coefficients | |
CN112799599B (zh) | 一种数据存储方法、计算核、芯片和电子设备 | |
CN108322722B (zh) | 基于增强现实的图像处理方法、装置及电子设备 | |
US10929965B2 (en) | Histogram statistics circuit and multimedia processing system | |
WO2022267939A1 (zh) | 图像处理方法及装置、计算机可读存储介质 | |
CN112308787B (zh) | 畸变矫正方法及装置、电子设备 | |
CN111125628A (zh) | 人工智能处理器处理二维数据矩阵的方法和设备 | |
CN111831337B (zh) | 数据同步方法及装置以及相关产品 | |
CN112765540A (zh) | 数据处理方法、装置及相关产品 | |
CN110738615B (zh) | 鱼眼图像校正方法、装置、系统及可存储介质 | |
KR20150019192A (ko) | Avm 시스템을 위한 영상 합성 장치 및 그 방법 | |
CN112306945B (zh) | 数据同步方法及装置以及相关产品 | |
US20130003870A1 (en) | Apparatus and method for video data processing | |
CN112395008A (zh) | 运算方法、装置、计算机设备和存储介质 | |
TWI756771B (zh) | 影像轉換方法 | |
US11132569B2 (en) | Hardware accelerator for integral image computation | |
WO2022241676A1 (zh) | 色调映射方法、图像处理装置及成像装置 | |
WO2023045638A1 (zh) | 计算装置、利用计算装置实施卷积运算的方法及相关产品 | |
CN107609211B (zh) | 确定数字集成电路架构中硬件数量的方法及装置 | |
CN111831722A (zh) | 数据同步方法及装置以及相关产品 | |
JPH10326258A (ja) | データ演算システムおよび方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |