CN118247186A - 图像畸变矫正方法、电子设备、存储介质及芯片 - Google Patents
图像畸变矫正方法、电子设备、存储介质及芯片 Download PDFInfo
- Publication number
- CN118247186A CN118247186A CN202410645594.5A CN202410645594A CN118247186A CN 118247186 A CN118247186 A CN 118247186A CN 202410645594 A CN202410645594 A CN 202410645594A CN 118247186 A CN118247186 A CN 118247186A
- Authority
- CN
- China
- Prior art keywords
- image
- distortion
- distorted
- training
- grid
- 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.)
- Pending
Links
- 238000012937 correction Methods 0.000 title claims abstract description 281
- 238000000034 method Methods 0.000 title claims abstract description 235
- 238000003860 storage Methods 0.000 title claims abstract description 13
- 238000012545 processing Methods 0.000 claims abstract description 125
- 238000000605 extraction Methods 0.000 claims abstract description 34
- 238000012549 training Methods 0.000 claims description 316
- 230000008569 process Effects 0.000 claims description 49
- 230000015654 memory Effects 0.000 claims description 34
- 238000004590 computer program Methods 0.000 claims description 15
- 230000004044 response Effects 0.000 claims description 6
- 210000001508 eye Anatomy 0.000 abstract description 18
- 230000006870 function Effects 0.000 description 40
- 238000010586 diagram Methods 0.000 description 33
- 238000007726 management method Methods 0.000 description 26
- 230000003287 optical effect Effects 0.000 description 25
- 238000004422 calculation algorithm Methods 0.000 description 20
- 239000013598 vector Substances 0.000 description 15
- 230000000694 effects Effects 0.000 description 12
- 238000003062 neural network model Methods 0.000 description 11
- 238000013527 convolutional neural network Methods 0.000 description 10
- 238000003384 imaging method Methods 0.000 description 9
- 230000008901 benefit Effects 0.000 description 7
- 241000226585 Antennaria plantaginifolia Species 0.000 description 6
- 241001465754 Metazoa Species 0.000 description 6
- 230000003190 augmentative effect Effects 0.000 description 6
- 238000001444 catalytic combustion detection Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 6
- 241000282326 Felis catus Species 0.000 description 5
- 238000013461 design Methods 0.000 description 5
- 230000001133 acceleration Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 4
- 210000003128 head Anatomy 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 238000005457 optimization Methods 0.000 description 4
- 241000282472 Canis lupus familiaris Species 0.000 description 3
- 210000000746 body region Anatomy 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000013135 deep learning Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 229920001621 AMOLED Polymers 0.000 description 2
- 240000000136 Scabiosa atropurpurea Species 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000012804 iterative process Methods 0.000 description 2
- 238000003672 processing method Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 241000023320 Luma <angiosperm> Species 0.000 description 1
- 238000010171 animal model Methods 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 210000000988 bone and bone Anatomy 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 239000013078 crystal Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001627 detrimental effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 210000005069 ears Anatomy 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 230000000704 physical effect Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 239000002096 quantum dot Substances 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 210000000697 sensory organ Anatomy 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Landscapes
- Image Processing (AREA)
Abstract
本申请公开了一种图像畸变矫正方法、电子设备、存储介质及芯片。该方法包括:通过去畸变模型对获取到的畸变图像进行特征提取处理,得到畸变图像的特征数据。通过去畸变模型采用畸变图像的特征数据对获取到的畸变图像的初始网格图像进行解码处理,得到畸变图像的畸变矫正网格图像,初始网格图像是根据畸变图像得到的。通过去畸变模型采用畸变矫正网格图像对畸变图像进行矫正处理,得到畸变矫正图像。由于畸变矫正网格图像是基于畸变图像的特征数据对初始网格图像进行矫正后得到的,即畸变矫正网格图像更加符合实际情况。基于畸变矫正网格图像对畸变图像进行矫正处理得到的畸变矫正图像的也更符合实际真实情况和人眼的美学,从而提升用户体验。
Description
技术领域
本申请涉及图像处理技术领域,更具体地,涉及一种图像畸变矫正方法、电子设备、存储介质及芯片。
背景技术
近年来,电子设备(例如手机或平板)的摄影功能已成为电子设备重要的功能之一。用户通过使用电子设备的广角镜头能够获得更大更多的现实场景信息,但是由于受到众多因素的影响,使得通过广角镜头拍摄的画面在成像过程中会发生一定程度的畸变,从而得到的图像畸变问题变得越来越显著,不符合人眼视觉,导致用户体验差。
畸变是对直线投影的一种偏移,即现实场景中的一条直线投影到图像上也应保持为一条直线,但是由于畸变的存在使得该一条直线投影到图像上不能保持为一条直线,即现实场景中的一条直线在图像中呈现为发生了不自然的变形或扭曲的曲线。例如,对于具有广角镜头的手机,能获取较大视场的图像,但也容易引入显著的图像畸变,比如所拍摄图像中位于图像外侧(即视场角度较大)的人像会呈现更大的变形失真。
因此,如何使得图像更符合实际情况成为亟需解决的问题。
发明内容
本申请提供了一种图像畸变矫正方法、电子设备、存储介质及芯片,使得电子设备拍摄得到的图像更符合实际情况,提升用户体验。
第一方面,本申请提供了一种图像畸变矫正方法,该方法包括:获取畸变图像和畸变图像的初始网格图像,其中,初始网格图像是根据畸变图像得到的网格图像;通过去畸变模型对畸变图像进行特征提取处理,得到畸变图像的特征数据;通过去畸变模型采用畸变图像的特征数据对初始网格图像进行解码处理,得到畸变图像的畸变矫正网格图像;通过去畸变模型采用畸变矫正网格图像对畸变图像进行矫正处理,得到畸变矫正图像。
图像畸变矫正方法可以应用于设置有去畸变模型的电子设备中。
畸变图像是指存在畸变的图像,对畸变图像包括的内容不作具体限定。例如,畸变图像可以包括至少一个拍摄对象,至少一个拍摄对象可以但不限是人物,动物或者建筑物等。
畸变矫正图像是对畸变图像进行畸变矫正处理后得到的图像,畸变矫正图像可以理解为是不存在畸变的图像。
去畸变模型可以理解为是通过训练得到的神经网络模型。
在上述技术方案中,电子设备利用去畸变模型对存在畸变的畸变图像进行特征提取得到畸变图像的特征数据。之后,电子设备利用去畸变模型对畸变图像的特征数据和畸变图像的初始网格图像进行解码处理得到畸变矫正网格图像,由于该畸变矫正网格图像是基于畸变图像的特征数据对初始网格图像进行矫正后的网格图像,所以该畸变矫正网格图像更加符合实际情况。此后,电子设备通过去畸变模型采用该畸变矫正网格图像对畸变图像进行矫正处理,得到的畸变矫正图像的也更加符合实际真实情况,以及符合人眼的美学,从而提升用户体验。
在一种可能的实现方式中,初始网格图像是对畸变图像进行网格化处理得到的网格图像。
对基于畸变图像得到初始网格图像的获取方法不作具体限定,例如可以基于相关技术中的方法对畸变图像处理以得到初始网格图像。
在上述技术方案中,电子设备获取的初始网格图像是直接对畸变图像进行网格化处理得到的网格图像,实现过程较为简单。
在另一种可能的实现方式中,初始网格图像是对初始畸变矫正图像进行网格化处理得到的网格图像,其中,初始畸变矫正图像是对畸变图像执行预设畸变矫正处理后得到的图像。
初始畸变矫正图像的畸变程度小于畸变图像的畸变程度。
预设畸变矫正处理可以理解为是相关技术中的畸变矫正方法,在本申请实施例中对相关技术中的畸变矫正方法不作具体限定。例如,相关技术中的畸变矫正方法可以但不限于是张正友相机标定方法等。
在上述技术方案中,初始网格图像是对畸变程度较小的初始畸变矫正图像进行处理得到的网格图像,之后,电子设备利用去畸变模型对畸变程度较小的初始网格图像和畸变图像进行处理,可以降低电子设备的计算量和使得去畸变模型快速收敛,从而提高图像畸变矫正的效率,更好的提升用户体验。
在另一种可能的实现方式中,畸变图像包括N个第一像素点,畸变矫正网格图像包括N个第二像素点,其中,N个第二像素点和N个第一像素点一一对应,N为正整数;通过去畸变模型采用畸变矫正网格图像对畸变图像进行矫正处理,得到畸变矫正图像,包括:通过去畸变模型,采用每个第二像素点的坐标值对对应的每个第一像素点的坐标值更新,以得到畸变矫正图像。
畸变图像包括的第一像素点的数量与畸变矫正网格图像包括的第二像素点的数量相同,可以理解为,畸变图像的尺寸和畸变矫正网格图像的尺寸相同。例如,畸变图像是(单位:像素)大小的图像,畸变矫正网格图像是/>(单位:像素)大小的网格图像。
可选的,畸变图像包括的第一像素点的数量可以大于N,畸变矫正网格图像包括的第二像素点的数据等于N,这种实现方式中,畸变图像包括的第一像素点的数量大于畸变矫正网格图像包括的第二像素点的数量,可以理解为,畸变图像的尺寸大于畸变矫正网格图像的尺寸。例如,畸变图像是(单位:像素)大小的图像,畸变矫正网格图像是(单位:像素)大小的图像。为便于描述,将这种实现方式中的畸变图像包括的第一像素点的数量记为H,此时,上述N个第一像素点是H个第一像素点中的N个第一像素点,H为大于N的正整数。
在上述技术方案中,电子设备利用畸变矫正处理后得到的畸变矫正网格图像对畸变图像进行矫正处理,可以有效去除畸变图像中的畸变,使得得到的畸变矫正图像更加符合实际真实情况,以及符合人眼的美学,从而提升用户体验。
在另一种可能的实现方式中,第二像素点的坐标值是对第二像素点关联的畸变矫正网格图像中的多个像素点的坐标值进行插值处理得到的。
对上述插值算法不作具体限定,可以根据需求或场景进行选取。例如插值算法可以但不限于是双线性内插值法或灰度插值法等。
在另一种可能的实现方式中,获取畸变图像,包括:对获取到的初始畸变图像进行缩放处理,得到畸变图像,其中,畸变图像的尺寸小于初始畸变图像的尺寸。
畸变图像保留了初始畸变图像的特征,且畸变图像的数据量小于初始畸变图像的数据量。例如,初始畸变图像是(单位:像素)大小的图像,畸变图像是/>(单位:像素)大小的图像。
对电子设备对初始畸变图像进行缩放处理的方法不作具体限定。例如,电子设备可以通过卷积神经网格对初始畸变图像进行缩放处理,其中,卷积神经网络和去畸变模型可以但不限于是两个独立模型。例如,电子设备还可以利用除去卷积神经网络以外的其他算法执行缩放处理。
在上述技术方案中,电子设备通过去畸变模型对数据量较小的畸变图像和该畸变图像的初始网格图像处理,可以降低计算量和使得去畸变模型快速收敛,从而提高图像畸变矫正的效率,更好的提升用户体验。
在另一种可能的实现方式中,在通过去畸变模型对畸变图像进行特征提取处理,得到畸变图像的特征数据之前,该方法还包括:获取至少一个训练样本对,其中,至少一个训练样本对包括作为训练数据的训练畸变图像和训练畸变图像的第一网格图像,以及作为标签数据的标签图像,第一网格图像是根据训练畸变图像得到的网格图像,标签图像是基于训练畸变图像得到的不存在畸变的图像;通过初始去畸变模型对训练畸变图像进行特征提取处理,得到训练畸变图像的特征数据;通过初始去畸变模型采用训练畸变图像的特征数据对训练畸变图像的第一网格图像进行解码处理,得到训练畸变图像的第二网格图像;通过初始去畸变模型采用训练畸变图像的第二网格图像对训练畸变图像进行矫正处理,得到训练畸变图像对应的畸变矫正图像;根据训练畸变图像对应的畸变矫正图像和标签图像之间的差异,调整初始去畸变模型的参数,以得到去畸变模型。
标签图像是基于训练畸变图像得到的不存在畸变的图像,对获取标签图像的方法不作具体限定。例如,可以利用图像处理软件对训练畸变图像(存在畸变)进行去畸变处理,以得到符合实际情况和人眼美学的图像,并将该符合实际情况和人眼美学的图像作为标签图像。
在另一种可能的实现方式中,第一网格图像是对训练畸变图像进行网格化处理得到的网格图像。
在另一种可能的实现方式中,第一网格图像是对初始训练畸变矫正图像进行网格化处理得到的网格图像,其中,初始训练畸变矫正图像是对训练畸变图像执行预设畸变矫正处理后得到的图像。
在另一种可能的实现方式中,初始去畸变模型包括初始编码器,初始解码器和输出层,以及;通过初始去畸变模型对训练畸变图像进行特征提取处理,得到训练畸变图像的特征数据,包括:通过初始编码器对训练畸变图像进行特征提取处理,得到训练畸变图像的特征数据;通过初始去畸变模型采用训练畸变图像的特征数据对训练畸变图像的第一网格图像进行解码处理,得到训练畸变图像的第二网格图像,包括:通过解码器对训练畸变图像的特征数据和训练畸变图像的第一网格图像进行解码处理,得到训练畸变图像的第二网格图像;通过初始去畸变模型采用训练畸变图像的第二网格图像对训练畸变图像进行矫正处理,得到训练畸变图像对应的畸变矫正图像,包括:通过输出层采用训练畸变图像的第二网格图像对训练畸变图像进行矫正处理,得到训练畸变图像对应的畸变矫正图像;根据训练畸变图像对应的畸变矫正图像和标签图像之间的差异,调整初始编码器的参数和初始解码器的参数,以得到去畸变模型。
在另一种可能的实现方式中,去畸变模型是生成式模型中的转换器模型。
去畸变模型是一种生成式模型,具体的,去畸变模型是转换器(transformer)模型。
上述技术方案中,去畸变模型是一种生成式模型,即该去畸变模型的核心思想是学习数据的分布,然后生成与实际数据相似的新数据(例如,如果我们有一堆猫的图片,生成式模型的目标是学习这些图片的特点,并生成新的猫的图片)。这种生成式模型的模型鲁棒性高,基于深度学习得到的该去畸变模型对畸变图像进行畸变矫正得到的畸变矫正图像更加符合实际真实情况,以及符合人眼的美学,从而提升用户体验。
在另一种可能的实现方式中,去畸变模型包括解码器,编码器和输出层,以及;通过去畸变模型对畸变图像进行特征提取处理,得到畸变图像的特征数据,包括:通过编码器对畸变图像进行特征提取处理,得到畸变图像的特征数据;通过去畸变模型采用畸变图像的特征数据对初始网格图像进行解码处理,得到畸变图像的畸变矫正网格图像,包括:通过解码器采用畸变图像的特征数据对初始网格图像进行解码处理,得到畸变矫正网格图像;通过去畸变模型采用畸变矫正网格图像对畸变图像进行矫正处理,得到畸变矫正图像,包括:通过输出层采用畸变矫正网格图像对畸变图像进行矫正处理,得到畸变矫正图像。
在另一种可能的实现方式中,应用于包括摄像头的电子设备,获取畸变图像,包括:显示拍摄界面;响应于针对拍摄界面的拍摄操作,通过摄像头获取畸变图像;在通过去畸变模型采用畸变矫正网格图像对畸变图像进行矫正处理,得到畸变矫正图像之后,方法还包括:显示包括畸变矫正图像的界面。
在上述技术方案中,电子设备通过摄像头获取畸变图像后,电子设备在后台自动地对该畸变图像执行图像畸变矫正处理,之后,电子设备自动地将得到的更符合实际真实情况和符合人眼的美学的畸变矫正图像呈现给用户,可以提升用户体验。
在另一种可能的实现方式中,应用于包括图库应用的电子设备,获取畸变图像,包括:显示图库应用的界面;响应于针对图库应用的界面中的畸变图像的选择操作,获取畸变图像;在通过去畸变模型采用畸变矫正网格图像对畸变图像进行矫正处理,得到畸变矫正图像之后,方法还包括:显示包括畸变矫正图像的界面。
可选的,上述图库应用还可以替换为电子设备中可以调用打开图像的其他应用。例如,该其他应用可以但不限于为聊天应用或图像编辑应用等。
在上述技术方案中,用户可以根据自身需求触发电子设备对该电子设备的图库应用中预先存储的图像执行畸变矫正处理,之后,电子设备自动地将得到的更符合实际真实情况和符合人眼的美学的畸变矫正图像呈现给用户,可以提升用户体验。
第二方面,本申请提供一种图像畸变矫正装置,该图像畸变矫正装置包括处理单元,该处理单元用于执行第一方面中任一种图像畸变矫正方法。
第三方面,本申请提供了一种电子设备,包括用于执行第一方面中任一种图像畸变矫正方法的单元。该电子设备可以是终端设备,也可以是终端设备内的芯片。该电子设备可以包括输入单元和处理单元。
当该电子设备是终端设备时,该处理单元可以是处理器,该输入单元可以是通信接口;该终端设备还可以包括存储器,该存储器用于存储计算机程序代码,当该处理器执行该存储器所存储的计算机程序代码时,使得该终端设备执行第一方面中的任一种图像畸变矫正方法。
当该电子设备是终端设备内的芯片时,该处理单元可以是芯片内部的处理单元,该输入单元可以是输出接口、管脚或电路等;该芯片还可以包括存储器,该存储器可以是该芯片内的存储器(例如,寄存器、缓存等),也可以是位于该芯片外部的存储器(例如,只读存储器、随机存取存储器等);该存储器用于存储计算机程序代码,当该处理器执行该存储器所存储的计算机程序代码时,使得该芯片执行第一方面中的任一种图像畸变矫正方法。
在一种可能的实现方式中,存储器用于存储计算机程序代码;处理器,处理器执行该存储器所存储的计算机程序代码,当该存储器存储的计算机程序代码被执行时,该处理器用于执行第一方面中的任一种图像畸变矫正方法。
第四方面,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序代码,当所述计算机程序代码被电子设备运行时,使得该电子设备执行第一方面中的任一种图像畸变矫正方法。
第五方面,本申请提供了一种计算机程序产品,所述计算机程序产品包括:计算机程序代码,当所述计算机程序代码被电子设备运行时,使得该电子设备执行第一方面中的任一种图像畸变矫正方法。
可以理解的是,上述第二方面至第五方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
应理解,本申请中对技术特征、技术方案、有益效果或类似语言的描述并不是暗示在任意的单个实施例中可以实现所有的特点和优点。相反,可以理解的是对于特征或有益效果的描述意味着在至少一个实施例中包括特定的技术特征、技术方案或有益效果。因此,本说明书中对于技术特征、技术方案或有益效果的描述并不一定是指相同的实施例。进而,还可以任何适当的方式组合本实施例中所描述的技术特征、技术方案和有益效果。本领域技术人员将会理解,无需特定实施例的一个或多个特定的技术特征、技术方案或有益效果即可实现实施例。在其他实施例中,还可在没有体现所有实施例的特定实施例中识别出额外的技术特征和有益效果。
附图说明
图1是本申请实施例提供的一种畸变图像和未畸变图像的示意图。
图2是本申请实施例提供的一种畸变图像和未畸变图像的示意图。
图3是本申请实施例提供的一种畸变图像的网格图像和未畸变图像的网格图像的示意图。
图4A是适用于本申请实施例提供的图像畸变矫正方法的一种应用场景的示意图。
图4B是适用于本申请实施例提供的图像畸变矫正方法的一种应用场景的示意图。
图5是电子设备执行本申请实施例提供的图像畸变矫正方法的一种用户界面的示意图。
图6是电子设备执行本申请实施例提供的图像畸变矫正方法的一种用户界面的示意图。
图7是本申请实施例提供的一种模型训练方法的原理示意图。
图8是本申请实施例提供的一种模型训练方法的示意图。
图9是本申请实施例提供的一种获取上述图8中的畸变图像A的网格图像A的方法的示意图。
图10是上述图8提供的模型训练方法训练的初始去畸变模型的结构的示意图。
图11是本申请实施例提供的一种图像畸变矫正方法的示意图。
图12是本申请实施例提供的一种图像畸变矫正方法的示意图。
图13是本申请实施例提供的一种图像畸变矫正装置的示意图。
图14是本申请实施例提供的一种电子设备100的软件***的示意图。
图15是本申请实施例提供的一种电子设备100的硬件结构的示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请说明书和权利要求书及附图说明中的术语“第一”、“第二”等是用于区别不同对象,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”特征可以明示或者隐含地包括一个或者更多个该特征。
在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
在本申请实施例中,“矫正”又称为“校正”,即“矫正”和“校正”具有相同含义,且表达相同意思。
首先对本申请实施例中涉及的相关术语进行简单介绍。
1,源图像
源图像是指电子设备(例如,手机或平板等)的摄像装置对该电子设备所处场景进行采集得到的原始图像。电子设备的摄像装置包括光学透镜模组和感光元件,以感光元件包括电荷耦合器件(charge coupled device,CCD)为例,在拍摄中,被摄景物的光线通过光学透镜模组聚焦并投射到CCD。CCD采用高感光度的半导体材料制成,通常包括许多感光单位,通常以百万像素为单位。当CCD表面受到光线照射时,每个感光单位会将电荷反映在组件上,从而能将光线转变成电信号。所有的感光单位所产生的信号加在一起构成了完整的电信号。之后CCD将电信号传递给ISP转换成数字图像信号。图像处理器(image signalprocessor, ISP)将数字图像信号输出到数字信号处理器(digital signal processing,DSP)加工处理。DSP将数字图像信号转换成标准的红绿蓝(red green blue,RGB),YUV(一种颜色编码方法)等格式的图像信号,其中,Y表示明亮度(luminance或luma),即灰阶值,U和V表示的是色度(chrominance或chroma),描述图像的色彩及饱和度。
由于光学透镜模组通常具有一定程度的光学畸变(例如,桶形畸变),这导致基于电子设备的摄像装置采集到的源图像的图像内容存在变形失真。
在本申请实施例中,源图像又可以称为“畸变图像”,下文中不再进行强调。
例如,图1中的(1)图,图1中的(3)图或图2中的(1)图示出的图像为源图像(畸变图像)的一个具体示例。
2,畸变和光学畸变
畸变是指光学***对物体所成的像相对于物体本身而言的失真程度。具体来说,现实场景中的一条直线投影到图像上也应保持为一条直线,但是由于畸变的存在使得该一条直线投影到图像上不能保持为一条直线,即现实场景中的一条直线在图像中呈现为发生了不自然的变形或扭曲的曲线。
光学畸变是指光学理论上计算所得到的变形度,其中,空间直线在具有光学畸变的图像中将变弯曲。光学畸变导致的失真对于照片的成像质量是非常不利的。由于光学畸变的存在,使得被拍摄景物在世界坐标系中的直线最终转化到图像像素坐标系后,可能呈现的是曲线。尤其是图像中越靠近图像边缘的位置,这种光学畸变对图像的扭曲就越明显,此外,广角摄像头相比普通摄像头而言,光学畸变更加显著。
当电子设备为手机、平板电脑、可穿戴设备等移动电子设备时,受镜片光学设计影响,光学透镜模组通常具有较大的光学畸变,这与移动电子设备的视场角有关,通常视场角越大,光学透镜模组的光学畸变越大。
光学畸变又可被称为图像畸变,透镜畸变,摄像畸变,相机畸变,镜头畸变等。光学畸变的类型主要包含径向畸变和切向畸变。
切向畸变通常是由于位于电子设备内的摄像装置在制造上的缺陷使得透镜本身与图像平面不平行而产生的。
径向畸变产生原因是光线在远离透镜中心的地方比靠近中心的地方更加弯曲。径向畸变具体主要包含桶形畸变和枕形畸变两种。示例性的,图3分别表示出了枕形畸变图像的网格图像(如图3中的(1)图),无畸变图像的网格图像(如图3中的(2)图),以及桶形畸变图像的网格图像(如图3中的(3)图)的对比示意图。
桶形畸变(barrel distortion)又可以称为桶形失真,是由镜头中透镜物理性能以及镜片组结构引起的成像画面呈桶形膨胀状的失真现象。通常地,在使用广角镜头或使用变焦镜头的广角端时,最容易察觉桶形失真现象。例如,使人变矮胖的哈哈镜成像是桶型畸变的一个比较形象的例子。
枕形畸变(pincushion distortion)又可以称为枕形失真,是由镜头引起的画面向中间“收缩”的失真现象。通常地,在使用长焦镜头或使用变焦镜头的长焦端时,最容易察觉枕形失真现象。特别是在使用焦距转换器后,枕形失真便很容易发生。例如,使人变瘦高的哈哈镜成像属于枕型畸变。
下面对本申请实施例提供的图像畸变矫正方法进行详细描述。
近年来,随着终端技术的发展,电子设备的各种功能不断地完善,人们的娱乐方式、沟通方式和工作方式等均发生了显著变化。以手机为例,手机的拍照功能在用户的日常使用中使用频率较高。例如,用户在出行的途中遇到美丽的风景、建筑时想要将其拍摄成图像以作留念。例如,用户在朋友聚会、家庭聚餐时想要通过手机拍照记录这些欢聚时刻。但是当用户使用手机进行拍照时,往往会因为把握不好拍照的角度或距离等,使得拍摄的照片质量不好。然而用户对自拍等的拍摄需求日益增长,用户希望拍摄出成像效果好的图像。
目前,在手机摄影中,人在透过镜头投影到成像平面过程中,会由于镜头模组的变形、透视投影等原因而产生变形,使得拍摄得到的图像存在一定程度的畸变,不符合人眼视觉,导致用户体验差。例如,在图1中的(1)图中,当拍摄的人距离镜头的距离较近时,拍摄得到的图像中的人像,会呈现鼻子大,脸长,耳朵小的变形。在图1中的(3)图中,当拍摄的人距离镜头的距离较远时,拍摄得到的图像中的人像会变得五官扁平。例如,在图2中的(1)图中,在自拍时,如果拍摄的人数较多,拍摄对象处于大视场角,拍摄得到的图像中的人像会呈现往边缘四角拉伸的变形(以下简称为广角变形)。此外,在拍摄的人距离镜头较近或者较远时,得到的图像中的人像会出现透视变形,例如图1中的(1)图和图1中的(3)图示出的人像。
因此,如何使得图像更符合实际真实情况和人眼视觉成为亟需解决的问题。
本申请实施例提供了一种图像畸变矫正方法、电子设备、存储介质及芯片。该方法包括:电子设备利用去畸变模型对存在畸变的畸变图像进行特征提取得到畸变图像的特征数据。之后,电子设备利用去畸变模型对畸变图像的特征数据和畸变图像的初始网格图像进行解码处理得到畸变矫正网格图像,由于该畸变矫正网格图像是基于畸变图像的特征数据对初始网格图像进行矫正后的网格图像,所以该畸变矫正网格图像更加符合实际情况。此后,电子设备通过去畸变模型采用该畸变矫正网格图像对畸变图像进行矫正处理,得到的畸变矫正图像的也更加符合实际真实情况,以及符合人眼的美学,从而提升用户体验。
本申请实施例提供的图像畸变矫正方法可以应用于手机、平板电脑、可穿戴设备(例如,智能手表)、音频设备(例如耳机或音箱等)、车载设备、增强现实(augmentedreality, AR)/虚拟现实(virtual reality, VR)设备、笔记本电脑、超级移动个人计算机(ultra-mobile personalcomputer, UMPC)、上网本及个人数字助理(personal digitalassistant, PDA)等电子设备上,本申请实施例对电子设备的具体类型不做任何限制。
下面,介绍本申请实施例提供的图像畸变矫正方法所适应的应用场景。应理解的是,下文中描述的应用场景一和应用场景二仅为示意并不对本申请实施例所适用的应用场景构成任何限定。
应用场景一,客户端对获取的畸变图像执行图像畸变矫正。
示例性的,图4A是适用于本申请实施例提供的图像畸变矫正方法的一种应用场景的示意图。示例性的,图4A示出的应用场景包括至少一个客户端400。
客户端400用于获取或采集畸变图像,并对该畸变图像执行本申请实施例提供的图像畸变矫正方法,从而得到畸变矫正图像,该畸变矫正图像是指不存在任何畸变的图像。应理解,对畸变图像进行矫正后得到的畸变矫正图像中包括的拍摄对象的类型与该畸变图像包括的拍摄对象的类型相同,区别在于,该拍摄对象的形状可能存在差异。
例如,客户端400中安装的相机对待拍摄人物进行拍摄,得到存在畸变的畸变图像。又如,客户端400从本地存储的视频流中获取畸变图像,其中,该畸变图像是该视频流中的一帧图像。再如,客户端400从本地图库应用中存储的图像中获取畸变图像,其中,该畸变图像是该图库应用中存储的一张图像。
上述客户端400可以是平板电脑、可穿戴设备(例如,智能手表)、智能手机、游戏主机、台式计算机、电子书阅读器、增强现实(augmented reality, AR)/虚拟现实(virtualreality, VR)设备、超级移动个人计算机(ultra-mobile personal computer, UMPC)、个人数字助理(personal digital assistant, PDA)、车载设备和膝上型便携计算机中的至少一种。应理解,上述图4A示出的客户端400可以泛指多个终端中的一个,或者多个终端组成的集合,在本申请实施例中对此不作具体限定。
应用场景二,服务端对客户端采集到的畸变图像执行图像畸变矫正。
示例性的,图4B是适用于本申请实施例提供的图像畸变矫正方法的一种应用场景的示意图。示例性的,图4B示出的应用场景包括至少一个客户端410和至少一个服务端420,其中,每个客户端410通过无线网络或者有线网络与每个服务端420连接。
客户端410用于获取畸变图像,以及将获取的畸变图像传输给服务端420,以使得服务端420接收到该畸变图像后,对该畸变图像执行本申请实施例提供的图像畸变矫正方法,得到畸变矫正图像。之后,服务端420将得到的畸变矫正图像返回给客户端410,客户端410获得畸变矫正图像后可以通过用户界面向用户展示该畸变矫正图像。
上述客户端410可以是平板电脑、可穿戴设备(例如,智能手表)、智能手机、游戏主机、台式计算机、电子书阅读器、增强现实(augmented reality, AR)/虚拟现实(virtualreality, VR)设备、超级移动个人计算机(ultra-mobile personal computer, UMPC)、个人数字助理(personal digital assistant, PDA)、车载设备和膝上型便携计算机中的至少一种。应理解,上述图4B示出的客户端410可以泛指多个终端中的一个,或者多个终端组成的集合,在本申请实施例中对此不作具体限定。
服务端420用于从客户端410获取畸变图像,并对该畸变图像执行本申请提供的像畸变矫正方法,以得到畸变矫正图像。之后,服务端420可以将得到的图像畸变矫正图像发送给客户端410。相应的,客户端410获得畸变矫正图像后可以通过用户界面向用户展示该畸变矫正图像。
上述服务端420可以是一台计算设备、多台计算设备、云计算平台和虚拟化中心中的至少一种,在本申请实施例中对此不作具体限定。
应理解,上述图4A和图4B示出的应用场景仅为示意,并不对适用于本申请实施例提供的图像畸变矫正方法的应用场景构成任何限定。可选的,上述图4A示出的应用场景还可以包括更多数目的客户端400。可选的,上述图4B示出的应用场景还可以包括更多数目的服务端420和更多数目的客户端410。
下面以上述图4A示出的应用场景为例,以作为客户端的手机执行本申请实施例提供的图像畸变矫正方法为例,描述该手机的用户界面的变化过程。
作为一个示例,响应于用户作用于手机的相机应用,调用本申请提供的图像畸变矫正方法对手机拍摄得到的畸变图像进行畸变矫正处理(即去畸变处理),这种应用场景中,用户对手机执行畸变矫正处理的过程可以是不感知的。用户作用于手机的相机应用,例如,用于通过手指点击手机的相机应用,或通过语音方式向手机发送打开相机应用的指令。
例如,以图5中的(1)图为例,手机的桌面S1显示有多个应用程序中每个应用程序的应用图标,该多个应用图像包括相机应用的应用图标10。在用户触发桌面S1中的相机应用的应用图标10后,手机显示图5中的(2)图示出的拍摄界面S2,拍摄界面S2中显示有被拍摄的人物。响应于用户触发拍摄界面S2中的摄像控件20,之后,手机可以对被拍摄对象进行拍摄,由于手机可以执行本申请实施例提供的图像畸变矫正方法,用户在使用手机的前置摄像头进行拍照时,无论拍摄的距离远近、视场角的大小,手机均能对拍摄得到的图像中存在的透视变形和广角变形进行矫正,最终以得到如图5中的(3)图示出的畸变矫正图像(没有畸变的图像)。可以理解的是,在本申请中,畸变矫正图像是更加接近用户真实状态的图像,畸变图像可以是存在透视变形或广角变形的图像,下文中不再进行强调。
需说明的是,本申请提供的图像畸变矫正方法并不局限于对手机的前置摄像头拍摄的图像进行畸变矫正处理。可选的,用户使用手机进行拍照时,手机还可以启动后置摄像头,通过后置摄像头对用户和其所处的环境进行拍摄。手机同样能够使用本申请提供的图像畸变矫正方法对用户通过后置摄像头拍摄的图像中存在的畸变进行畸变矫正处理,得到畸变矫正图像。
作为另一个示例,手机的图库应用中保存至少一张畸变图像,手机利用本申请实施例提供的图像畸变矫正方法对图库应用中保持的至少一张畸变图像进行畸变矫正处理。
例如,以图6中的(1)图为例,手机的桌面S4上显示有多个应用程序一一对应的多个应用图标,该多个应用图像包括图库应用的应用图标40。当用户作用于桌面S4中的图库应用的应用图标40,例如,用户通过手指点击图库应用的应用图标40,或用户通过语音的方式向手机发送打开图库应用的命令时,手机检测到针对图库应用的应用图标40的点击操作或接收到打开图库应用的命令,打开图库应用,显示出图库应用中保存的图像,请参见图6中的(2)图示出的图库界面S5,图库界面S5中包括4张图像,该4张图像中包括一名男性的畸变图像50,畸变图像50的人像呈现出较为不协调的状态,其脸部中心区域(以鼻子为轴)呈现膨胀的状态,尤以中心点鼻子最为显著(鼻子明显过大),脸型也会随之变形(脸型细长)。在用户选择图库界面S5中的畸变图像50后,手机显示如图6中的(3)图示出的用户界面S6,用户界面S6中包括有编辑控件60。在用户需要对用户界面S6中的畸变图像进行编辑的情况下,用户可以主动对编辑控件60执行触摸操作,使得手机显示如图6中的(4)示出的用户界面S7,用户界面S7中包括多个功能控件,该多个功能控件包括文字控件,滤镜控件,去畸变控件71和裁剪控件。在用户需要对用户界面S7中的畸变图像进行去畸变处理的情况下,用户可以主动对去畸变控件71执行触摸操作,使得手机对该畸变图像执行本申请实施例提供的图像畸变矫正方法,之后手机显示如图6中的(5)图示出的包括畸变矫正图像的用户界面S8,用户界面S8中的图像是对用户界面S7中的图像执行图像畸变矫正方法后得到的图像。如图6中的(5)图所示,用户界面S8还可以包括保存控件81,用户对保存控件81执行触摸操作后,可以将用户界面S8中的畸变矫正图像存储至手机的图库中。
需说明的是,本申请实施例提供的图像畸变矫正方法,包括但不限于对人像出现的畸变(透视变形和广角变形)进行畸变矫正处理,本申请实施例提供的图像畸变矫正方法还可以对立体感强的动物(例如猫和/或狗等动物),物体(例如人像模型和/或动物模型)和建筑物等其他对象产生的畸变进行畸变矫正处理。
本申请提供的图像畸变矫正方法中涉及电子设备调用去畸变模型对畸变图像进行去畸变处理的步骤。下面,结合图7示出的模型训练的工作原理和图8示出的模型训练方法,描述本申请实施例提供的图像畸变矫正方法中涉及的去畸变模型的模型训练方法。需要说明的是,去畸变模型的应用将在下文中进一步进行介绍。
图8是本申请实施例提供的一种模型训练方法的示意图。本申请实施例提供的模型训练方法可以由电子设备来执行。可以理解的是,该电子设备可以实现为软件、或者软件和硬件的组合。示例性的,本申请实施例中的电子设备可以但不限于是图4A示出的客户端400,图4B示出的服务端420,或者图15示出的电子设备100。为便于描述,下文以电子设备A执行本申请实施例提供的方法为例进行介绍。示例性的,如图8所示,本申请实施例提供的模型训练方法包括步骤S810至步骤S850。下面对步骤S810至步骤S850进行详细介绍。
在步骤S810中,电子设备A获取训练数据集,其中,训练数据集包括一个或多个训练样本对,每个训练样本对包括作为训练图像的畸变图像A和畸变图像A的网格图像A,以及作为标签图像的未畸变图像A。
上述步骤S810中,训练数据集中的每个训练样本是以样本对的形式呈现,即每个训练样本包括训练图像和标签图像,其中,训练图像包括畸变图像A和畸变图像A的网格图像A,标签图像是未畸变图像A。应理解,未畸变图像A不存在畸变,且未畸变图像A是畸变图像A的矫正图像。也就是说,未畸变图像A包括的对象和畸变图像A包括的对象相同,区别在于,这两个图像包括的同一对象的形状可能不同,例如未畸变图像A中包括的对象1的形状未畸变,畸变图像A中包括的对象1的形状发生拉长的畸变。
示例性的,未畸变图像A可以是图1中的(2)图示出的未畸变图像,畸变图像A可以是图1中的(1)图示出的畸变图像或图1中的(3)图示出的畸变图像。例如,未畸变图像A可以是图2中的(2)图示出的未畸变图像,畸变图像A可以是图2中的(1)图示出的畸变图像。
可选的,在电子设备A获取训练数据集之前,电子设备A还可以执行获取畸变图像A的步骤。在本申请实施例中,对电子设备A获取畸变图像A的方式不作具体限定,可以根据实际情况确定。例如,电子设备A可以对待拍摄对象进行拍摄,得到畸变图像A。例如,电子设备A可以从视频流中获取畸变图像A,其中,该畸变图像A是该视频流中的一帧图像。
可选的,在电子设备A获取训练数据集之前,电子设备A还可以执行获取未畸变图像A的步骤。在本申请实施例中,对电子设备A获取未畸变图像A的方式不作具体限定,可以根据实际情况确定。例如,电子设备A可以利用图像处理软件对采集到的畸变图像A进行调整,以得到不存在畸变的畸变图像A(即未畸变图像A)。
训练数据集包括一个或多个训练样本对,训练数据集包括的训练样本对的数量可以根据实际需求设置,对此不作具体限定。当训练数据集包括多个训练样本对时,该多个训练样本对可以相同或不同,对此不作具体限定。例如,训练数据集可以但不限于包括1,2,5,10或20个训练样本对。
在一个示例中,两个训练样本对不同是指这两个训练样本对对应的两个畸变图像A不同,这两个训练样本对对应的两个畸变图像A的网格图像A不同,且这两个训练样本对对应的两个标签图像不同。例如,训练数据集包括训练样本对1和训练样本对2,训练样本对1中的训练图像是图1中的(1)图示出的畸变图像,训练样本对1中的标签图像是图1中的(2)图示出的未畸变图像;训练样本对2中的训练图像是图2中的(1)图示出的畸变图像,训练样本对2中的标签图像是图1中的(2)图示出的未畸变图像。
在另一个示例中,两个训练样本对不同是指这两个训练样本对对应的两个畸变图像A相同,这两个训练样本对对应的两个畸变图像A的网格图像A不同,且这两个训练样本对对应的两个标签图像相同。
应理解的是,上述两个训练样本对不同的举例仅为示意,并不构成任何限定。在本申请实施例中,当两个训练样本对对应的内容(训练图像和/或标签图像)存在差异,即可以认为这两个训练样本对是两个不同的训练样本对。当两个训练样本对对应的内容(训练图像和/或标签图像)不存在差异,即可以认为这两个训练样本对是同一个训练样本对。
下面介绍本申请实施例提供的电子设备A获取每个训练样本对中的畸变图像A的网格图像A的两种实现方式(即实现方式一和实现方式二)。应理解,下文描述的两种实现方式仅为示意,并不对本申请实施例中涉及的畸变图像A的网格图像A的获取方式构成任何限定。
实现方式一
在实现方式一中,训练数据集中的每个训练样本对包括作为训练图像的畸变图像是电子设备采集到得到的畸变图像A,且该畸变图像A是电子设备采集后未经过畸变处理的图像。基于此,每个训练样本对包括的作为训练图像的畸变图像A的网格图像A是畸变图像A的网格图像。
在本申请实施例中,电子设备A通过对畸变图像A进行图像网格化处理,可以得到畸变图像A的网格图像,图像网格化是一种将连续的图像转换为由离散的网格组成的图像的过程。对图像网格化处理的方法不作具体限定。例如,电子设备A可以采用现有技术中的网格化处理方法。例如,电子设备A对畸变图像A进行网格化处理后,得到的畸变图像A的网格图像是由多个多边形网格构成的图像,该多边形的形状可以跟实际需求进行设置,对此不作具体限定。例如,该多边形可以但不限于是三角形或四边形等。
示例性的,在畸变图像A仅包括人脸的情况下,电子设备A可以对畸变图像A中的人脸的区域进行特征提取,得到人脸特征点;电子设备A基于人脸特征点和人脸的面部约束,以得到畸变图像A的网格图像A。
实现方式二
在实现方式二中,训练数据集中的每个训练样本对包括作为训练图像的畸变图像是对电子设备采集到的畸变图像A执行去畸变处理后得到的畸变矫正图像A’,每个训练样本对包括的作为训练图像的畸变图像A的网格图像A是畸变矫正图像A’的网格图像,其中,畸变矫正图像A’是存在畸变的图像,畸变矫正图像A’的畸变程度可以小于畸变图像A的畸变程度。应理解,实际应用中,由于对畸变图像A进行去畸变处理的算法(简称为传统去畸变处理算法)准确度较低,导致得到的畸变矫正图像A’仍然存在一些畸变。
在本申请实施例中,对传统去畸变处理算法不作具体限定,即传统去畸变处理算法可以采用现有技术提供的畸变处理算法。
示例性的,图9示出了电子设备A基于采集到的畸变图像A得到畸变图像A的网格图像A的原理图。如图9所示,电子设备A的摄像头对人物面部进行拍摄获取畸变图像A后,可以根据该畸变图像A的图像大小执行初始化网格处理的流程,以得到图9示出的畸变图像A的初始网格图像,其中,该初始化网格图像包括多个网格单元,该多个网格单元的大小相同,一个网格单元可以如图9的箭头指出的单元。初始化网格图像的图像大小和畸变图像A的图像大小相同。对初始化网格图像中的网格单元的大小不作具体限定,可以由用户自定义设置。例如,初始化网格图像中的网格单元的可以是(单位:像素)大小的正方形。之后,电子设备A根据畸变图像A和畸变图像A的初始网格图像进行球面投影处理,以得到图9示出的网格图像A’。可选的,上述球面投影还可以替换为其他投影方法,其他投影方法可以根据畸变图像A中包括的拍摄对象进行设置,对此不作具体限定。例如,电子设备A可以使用球面投影算法来处理人像的头部区域,使用墨卡托算法来处理身体区域而呈现不同变形量,这样使得畸变图像中的人像的头部区域的拉伸变形和身体区域的拉伸变形分别得到矫正。之后,电子设备A对前述步骤得到的输出网格图像A’进行网格优化处理,网格优化处理主要基于预设的约束条件对网格图像A’进行调整,以使得基于网格优化处理后得到的网格图像A更符合人眼视觉。预设的约束条件包括人像约束条件和背景约束条件,其中,人像约束条件可以包括人像的头部区域和/或人像的身体区域。
可选的,在本申请实施例中,电子设备A获取畸变图像A后,电子设备A可以先对畸变图像A进行数据缩放处理,使得缩放处理后的畸变图像A的数据量变小。这种实现方式中,电子设备A用于训练初始去畸变模型的每个训练样本对包括作为训练图像的缩放处理后的畸变图像A和缩放处理后的畸变图像A的网格图像,以及作为训练标签的缩放处理后的未畸变图像A。这种实现方式中,有利于初始去畸变模型快速收敛,提高模型训练效率。
对电子设备A执行数据缩放处理的方法不作具体限定,可以根据实际情况设置。
在一些实现方式中,电子设备A可以利用图7中的虚线示出卷积神经网络(convolutional neural networks, CNN)对畸变图像A进行数据缩放处理,这样,在缩放处理后的畸变图像A的数据量的情况下,还能使得缩放处理后的畸变图像A中尽可能保留畸变图像A的图像特征,有利于提高模型的准确度。例如,畸变图像A是(单位:像素)大小的图像,缩放处理后的畸变图像A是/>(单位:像素)大小的图像。
可选的,上述数据缩放处理还可以为除去CNN以外的其他方法,例如其他方法可以但不限于是双线性内插值法或灰度插值法等。
在步骤S820中,电子设备A利用初始去畸变模型中的初始编码器对每个训练样本中的畸变图像A进行特征提取处理,得到每个训练样本中的畸变图像A的特征图。
初始编码器具有特征提取功能,用于对输入的畸变图像A进行特征提取以提取出畸变图像A的特征,从而得到畸变图像A的特征图。应理解,电子设备A根据畸变图像A的特征图可以通过解码处理还原出畸变图像A。例如,当畸变图像A包括人物对象1和人物对象2时,该畸变图像A的特征图包括畸变图像A包括的人物对象1的特征信息和人物对象2的特征信息。
畸变图像A的特征图还可以称为畸变图像A的特征图像或畸变图像A的特征数据。
在本申请实施例中,对初始去畸变模型中的初始编码器的结构不作具体限定,可以根据实际情况进行设置。
在一些实现方式中,上述初始去畸变模型中的初始编码器可以是transformer模型中的编码器(encoder)。
示例性的,初始去畸变模型中的初始编码器的结构可以参见图10示出的编码器。请参见图10,在电子设备A将畸变图像A输入至编码器的嵌入层(embedding)之前,可以先将畸变图像A切分为长度为P的图像块(patch),即每个patch可以看做是词(word)。应理解,patch是畸变图像A的一个子区域,patch可以是正方形或矩形,并且patch具有固定的尺寸。之后,电子设备A对各个分词(即每个patch)进行词嵌入处理(embedding),得到畸变图像A对应的词向量序列,该词向量序列可以作为初始去畸变模型中初始编码器的输入。该词向量序列还可以先经过位置编码处理,将词向量序列中各个词的位置信息加入该词向量序列中,具体操作可以参见相关技术中transformer模型的介绍,此处不再赘述。编码器包括M(M为正整数,例如M=4)层,每层包括两个子层,第一个是多头注意力层(multi-headattention),该层利用自注意力机制(self-attention)对词向量序列进行处理,以便学习词向量序列内部的关系,也即畸变图像A中词(即patch)与词(即patch)之间的关系。第二个是前向反馈(feed forward)层,该层为简单的全连接网络。编码器的各个子层(例如,多头注意力层和前向反馈层)之间均使用了残差连接(Add&Norm)层。编码器中第一层的输出作为第二层的输入,第二层进行类似的处理之后,继续输入至下一层,以此类推。
在步骤S830中,电子设备A利用初始去畸变模型中的初始解码器对每个训练样本中的畸变图像A的特征图和每个训练样本中的畸变图像A的网格图像A进行解码处理,得到每个训练样本中的畸变图像A的网格图像B。
初始解码器用于对从初始解码器输出的畸变图像A的特征图和输入至初始去畸变模型的畸变图像A进行解码处理,以得到预测的畸变图像A的畸变矫正网格图像,简记为网格图像B。
在本申请实施例中,对初始解码器的结构不作具体限定,可以根据实际情况进行设置。
在一些实现方式中,当上述初始去畸变模型中的初始编码器是transformer模型中的编码器(encoder)时,初始去畸变模型中的初始解码器可以是transformer模型中的解码器(decoder)。
示例性的,初始去畸变模型中初始解码器的结构可以参见图10示出的解码器。如图10所示,解码器包括M(例如M=4)层,每层包括三个子层,第一个子层是掩膜多头自注意力层,该层利用自注意力机制(self-attention)对输入的词向量序列进行处理,以便学习词向量序列内部的关系,也即畸变图像A的网格图像A中词与词之间的关系,其中,该词向量序列是对畸变图像A的网格图像A进行图像分块处理后的图像块(patch)进行词嵌入处理得到的词向量序列。由于本申请实施例中初始去畸变模型的训练任务是学习畸变图像A和畸变图像A的网格图像A之间的关系,因此本解码器对输入的网格图像A中的部分词进行随机掩码(random mask)后,进行自注意力机制处理。随机掩码可以是对根据网格图像A获得的词向量序列中预定比例的词向量进行mask操作,之后再由解码器的第一个子层(也即多头自注意力层)进行处理。第二个子层是对编码器的输出和第一个子层的输出进行注意力计算。第三个子层是全连接层。解码器中的上述每个子层之间均使用了残差连接。如图10所示,编码器的每一层输出对应输入至解码器的对应层中,并且由解码器的对应层对其进行注意力机制处理,也就是说编码器的第一层的输出对应输入至解码器的第一层,编码器的第二层的输出对应输入至解码器的第二层,编码器的第m(m=1,2,…,M)层的输出对应输入至解码器的第m层。解码器的第m层的输出经过一个全连接层(linear)后经过多分类函数softmax计算得到畸变图像A中每个词(即每个patch)被转换为网格图像A中对应词(即每个patch)的概率,从而得到网格图像B。
在步骤S840中,电子设备A利用初始去畸变模型的输出层根据每个训练样本中的畸变图像A的网格图像B和每个训练样本中的畸变图像A,以得到每个训练样本中的畸变图像A对应的畸变矫正图像A。
上述步骤S840中,针对每个训练样本对,电子设备A根据每个训练样本对中的畸变图像A,以及初始去畸变模型的解码器预测得到的网格图像B通过插值处理的方法,可以还原出畸变矫正图像A,该畸变矫正图像A更符合实际真实情况。应理解,畸变矫正图像A是初始去畸变模型对畸变图像A和畸变图像A的网格图像A进行处理后,得到的预测的畸变矫正图像。
在本申请实施例中,畸变矫正图像A是不存在畸变的图像,即畸变矫正图像A的畸变程度小于畸变图像A的畸变程度。
在一些实现方式中,畸变图像A包括N个像素点#1,畸变图像A的网格图像B包括N个像素点#2,其中,N个像素点#2和N个像素点#1一一对应,N为正整数;上述电子设备A利用初始去畸变模型的输出层根据每个训练样本中的畸变图像A的网格图像B和每个训练样本中的畸变图像A,以得到每个训练样本中的畸变图像A对应的畸变矫正图像A,包括:电子设备A利用输出层采用每个像素点#2的坐标值对对应的每个像素点#1的坐标值更新,以得到畸变矫正图像A。
N为正整数,N的取值可以但不限于是预设的数值,例如N可以但不限于等于50。
上述像素点#2的坐标值是对像素点#2关联的畸变矫正网格图像中的多个像素点的坐标值进行插值处理得到的。
需说明的是,上述实现方式中以电子设备A利用的插值处理的算法为双线性插值(bilinear interpolation)为例进行描述。可选的,上述插值处理的算法还可以为其他插值算法,例如其他插值算法可以但不限于是最近邻(nearest interpolation)插值算法或者三次多项式插值算法等。
在步骤S850中,电子设备A根据每个训练样本中的畸变图像A对应的预测的畸变矫正图像A和每个训练样本中的标签图像之间的差异,调整初始去畸变模型的参数,以得到去畸变模型。
上述步骤S850中,电子设备A调整初始去畸变模型的参数可以理解为是电子设备A调整初始去畸变模型的权重(weights)。初始去畸变模型的参数包括初始解码器的参数和初始编码器的参数。
在本申请实施例中,电子设备A根据每个训练样本中的畸变图像A对应的预测的畸变矫正图像A和每个训练样本中的标签图像之间的差异,调整初始去畸变模型的参数,以得到去畸变模型,可以包括以下步骤:电子设备A根据每个训练样本中的畸变图像A对应的预测的畸变矫正图像A和每个训练样本中的标签图像之间的差异,确定损失值#1;电子设备A根据损失值#1对初始编码器的参数和初始解码器的参数进行调整,直到满足预设训练条件,结束模型训练,得到训练好的去畸变模型。
上述实现方式中,电子设备A根据每个训练样本中的畸变图像A对应的预测的畸变矫正图像A和每个训练样本中的标签图像之间的差异,调整初始去畸变模型的参数,以得到去畸变模型的模型训练过程可以包括K次迭代过程,每次迭代过程中,电子设备A可以根据每个训练样本中的畸变图像A对应的预测的畸变矫正图像A和每个训练样本中的标签图像之间的差异,调整初始去畸变模型的参数;电子设备A将最后一次迭代处理得到初始去畸变模型确定为去畸变模型,K为正整数。每次迭代时,电子设备A可以对训练数据集中的K次迭代过程和K批训练样本对一一对应,每次迭代时电子设备A所利用的训练样本对包括对应的批的训练样本对,K批训练样本对是将训练数据集中的训练样本对划分后得到的,对每批训练样本对包括的训练样本对的数量不作限定,可以根据实际情况设置。
上述预设训练条件可以是预先定义好的条件,对预设训练条件不作具体限定,可以根据实际情况进行设置。例如,预设训练条件可以但不限于为以下至少一种条件:损失函数的损失值小于或等于预设阈值,当前的迭代次数满足预设迭代次数的要求,或者用户主动触发结束当前迭代过程或者当前的模型训练时间满足预设的训练时长要求。
在训练神经网络模型的过程中,因为神经网络模型的输出尽可能的接近真正想要预测的值,所以可以通过比较当前网络的预测值和真正想要的目标值,再根据两者之间的差异情况来更新每一层神经网络的权重向量(当然,在第一次更新之前通常会有初始化的过程,即为神经网络模型中的各层预先配置参数),比如,如果模型的预测值高了,就调整权重向量让它预测低一些,不断地调整,直到神经网络模型能够预测出真正想要的目标值或与真正想要的目标值非常接近的值。因此,就需要预先定义“如何比较预测值和目标值之间的差异”,这便是损失函数(loss function)或目标函数(objective function),它们是用于衡量预测值和目标值的差异的重要方程。其中,以损失函数举例,损失函数的输出值即损失值(loss)越高表示差异越大,那么神经网络模型的训练就变成了尽可能缩小这个loss的过程。在本申请实施例中对损失函数不作具体限定,可以根据用户需求进行选择。例如,损失函数可以但不限于是均方误差(mean square error, MSE)损失函数或者平均绝对误差(mean absolute error, MAE)损失函数。
示例性的,以上述损失值#1是通过MSE损失函数计算获得的为例,该损失值#1可以通过以下公式表示:
在上述公式中,MSE表示损失值#1,表示每个训练样本中的畸变图像A对应的预测的畸变矫正图像A,/>表示每个训练样本中的标签图像,/>表示每个训练样本中的畸变图像A对应的预测的畸变矫正图像A和每个训练样本中的标签图像之间的差异。
上述步骤S850中,电子设备A根据得到的损失值#1对初始解码器的参数和初始编码器的参数进行调整,是为了使得该损失值#1尽可能的小,以更好的满足图像畸变矫正的要求。
应理解,上述图8示出的模型训练方法仅为示意,并不对本申请实施例提供的图像畸变矫正方法中涉及的去畸变模型的训练方法构成任何限定。
在本申请实施例中,电子设备首先通过初始去畸变模型中的初始编码器对畸变图像A进行特征提取,得到畸变图像A的特征图。其次,电子设备通过初始去畸变模型中的初始解码器根据畸变图像A的特征图和畸变图像A的网格图像A进行解码处理,得到调整后的网格图像B。然后,通过初始去畸变模型中的初始输出层根据调整后的网格图像B和畸变图像A得到预测的畸变矫正图像A。之后,电子设备根据预测畸变矫正图像A和畸变图像A对应的标签图像(即不存在畸变的畸变图像A)的差异调整初始解码器的参数和初始编码器的参数,从而得到训练好的去畸变模型。通过这种训练方法得到的去畸变模型的编码器的编码能力和解码器的解码能力得到提升,使得去畸变模型的具有较强的畸变矫正能力。进一步,电子设备利用该去畸变模型对畸变图像进行图像畸变矫正处理后,得到的畸变矫正图像更符合实际情况,从而提升用户体验。
与图8提供的模型训练方法相对应的,图11是本申请实施例提供的一种图像畸变矫正方法的示意图,该图像畸变矫正方法是图8示出的模型训练方法得到的去畸变模型的推理过程。本申请实施例提供的图像畸变矫正方法可以由电子设备来执行。可以理解的是,该电子设备可以实现为软件、或者软件和硬件的组合。示例性的,本申请实施例中的电子设备可以但不限于是图4A示出的客户端400,图4B示出的服务端420,或者图15示出的电子设备100。为便于描述,下文以电子设备A执行本申请实施例提供的方法为例进行介绍。
示例性的,如图11所示,本申请实施例提供的图像畸变矫正方法包括步骤S1110至步骤S1140。下面对步骤S1110至步骤S1140进行详细介绍。
在步骤S1110中,电子设备A获取图像1和图像1的网格图像1。
图像1是包括至少一个拍摄对象的畸变图像,至少一个拍摄对象可以但不限于是人物,动物,物体,风景或者建筑物等。
在本申请实施例中,对电子设备A获取图像1的获取方式不作具体限定,可以根据实际情况设置。
在一些实现方式中,图像1可以是电子设备A采集得到的源图像,其中,源图像可以是指存在畸变的畸变图像。例如,图像1可以但不限于是图1中的(1)图,或者图2中的(1)图示出的畸变图像。例如,图像1还可以是包括建筑物的畸变图像。例如,图像1还可以是包括动物(例如,狗或猫等)的畸变图像。
在另一些实现方式中,图像1可以是对电子设备A采集得到的源图像进行缩放处理后得到的图像,图像1的尺寸小于源图像的尺寸。
图像1的网格图像1是根据图像1得到的网格图像。
在一些实现方式中,网格图像1是对图像1进行网格化处理得到的网格图像。
在另一些实现方式中,网格图像1是对初始畸变矫正图像1进行网格化处理得到的网格图像,初始畸变矫正图像1是对图像1执行预设畸变矫正处理后得到的图像。
电子设备A获取图像1的网格图像1的方法可以参见上文图8提供的模型训练方法中步骤S810中实现方式一或实现方式二的描述,此处不再详细赘述。
在步骤S1120中,电子设备A利用去畸变模型中的编码器对图像1进行特征提取,得到图像1的特征图。
去畸变模型是基于上文图8提供的模型训练方法得到的神经网络模型,可以理解的是,去畸变模型中的编码器是基于上文图8提供的模型训练方法对初始去畸变模型中的初始编码器进行训练得到的,此处未详细赘述的内容可以参见上文图8提供的训练方法中步骤S820中的相关描述。
图像1的特征图又可以称为图像1的特征图像或者图像1的特征数据。
在步骤S1130中,电子设备A利用去畸变模型中的解码器对图像1的特征图和图像1的网格图像1进行解码处理,得到预测的图像1的网格图像2。
去畸变模型是基于上文图8提供的模型训练方法得到的神经网络模型,可以理解的是,去畸变模型中的解码器是基于上文图8提供的模型训练方法对初始去畸变模型中的初始解码器进行训练得到的,此处未详细赘述的内容可以参见上文图8提供的训练方法中步骤S830中的相关描述。
电子设备A利用去畸变模型中的解码器对图像1的特征图和图像1的网格图像1进行解码处理,即,电子设备A通过去畸变模型中的解码器采用图像1的特征图对图像1的网格图像1进行解码处理。
在步骤S1140中,电子设备A利用去畸变模型的输出层采用图像1的网格图像2对图像1进行矫正处理,得到畸变矫正图像1。
例如,以上述步骤S1110中的图像1为图1中的(1)图为例,上述步骤S1140中的畸变矫正图像1为图像1中的(2)图。例如,以上述步骤S1110中的图像1为图2中的(1)图为例,上述步骤S1140中的畸变矫正图像1为图像2中的(2)图。
上述步骤S1120至步骤S1140中未详细赘述的内容分别可以参见上文图8提供的方法中的步骤S820至步骤S840中的描述,此处不再赘述。
应理解,上述图11示出的图像畸变矫正方法仅为示意,并不对本申请实施例提供的图像畸变矫正方法构成任何限定。上文图11提供的图像畸变矫正方法中以图像1是畸变图像为例进行描述,基于此,得到的畸变矫正图像1和图像1是不同的两个图像。可选的,当图像1是不存在畸变的图像时,对该图像1也可以执行上述图11示出的图像畸变矫正方法,这种实现方式中,得到的畸变矫正图像1和图像1是同一个图像。
在本申请实施例中,电子设备中的作为生成式模型的去畸变模型是通过深度学习训练得到的深度神经网络模型,该去畸变模型的模型鲁棒性高。基于此,电子设备利用该去畸变模型对作为畸变图像的图像1和作为畸变图像的图像1的网格图像1进行图像畸变矫正处理后,得到的作为畸变矫正图像的畸变矫正图像1更加符合实际真实情况和人眼的美学,从而提升用户体验。具体的,一方面,当图像1的网格图像1是对图像1直接执行网格化处理得到的网格图像时,本申请实施例提供的图像畸变矫正方法,基于深度学习方法得到的去畸变模型对网格图像1进行微调,之后,利用微调后得到的预测的图像1的网格图像2对畸变图像进行矫正处理得到的畸变矫正图像1更符合实际情况和人眼美学。另一方面,当图像1的网格图像1是对图像1执行传统畸变矫正方法(即预设畸变矫正处理)后得到的图像时,本申请实施例提供的图像畸变矫正方法在传统畸变矫正方法的基础上,基于深度学习方法得到的去畸变模型对传统畸变矫正方法得到的网格参数(即网格图像1)进行微调,之后,利用微调后得到的预测的图像1的网格图像2对畸变图像进行矫正处理得到的畸变矫正图像1更符合实际情况和人眼美学。
图12是本申请实施例提供的一种图像畸变矫正方法的示意图。本申请实施例提供的图像畸变矫正方法可以由电子设备来执行。可以理解的是,该电子设备可以实现为软件、或者软件和硬件的组合。示例性的,本申请实施例中的电子设备可以但不限于是图4A示出的客户端400,图4B示出的服务端420,或者图15示出的电子设备100。为便于描述,下文以电子设备A执行本申请实施例提供的方法为例进行介绍。为便于描述,下文中以电子设备为执行主体描述本申请实施例提供的图像畸变矫正方法。
示例性的,如图12所示,本申请实施例提供的图像畸变矫正方法包括步骤S1210至步骤S1240。下面对步骤S1210至步骤S1240进行详细介绍。
在步骤S1210中,电子设备获取畸变图像和畸变图像的初始网格图像,其中,初始网格图像是根据畸变图像得到的网格图像。
畸变图像是指存在畸变的图像,对畸变图像包括的内容不作具体限定。畸变图像可以是包括至少一个拍摄对象的图像,其中,至少一个拍摄对象可以但不限于是人物,建筑物或者动物(例如,狗或猫)等。示例性的,上述步骤S1210中的畸变图像可以是图1中的(1)图,图1中的(3)图,或者图2中的(1)图示出的畸变图像。
实际应用中,电子设备对拍摄对象进行拍摄得到的源图像通常存在畸变,因此,本申请实施例中的畸变图像还可以称为源图像。
初始网格图像是根据畸变图像得到的网格图像,初始网格图像是由多个多边形网格构成的图像,该多边形的形状可以跟实际需求进行设置,对此不作具体限定。例如,该多边形可以但不限于是三角形或四边形等。对基于畸变图像得到初始网格图像的获取方法不作具体限定,例如,电子设备可以但不限于通过前文所述的图9示出的获取网格图像的原理得到畸变图像的初始网格图像。例如,电子设备还可以基于相关技术中的方法对畸变图像处理以得到初始网格图像。
在一些实现方式中,初始网格图像是对畸变图像进行网格化处理得到的网格图像。
在另一些实现方式中,初始网格图像是对初始畸变矫正图像进行网格化处理得到的网格图像,其中,初始畸变矫正图像是对畸变图像执行预设畸变矫正处理后得到的图像。
由于初始畸变矫正图像是对畸变图像进行矫正处理后得到的图像,因此,初始畸变矫正图像的畸变程度小于畸变图像的畸变程度。
预设畸变矫正处理可以理解为是相关技术中的图像畸变矫正方法,对相关技术中的图像畸变矫正方法不作具体限定,即该方法可以实现对图像中的畸变进行矫正即可。例如,预设畸变矫正处理可以但不限于是张正友相机标定方法。
初始网格图像的尺寸可以小于或等于畸变图像的尺寸。例如,初始网格图像的尺寸是(单位:像素)大小的网格图像,畸变图像是/>(单位:像素)大小的图像。例如,初始网格图像的尺寸是/>(单位:像素)大小的网格图像,畸变图像是/>(单位:像素)大小的图像。
在本申请实施例中,对电子设备获取畸变图像的获取方法不作具体限定。例如,畸变图像可以是由电子设备的广角镜头拍摄得到的具有畸变的图像,也可以是由电子设备的全景镜头拍摄的具有畸变的全景图像。又如,畸变图像特可以是由电子设备的普通镜头拍摄的具有畸变的普通图像。
实际应用中,电子设备对待拍摄对象进行拍摄得到的图像的尺寸较大,对该图像进行处理时的计算量较大,基于此,在一些实现方式中,电子设备获取畸变图像,包括:电子设备对获取到的初始畸变图像进行缩放处理,得到畸变图像,其中,畸变图像的尺寸小于初始畸变图像的尺寸。
畸变图像保留了初始畸变图像的特征,即基于畸变图像可以还原出初始畸变图像。畸变图像的尺寸小于初始畸变图像的尺寸,即畸变图像的数据量小于初始畸变图像的数据量。例如,初始畸变图像是(单位:像素)大小的图像,畸变图像是/>(单位:像素)大小的图像。
对电子设备对初始畸变图像进行缩放处理的方法不作具体限定。例如,电子设备可以通过卷积神经网格对初始畸变图像进行缩放处理,其中,卷积神经网络和去畸变模型可以但不限于是两个独立的模型。例如,电子设备还可以利用除去卷积神经网络以外的其他算法执行缩放处理。
示例性的,上述图11提供的图像畸变矫正方法中的步骤S1110中的电子设备A是上述步骤S1210步骤中的电子设备的一个具体示例,步骤S1110中的图像1是步骤S1210中的畸变图像的一个具体示例,步骤S1110中的图像1的网格图像1是步骤S1210中的畸变图像的初始网格图像的一个具体示例。
在步骤S1220中,电子设备通过去畸变模型对畸变图像进行特征提取处理,得到畸变图像的特征数据。
去畸变模型是通过训练得到的深度神经网络模型,对去畸变模型的模型结构不作具体限定,可以根据实际场景需求进行选取。在一些实现方式中,去畸变模型是生成式模型中的转换器模型。示例性的,图10示出的transformer模型可以是去畸变模型的一个具体示例,此处关于图10未详细赘述的内容可以参见上述步骤S820中的相关描述。在另一些实现方式中,去畸变模型是U-Net网络模型。
畸变图像的特征数据包括畸变图像的重要特征,也就是说,基于该畸变图像的特征数据能够成功还原出该畸变图像。对畸变图像的特征数据的呈现形式可以但不限于是特征图像。
示例性的,继续以上述步骤S1110中的图像1是步骤S1210中的畸变图像的一个具体示例为例,上述步骤S1120中的图像1的特征图是步骤S1210中的畸变图像的特征数据的一个具体示例。
可选的,在电子设备执行上述步骤S1220之前,电子设备还可以执行模型训练得到去畸变模型的步骤。对电子设备执行模型训练得到去畸变模型的训练方法不作具体限定。
示例性的,在一些实现方式中,在电子设备通过去畸变模型对畸变图像进行特征提取处理,得到畸变图像的特征数据之前,电子设备还可以执行以下操作:电子设备获取至少一个训练样本对,其中,至少一个训练样本对包括作为训练数据的训练畸变图像和训练畸变图像的第一网格图像,以及作为标签数据的标签图像,第一网格图像是根据训练畸变图像得到的网格图像,标签图像是基于训练畸变图像得到的不存在畸变的图像;电子设备通过初始去畸变模型对训练畸变图像进行特征提取处理,得到训练畸变图像的特征数据;电子设备通过初始去畸变模型采用训练畸变图像的特征数据对训练畸变图像的第一网格图像进行解码处理,得到训练畸变图像的第二网格图像;电子设备通过初始去畸变模型采用训练畸变图像的第二网格图像对训练畸变图像进行矫正处理,得到训练畸变图像对应的畸变矫正图像;电子设备根据训练畸变图像对应的畸变矫正图像和标签图像之间的差异,调整初始去畸变模型的参数,以得到去畸变模型。
至少一个训练样本对可以理解为是用于训练初始去畸变模型的训练数据集,对至少一个训练样本对的数量不作具体限定,可以根据实际情况设置。例如,至少一个训练样本对可以但不限于包括1,10或20个训练样本对。
在本申请实施例中,当至少一个训练样本对的数量为多个时,该多个训练样本对可以相同,或者该多个训练样本对可以不相同。至少一个训练样本对中的任意一个训练样本对包括作为训练数据的训练畸变图像和训练畸变图像的第一网格图像,以及作为标签数据的标签图像。基于此,当两个训练样本对对应的内容(即训练图像和/或标签图像)存在差异,即可以认为这两个训练样本对是两个不同的训练样本对。当两个训练样本对对应的内容(即训练图像和/或标签图像)不存在差异,即可以认为这两个训练样本对是同一个训练样本对。
示例性的,训练样本对1包括作为训练数据的训练畸变图像1和训练畸变图像1的网格图像1,以及作为标签数据的标签图像1;训练样本对2包括作为训练数据的训练畸变图像1和训练畸变图像1的网格图像1,以及作为标签数据的标签图像1;因此,训练样本对1和训练样本对2是同一个训练样本对。
示例性的,训练样本对1包括作为训练数据的训练畸变图像1和训练畸变图像1的网格图像1,以及作为标签数据的标签图像1;训练样本对2包括作为训练数据的训练畸变图像2和训练畸变图像2的网格图像2,以及作为标签数据的标签图像2,其中,训练畸变图像1和训练畸变图像1不同,网格图像1和网格图像2不同,标签图像1和标签图像2不同;因此,训练样本对1和训练样本对2是两个不同的训练样本对。
标签图像是基于训练畸变图像得到的不存在畸变的图像,对基于训练畸变图像得到标签图像的获取方法不作具体限定。例如,可以利用图像处理软件对训练畸变图像(存在畸变)进行去畸变处理,以得到符合实际情况和人眼美学的图像,并将该符合实际情况和人眼美学的图像作为标签图像。
上述实现方式中的电子设备根据训练畸变图像对应的畸变矫正图像和标签图像之间的差异,调整初始去畸变模型的参数,以得到去畸变模型,示例性的,可以包括以下步骤:电子设备根据训练畸变图像对应的畸变矫正图像和训练畸变图像对应的标签图像之间的差异,确定目标损失值;电子设备根据目标损失值对初始编码器的参数和初始解码器的参数进行调整,直到满足预设训练条件,结束模型训练,得到训练好的去畸变模型。
目标损失值可以通过损失函数计算得到,对损失函数不作具体限定,可以根据实际场景进行设置。例如,损失函数可以但不限于是MSE损失函数或者MAE损失函数。
上述预设训练条件可以是预先定义好的条件,对预设训练条件不作具体限定,可以根据实际情况进行设置。例如,预设训练条件可以但不限于为以下至少一种条件:损失函数的损失值小于或等于预设阈值,当前的迭代次数满足预设迭代次数的要求,或者用户主动触发结束当前迭代过程或者当前的模型训练时间满足预设的训练时长要求。
上述实现方式中的初始去畸变模型包括初始编码器,初始解码器和输出层,具体的,电子设备通过初始去畸变模型中的初始编码器对训练畸变图像进行特征提取处理,得到训练畸变图像的特征图;电子设备通过初始去畸变模型中的初始解码器采用训练畸变图像的特征图对训练畸变图像的第一网格图像进行解码处理,得到训练畸变图像的第二网格图像;电子设备通过初始去畸变模型中的输出层采用训练畸变图像的第二网格图像对训练畸变图像进行矫正处理,得到训练畸变图像对应的畸变矫正图像;电子设备根据训练畸变图像对应的畸变矫正图像和标签图像之间的差异,调整初始编码器的参数和初始解码器的参数,以得到去畸变模型。
示例性的,上述图8提供的模型训练方法中的步骤S820中的初始去畸变模型是上述实现方式中的初始去畸变模型的一个具体示例,上述步骤S820中的初始编码器是上述实现方式中的初始编码器的一个具体示例,上述步骤S830中的初始解码器是上述实现方式中的初始解码器的一个具体示例,上述步骤S840中的输出层是上述实现方式中的输出层的一个具体示例,此处未详细赘述的内容可以参见上文图8提供的模型训练方法中的相关描述。
在步骤S1230中,电子设备通过去畸变模型采用畸变图像的特征数据对初始网格图像进行解码处理,得到畸变图像的畸变矫正网格图像。
去畸变模型是训练好的神经网络模型,去畸变模型具有解码能力,因此,电子设备通过去畸变模型采用畸变图像的特征数据对初始网格图像进行解码处理后,能够得到还原后的畸变矫正网格图像,该畸变矫正网格图像可以理解为是不存在畸变的网格图像。
示例性的,上述图11提供的图像畸变矫正方法中的步骤S1130中的图像1的特征图是上述实现方式中的畸变图像的特征数据的一个具体示例,上述步骤S1130中的图像1的网格图像1是上述实现方式中的初始网格图像的一个具体示例,上述步骤S1130中的图像1的网格图像2是上述实现方式中的畸变图像的畸变矫正网格图像的一个具体示例,此处未详细赘述的内容可以参见上文中的相关描述。
在步骤S1240中,电子设备通过去畸变模型采用畸变矫正网格图像对畸变图像进行矫正处理,得到畸变矫正图像。
畸变矫正图像是对畸变图像进行畸变矫正处理后得到的图像,畸变矫正图像可以理解为是不存在任何畸变的图像。
示例性的,继续以上述步骤S1110中的图像1是步骤S1210中的畸变图像的一个具体示例为例,上述步骤S1140中的畸变矫正图像1是步骤S1240中的畸变矫正图像的一个具体示例。
在一些实现方式中,畸变图像包括N个第一像素点,畸变矫正网格图像包括N个第二像素点,其中,N个第二像素点和N个第一像素点一一对应,N为正整数;电子设备执行上述步骤S1240,即电子设备通过去畸变模型采用畸变矫正网格图像对畸变图像进行矫正处理,得到畸变矫正图像,示例性的,可以包括以下步骤:电子设备通过去畸变模型,采用每个第二像素点的坐标值对对应的每个第一像素点的坐标值更新,以得到畸变矫正图像。
上述实现方式中,畸变图像包括N个第一像素点,同时,畸变矫正网格图像包括N个第二像素点,即畸变图像包括的像素点的数量和畸变矫正网格图像包括的像素点的数量相同,可以理解为,畸变图像的尺寸大小和畸变矫正网格图像的尺寸大小相同。
可选的,畸变图像的尺寸和畸变矫正网格图像的尺寸可以不同,这种实现方式中,畸变图像包括的第一像素点的数量大于畸变矫正网格图像的第二像素点的数量,即畸变图像包括的第一像素点的数量大于N。
可选的,上述第二像素点的坐标值是对第二像素点关联的畸变矫正网格图像中的多个像素点的坐标值进行插值处理得到的。
对上述插值处理算法不作具体限定,可以根据需求或场景进行选取。例如插值算法可以但不限于是双线性内插值法或灰度插值法等。
上文结合步骤S1210至步骤S1240介绍了本申请实施例提供的图像畸变矫正方法,下面,介绍上述图像畸变矫正方法应用的两种不同的应用场景,应理解,下文所述的应用场景仅为示意并不对本申请实施例提供的图像畸变矫正方法所适用的应用场景构成任何限定。
在一种应用场景中,上述步骤S1210至步骤S1240的图像畸变矫正方法应用于包括摄像头的电子设备,电子设备获取畸变图像,包括:电子设备显示拍摄界面;响应于针对拍摄界面的拍摄操作,电子设备通过摄像头获取畸变图像;在电子设备通过去畸变模型采用畸变矫正网格图像对畸变图像进行矫正处理,得到畸变矫正图像之后,电子设备还可以显示包括畸变矫正图像的界面。
示例性的,图5示出的手机的用户界面可以是上述应用场景中电子设备的用户界面,此处未详细赘述的内容可以参见上文图5中的相关描述。
在另一种应用场景中:上述步骤S1210至步骤S1240的图像畸变矫正方法应用于包括图库应用的电子设备,电子设备获取畸变图像,包括:电子设备显示图库应用的界面;响应于针对图库应用的界面中的畸变图像的选择操作,电子设备获取畸变图像;在电子设备通过去畸变模型采用畸变矫正网格图像对畸变图像进行矫正处理,得到畸变矫正图像之后,电子设备还可以显示包括畸变矫正图像的界面。
示例性的,图6示出的手机的用户界面可以是上述应用场景中电子设备的用户界面,此处未详细赘述的内容可以参见上文图6中的相关描述。
可选的,上述图库应用还可以是电子设备中除去图库应用之外的其他应用,例如,其他应用可以但不限于是聊天应用或图像处理应用等。
上文介绍步骤S1210至步骤S1240时,均以电子设备利用去畸变模型对畸变图像和畸变图像的初始网格图像进行处理,得到畸变矫正图像为例进行描述。在一些实现方式中,去畸变模型包括解码器,编码器和输出层。示例性的,图10示出的编码器的结构可以是去畸变模型包括的编码器的结构一个示例,图10示出的解码器的结构可以是去畸变模型包括的解码器的结构一个示例。这种实现方式中,电子设备通过去畸变模型对畸变图像进行特征提取处理,得到畸变图像的特征数据,包括:电子设备通过编码器对畸变图像进行特征提取处理,得到畸变图像的特征数据;电子设备通过去畸变模型采用畸变图像的特征数据对初始网格图像进行解码处理,得到畸变图像的畸变矫正网格图像,包括:电子设备通过解码器采用畸变图像的特征数据对初始网格图像进行解码处理,得到畸变矫正网格图像;电子设备通过去畸变模型采用畸变矫正网格图像对畸变图像进行矫正处理,得到畸变矫正图像,包括:电子设备通过输出层采用畸变矫正网格图像对畸变图像进行矫正处理,得到畸变矫正图像。
应理解的是,上述图12示出的图像畸变矫正方法仅为示意,并不对本申请提供的图像畸变矫正方法构成任何限定。上文图12提供的图像畸变矫正方法中以上述步骤S1210中的待处理的图像是畸变图像(存在畸变)为例进行描述,基于此,电子设备对该畸变图像执行图像畸变矫正方法后得到的畸变矫正畸变图像和畸变图像是不同的两个图像。可选的,当上述步骤S1210中的待处理的图像是不存在畸变的图像时,对该不存在畸变的图像也可以执行上述图12示出的图像畸变矫正方法,这种实现方式中,得到的畸变矫正畸变图像和该不存在畸变的图像是同一个图像。
在本申请实施例中,电子设备利用去畸变模型对存在畸变的畸变图像进行特征提取得到畸变图像的特征数据。之后,电子设备利用去畸变模型对畸变图像的特征数据和畸变图像的初始网格图像进行解码处理得到畸变矫正网格图像,由于该畸变矫正网格图像是基于畸变图像的特征数据对初始网格图像进行矫正后的网格图像,所以该畸变矫正网格图像更加符合实际情况。此后,电子设备通过去畸变模型采用该畸变矫正网格图像对畸变图像进行矫正处理,得到的畸变矫正图像的也更加符合实际真实情况,以及符合人眼的美学,从而提升用户体验。
上文结合图1至图12,详细描述了本申请实施例的图像畸变矫正方法的应用场景和图像畸变矫正方法,下面将结合图13描述本申请的装置实施例。应理解,本申请实施例中的图像畸变矫正装置可以执行前述本申请实施例的各种图像畸变矫正方法,即以下各种产品的具体工作过程,可以参考前述方法实施例中的对应过程。
图13是本申请实施例提供的一种图像畸变矫正装置的示意图。示例性的,图13示出的图像畸变矫正装置1300包括处理单元1310。下面介绍处理单元1310的作用。
处理单元1310用于:获取畸变图像和该畸变图像的初始网格图像,其中,该初始网格图像是根据该畸变图像得到的网格图像;通过去畸变模型对该畸变图像进行特征提取处理,得到该畸变图像的特征数据;通过该去畸变模型采用该畸变图像的特征数据对该初始网格图像进行解码处理,得到该畸变图像的畸变矫正网格图像;通过该去畸变模型采用该畸变矫正网格图像对该畸变图像进行矫正处理,得到畸变矫正图像。
在一种可能的实现方式中,该初始网格图像是对该畸变图像进行网格化处理得到的网格图像。
在另一种可能的实现方式中,该初始网格图像是对初始畸变矫正图像进行网格化处理得到的网格图像,其中,该初始畸变矫正图像是对该畸变图像执行预设畸变矫正处理后得到的图像。
在另一种可能的实现方式中,该畸变图像包括N个第一像素点,该畸变矫正网格图像包括N个第二像素点,其中,该N个第二像素点和该N个第一像素点一一对应,N为正整数;该处理单元1310还用于:通过该去畸变模型,采用每个该第二像素点的坐标值对对应的每个该第一像素点的坐标值更新,以得到该畸变矫正图像。
在另一种可能的实现方式中,该第二像素点的坐标值是对该第二像素点关联的该畸变矫正网格图像中的多个像素点的坐标值进行插值处理得到的。
在另一种可能的实现方式中,该处理单元1310还用于:对获取到的初始畸变图像进行缩放处理,得到该畸变图像,其中,该畸变图像的尺寸小于该初始畸变图像的尺寸。
在另一种可能的实现方式中,该处理单元1310还用于在该通过去畸变模型对该畸变图像进行特征提取处理,得到该畸变图像的特征数据之前,执行以下操作:获取至少一个训练样本对,其中,该至少一个训练样本对包括作为训练数据的训练畸变图像和该训练畸变图像的第一网格图像,以及作为标签数据的标签图像,该第一网格图像是根据该训练畸变图像得到的网格图像,该标签图像是基于该训练畸变图像得到的不存在畸变的图像;通过初始去畸变模型对该训练畸变图像进行特征提取处理,得到该训练畸变图像的特征数据;通过该初始去畸变模型采用该训练畸变图像的特征数据对该训练畸变图像的第一网格图像进行解码处理,得到该训练畸变图像的第二网格图像;通过该初始去畸变模型采用该训练畸变图像的第二网格图像对该训练畸变图像进行矫正处理,得到该训练畸变图像对应的畸变矫正图像;根据该训练畸变图像对应的畸变矫正图像和该标签图像之间的差异,调整该初始去畸变模型的参数,以得到该去畸变模型。
在另一种可能的实现方式中,初始去畸变模型包括初始编码器,初始解码器和输出层,以及;该处理单元1310还用于:获取至少一个训练样本对,其中,该至少一个训练样本对包括作为训练数据的训练畸变图像和该训练畸变图像的第一网格图像,以及作为标签数据的标签图像,该第一网格图像是根据该训练畸变图像得到的网格图像,该标签图像是基于该训练畸变图像得到的不存在畸变的图像;通过初始编码器对该训练畸变图像进行特征提取处理,得到该训练畸变图像的特征数据;通过该初始解码器采用该训练畸变图像的特征数据对该训练畸变图像的第一网格图像进行解码处理,得到该训练畸变图像的第二网格图像;通过该初始去畸变模型采用该训练畸变图像的第二网格图像对该训练畸变图像进行矫正处理,得到该输出层对应的畸变矫正图像;根据该训练畸变图像对应的畸变矫正图像和该标签图像之间的差异,调整该初始编码器的参数和该初始解码器的参数,以得到该去畸变模型。
在另一种可能的实现方式中,第一网格图像是对训练畸变图像进行网格化处理得到的网格图像。
在另一种可能的实现方式中,第一网格图像是对初始训练畸变矫正图像进行网格化处理得到的网格图像,其中,初始训练畸变矫正图像是对训练畸变图像执行预设畸变矫正处理后得到的图像。
在另一种可能的实现方式中,该去畸变模型是生成式模型中的转换器模型。
在另一种可能的实现方式中,去畸变模型包括编码器,解码器和输出层,以及;该处理单元1310还用于:通过编码器对畸变图像进行特征提取处理,得到畸变图像的特征数据;通过解码器采用畸变图像的特征数据对初始网格图像进行解码处理,得到畸变矫正网格图像;通过输出层采用畸变矫正网格图像对畸变图像进行矫正处理,得到畸变矫正图像。
在另一种可能的实现方式中,该装置应用于包括摄像头的电子设备中,该处理单元1310还用于:显示拍摄界面;响应于针对该拍摄界面的拍摄操作,通过该摄像头获取该畸变图像;该处理单元1310还用于在该通过该去畸变模型采用该畸变矫正网格图像对该畸变图像进行矫正处理,得到畸变矫正图像之后,执行以下操作:显示包括该畸变矫正图像的界面。
在另一种可能的实现方式中,该装置应用于包括图库应用的电子设备,该处理单元1310还用于:显示该图库应用的界面;响应于针对该图库应用的界面中的该畸变图像的选择操作,获取该畸变图像;该处理单元1310还用于在该通过该去畸变模型采用该畸变矫正网格图像对该畸变图像进行矫正处理,得到畸变矫正图像之后,执行以下操作:显示包括该畸变矫正图像的界面。
需要说明的是,上述图像畸变矫正装置1300以功能单元的形式体现。这里的术语“单元”可以通过软件和/或硬件形式实现,对此不作具体限定。
例如,“单元”可以是实现上述功能的软件程序、硬件电路或二者结合。该硬件电路可能包括应用特有集成电路(application specific integrated circuit,ASIC)、电子电路、用于执行一个或多个软件或固件程序的处理器(例如共享处理器、专有处理器或组处理器等)和存储器、合并逻辑电路和/或其它支持所描述的功能的合适组件。
因此,在本申请的实施例中描述的各示例的单元,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
下面介绍适用于本申请实施例提供的图像畸变矫正方法的电子设备100的软件***。电子设备的软件***可以采用分层架构、事件驱动架构、微核架构、微服务架构或云架构,本申请实施例以分层架构为例,示例性地描述电子设备100的软件***。
示例性的,图14是本申请实施例提供的一种电子设备100的软件***的示意图。请参见图14,该软件***采用分层架构。分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android***分为五层,从上至下分别为应用程序层210,应用程序框架层220,安卓运行时(Android Runtime)和核心库层230,硬件抽象层(hardware abstract layer,HAL)240以及内核层250。
应用程序层210可以包括一系列应用程序包。例如,应用程序包可以包括图库、图像处理软件、聊天、视频、语音助手、剪辑、相机、通话、地图、导航、日历、蓝牙、音乐等应用程序。
上述各个应用程序可以用于生成应用数据,以及上述各个应用程序可以包括更具体的功能模块。例如,图库可以包含业务模块和通知模块,业务模块包括用于对图像执行图像畸变矫正的控件。例如,相机可以包含拍照模块,拍照模块用于对拍摄对象进行拍摄以得到图像(例如,畸变图像,初始畸变图像或畸变矫正图像等)。
应用程序框架层220为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层220包括一些预先定义的函数。
如图14所示,应用程序框架层220可以包括窗口管理器、通知管理器、活动管理器、输入管理器、视图***、内容提供器、资源管理器等。
窗口管理器提供窗口管理服务(window manager service,WMS),WMS可以用于窗口管理、窗口动画管理、surface管理以及作为输入***的中转站。
内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。该数据可以包括视频、图像、音频、拨打和接听的电话、浏览历史和书签、电话簿等。
视图***包括可视控件,例如显示文字的控件,显示图片的控件等。视图***可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。例如,显示界面可以但不限于是图5和/或图6示出的用户界面。
资源管理器为应用程序提供各种资源,比如本地化字符串、图标、图片、布局文件、视频文件等等。
通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在***顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,电子设备振动,指示灯闪烁等。
活动管理器可以提供活动管理服务(activity manager service,AMS),AMS可以用于***组件(例如活动、服务、内容提供者、广播接收器)的启动、切换、调度以及应用进程的管理和调度工作。
输入管理器可以提供输入管理服务(input manager service,IMS),IMS可以用于管理***的输入,例如触摸屏输入、按键输入、传感器输入等。IMS从输入设备节点取出事件,通过和WMS的交互,将事件分配至合适的窗口。
安卓运行时(Android Runtime)包括核心库和虚拟机。Android Runtime负责安卓***的调度和管理。
核心库包含两部分:一部分编程语言(例如,java语言)需要调用的功能函数,另一部分是安卓的核心库。
应用程序层210和应用程序框架层220运行在虚拟机中。虚拟机将应用程序层210和应用程序框架层220的编程文件(例如,java文件)执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
核心库层230可以包括多个功能模块。例如:表面管理器(surface manager),媒体框架(media framework),libc,SQLite,OpenGL ES,Webkit等。
表面管理器用于对显示子***进行管理,并且为多个应用程序提供了二维(2-Dimensional,2D)和三维(3-Dimensional,3D)图层的融合。
媒体框架支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。
libc (C库)是C语言的标准库,libc是***中一个最为底层的库,libc是通过Linux的***调用来实现。例如,libc可用来连接或断开相机服务,设置相机的拍照参数、开始、停止预览、拍照等。
硬件抽象层(HAL)240是位于操作***内核与上层软件之间的接口层,其目的在于将硬件抽象化。硬件抽象层是设备内核驱动的抽象接口,用于实现向更高级别的Java API框架提供访问底层设备的应用编程接口。HAL包含多个库模块,例如相机HAL(例如光圈、TOF传感器、镜头或对焦马达等)、Vendor仓、显示屏、蓝牙、音频等。其中每个库模块都为特定类型的硬件组件实现一个接口。可理解,相机HAL可以为相机FWK提供访问摄像头等硬件组件的接口。Vendor仓可以为媒体FWK提供访问编码器等硬件组件的接口。为当***框架层API要求访问便携设备的硬件时,Android操作***将为该硬件组件加载库模块。
内核层250是Android操作***的基础,Android操作***最终的功能都是通过内核层完成。内核层250至少包含显示驱动,音频驱动,摄像头驱动,蓝牙驱动等。其中,摄像头驱动可用于驱动电子设备100的摄像头进行拍摄,显示驱动可用于将图像(例如,畸变矫正图像)显示在显示屏的显示面板上。
需要说明的是,本申请提供的图14所示的电子设备的软件结构示意图仅作为一种示例,并不限定Android操作***不同分层中的具体模块划分,具体可以参考常规技术中对Android操作***软件结构的介绍。另外,本申请提供的图像畸变矫正方法还可以基于其他操作***(例如,IOS或鸿蒙等)实现,本申请不再一一举例。
下面介绍适用于本申请实施例提供的图像畸变矫正方法的电子设备100的硬件结构。
示例性的,图15是本申请实施例提供的一种电子设备100的硬件结构的示意图。
图15示出的电子设备100可以是手机、智慧屏、平板电脑、可穿戴电子设备(例如智能手表等)、车载电子设备、增强现实(augmented reality,AR)设备、虚拟现实(virtualreality,VR)设备、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本、个人数字助理(personal digital assistant,PDA)、投影仪、车载设备等等,本申请实施例对电子设备100的具体类型不作任何限制。
电子设备100可以但不限于包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,SIM)卡接口195等。其中传感器模块180可以包括压力传感器180A,陀螺仪传感器180B,气压传感器180C,磁传感器180D,加速度传感器180E,距离传感器180F,接近光传感器180G,指纹传感器180H,温度传感器180J,触摸传感器180K,环境光传感器180L,骨传导传感器180M等。
需要说明的是,图15所示的电子设备的硬件结构并不构成对电子设备100的具体限定。在本申请另一些实施例中,电子设备100可以包括比图15所示的部件更多或更少的部件,或者,电子设备100可以包括图15所示的部件中某些部件的组合,或者,电子设备100可以包括图15所示的部件中某些部件的子部件。图15示的部件可以以硬件、软件、或软件和硬件的组合实现。
处理器110可以实现电子设备100中各种可能的实现方式中处理器110的功能。处理器110可以包括一个或多个处理单元。例如,处理器110可以包括以下处理单元中的至少一个:应用处理器(application processor,AP)、调制解调处理器、图形处理器(graphicsprocessing unit,GPU)、图像信号处理器(image signal processor,ISP)、控制器、视频编解码器、数字信号处理器(digital signal processor,DSP)、基带处理器、神经网络处理器(neural-network processing unit,NPU)。其中,不同的处理单元可以是独立的器件,也可以是集成的器件。
其中,控制器可以是电子设备100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110用于执行以下步骤:获取畸变图像和畸变图像的初始网格图像,其中,初始网格图像是根据畸变图像得到的网格图像;通过去畸变模型对畸变图像进行特征提取处理,得到畸变图像的特征数据;通过去畸变模型采用畸变图像的特征数据对初始网格图像进行解码处理,得到畸变图像的畸变矫正网格图像;通过去畸变模型采用畸变矫正网格图像对畸变图像进行矫正处理,得到畸变矫正图像。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了***的效率。
应理解的是,图15所示的各模块间的连接关系只是示意性说明,并不构成对电子设备100的各模块间的连接关系的限定。可选的,电子设备100的各模块也可以采用上述实施例中多种连接方式的组合。
充电管理模块140用于从充电器接收电力。其中,充电器可以是无线充电器,也可以是有线充电器。在一些有线充电的实施例中,充电管理模块140可以通过USB接口130接收有线充电器的电流。在一些无线充电的实施例中,充电管理模块140可以通过电子设备100的无线充电线圈接收电磁波(电流路径如虚线所示)。充电管理模块140为电池142充电的同时,还可以通过电源管理模块141为电子设备100供电。
电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,显示屏194,摄像头193,和无线通信模块160等供电。电源管理模块141还可以用于监测电池容量、电池循环次数和电池健康状态(例如,漏电、阻抗)等参数。可选的,电源管理模块141可以设置于处理器110中,或者,电源管理模块141和充电管理模块140可以设置于同一个器件中。
电子设备100可以通过GPU、显示屏194以及应用处理器实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏194用于显示图像,例如该图像可以但不限于是前文所述的畸变图像,初始畸变矫正图像或畸变矫正图像。可选的,显示屏194还用于显示应用界面,例如该应用界面可以但不限于是图5或图6示出的应用界面。
显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquid crystaldisplay,LCD)、有机发光二极管(organic light-emitting diode,OLED)、有源矩阵有机发光二极体(active-matrix organic light-emitting diode,AMOLED)、柔性发光二极管(flex light-emitting diode,FLED)、迷你发光二极管(mini light-emitting diode,Mini LED)、微型发光二极管(micro light-emitting diode,Micro LED)、微型OLED(Micro OLED)或量子点发光二极管(quantum dot light emitting diodes,QLED)。在一些实施例中,电子设备100可以包括1个或Q个显示屏194,Q为大于1的正整数。
电子设备100可以通过ISP、摄像头193、视频编解码器、GPU、显示屏194以及应用处理器等实现拍摄功能。
ISP用于处理摄像头193反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将所述电信号传递给ISP处理,转化为肉眼可见的图像。ISP可以对图像的噪点、亮度和色彩进行算法优化,ISP还可以优化拍摄场景的曝光和色温等参数。在一些实施例中,ISP可以设置在摄像头193中。
摄像头193用于捕获静态图像或视频。例如该静态图像可以是前文所述的畸变图像。例如,该视频可以是如前文所述的获取畸变图像的视频流。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,CCD)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,CMOS)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给ISP转换成数字图像信号。ISP将数字图像信号输出到DSP进行加工处理。DSP将数字图像信号转换成标准的RGB,YUV等格式的图像信号。然后可将该图像信号通过显示屏194进行显示,和/或,将该图像信号保存到内部存储器121或外部存储器。
在一些实施例中,电子设备100可以包括L个摄像头193,L个摄像头193中的每个摄像头193可以是摄像头或者后置摄像头,L为大于1的正整数。
在一些实施例中,摄像头193可包括采集人脸识别所需图像的摄像头,如红外摄像头或其他摄像头。该采集人脸识别所需图像的摄像头一般位于电子设备的正面,例如触控屏的上方,也可以位于其他位置,本申请实施例对此不做限制。
在一些实施例中,摄像头193的摄像头包括但不限于光学摄像头、红外摄像头、深度摄像头,具体形态可以是单目摄像头或多目摄像头。摄像头的镜头可以为标准镜头,广角镜头,超广角镜头,鱼眼镜头或长焦距镜头,或者上述多种镜头的组合。
本申请实施例中,摄像头193输出的图像信号可称为“源图像”。源图像可被输出到处理器执行本申请提供的图像畸变矫正方法。
数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。例如,当电子设备100在频点选择时,数字信号处理器用于对频点能量进行傅里叶变换等。
外部存储器接口120可以用于连接外部存储卡,例如安全数码(secure digital,SD)卡,实现扩展电子设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作***,至少一个功能(例如,声音播放功能和图像播放功能)所需的应用程序。存储数据区可存储电子设备100使用过程中所创建的数据(例如,音频数据和电话本)。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如:至少一个磁盘存储器件、闪存器件和通用闪存存储器(universal flash storage,UFS)等。处理器110通过运行存储在内部存储器121的指令和/或存储在设置于处理器中的存储器的指令,执行电子设备100的各种处理方法。
陀螺仪传感器180B可以用于确定电子设备100的运动姿态。在一些实施例中,可以通过陀螺仪传感器180B确定电子设备100围绕三个轴(即,x轴、y轴和z轴)的角速度。陀螺仪传感器180B可以用于拍摄防抖。例如,当快门被按下时,陀螺仪传感器180B检测电子设备100抖动的角度,根据角度计算出镜头模组需要补偿的距离,让镜头通过反向运动抵消电子设备100的抖动,实现防抖。陀螺仪传感器180B还可以用于导航和体感游戏等场景。
加速度传感器180E可检测电子设备100在各个方向上(一般为x轴、y轴和z轴)加速度的大小。当电子设备100静止时可检测出重力的大小及方向。加速度传感器180E还可以用于识别电子设备100的姿态,作为横竖屏切换和计步器等应用程序的输入参数。
距离传感器180F用于测量距离。电子设备100可以通过红外或激光测量距离。在一些实施例中,例如在拍摄场景中,电子设备100可以利用距离传感器180F测距以实现快速对焦。
触摸传感器180K,也称为触控器件。在一些实施例中,触摸传感器180K可以设置于显示屏194,由触摸传感器180K与显示屏194组成触摸屏,触摸屏也称为触控屏。触摸传感器180K用于检测作用于其上或其附近的触摸操作。触摸传感器180K可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏194提供与触摸操作相关的视觉输出。例如,图5或图6示出的用户触摸客户端的触摸屏后,该客户端的触摸传感器能够检测到该触摸操作。在另一些实施例中,触摸传感器180K也可以设置于电子设备100的表面,并且与显示屏194设置于不同的位置。
按键190包括开机键和音量键。按键190可以是机械按键,也可以是触摸式按键。电子设备100可以接收按键输入信号,实现于案件输入信号相关的功能。
马达191可以产生振动。马达191可以用于来电提示,也可以用于触摸反馈。马达191可以对作用于不同应用程序的触摸操作产生不同的振动反馈效果。对于作用于显示屏194的不同区域的触摸操作,马达191也可产生不同的振动反馈效果。不同的应用场景(例如,时间提醒、接收信息、闹钟和游戏)可以对应不同的振动反馈效果。触摸振动反馈效果还可以支持自定义。
本申请还提供了一种计算机程序产品,该计算机程序产品被电子设备执行时实现本申请中任一方法实施例该的图像畸变矫正方法和/或模型训练方法。
该计算机程序产品可以存储在存储器中,例如是程序,程序经过预处理、编译、汇编和链接等处理过程最终被转换为能够被处理器执行的可执行目标文件。
本申请还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被电子设备执行时实现本申请中任一方法实施例该的图像畸变矫正方法和/或模型训练方法。该计算机程序可以是高级语言程序,也可以是可执行目标程序。
本申请还提供了一种芯片,该芯片应用于电子设备,该芯片包括一个或多个处理器,该处理器用于调用计算机指令,以使得该电子设备执行时实现本申请中任一方法实施例该的图像畸变矫正方法和/或模型训练方法。
本申请中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a, b, c, a-b, a-c, b-c, 或a-b-c,其中a,b,c可以是单个,也可以是多个。
应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的;例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式;例如,多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (14)
1.一种图像畸变矫正方法,其特征在于,所述方法包括:
获取畸变图像和所述畸变图像的初始网格图像,其中,所述初始网格图像是根据所述畸变图像得到的网格图像;
通过去畸变模型对所述畸变图像进行特征提取处理,得到所述畸变图像的特征数据;
通过所述去畸变模型采用所述畸变图像的特征数据对所述初始网格图像进行解码处理,得到所述畸变图像的畸变矫正网格图像;
通过所述去畸变模型采用所述畸变矫正网格图像对所述畸变图像进行矫正处理,得到畸变矫正图像。
2.根据权利要求1所述的方法,其特征在于,所述初始网格图像是对所述畸变图像进行网格化处理得到的网格图像。
3.根据权利要求1所述的方法,其特征在于,所述初始网格图像是对初始畸变矫正图像进行网格化处理得到的网格图像,其中,所述初始畸变矫正图像是对所述畸变图像执行预设畸变矫正处理后得到的图像。
4.根据权利要求1或2所述的方法,其特征在于,所述畸变图像包括N个第一像素点,所述畸变矫正网格图像包括N个第二像素点,其中,所述N个第二像素点和所述N个第一像素点一一对应,N为正整数;
所述通过所述去畸变模型采用所述畸变矫正网格图像对所述畸变图像进行矫正处理,得到畸变矫正图像,包括:
通过所述去畸变模型,采用每个所述第二像素点的坐标值对对应的每个所述第一像素点的坐标值更新,以得到所述畸变矫正图像。
5.根据权利要求4所述的方法,其特征在于,
所述第二像素点的坐标值是对所述第二像素点关联的所述畸变矫正网格图像中的多个像素点的坐标值进行插值处理得到的。
6.根据权利要求1或2所述的方法,其特征在于,所述获取畸变图像,包括:
对获取到的初始畸变图像进行缩放处理,得到所述畸变图像,其中,所述畸变图像的尺寸小于所述初始畸变图像的尺寸。
7.根据权利要求1或2所述的方法,其特征在于,在所述通过去畸变模型对所述畸变图像进行特征提取处理,得到所述畸变图像的特征数据之前,所述方法还包括:
获取至少一个训练样本对,其中,所述至少一个训练样本对包括作为训练数据的训练畸变图像和所述训练畸变图像的第一网格图像,以及作为标签数据的标签图像,所述第一网格图像是根据所述训练畸变图像得到的网格图像,所述标签图像是基于所述训练畸变图像得到的不存在畸变的图像;
通过初始去畸变模型对所述训练畸变图像进行特征提取处理,得到所述训练畸变图像的特征数据;
通过所述初始去畸变模型采用所述训练畸变图像的特征数据对所述训练畸变图像的第一网格图像进行解码处理,得到所述训练畸变图像的第二网格图像;
通过所述初始去畸变模型采用所述训练畸变图像的第二网格图像对所述训练畸变图像进行矫正处理,得到所述训练畸变图像对应的畸变矫正图像;
根据所述训练畸变图像对应的畸变矫正图像和所述标签图像之间的差异,调整所述初始去畸变模型的参数,以得到所述去畸变模型。
8.根据权利要求1或2所述的方法,其特征在于,所述去畸变模型是生成式模型中的转换器模型。
9.根据权利要求1或2所述的方法,其特征在于,所述去畸变模型包括解码器,编码器和输出层,以及;
所述通过去畸变模型对所述畸变图像进行特征提取处理,得到所述畸变图像的特征数据,包括:
通过所述编码器对所述畸变图像进行特征提取处理,得到所述畸变图像的特征数据;
所述通过所述去畸变模型采用所述畸变图像的特征数据对所述初始网格图像进行解码处理,得到所述畸变图像的畸变矫正网格图像,包括:
通过所述解码器采用所述畸变图像的特征数据对所述初始网格图像进行解码处理,得到所述畸变矫正网格图像;
所述通过所述去畸变模型采用所述畸变矫正网格图像对所述畸变图像进行矫正处理,得到畸变矫正图像,包括:
通过所述输出层采用所述畸变矫正网格图像对所述畸变图像进行矫正处理,得到所述畸变矫正图像。
10.根据权利要求1或2所述的方法,其特征在于,应用于包括摄像头的电子设备,
所述获取畸变图像,包括:
显示拍摄界面;
响应于针对所述拍摄界面的拍摄操作,通过所述摄像头获取所述畸变图像;
在所述通过所述去畸变模型采用所述畸变矫正网格图像对所述畸变图像进行矫正处理,得到畸变矫正图像之后,所述方法还包括:
显示包括所述畸变矫正图像的界面。
11.根据权利要求1或2所述的方法,其特征在于,应用于包括图库应用的电子设备,
所述获取畸变图像,包括:
显示所述图库应用的界面;
响应于针对所述图库应用的界面中的所述畸变图像的选择操作,获取所述畸变图像;
在所述通过所述去畸变模型采用所述畸变矫正网格图像对所述畸变图像进行矫正处理,得到畸变矫正图像之后,所述方法还包括:
显示包括所述畸变矫正图像的界面。
12.一种电子设备,其特征在于,包括一个或多个处理器和一个或多个存储器;其中,所述一个或多个存储器与所述一个或多个处理器耦合,所述一个或多个存储器用于存储计算机程序,当所述一个或多个处理器执行所述计算机程序时,使得所述电子设备执行如权利要求1至11任一项所述的方法。
13.一种芯片,所述芯片应用于电子设备,所述芯片包括一个或多个处理器,其特征在于,所述处理器用于调用计算机指令,以使得所述电子设备执行如权利要求1至11中任一项所述的方法。
14.一种计算机可读存储介质,包括计算机程序,其特征在于,当所述计算机程序在电子设备上运行时,使得所述电子设备执行如权利要求1至11任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410645594.5A CN118247186A (zh) | 2024-05-23 | 2024-05-23 | 图像畸变矫正方法、电子设备、存储介质及芯片 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410645594.5A CN118247186A (zh) | 2024-05-23 | 2024-05-23 | 图像畸变矫正方法、电子设备、存储介质及芯片 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118247186A true CN118247186A (zh) | 2024-06-25 |
Family
ID=91556551
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410645594.5A Pending CN118247186A (zh) | 2024-05-23 | 2024-05-23 | 图像畸变矫正方法、电子设备、存储介质及芯片 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118247186A (zh) |
-
2024
- 2024-05-23 CN CN202410645594.5A patent/CN118247186A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI788630B (zh) | 三維人臉模型生成方法、裝置、電腦設備及儲存介質 | |
TWI775896B (zh) | 用於使用卷積神經網路的視頻超解析度的方法和設備 | |
CN109788189B (zh) | 将相机与陀螺仪融合在一起的五维视频稳定化装置及方法 | |
US11526970B2 (en) | System and method for video processing with enhanced temporal consistency | |
US11189071B2 (en) | Electronic device for providing avatar animation and method thereof | |
WO2021078001A1 (zh) | 一种图像增强方法及装置 | |
CN112287852B (zh) | 人脸图像的处理方法、显示方法、装置及设备 | |
CN116048244B (zh) | 一种注视点估计方法及相关设备 | |
CN112991494A (zh) | 图像生成方法、装置、计算机设备及计算机可读存储介质 | |
CN105427369A (zh) | 移动终端及其三维形象的生成方法 | |
KR20210010517A (ko) | 자세 교정 | |
CN111612723B (zh) | 图像修复方法及装置 | |
CN115061770A (zh) | 显示动态壁纸的方法和电子设备 | |
CN114782296B (zh) | 图像融合方法、装置及存储介质 | |
CN114429495A (zh) | 一种三维场景的重建方法和电子设备 | |
CN115150542B (zh) | 一种视频防抖方法及相关设备 | |
CN116152122B (zh) | 图像处理方法和电子设备 | |
CN112528760B (zh) | 图像处理方法、装置、计算机设备及介质 | |
CN115908120B (zh) | 图像处理方法和电子设备 | |
CN116055895A (zh) | 图像处理方法及其相关设备 | |
CN117132515A (zh) | 一种图像处理方法及电子设备 | |
CN113763517B (zh) | 人脸表情编辑方法及电子设备 | |
WO2022261856A1 (zh) | 图像处理方法、装置及存储介质 | |
CN118247186A (zh) | 图像畸变矫正方法、电子设备、存储介质及芯片 | |
CN115914860A (zh) | 一种拍摄方法及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination |