CN111951193B - 图像的水平畸变矫正方法及水平畸变矫正装置 - Google Patents
图像的水平畸变矫正方法及水平畸变矫正装置 Download PDFInfo
- Publication number
- CN111951193B CN111951193B CN202010849707.5A CN202010849707A CN111951193B CN 111951193 B CN111951193 B CN 111951193B CN 202010849707 A CN202010849707 A CN 202010849707A CN 111951193 B CN111951193 B CN 111951193B
- Authority
- CN
- China
- Prior art keywords
- distortion
- line
- image
- correction
- row
- 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 202
- 238000000034 method Methods 0.000 title claims abstract description 92
- 238000004364 calculation method Methods 0.000 claims abstract description 135
- 238000012545 processing Methods 0.000 abstract description 26
- 238000007781 pre-processing Methods 0.000 abstract description 16
- 230000008569 process Effects 0.000 description 29
- 230000006870 function Effects 0.000 description 24
- 238000010586 diagram Methods 0.000 description 14
- 238000006073 displacement reaction Methods 0.000 description 14
- 238000012544 monitoring process Methods 0.000 description 9
- 230000003287 optical effect Effects 0.000 description 5
- 238000003384 imaging method Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000000295 complement effect Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000002474 experimental method Methods 0.000 description 2
- 238000003702 image correction Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 229910044991 metal oxide Inorganic materials 0.000 description 2
- 150000004706 metal oxides Chemical class 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 238000011179 visual inspection Methods 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
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/40—Scaling of whole images or parts thereof, e.g. expanding or contracting
- G06T3/4007—Scaling of whole images or parts thereof, e.g. expanding or contracting based on interpolation, e.g. bilinear interpolation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/60—Analysis of geometric attributes
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Geometry (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Image Processing (AREA)
Abstract
本申请涉及图像处理技术领域,提供了一种图像的水平畸变矫正方法及水平畸变矫正装置,该方法包括:获取第一畸变强度参数及矫正前图像的行像素点数据;在行有效期之前,基于第一畸变强度参数进行插值计算得到第二畸变强度参数;在行有效期内,基于第二畸变强度参数及矫正前图像的行像素点数据完成畸变矫正计算输出矫正后图像的行像素点;基于矫正后图像的行像素点,生成矫正后图像。该装置包括:存储器、行畸变插值单元、步长及畸变相对系数计算单元、行数据读写控制单元、畸变矫正计算单元。通过预处理的方式将复杂的畸变矫正计算进行拆分,提高实时性,且占用存储资源小;同时解决了畸变矫正后边缘物体宽高比失调的问题。
Description
技术领域
本发明涉及图像处理技术领域,提供了一种图像的水平畸变矫正方法及水平畸变矫正装置。
背景技术
摄像机标定是三维视觉检测领域中的基本问题,作为检测系统中信息获取单元的摄像机,其参数标定的精度将直接影响测到测量结果,因而是视觉测量中的关键和前提。对高精度视觉检测系统而言,采用针孔摄像机模型描述是不充分的,通常还需要考虑镜头的畸变模型。
传统摄像机标定方法是将镜头畸变参量与摄像机模型中的其他参量一起估计,其具有代表性的方法包括张氏标定法。
现有的监控摄像头,是一种半导体成像器件,目前主流的成像器件包括电荷耦合元件(Charge-Coupled Device,CCD)和互补金属氧化物半导体(Complementary MetalOxide Semiconductor,CMOS)图像传感器。监控摄像头实际工作过程中,由于光学系统的设计、加工和装调所致,往往会出现畸变现象,使得成像时,比如常见的桶形畸变,从而不利于我们对目标进行准确的辨认、分析和判断。目前大多数畸变矫正采用的张氏标定法,对这类监控摄像头的标定和畸变矫正处理过程过于复杂且占用大量内部存储资源,进而影响了监控摄像头的拍摄处理效率,导致实时性较差,同时对系统的存储资源或者存储访问带宽带来挑战。
发明内容
本申请实施例提供了一种图像的水平畸变矫正方法及水平畸变矫正装置,基于预置的标定点上的畸变强度参数,利用行消隐期或者采用乒乓操作方式对下一行像素点所在栅格的水平中心点畸变强度值进行插值预处理,以用于行有效期内的其他插值计算,通过这种预处理畸变强度的方式将复杂的畸变矫正计算进行拆分,大大节约畸变矫正计算的时间,提高实时性;并且基于预处理得到的水平中心点畸变强度计算扫描步长以读入需要用到的像素点数据,使得行有效期内畸变矫正计算中仅需要单行像素点数据缓冲存储空间和预处理的行水平中心点畸变强度的存储空间,存储资源占用小。另外,通过简化标定方案的思想对行像素点两端畸变的像素点进行矫正处理得到无畸变的行像素点,最终完成图像的畸变矫正,矫正过程中畸变图像的边缘畸变像素点得以恢复,解决了现有技术中畸变矫正后边缘物体宽高比失调的问题。
第一方面,本申请实施例提供了一种图像的水平畸变矫正方法,用于电子设备,包括:获取第一畸变强度参数及矫正前图像的行像素点数据;在行有效期之前,基于所述第一畸变强度参数进行插值计算得到第二畸变强度参数;在行有效期内,基于所述第二畸变强度参数及矫正前图像的行像素点数据完成畸变矫正计算输出矫正后图像的行像素点;基于矫正后图像的行像素点,生成矫正后图像。
例如,畸变矫正装置中设置控制寄存器,可以从总线获取标定点畸变强度参数存入畸变矫正装置中,行有效期开始后,矫正前图像的行像素点输入畸变矫正装置,畸变矫正装置中的行图像数据缓冲区存储器存储该行像素点数据。畸变矫正装置基于标定点畸变强度参数进行的插值计算,预处理得到下一行像素点所在栅格的水平中心点畸变强度,并基于水平中心点畸变强度和该行像素点数据进一步进行畸变矫正的其他计算得到该行输出像素点数据。最终基于若干行输出像素点数据,生成矫正后图像。
在上述第一方面的一种可能的实现中,上述方法还包括:所述在行有效期之前,基于所述第一畸变强度参数进行插值计算得到第二畸变强度参数包括:在行有效期之前的行消隐期内,基于所述第一畸变强度参数进行插值计算得到第二畸变强度参数;或者采用乒乓操作方法,基于所述第一畸变强度参数进行插值计算得到第二畸变强度参数。所述矫正前图像的行像素点数据输入的时钟周期为所述行有效期,所述行有效期之间的间隔时钟周期为所述行消隐期。
例如,畸变矫正装置可以在行有效期之前的行消隐期内进行插值计算,预处理得到下一行像素点所在栅格的水平中心点畸变强度,也可以采用乒乓操作方法,在当前行有效期内进行其他畸变矫正计算的同时,进行插值计算预处理得到下一行像素点所在栅格的水平中心点畸变强度。
在上述第一方面的一种可能的实现中,所述采用乒乓操作方法包括:在上一行有效期内,基于所述第一畸变强度参数进行插值计算得到当前行像素点所在栅格的第二畸变强度参数,以及在帧消隐期内,基于所述第一畸变强度参数进行插值计算得到下一帧的第一行像素点所在栅格的第二畸变强度参数,其中所述矫正前图像的帧数据输入的时钟周期为帧有效期,所述帧有效期之间的间隔时钟周期为所述帧消隐期。
例如,畸变矫正装置采用乒乓操作方法进行插值计算,预处理得到下一行像素点所在栅格的水平中心点畸变强度,第一行像素点所在栅格的水平中心点畸变强度可以在帧有效期开始之前的帧消隐期内完成。
在上述第一方面的一种可能的实现中,上述方法还包括:所述在行有效期内基于所述第二畸变强度参数完成畸变矫正计算包括:在行有效期内,基于所述第二畸变强度参数计算扫描步长,并且基于所述扫描步长的整数部分读取所述矫正前图像的行像素点数据;基于所述扫描步长的小数部分计算畸变相对系数。
例如,畸变矫正装置中设置步长及畸变相对系数计算单元,以用于通过设计好的计算电路计算扫描步长,计算扫描步长时,需要先基于该行像素点所在栅格的水平中心点畸变强度来计算当前扫描点处的畸变强度,再进一步计算扫描步长。畸变矫正装置中还设置有行数据读写控制单元,该单元基于上述计算得到的扫描步长的整数部分控制从行图像数据缓冲存储器中读取当前行的输入像素点数据,以用于其他计算。步长及畸变相对系数计算单元可以进一步基于上述计算得到的扫描步长的小数部分计算出畸变相对系数。
在上述第一方面的一种可能的实现中,上述方法还包括:所述基于所述扫描步长的整数部分读取所述矫正前图像的行像素点数据包括:在所述扫描步长的整数部分为0的情况下,读取当前行的当前像素点数据;在所述扫描步长的整数部分为1的情况下,读取当前行的下一个像素点数据。
例如,畸变矫正装置中的行数据读写控制单元基于上述计算得到的扫描步长的整数部分控制从行图像数据缓冲存储器中读取当前行的输入像素点数据,当计算得到的扫描步长小于1时,即该扫描步长的整数部分为0时,则行数据读写控制单元控制读取当前行的当前像素点数据。当计算得到的扫描步长等于1时,即该扫描步长的整数部分为1时,则行数据读写控制单元控制读取当前行的下一个像素点数据。
在上述第一方面的一种可能的实现中,上述方法还包括:所述基于所述扫描步长的小数部分计算畸变相对系数包括:基于所述扫描步长的小数部分确定相邻所述行像素点之间的亚像素点位置,并且基于所述亚像素点位置计算相应的行输出像素点的缩放参数以确定所述畸变相对系数。
例如,在本申请的技术方案实现中,把相邻的两个输入像素点之间归一化成了若干个亚像素点,例如,8192个亚像素点。根据扫描步长的小数部分可以确定相邻的两个行像素点之间的亚像素点位置,进一步基于确定的亚像素点位置可以计算出相应的行输出像素点的缩放参数,通过该缩放参数确定畸变相对系数。
在上述第一方面的一种可能的实现中,上述方法还包括:所述矫正前图像的行像素点数据包括像素值,以及所述第一畸变强度参数为图像栅格模型中栅格的标定点畸变强度,所述第二畸变强度参数为所述行像素点所在栅格的水平中心点畸变强度,所述标定点为所述栅格的中心点,并且所述方法包括:所述标定点畸变强度通过简化标定方案标定得到,所述水平中心点畸变强度通过插值法计算得到。
所述简化标定方案包括:忽略垂直方向上的畸变而保留水平方向上的畸变,从而简化计算得到标定点处水平方向上的畸变强度值作为所述标定点畸变强度。
例如,畸变矫正装置获取的标定点畸变强度是基于简化标定方案标定得到的水平方向上的畸变强度,这种标定方式简单快速,标定计算量小,亦节省标定过程的内存占用。
第二方面,本申请实施例提供了一种水平畸变矫正装置,所述畸变矫正装置包括:存储器,用于存储第一畸变强度参数和矫正前图像的行像素点数据;行畸变插值单元,获取所述第一畸变强度参数,并基于所述第一畸变强度参数进行插值计算得到第二畸变强度参数;步长及畸变相对系数计算单元,获取所述第二畸变强度参数,并基于所述第二畸变强度参数进行计算得到扫描步长和畸变相对系数;行数据读写控制单元,获取所述扫描步长,并基于所述扫描步长控制读取所述矫正前图像的行像素点数据;畸变矫正计算单元,基于所述行数据读写控制单元读取的所述矫正前图像的行像素点数据、以及所述扫描步长及畸变相对系数计算单元计算得到的畸变相对系数,计算并输出矫正后图像的行像素点数据,所述行像素点数据用于生成矫正后图像。
例如,畸变矫正装置通过存储器获取由摄像设备系统配置决定的标定点畸变强度,存入畸变强度参数查找表存储器中,当行有效期开始时,畸变矫正装置的行图像数据缓冲区将扫描输入的行像素点的数据存储下来,包括输入行像素点的位置信息及像素值等。其中,在行有效期之前的行消隐期内,或者在上一个行有效期内,行畸变插值单元可以基于畸变强度参数查找表存储器中的标定点畸变强度进行插值预处理,计算下一行像素点所在栅格水平中心点畸变强度,用于行有效期内的其他计算。行有效期内的计算,主要包括步长及畸变相对系数计算单元进行的扫描步长和畸变相对系数的计算和畸变矫正计算单元进行的对输出像素点的像素值的计算。基于畸变矫正后输出的行像素点,生成矫正后图像,完成畸变矫正。由于标定点畸变强度的标定采用的是水平方向上的简化标定方案,因此,上述畸变矫正装置完成的畸变矫正过程主要是在水平方向上进行的水平畸变矫正方法。
在上述第二方面的一种可能的实现中,所述存储器包括:畸变强度参数查找表存储器,用于保存所述第一畸变强度参数;以及行图像数据缓冲存储器,用于保存所述矫正前图像的行像素点数据。
在上述第二方面的一种可能的实现中,所述畸变矫正装置进一步包括行畸变强度参数查找表存储器,用于存储所述行畸变插值单元输出的第二畸变强度参数,并且将所述第二畸变强度参数提供至所述步长及畸变相对系数计算单元。
在上述第二方面的一种可能的实现中,所述步长及畸变相对系数计算单元基于计算得到的所述扫描步长的小数部分计算得到所述畸变相对系数;
在上述第二方面的一种可能的实现中,所述行数据读写控制单元基于所述扫描步长的整数部分控制读取所述矫正前图像的行像素点数据。
在上述第二方面的一种可能的实现中,所述畸变矫正装置进一步包括控制寄存器,用于从总线获取所述第一畸变强度参数并输出至所述畸变强度参数查找表存储器。
在上述第二方面的一种可能的实现中,所述第一畸变强度参数为图像栅格模型中栅格的标定点畸变强度,所述第二畸变强度参数为所述行像素点所在栅格的水平中心点畸变强度,所述标定点为所述栅格的中心点,以及所述矫正前图像的行像素点数据、所述矫正后图像的行像素点数据包括像素值。
例如,通过步长及畸变相对系数计算单元计算得到的步长是0至1之间的数(包括0和1),当步长不足1时,扫描点还未扫描到下一个输入像素点,但此时需要输出像素点,则基于步长的小数部分计算当前扫描点(亚像素点位置)计算缩放参数以确定畸变相对系数,畸变相对系数表征是的有效输入像素点对亚像素位置处输出像素点的像素值的影响程度,基于畸变相对系数和输入像素点的像素值可以计算得到。当步长等于1时,扫描点扫描下一个输入像素点,此时输出像素点的像素值与输入像素点的像素值相同。
附图说明
图1为现有畸变矫正方案适用的畸变模型和本申请实施例适用的畸变模型;
图2为本申请图像的水平畸变矫正方法及水平畸变矫正装置的应用场景示意图;
图3为本申请图像的水平畸变矫正方法及水平畸变矫正装置适用的图像栅格模型示意图;
图4为本申请图像的水平畸变矫正方法及水平畸变矫正装置中相关概念理解性示意图;
图5为本申请图像的水平畸变矫正方法及水平畸变矫正装置中简化标定方案形成过程示意图;
图6为本申请图像的水平畸变矫正方法及水平畸变矫正装置中简化标定方案形成过程示意图;
图7为本申请的畸变矫正装置的示例性结构示意图;
图8为本申请图像的水平畸变矫正方法的流程示意图;
图9为本申请图像的水平畸变矫正方法中行像素点畸变矫正的过程示意图;
图10为本申请实现畸变矫正装置功能的行畸变插值单元对畸变强度进行插值计算标定的示意图;
图11位本申请的由处理器运行程序实现的畸变矫正装置的示意性软件框图;
图12为根据本申请的一种电子系统的框图;
图13为根据本申请的一种片上系统的框图。
具体实施方式
本申请的说明性实施例包括但不限于实时水平畸变矫正方法、可读介质及矫正单元。
为使本申请的目的、技术方案和优点更加清楚,下面将结合具体附图对本申请的实施方式作进一步地详细描述。可以理解的是,此处描述的具体实施例仅是为了解释本申请,而非对本申请的限定。此外,为了便于描述,附图中仅示出了与本申请相关的部分而非全部的结构或系统流程。
目前市场上许多摄像产品中的图像处理单元普遍应用的畸变矫正系统/装置大多适用于图像畸变程度比较大的镜头。例如,传统的相机镜头很多是如图1a所示的鱼眼镜头的畸变模型,鱼眼镜头畸变模型的无畸变点一般是圆心/中心点位置处,中间变形较小,越靠近周缘处变形越大。鱼眼镜头畸变模型的畸变矫正的运算处理过程比较复杂,内存占用量大,相应的图像处理的时间也比较长。对鱼眼镜头畸变模型进行畸变矫正一般采用比较成熟的张氏标定法进行畸变强度的标定,其畸变矫正的方案流程一般是:(一)确定畸变中心,即待矫正图像中没有畸变的点,即圆心/中心点位置处;(二)根据失真原理,构建畸变模型进行分析,标定计算畸变强度系数;(三)通过反向映射方式用矫正后的图像像素点映射畸变图像中对应的像素点;(四)通过插值运算恢复畸变像素点的灰度值。这种矫正方法过程比较繁琐复杂,运算量大,矫正速度慢,占用内存也比较大。
还有的摄像设备,例如,包括但不限于安防领域常见的监控摄像头或摄像机(球机除外)、手机、相机、电脑、可穿戴设备、智能家电以及应用于汽车上的行车记录仪等,其获得的图像畸变程度不是特别大。以监控摄像头为例,监控摄像头拍摄的画面一般是矩形画面,图像畸变模型如图1b所示,监控摄像头所拍摄画面的畸变特点是其水平方向上的畸变程度远大于垂直方向上的畸变程度。但基于这类摄像头的监控或安防等用途,需要对拍摄画面进行快速的处理且可能需要长时间的保存,所以一般要求这类摄像头对拍摄的图像处理要尽可能少的占用设备内存且处理速度要快。因此,上述对鱼眼镜头畸变模型进行畸变矫正的方案流程不能满足对畸变图像矫正处理占用少量内存资源且具有较强实时性的要求。因此,需要设计本申请的技术方案以解决图像矫正处理中内存占用较大且实时性差的问题。
图2示意性地给出了摄像设备中畸变图像经畸变矫正处理的场景。如图2所示,传感器(Sensor)400获取镜头500拍摄的图像,并且传感器400处理并输出矫正前图像,由畸变矫正装置111对矫正前图像进行处理。该畸变矫正装置111对矫正前图像做水平畸变矫正处理后输出无畸变的矫正后图像,完成图像的畸变矫正。
可以理解,摄像设备的畸变程度是由摄像设备本身的配置决定的,例如不同型号镜头500的选用以及不同型号的传感器400的选用都会导致摄像设备的畸变程度不同。畸变程度体现在矫正前图像上各个像素点的畸变程度。因此,摄像设备内一般会通过对预置的图像栅格模型中选择标定点标定畸变强度,以用于图像畸变矫正计算。
如图3所示,为根据本申请实施例的图像栅格模型。矫正前图像上的畸变像素点矫正后得到矫正后图像。在选择标定点标定畸变强度时,可以选择矫正后图像的图像栅格模型中的栅格中心点作为标定点,通过专用的简化标定方案及实验得到标定点的畸变强度。
基于本申请实施例的应用场景,结合畸变模型的特点,本申请实施例采用专用的简化标定方案实现标定点畸变强度的标定。简化标定方案对标定点畸变强度的标定过程,具体参考以下示例:
如图4所示,可以选择图像栅格模型中的栅格401的中心点作为畸变强度参数的标定点402。栅格401可以理解为对应的图像帧,因此,每个栅格包含若干个像素点。例如,常见的每个栅格401包含32*32或64*64个像素点,也可以设置每个栅格401中包含其他数量个像素点,此处不做限定。无畸变图像包含的栅格401数量由该无畸变图像的宽高比和每个栅格包含的像素点决定,具体的栅格401数量此处亦不做限定。
基于张氏标定法适用的畸变模型,只考虑径向畸变的情况下,其矫正后像素点相对于矫正前像素点之间的关系可用泰勒级数展开为如下方程式(一):
Xdistorted=X(1+k1r2+k2r4+k3r6+…)
Ydistorted=Y(1+k1r2+k2r4+k3r6+…)
其中,(X,Y)为矫正前图像的像素点坐标,(Xdistorted,Ydistorted)为对应的矫正后图像的像素点坐标,(k1,k2,…)为不定项系数,r为矫正后图像的像素点到镜头球心的距离。
其中,公式中的不定项系数(k1,k2,…)可以通过实验计算出来。例如,在实验室利用棋盘格图卡拍摄多张图像,按照实验测量坐标计算不定项系数(k1,k2,…)计算出来。目前有很多软件工具已经内嵌了根据标准球面镜头自动标定的程序。在此以一般保留泰勒级数的二次方精度为例,其计算方程参考如下方程式(二):
Xdistorted=X(1+k1r2)
Ydistorted=Y(1+k1r2)
为便于理解标定方案的逻辑,如图4所示,假定将上述标定点402连线成为M×N的网格,那么原始图像就有(M+1)×(N+1)个角点,即有(M+1)×(N+1)个标定点402。对于不定项系数k1,可以采用上述实验室棋盘格标定方法或二维平面内手工标注任意角点坐标的方式测量计算得到,进而计算出当前角点处的畸变强度。
再基于本实施例适用的畸变模型特点:矫正前图像在水平方向上的畸变程度要明显强于垂直方向上的畸变程度,相应的水平方向上的畸变强度远大于垂直方向上的畸变强度。考虑对上述标定点402(即角点)处的畸变强度标定忽略垂直方向上的畸变,因此,上述方程式(二)可进一步简化为如下公式(1):
Xdistorted=X(1+k1r2) (1)
进而变换得到公式(2):
其中,X为矫正前图像上畸变像素点的横坐标,Xdistorted为矫正后图像上对应的无畸变像素点的横坐标。假设矫正后图像上的无畸变像素点的横坐标Xdistorted的水平坐标值为y,只考虑水平方向上径向畸变的情况下,r为矫正后图像的像素点到图像垂直中心轴的距离,因此r=y。畸变强度可以理解为无畸变像素点水平坐标y位移为1(即y位移至y+1处)时相应的畸变像素点的水平坐标位移程度,带入上述公式(2)可以得到畸变强度计算公式如下:
其中,Ratioxy是矫正前图像第x行第y列的畸变强度,y为矫正后图像的无畸变像素点的横坐标Xdistorted的水平坐标值,X1为Xdistorted位移前对应的矫正前图像上畸变像素点的横坐标,X2为Xdistorted位移1(即y+1)时对应的矫正前图上畸变像素点的横坐标,k1x是第x行的不定项系数。
如上假设,如图5所示,M(行)×N(列)的网格,即有(M+1)×(N+1)个角点,即有(M+1)×(N+1)个标定点402,计算时需要计算出每一行的不定项系数值,即(M+1)个k1值。
例如,计算上述第x行的不定项系数k1x,如图6所示,假设第x行第y列的矫正前图像的畸变像素点水平坐标为y1,第x行第y列的矫正后图像中对应的无畸变像素点的水平坐标为y0,r为矫正后图像的像素点到图像垂直中心轴的距离,因此,第x行第y列中r=y0,带入上述公式(1),那么第x行的不定项系数k1x的计算公式如下。
将标定水平坐标值得到的k1x带入公式(3)即可得到矫正前图像在第x行第y列像素点的畸变强度。参照上述方法依次标定(M+1)×(N+1)个标定点402处的畸变强度。
可以理解,标定点上的畸变强度标定在对图像处理之前,例如,可以在系统选取摄像头之后,标定完的畸变强度参数可以存储在非易失存储单元内。正常使用时,系统通电后,由中央处理单元(Central Processing Unit,CPU)或者直接存储器访问(DirectMemory Access,DMA)将已标定的畸变强度参数搬运至查找表存储单元(或者SRA(StaticRam)存储器)中,当然也可以直接由非易失存储单元作为畸变强度的查找表存储单元。
可以理解,矫正前图像的数据以帧数据输入,每帧数据以像素点数据输入,输入方式可以采取自上向下逐行、自左向右的方式。其中帧数据输入并进行处理的时钟周期为帧有效期,帧有效期前后没有帧数据输入的时钟周期为帧消隐期;帧内每行像素点数据输入并进行处理的时钟周期为行有效期,行有效期前后没有像素点输入的时钟周期为行消隐期。
本实施例基于上述简化标定方案,通过畸变矫正装置111实现对图像的实时水平畸变矫正。具体地,本实施例的畸变矫正装置111基于预置的标定点上的畸变强度参数,利用行消隐期或者采用乒乓操作方式对下一行像素点所在栅格的水平中心点畸变强度值进行插值预处理,以用于行有效期内的其他插值计算,通过这种预处理畸变强度的方式将复杂的畸变矫正计算进行拆分,大大节约畸变矫正计算的时间,提高实时性;并且基于预处理得到的水平中心点畸变强度计算扫描步长以读入需要用到的像素点数据,使得行有效期内畸变矫正计算中仅需要单行像素点数据缓冲存储空间和预处理的行水平中心点畸变强度的存储空间,存储资源占用小。另外,通过简化标定方案的思想对行像素点两端畸变的像素点进行矫正处理得到无畸变的行像素点,最终完成图像的畸变矫正,矫正过程中畸变图像的边缘畸变像素点得以恢复,解决了现有技术中畸变矫正后边缘物体宽高比失调的问题。
图7根据本申请实施例示出了一种畸变矫正装置111的示意性结构图。
在图7所示的实施例中,畸变矫正装置111通过集成电路的形式实现。具体地,畸变矫正装置111包括控制寄存器112、畸变强度参数查找表存储器113、行畸变插值单元114、行图像数据缓冲存储器115、行畸变强度参数查找表存储器116、步长及畸变相对系数计算单元117、行数据读写控制单元118以及畸变矫正计算单元119。
可以理解,畸变矫正装置111中的各电路单元主要通过逻辑控制单元、逻辑运算单元以及存储单元等集成实现,设备通电后,畸变矫正装置111中的各电路单元运行电路完成相应的功能以达到最终实现实时水平畸变矫正图像的目的。
畸变矫正装置111中的各电路单元实现的功能,包括:
控制寄存器112:通过具有复制功能的电路实现,用于从总线获取矫正前图像的配置信息及系统配置信息,例如,矫正前图像的宽高比信息及图像栅格模型和标定点畸变强度等。控制寄存器112将获取到的矫正前图像的宽高比信息及图像栅格模型和标定点畸变强度存储下来,并输出标定点畸变强度,该标定点畸变强度作为畸变强度参数查找表存储器113的畸变强度参数输入。
畸变强度参数查找表存储器113:通过具有存储功能的电路实现,用于存储输入的标定点畸变强度参数。在畸变强度参数查找表存储器113中,标定点畸变强度以畸变强度参数查找表的形式呈现,以供查找并用于其他计算。在插值计算过程中,畸变强度参数查找表存储器113输出标定点畸变强度作为插值参数,该标定点畸变强度作为行畸变插值单元114的输入。
行畸变插值单元114:通过具有插值计算功能的电路实现,用于进行插值计算,例如:在行有效期之前,行畸变插值单元114基于标定点畸变强度值进行插值计算,得到行像素点所在栅格的水平中心点畸变强度,即通过插值预处理得到水平中心点畸变强度,该水平中心点畸变强度作为行畸变强度参数查找表存储器116的输入。
在行有效期内的扫描步长计算过程中,行畸变插值单元114基于预处理得到的水平中心点畸变强度进行插值计算,输出当前行的输入像素点畸变强度,该当前行的输入像素点畸变强度作为步长及畸变相对系数计算单元117的输入。
行图像数据缓冲存储器115:通过具有存储功能的电路实现,用于存储行有效期内的输入像素点数据,包括该行像素点的位置信息及像素值。在行有效期内进行畸变矫正运算的过程中,行图像数据缓冲存储器115存储的像素点数据不超过1行,大大节省了内存占用量。行图像数据缓冲存储器115输出当前行的输入像素点数据,该输入像素点的像素值作为行数据读写控制单元118的输入。
行畸变强度参数查找表存储器116:通过具有存储功能的电路实现,用于存储预处理得到的水平中心点畸变强度。在行畸变强度参数查找表存储器116中,水平中心点畸变强度以行畸变强度参数查找表的形式呈现,以供查找并用于其他计算。在行有效期内的扫描步长计算过程中,行畸变强度参数查找表存储器116输出水平中心点畸变强度,该水平中心点畸变强度作为行畸变插值单元114的输入。
行畸变强度参数查找表存储器116中仅存储一行水平中心点畸变强度,当行畸变插值单元114预处理得到新的一行水平中心点畸变强度输出给行畸变强度参数查找表存储器116时,行畸变强度参数查找表存储器116存入新的下一行水平中心点畸变强度并删除之前行水平中心点畸变强度数据。
步长及畸变相对系数计算单元117:通过具有运算功能的电路实现,用于计算扫描步长和畸变相对系数。在行有效期内的扫描步长计算过程中,步长及畸变相对系数计算单元117基于当前行的输入像素点畸变强度进行扫描步长的计算,输出计算得到的扫描步长,该扫描步长作为步长及畸变相对系数计算单元117和行数据读写控制单元118的输入。
步长及畸变相对系数计算单元117基于扫描步长的小数部分进行缩放参数的计算,输出畸变相对系数,该畸变相对系数作为畸变矫正计算单元119的输入。
行数据读写控制单元118:通过具有计数控制功能的电路实现,用于控制读取输入像素点的像素值。行数据读写控制单元118基于扫描步长的整数部分读取输入像素点的像素值,在畸变矫正计算中,行数据读写控制单元118输出该输入像素点的像素值,该输入像素点的像素值作为畸变矫正计算单元119的输入。
例如,扫描步长的整数部分为0时,行数据读写控制单元118读取当前输入像素点的像素值;扫描步长的整数部分为1时,行数据读写控制单元118读取下一个输入像素点的像素值。
畸变矫正计算单元119:通过具有运算功能的电路实现,用于计算输出像素点的像素值。畸变矫正计算单元119基于畸变相对系数和输入像素点像素值计算输出像素点的像素值,畸变矫正计算单元119输出的是输出像素点的像素值。
上述畸变矫正装置111通过集成电路形式实现,可以理解,在其他实施例中,畸变矫正装置111也可以有其他结构,包括其他电路单元或者只包括图7所示的部分单元,不限制于图7所示的示意性结构。基于上面的描述,下面具体结合图8介绍本申请的实时水平畸变矫正方法实现的主要流程。
根据本申请的实施例,对于矫正前的图像的处理,先并行地进行作为一分支的流程S801,以及作为另一分支的流程S802至S803。
S801:下一行有效期开始后,矫正前图像当前行像素点数据输入畸变矫正装置111,存入行图像数据缓冲存储器115中。
当行有效期开始时,行像素点(对于上一行消隐期来说是下一行像素点)依次输入畸变矫正装置111,输入的行像素点数据包括但不限于位置信息及像素值(例如灰度值、RGB值等)。当下一行有效期开始时,下一行像素点即转变为本流程S801中的当前行像素点。
S802:获取标定点畸变强度参数并存储。获取基于摄像设备配置的图像栅格模型的栅格标定点畸变强度作为畸变强度参数,存入畸变强度参数查找表存储器113中。标定点畸变强度参数的标定参考上述公式(1)~(4)及相关描述,在此不再赘述。
S803:下一行有效期开始前,由行畸变插值单元114基于畸变强度参数查找表存储器113中的畸变强度参数进行预处理插值计算,得到下一行像素点所在栅格的水平中心点畸变强度,并将该水平中心点畸变强度存入行畸变强度参数查找表存储器116中,以用于其他计算。
对下一行像素点所在栅格的水平中心点畸变强度进行预处理,可以有效利用行消隐期进行。由于行消隐期的时钟周期限制,在行消隐期内仅对下一行像素点所在栅格的水平中心点畸变强度进行插值预处理。
如图4所示,基于下一行像素点所在栅格的水平中心点403相邻的上下栅格401的标定点402的畸变强度值,插值计算得到水平中心点403的畸变强度值。其中,栅格401的标定点402的畸变强度通过输入相应参数在畸变强度参数查找表存储器113中查找得到。
其中,行畸变插值单元124插值计算公式为:
Interp = Dist_ints[up]*v_alpha_h1+ Dist_ints[down]*v_alpha_h2 (5)
其中,Dist_ints[up]:即distortion intense[up],指相邻上一行的栅格401中标定点402的畸变强度;Dist_ints[down]:即distortion intense[down],指相邻下一行的栅格401中标定点402的畸变强度;v_alpha_h1为垂直方向上当前行与上一行栅格401水平中心轴之间的相对位移(如图4中的相对位移1);v_alpha_h2:垂直方向上当前行与下一行栅格401水平中心轴之间的相对位移(如图4中的相对位移2)。
在本申请的另一些实施例中,也可以通过乒乓操作方法(例如,乒乓电路)实现对下一行像素点所在栅格水平中心点畸变强度进行预处理插值计算。结合本申请方案,乒乓操作方法可以参考以下示例:
在行畸变强度查找表存储单元116中设置两组行畸变强度查找表,在帧消隐期内插值计算得到下一帧的第一行像素点所在栅格水平中心点畸变强度并存储至行畸变强度查找表0中,在第一行有效期内插值计算得到第二行像素点所在栅格的水平中心点畸变强度并存储至行畸变强度查找表1中。因此,第一行有效期内的其他计算需要用到的第一行像素点所在栅格水平中心点畸变强度从上述行畸变强度查找表0中查找,第二行有效期内的其他计算需要用到的第二行像素点所在栅格水平中心点畸变强度从上述行畸变强度查找表1中查找。
依次类推,在第二行有效期内插值计算得到第三行像素点所在栅格水平中心点畸变强度又可以存储至行畸变强度查找表0,此时行畸变强度查找表0中的第一行像素点所在栅格水平中心点畸变强度被替换删除。依此类推,直至完成图像畸变矫正。
S804:在下一行有效期内,由步长及畸变相对系数计算单元117计算扫描步长及畸变相对系数。
其中,扫描步长的计算公式为:
step=interp_h1*alpha_h2+interp_h2*alpha_h1 (6)
其中,interp_h1表示输入像素点的左插值畸变强度,即输入像素点相对于其左边的水平中心点403畸变强度的插值(如图4所示);interp_h2表示输入像素点的右插值畸变强度,即输入像素点相对于其右边的水平中心点403畸变强度的插值(如图4所示);
alpha_h1表示输入像素点与其左边的水平中心点403之间的相对位移(如图4所示的相对位移3);alpha_h2表示输入像素点与其右边的水平中心点403之间的相对位移(如图4所示的相对位移4)。
其中,输入像素点的畸变强度插值计算通过行畸变插值单元114完成,水平中心点畸变强度可以在行畸变强度查找表存储单元116中查找得到,在下一行有效期内,流程S803中计算的下一行像素点所在栅格的水平中心点畸变强度即为当前行像素点所在栅格的水平中心点畸变强度。
可以理解,如图9所示,在下一行有效期内,向畸变矫正装置111输入下一行像素点(此时下一行转变为当前行),当前行的输入像素点经过畸变矫正处理后输出相应的矫正后图像上对应行的输出像素点。当前行的输入像素点由于存在畸变而导致行两端的畸变像素点数据不能被畸变矫正装置111获取,只有中间段的部分输入像素点信息能够被畸变矫正装置111获取。
可以理解,在本申请的技术方案实现中,把相邻的两个输入像素点之间归一化成了若干个亚像素点,例如,8192个亚像素点。扫描步长可以理解为矫正前图像在待矫正区间内水平方向上单位时间内的位移。基于上述公式(6)计算得出的扫描步长,其整数部分表示的是输入像素点的位置坐标,小数部分表示的是亚像素点位置。基于扫描步长可以在畸变强度查找表得出对应畸变像素点的畸变强度,畸变强度越大,扫描步长越小,扫描步长为1时则表示没有畸变,其在电路上的表现形式为基于扫描步长的小数部分得到亚像素点位置,根据亚像素点位置计算缩放参数,计算得到缩放参数即为畸变相对系数。另外,扫描步长的整数部分表示的是输入像素点位置坐标。
例如,如图9所示,矫正前图像的第一行像素点(10个像素点)输入后,行两端的畸变像素点因为产生畸变而不能被读取到数据,而只能读取输入的行中间的6个像素点数据。在进行第一行像素点的畸变矫正计算时,需要通过读取到的第一行像素点中间的6个像素点数据计算得到矫正后图像第一行的10个像素点数据。可以理解,第一行两端的畸变像素点对应某一个亚像素点位置,在后续的畸变矫正计算中基于缩放参数计算对该亚像素点对应的输出像素点的位置和像素值。具体计算过程将在下文的畸变矫正计算中作详细描述,在此不再赘述。
S805:由行数据读写控制单元118判断扫描步长是否等于1。
扫描步长的值在0到1之间,在实际的矫正计算中判断扫描步长是否等于1,基于扫描步长的取值范围可以知道,若扫描步长不等于1则扫描步长小于1。当扫描步长等于1时,进行S806;当扫描步长小于1时,进行S807。
S806:扫描步长等于1时,由行数据读写控制单元118读取当前行的下一个输入像素点像素值。
在扫描步长等于1的情况下,行数据读写控制单元118根据扫描步长信息从图像数据缓冲存储单元115中读取当前输入行像素点中相对于当前输入像素点的下一个输入像素点像素值。
S807:扫描步长小于1时,由行数据读写控制单元118重复读取当前输入行的当前输入像素点像素值。
在扫描步长小于1的情况下,扫描步长的整数部分为0,行数据读写控制单元118从行图像数据缓冲存储器115中再次读取当前输入像素点像素值。
例如,如图9所示,当前输入行像素点的当前输入像素点是自左向右第三个输入像素点,当扫描步长小于1时,继续读取像素值当前输入像素点中自左向右第三个输入像素点的像素值,当扫描步长等于1时,读取当前输入像素点中自左向右第四个输入像素点的像素值。
S808:由畸变矫正计算单元119进行畸变矫正计算得到输出像素点的像素值,在行有效期内完成行像素点的畸变矫正,输出矫正后的行像素点。
畸变矫正计算单元119根据上述流程S303中计算得到的畸变相对系数、以及上述流程S806、S807中获取的输入像素点像素值进行矫正计算得到输出像素点的像素值。
畸变矫正计算单元119进行畸变矫正计算的示例性计算公式为:
pixel_sum=∑(coef[i]*in_pixel[i]);i=0/1/2/3/4/5 (7)
Pixel_value=(pixel_sum+32)>>n;n≤6 (8)
其中,Coef[i]为畸变相对系数;in_pixel[i]为行数据读写控制单元118获取的输入像素点像素值;Pixel_value为输出像素点的像素值,Pixel_sum表述上述n个像素点的像素值的乘积之和;n为行数据读写控制单元118获取的输入像素点数量。
可以理解,输入像素点之间扫描步长为1,作为示例性公式,上述公式(8)中的32位1个扫描步长的数据值,表示在满足扫描步长条件的情况下获取下一个输入像素点数据。
S809:畸变矫正装置111输出矫正后图像的行像素点。
全部行有效期结束后,畸变矫正装置111完成输出所有矫正后图像的行像素点,生成矫正后图像,完成图像的畸变矫正。
上述流程S803和流程S804中的行畸变插值单元114实现的插值计算基于的理论基础包括但不限于最小二乘法、线性插值法、拉格朗日插值法或牛顿插值法,具体可以参考以下示例:
以拉格朗日插值法为例,具体如下:
数学上来说,拉格朗日插值法可以给出一个恰好穿过二维平面上若干个已知点的多项式函数。对于给定的若干k+1个取值点(x0,y0),(xj,yj),…,(xk,yk),其中xj对应着自变量的位置,yj对应着函数在这个位置上的取值。
假设任意两个xj互不相同,那么应用拉格朗日插值公式所得到的拉格朗日多项式为:
其中,lj(x)为拉格朗日基本多项式(或称插值基函数),其表达式为:
拉格朗日基本多项式lj(x)的特点是在xj上取值为1,在其它的点xi,i≠j上取值为0。
因此,如图10所示,在已知畸变强度1、畸变强度2、畸变强度3和畸变强度4的情况下,可以插值计算出任意像素点的畸变像素,例如行像素点所在栅格的水平中心点畸变强度。可以理解,在集成电路的表现形式上,基于上述插值法的插值计算公式参考公式(5)所示。
可以理解,在其他实施例中,畸变矫正装置111也可以采用其他电路单元。上述实施例的畸变矫正装置111将复杂的畸变矫正计算通过电路单元预处理进行拆分,并能够基于设计的电路单元准确快速调用畸变强度、输入像素点像素值等数据完成畸变矫正计算,减小内存占用量的同时实现高效率的畸变矫正计算。
在另一些实施例中,上述畸变矫正装置111也可以通过处理器110运行相关的程序实现其功能。此种实现的情形下,关于图2所示的场景,传感器400和处理器110及相应的存储器(图中未示出)可以是以处于同一芯片组中的方式存在于用于矫正图像的电子设备中,也可以是传感器400和处理器110分别存在于不同的芯片中的方式存在于用于矫正图像的电子设备中。本申请不做限制。
图11示出了处理器110运行程序实现的畸变矫正装置111的另一种实现方式的框图。
如图11所示,处理器110运行程序实现的畸变矫正装置111包括:
畸变强度参数查找表存储模块1113,通过处理器110运行代码实现,其实现的功能与图7所示的畸变强度参数查找表存储器113相同,在此不再赘述。在插值计算过程中,畸变强度参数查找表存储模块1113输出标定点畸变强度作为插值参数,该标定点畸变强度作为行畸变插值模块1114的输入。
行畸变插值模块1114,通过处理器110运行代码实现,其实现的功能与图7所示的行畸变插值单元114相同,在此不再赘述。在行有效期之前,行畸变插值模块1114基于标定点畸变强度值执行插值计算,得到行像素点所在栅格的水平中心点畸变强度,即通过插值预处理得到水平中心点畸变强度,该水平中心点畸变强度作为行畸变强度参数查找表存储模块1116的输入。
在行有效期内的扫描步长计算过程中,行畸变插值模块1114基于预处理得到的水平中心点畸变强度执行插值计算,输出当前行的输入像素点畸变强度,该当前行的输入像素点畸变强度作为步长及畸变相对系数计算模块1117的输入。
行图像数据缓冲存储模块1115,通过处理器110运行代码实现,其实现的功能与图7所示的行图像数据缓冲存储器115相同,在此不再赘述。行图像数据缓冲存储模块1115输出当前行的输入像素点数据,该输入像素点的像素值作为行数据读写控制模块1118的输入。
行畸变强度参数查找表存储模块1116,通过处理器110运行代码实现,其实现的功能与图7所示的行畸变强度参数查找表存储器116相同,在此不再赘述。在行有效期内的扫描步长计算过程中,行畸变强度参数查找表存储模块1116输出水平中心点畸变强度,该水平中心点畸变强度作为行畸变插值模块1114的输入。
步长及畸变相对系数计算模块1117,通过处理器110运行代码实现,其实现的功能与图7所示的步长及畸变相对系数计算单元117相同,在此不再赘述。在行有效期内的扫描步长计算过程中,步长及畸变相对系数计算模块1117基于当前行的输入像素点畸变强度进行扫描步长的计算,输出计算得到的扫描步长,该扫描步长作为步长及畸变相对系数计算模块1117和行数据读写控制单元118的输入。
步长及畸变相对系数计算模块1117基于扫描步长的小数部分进行缩放参数的计算,输出畸变相对系数,该畸变相对系数作为畸变矫正模块1119的输入。
行数据读写控制模块1118,通过处理器110运行代码实现,其实现的功能与图7所示的行数据读写控制单元118相同,在此不再赘述。行数据读写控制模块1118基于扫描步长的整数部分读取输入像素点的像素值,在畸变矫正计算中,行数据读写控制模块1118输出该输入像素点的像素值,该输入像素点的像素值作为畸变矫正计算模块1119的输入。
例如,扫描步长的整数部分为0时,行数据读写控制模块1118读取当前输入像素点的像素值;扫描步长的整数部分为1时,行数据读写控制模块1118读取下一个输入像素点的像素值。
畸变矫正计算模块1119,通过处理器110运行代码实现,其实现的功能与图7所示的畸变矫正计算单元1119相同,在此不再赘述。畸变矫正计算模块1119基于畸变相对系数和输入像素点像素值计算输出像素点的像素值,畸变矫正计算模块1119输出的是输出像素点的像素值。
根据本申请的一个实施例,提供了一种电子系统。
图12示意性地示出了根据实施例的示例系统100。在一些实施例中,系统100可以包括一个或处理器110,与处理器110中的至少一个连接的系统控制逻辑120,与系统控制逻辑120连接的系统内存130,以及与系统控制逻辑120连接的非易失性存储器(Non-volatileMemory,NVM)140。
处理器110可以包括一个或多个单核或多核处理器。处理器110可以包括微处理器、分散处理单元(Distributed Processing Unit),DPU)、图像信号处理(Image SignalProcessor,ISP)芯片或数字信号处理(Digital Signal Process,DSP)芯片、微控制器等,和/或其任何组合。
用于某个实施例的系统控制逻辑120可以包括任何合适的接口控制器,以向处理器110中的至少一个和/或与系统控制逻辑120通信的任何合适的设备或组件提供任何合适的接口。
用于某个实施例的系统控制逻辑120可以包括一个或多个存储器控制器以提供连接到系统内存130的接口。系统内存130可以用于加载和存储数据和/或指令,例如,对于系统100,用于某个实施例的系统内存130可以包括任何合适的易失性存储器,例如合适的动态随机存取存储器(Dynamic Random Access Memory,DRAM)。
非易失性存储器140可以包括用于存储数据和/或指令的一个或多个有形的、非暂时性计算机可读介质。例如,非易失性存储器140可以包括闪存等任何合适的非易失性存储器和/或任何合适的非易失性存储设备,例如一个或多个硬盘驱动器,一个或多个光盘驱动器,和/或一个或多个数字通用光盘驱动器。
非易失性存储器140可以包括安装系统100的装置上的一部分存储资源,或者它可以由设备访问,但不一定是设备的一部分。例如,可以经由输入/输出(I/O)设备150通过网络访问非易失性存储器140。
特别地,系统内存130和非易失性存储器140可以分别包括:指令1424的暂时和永久副本。指令1424可以包括:由处理器110中的至少一个执行时导致系统100实施如图2~10所述方法的指令。在各种实施例中,指令1424或硬件,固件和/或其软件组件可另外地/替代地置于系统控制逻辑120,输入/输出(I/O)设备150和/或处理器110中。
对于一个实施例,处理器110中的至少一个可以与用于系统控制逻辑120的一个或多个控制器的逻辑集成在一起。对于一个实施例,处理器110中的至少一个可以与用于系统控制逻辑120的一个或多个控制器的逻辑封装在一起,以形成系统集成。对于一个实施例,处理器110中的至少一个可以与用于系统控制逻辑120的一个或多个控制器的逻辑集成在同一管芯上。对于一个实施例,处理器110中的至少一个可以与用于系统控制逻辑120的一个或多个控制器的逻辑集成在同一管芯上,以形成片上系统(System-on-a-chip,SoC)。
系统100可以进一步包括:输入/输出(I/O)设备150。输入/输出(I/O)设备150可以包括用户界面,该设计使得用户能够与系统100进行交互;外围组件接口的设计使得外围组件也能够与系统100交互;和/或传感器设计用于确定与系统100相关的环境条件和/或位置信息。
在各种实施例中,用户界面可包括但不限于显示器(例如,液晶显示器,触摸屏显示器等),扬声器,麦克风,一个或多个相机(例如,静止图像)和/或摄像机,和按键。
在各种实施例中,外围组件接口可以包括但不限于非易失性存储器端口,音频插孔和电源接口。
在各种实施例中,系统100可以是摄像设备内的图像处理系统。在各种实施例中,系统100可具有更多或更少的组件和/或不同的架构。
根据本申请的另一实施例,提供了一种片上系统(System on Chip,SoC)。图13示出了一种片上系统(System on Chip,SoC)200的框图。在图2中,相似的部件具有同样的附图标记。另外,虚线框是更先进的SoC的可选特征。在图2中,SoC 200包括:互连单元210,其被耦合至应用处理器110;系统代理单元220;总线控制器单元230;集成存储器控制器单元240;一组或一个或多个协处理器250,其可包括集成图形逻辑、图像处理器、音频处理器和视频处理器;静态随机存取存储器(Static Random-Access Memory,SRAM)单元260;直接存储器存取(Direct Memory Access,DMA)单元270。在一个实施例中,协处理器250包括专用处理器,诸如例如网络或通信处理器、压缩引擎、GPGPU、高吞吐量MIC处理器、或嵌入式处理器等等。
本申请公开的实施例可以被实现在硬件、软件、固件或这些组合中,本申请的实施例可实现为在可编程系统上执行的计算机程序或程序代码,该可编程系统可以包括至少一个处理器、存储系统(包括易失性和非易失性存储器和/或存储元件)、至少一个输入设备和至少一个输出设备。
可将程序代码应用于输入指令,以执行本申请描述的各功能并生成输出信息。可以按已知方式将输出信息应用于一个或多个输出设备。为了本申请的目的,处理系统包括具有诸如数字信号处理器(DSP)、微控制器、专用集成电路(Application SpecificIntegrated Circuit,ASIC)或微处理器之类的处理器的任何系统。
程序代码可以用高级程序化语言或面向对象的编程语言来实现,以便与处理系统通信。在需要时,也可以用汇编语言或机器语言来实现程序代码。事实上,本申请中描述的机制不限于任何特定编程语言的范围。在任一情形下,该语言可以是编译语言或解释语言。
在一些情况下,所公开的实施例可以以硬件、固件、软件或其任何组合形式来实现。所公开的实施例还可以以承载或储存在一个或多个瞬态或非瞬态的机器可读(例如,计算机可读)存储介质上的指令或程序形式来实现,其可以由一个或多个处理器等读取和执行。当指令或程序被机器运行时,机器可以执行前述的各种方法。例如,指令可以通过网络或其他计算机可读介质分发。因此,机器可读介质可以不但包括但不限于,用于以机器(例如,计算机)可读的形式存储或传输信息的任何机制,例如,软盘、光盘、光盘只读存储器(Compact Disc Read-Only Memory,CD-ROM),磁光盘,只读存储器(Read-Only Memory,ROM),随机存取存储器(Random Access Memory,RAM),可擦除可编程只读存储器(ErasableProgrammable Read-Only Memory,EPROM),电子式可清除程序化只读存储器(ElectricalErasable Programmable Read-Only Memory,EEPROM),磁卡或光卡,或者用于通过电、光、声或其他形式信号(例如,载波、红外信号、数字信号等)传输网络信息的闪存或有形的机器可读存储器。因此,机器可读介质包括任何形式的适合于存储或传输电子指令或机器(例如,计算机)可读信息的机器可读介质。
因此,本申请的各实施例还包括非瞬态的有形机器可读介质,该介质包含指令或包含设计数据,诸如硬件描述语言(Hardware Description Language,HDL),它定义本文中描述的结构、电路、装置、处理器和/或系统特征。这些实施例也被称为程序产品。
应当理解的是,虽然在本文中可能使用了术语“第一”、“第二”等等来描述各个特征,但是这些特征不应当受这些术语限制。使用这些术语仅仅是为了进行区分,而不能理解为指示或暗示相对重要性。举例来说,在不背离示例性实施例的范围的情况下,第一特征可以被称为第二特征,并且类似地第二特征可以被称为第一特征。
此外,各种操作将以最有助于理解说明性实施例的方式被描述为多个彼此分离的操作;然而,描述的顺序不应被解释为暗示这些操作必须依赖描述的顺序,其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序也可以被重新安排。当所描述的操作完成时,所述处理可以被终止,但是还可以具有未包括在附图中的附加操作。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
说明书中对“一个实施例”,“实施例”,“说明性实施例”等的引用表示所描述的实施例可以包括特定特征、结构或性质,但是每个实施例也可能或不是必需包括特定的特征、结构或性质。而且,这些短语不一定是针对同一实施例。此外,当结合具体实施例描述特定特征,本领域技术人员的知识能够影响到这些特征与其他实施例的结合,无论这些实施例是否被明确描述。
除非上下文另有规定,否则术语“包含”、“具有”和“包括”是同义词。短语“A/B”表示“A或B”。短语“A和/或B”表示“(A)、(B)或(A和B)”。
如本文所使用的,术语“模块”可以指代,作为其中的一部分,或者包括:用于运行一个或多个软件或固件程序的存储器(共享、专用或组),专用集成电路(ASIC),电子电路和/或处理器(共享、专用或组),组合逻辑电路,和/或提供所述功能的其他合适组件。
在附图中,可能以特定布置和/或顺序示出了一些结构或方法特征。然而,应当理解的是,这样的特定布置和/或排序不是必需的。而是,在一些实施例中,这些特征可以以不同于说明性附图中所示的方式和/或顺序来进行说明。另外,特定附图中所包含得结构或方法特征并不意味着所有实施例都需要包含这样的特征,在一些实施例中,可以不包含这些特征,或者可以将这些特征与其他特征进行组合。
上面结合附图对本申请的实施例做了详细说明,但本申请技术方案的使用不仅仅局限于本专利实施例中提及的各种应用,各种结构和变型都可以参考本申请技术方案轻易地实施,以达到本文中提及的各种有益效果。在本领域普通技术人员所具备的知识范围内,在不脱离本申请宗旨的前提下做出的各种变化,均应归属于本申请专利涵盖范围。
Claims (12)
1.一种图像的水平畸变矫正方法,用于电子设备,其特征在于,包括:
获取第一畸变强度参数及矫正前图像的行像素点数据,其中所述矫正前图像的行像素点数据包括像素值,所述第一畸变强度参数为图像栅格模型中栅格的标定点畸变强度,所述标定点为所述栅格的中心点,并且,
所述标定点畸变强度通过简化标定方案标定得到,水平中心点畸变强度通过插值法计算得到,其中,所述简化标定方案包括:忽略垂直方向上的畸变而保留水平方向上的畸变,从而简化计算得到标定点处水平方向上的畸变强度值作为所述标定点畸变强度;
在行有效期之前,基于所述第一畸变强度参数进行插值计算得到第二畸变强度参数,其中所述第二畸变强度参数为所述行像素点所在栅格的水平中心点畸变强度;
在行有效期内,基于所述第二畸变强度参数及矫正前图像的行像素点数据完成畸变矫正计算输出矫正后图像的行像素点;
基于矫正后图像的行像素点,生成矫正后图像。
2.根据权利要求1所述的方法,其特征在于,所述在行有效期之前,基于所述第一畸变强度参数进行插值计算得到第二畸变强度参数包括:
在行有效期之前的行消隐期内,基于所述第一畸变强度参数进行插值计算得到第二畸变强度参数;或者
采用乒乓操作方法,基于所述第一畸变强度参数进行插值计算得到第二畸变强度参数。
3.根据权利要求2所述的方法,其特征在于,所述矫正前图像的行像素点数据输入的时钟周期为所述行有效期,所述行有效期之间的间隔时钟周期为所述行消隐期。
4.根据权利要求3所述的方法,其特征在于,所述采用乒乓操作方法包括:
在上一行有效期内,基于所述第一畸变强度参数进行插值计算得到当前行像素点所在栅格的第二畸变强度参数,以及
在帧消隐期内,基于所述第一畸变强度参数进行插值计算得到下一帧的第一行像素点所在栅格的第二畸变强度参数,其中
所述矫正前图像的帧数据输入的时钟周期为帧有效期,所述帧有效期之间的间隔时钟周期为所述帧消隐期。
5.根据权利要求1所述的方法,其特征在于,所述在行有效期内基于所述第二畸变强度参数完成畸变矫正计算包括:在行有效期内,基于所述第二畸变强度参数计算扫描步长,并且
基于所述扫描步长的整数部分读取所述矫正前图像的行像素点数据;
基于所述扫描步长的小数部分计算畸变相对系数。
6.根据权利要求5所述的方法,其特征在于,所述基于所述扫描步长的整数部分读取所述矫正前图像的行像素点数据包括:
在所述扫描步长的整数部分为0的情况下,读取当前行的当前像素点数据;
在所述扫描步长的整数部分为1的情况下,读取当前行的下一个像素点数据。
7.根据权利要求6所述的方法,其特征在于,所述基于所述扫描步长的小数部分计算畸变相对系数包括:基于所述扫描步长的小数部分确定相邻所述行像素点之间的亚像素点位置,并且
基于所述亚像素点位置计算相应的行输出像素点的缩放参数以确定所述畸变相对系数。
8.一种水平畸变矫正装置,其特征在于,所述畸变矫正装置包括:
存储器,用于存储第一畸变强度参数和矫正前图像的行像素点数据,其中所述第一畸变强度参数为图像栅格模型中栅格的标定点畸变强度,所述标定点为所述栅格的中心点,所述标定点畸变强度通过简化标定方案标定得到,水平中心点畸变强度通过插值法计算得到,其中,所述简化标定方案包括:忽略垂直方向上的畸变而保留水平方向上的畸变,从而简化计算得到标定点处水平方向上的畸变强度值作为所述标定点畸变强度;
行畸变插值单元,获取所述第一畸变强度参数,并基于所述第一畸变强度参数进行插值计算得到第二畸变强度参数,其中所述第二畸变强度参数为所述行像素点所在栅格的水平中心点畸变强度;
步长及畸变相对系数计算单元,获取所述第二畸变强度参数,并基于所述第二畸变强度参数进行计算得到扫描步长和畸变相对系数;
行数据读写控制单元,获取所述扫描步长,并基于所述扫描步长控制读取所述矫正前图像的行像素点数据;
畸变矫正计算单元,基于所述行数据读写控制单元读取的所述矫正前图像的行像素点数据、以及所述扫描步长及畸变相对系数计算单元计算得到的畸变相对系数,计算并输出矫正后图像的行像素点数据,所述行像素点数据用于生成矫正后图像,其中所述矫正前图像的行像素点数据、所述矫正后图像的行像素点数据包括像素值。
9.根据权利要求8所述的装置,其特征在于,所述存储器包括:
畸变强度参数查找表存储器,用于保存所述第一畸变强度参数;以及
行图像数据缓冲存储器,用于保存所述矫正前图像的行像素点数据。
10.根据权利要求9所述的装置,其特征在于,所述畸变矫正装置进一步包括行畸变强度参数查找表存储器,用于存储所述行畸变插值单元输出的第二畸变强度参数,并且将所述第二畸变强度参数提供至所述步长及畸变相对系数计算单元。
11.根据权利要求10所述的装置,其特征在于,所述步长及畸变相对系数计算单元基于计算得到的所述步长的小数部分计算得到所述畸变相对系数;
所述行数据读写控制单元基于所述步长的整数部分控制读取所述矫正前图像的行像素点数据。
12.根据权利要求11所述的装置,其特征在于:所述畸变矫正装置进一步包括控制寄存器,用于从总线获取所述第一畸变强度参数并输出至所述畸变强度参数查找表存储器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010849707.5A CN111951193B (zh) | 2020-08-21 | 2020-08-21 | 图像的水平畸变矫正方法及水平畸变矫正装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010849707.5A CN111951193B (zh) | 2020-08-21 | 2020-08-21 | 图像的水平畸变矫正方法及水平畸变矫正装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111951193A CN111951193A (zh) | 2020-11-17 |
CN111951193B true CN111951193B (zh) | 2024-02-02 |
Family
ID=73358938
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010849707.5A Active CN111951193B (zh) | 2020-08-21 | 2020-08-21 | 图像的水平畸变矫正方法及水平畸变矫正装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111951193B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112489114B (zh) * | 2020-11-25 | 2024-05-10 | 深圳地平线机器人科技有限公司 | 图像转换方法、装置、计算机可读存储介质及电子设备 |
CN114648449A (zh) * | 2020-12-18 | 2022-06-21 | 华为技术有限公司 | 一种图像重映射方法以及图像处理装置 |
CN113962892A (zh) * | 2021-10-25 | 2022-01-21 | 上海闻泰信息技术有限公司 | 校正广角镜头图像畸变的方法、装置及照相设备 |
CN115017070A (zh) * | 2022-06-07 | 2022-09-06 | 青岛信芯微电子科技股份有限公司 | 图像矫正方法、图像矫正模块、激光投影设备及存储介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014086845A (ja) * | 2012-10-23 | 2014-05-12 | Fujitsu Semiconductor Ltd | 画像処理装置、撮像装置 |
CN105678682A (zh) * | 2016-01-08 | 2016-06-15 | 西安交通大学 | 一种基于fpga的二值图像连通区域信息快速获取系统及方法 |
WO2018086348A1 (zh) * | 2016-11-09 | 2018-05-17 | 人加智能机器人技术(北京)有限公司 | 双目立体视觉系统及深度测量方法 |
CN109600590A (zh) * | 2018-11-30 | 2019-04-09 | 歌尔股份有限公司 | 投影仪图像畸变的矫正方法、装置及介质 |
CN110060232A (zh) * | 2019-03-15 | 2019-07-26 | 深圳高速工程顾问有限公司 | 隧道裂缝识别方法、装置、计算机设备和存储介质 |
CN110087053A (zh) * | 2019-04-26 | 2019-08-02 | 上海交通大学 | 自动白平衡校正系统以及校正方法 |
CN110473159A (zh) * | 2019-08-20 | 2019-11-19 | Oppo广东移动通信有限公司 | 图像处理方法和装置、电子设备、计算机可读存储介质 |
CN110728638A (zh) * | 2019-09-25 | 2020-01-24 | 深圳疆程技术有限公司 | 一种图像的畸变矫正方法、车机及汽车 |
CN111325674A (zh) * | 2018-12-17 | 2020-06-23 | 北京京东尚科信息技术有限公司 | 图像处理方法、装置及设备 |
-
2020
- 2020-08-21 CN CN202010849707.5A patent/CN111951193B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014086845A (ja) * | 2012-10-23 | 2014-05-12 | Fujitsu Semiconductor Ltd | 画像処理装置、撮像装置 |
CN105678682A (zh) * | 2016-01-08 | 2016-06-15 | 西安交通大学 | 一种基于fpga的二值图像连通区域信息快速获取系统及方法 |
WO2018086348A1 (zh) * | 2016-11-09 | 2018-05-17 | 人加智能机器人技术(北京)有限公司 | 双目立体视觉系统及深度测量方法 |
CN109600590A (zh) * | 2018-11-30 | 2019-04-09 | 歌尔股份有限公司 | 投影仪图像畸变的矫正方法、装置及介质 |
CN111325674A (zh) * | 2018-12-17 | 2020-06-23 | 北京京东尚科信息技术有限公司 | 图像处理方法、装置及设备 |
CN110060232A (zh) * | 2019-03-15 | 2019-07-26 | 深圳高速工程顾问有限公司 | 隧道裂缝识别方法、装置、计算机设备和存储介质 |
CN110087053A (zh) * | 2019-04-26 | 2019-08-02 | 上海交通大学 | 自动白平衡校正系统以及校正方法 |
CN110473159A (zh) * | 2019-08-20 | 2019-11-19 | Oppo广东移动通信有限公司 | 图像处理方法和装置、电子设备、计算机可读存储介质 |
CN110728638A (zh) * | 2019-09-25 | 2020-01-24 | 深圳疆程技术有限公司 | 一种图像的畸变矫正方法、车机及汽车 |
Non-Patent Citations (2)
Title |
---|
基于单目视觉的足球机器人图像处理系统的畸变矫正研究;林金珠等;蚌埠学院学报;第7卷(第05期);第50-52、62页 * |
线扫描相机标定及畸变矫正方法;朱瑶等;航天返回与遥感;第38卷(第06期);第46-53页 * |
Also Published As
Publication number | Publication date |
---|---|
CN111951193A (zh) | 2020-11-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111951193B (zh) | 图像的水平畸变矫正方法及水平畸变矫正装置 | |
US11997397B2 (en) | Method, apparatus, and device for processing images, and storage medium | |
US9262807B2 (en) | Method and system for correcting a distorted input image | |
CN110276734B (zh) | 图像畸变校正方法和装置 | |
KR101017802B1 (ko) | 영상 왜곡 보정 | |
CN111083458B (zh) | 一种亮度校正方法、系统、设备及计算机可读存储介质 | |
CN110012224A (zh) | 摄像头防抖系统、方法、电子设备和计算机可读存储介质 | |
EP2881915A1 (en) | Techniques for disparity estimation using camera arrays for high dynamic range imaging | |
US12039767B2 (en) | Subject detection method and apparatus, electronic device, and computer-readable storage medium | |
CN108074237B (zh) | 图像清晰度检测方法、装置、存储介质及电子设备 | |
CN111652937B (zh) | 车载相机标定方法和装置 | |
CN109905594B (zh) | 提供图像的方法和用于支持该方法的电子装置 | |
CN116012242A (zh) | 一种相机畸变矫正效果评价方法、装置、介质及设备 | |
CN113052912A (zh) | 摄像机标定方法和装置 | |
CN110533577B (zh) | 鱼眼图像校正方法及装置 | |
US11948316B2 (en) | Camera module, imaging device, and image processing method using fixed geometric characteristics | |
CN109379521B (zh) | 摄像头标定方法、装置、计算机设备和存储介质 | |
CN115578466A (zh) | 相机标定方法、装置、计算机可读存储介质及电子设备 | |
CN113824894A (zh) | 曝光控制方法、装置、设备及存储介质 | |
KR20150019192A (ko) | Avm 시스템을 위한 영상 합성 장치 및 그 방법 | |
CN109584313B (zh) | 摄像头标定方法、装置、计算机设备和存储介质 | |
KR20120069543A (ko) | 화상 처리 장치, 화상 처리 방법 및 촬상 장치 | |
JPH1091790A (ja) | 三次元形状抽出方法及び装置並びに記憶媒体 | |
CN106023127B (zh) | 一种基于多帧的鱼眼视频校正方法 | |
CN110796596A (zh) | 图像拼接方法、成像装置及全景成像系统 |
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 |