CN112055869A - 对面部的透视畸变校正 - Google Patents
对面部的透视畸变校正 Download PDFInfo
- Publication number
- CN112055869A CN112055869A CN201880093040.1A CN201880093040A CN112055869A CN 112055869 A CN112055869 A CN 112055869A CN 201880093040 A CN201880093040 A CN 201880093040A CN 112055869 A CN112055869 A CN 112055869A
- Authority
- CN
- China
- Prior art keywords
- image
- determining
- mesh
- cost
- face
- 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 description 14
- 238000000034 method Methods 0.000 claims abstract description 217
- 238000005457 optimization Methods 0.000 claims abstract description 55
- 230000009466 transformation Effects 0.000 claims abstract description 43
- 230000006870 function Effects 0.000 claims description 42
- 238000005070 sampling Methods 0.000 claims description 15
- 238000000844 transformation Methods 0.000 claims description 8
- 238000013519 translation Methods 0.000 claims description 8
- 238000013507 mapping Methods 0.000 claims description 4
- 238000004519 manufacturing process Methods 0.000 claims description 3
- 238000012545 processing Methods 0.000 abstract description 8
- 210000000887 face Anatomy 0.000 description 45
- 230000008569 process Effects 0.000 description 42
- 230000001815 facial effect Effects 0.000 description 28
- 238000010586 diagram Methods 0.000 description 19
- 238000004891 communication Methods 0.000 description 13
- 238000003860 storage Methods 0.000 description 12
- 239000013598 vector Substances 0.000 description 10
- 238000004422 calculation algorithm Methods 0.000 description 9
- 238000013500 data storage Methods 0.000 description 7
- 239000011159 matrix material Substances 0.000 description 7
- 238000012952 Resampling Methods 0.000 description 4
- 238000003702 image correction Methods 0.000 description 4
- 238000003384 imaging method Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 description 3
- 241001465754 Metazoa Species 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 238000002156 mixing Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000013478 data encryption standard Methods 0.000 description 2
- 230000003116 impacting effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 241000593989 Scardinius erythrophthalmus Species 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000003796 beauty Effects 0.000 description 1
- 238000005452 bending Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 230000008921 facial expression Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 210000001061 forehead Anatomy 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 201000005111 ocular hyperemia Diseases 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000003825 pressing Methods 0.000 description 1
- 238000007639 printing Methods 0.000 description 1
- 238000001454 recorded image Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000013515 script Methods 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 239000000779 smoke Substances 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- 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/18—Image warping, e.g. rearranging pixels individually
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/10—Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
- G06V40/16—Human faces, e.g. facial parts, sketches or expressions
- G06V40/161—Detection; Localisation; Normalisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
- G06T17/205—Re-meshing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/20—Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
-
- 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
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/11—Region-based segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/60—Type of objects
- G06V20/64—Three-dimensional objects
- G06V20/647—Three-dimensional objects by matching two-dimensional images to three-dimensional objects
-
- 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/20004—Adaptive image processing
- G06T2207/20012—Locally adaptive
-
- 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/30—Subject of image; Context of image processing
- G06T2207/30196—Human being; Person
- G06T2207/30201—Face
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2219/00—Indexing scheme for manipulating 3D models or images for computer graphics
- G06T2219/20—Indexing scheme for editing of 3D models
- G06T2219/2016—Rotation, translation, scaling
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Graphics (AREA)
- Multimedia (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- Architecture (AREA)
- Computer Hardware Design (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Human Computer Interaction (AREA)
- Health & Medical Sciences (AREA)
- Oral & Maxillofacial Surgery (AREA)
- General Health & Medical Sciences (AREA)
- Image Processing (AREA)
- Studio Devices (AREA)
- Image Analysis (AREA)
Abstract
提供了与图像处理有关的装置和方法。计算设备能够确定诸如由相机捕获的图像的图像的第一图像区域。计算设备能够确定图像的翘曲网格,其中翘曲网格的第一部分与第一图像区域相关联。计算设备能够通过以下步骤来确定翘曲网格的成本函数:确定与翘曲网格的第一部分相关联的第一成本,所述第一成本包括与用于校正几何畸变的第一图像区域的面部相关变换相关联的成本,以及确定与翘曲网格相关联的第二成本,所述第二成本包括用于保存图像的边缘的直线度的边缘相关变换的成本。计算设备能够基于优化成本函数确定优化网格。计算设备能够基于优化网格修改第一图像区域。
Description
背景技术
包括移动电话、个人计算机和平板的许多现代计算设备包括诸如静止和/或视频相机的图像捕获设备。图像捕获设备能够捕获图像,诸如包括人、动物、风景和/或对象的图像。
一些图像捕获设备和/或计算设备能够校正捕获的图像。例如,一些图像捕获设备能够提供“红眼”校正,该“红眼”校正去除可能存在于使用诸如闪光灯的明亮灯所捕获的图像中的伪影,诸如人和动物的出现红色的眼睛。在已经校正捕获的图像之后,能够保存、显示、传送、向纸张打印和/或以其它方式利用校正图像。
发明内容
在一个方面中,提供了一种计算机实现的方法。接收表示图像的图像数据。确定与图像中的第一感兴趣区相对应的第一图像区域。确定图像的翘曲网格。确定与第一图像区域相关联的翘曲网格的第一部分。通过以下步骤来确定翘曲网格的成本函数:确定与翘曲网格的第一部分相关联的第一成本,其中第一成本包括与用于校正图像中所表示的第一感兴趣区的一个或多个几何畸变的、至少第一图像区域的一个或多个面部相关变换相关联的成本,以及确定与翘曲网格相关联的第二成本,其中第二成本包括用于保存至少通过一个或多个面部相关变换所修改的图像的边缘的直线度的一个或多个边缘相关变换的成本。基于对翘曲网格的成本函数的优化确定优化网格。基于优化网格修改图像的第一图像区域。
在另一方面中,提供了一种计算设备。该计算设备包括:一个或多个处理器;和一个或多个计算机可读介质,在其上存储有计算机可读指令,这些计算机可读指令当由一个或多个处理器执行时,使计算设备执行功能。这些功能包括:接收表示图像的图像数据;确定与图像中的第一感兴趣区相对应的第一图像区域;确定图像的翘曲网格;确定与第一图像区域相关联的翘曲网格的第一部分;通过以下步骤来确定翘曲网格的成本函数:确定与翘曲网格的第一部分相关联的第一成本,其中第一成本包括与用于校正图像中所表示的第一感兴趣区的一个或多个几何畸变的、至少第一图像区域的一个或多个面部相关变换相关联的成本,以及确定与翘曲网格相关联的第二成本,其中第二成本包括用于保存至少通过一个或多个面部相关变换所修改的图像的边缘的直线度的一个或多个边缘相关变换的成本;基于对翘曲网格的成本函数的优化确定优化网格;以及基于优化网格修改图像的第一图像区域。
在另一方面中,提供了一种计算设备。该计算设备包括:用于接收表示图像的图像数据的手段;用于确定与图像中的第一感兴趣区相对应的第一图像区域的手段;用于确定图像的翘曲网格的手段;用于确定与第一图像区域相关联的第翘曲网格的一部分的手段;用于通过以下步骤来确定翘曲网格的成本函数的手段:确定与翘曲网格的第一部分相关联的第一成本,其中第一成本包括与至少第一图像区域的一个或多个面部相关变换校正如图像中所表示的第一感兴趣区的一个或多个几何畸变相关联的成本,以及确定与翘曲网格相关联的第二成本,其中第二成本包括至少通过一个或多个面部相关变换所修改的图像的边缘的直线度的一个或多个边缘相关变换的成本;用于基于对翘曲网格的成本函数的优化确定优化网格的手段;以及用于基于优化网格修改图像的第一图像区域的手段。
在另一方面中,提供了一种制品。该制品包括一个或多个计算机可读介质,在其上存储有计算机可读指令,这些计算机可读指令当由计算设备的一个或多个处理器执行时,使计算设备执行功能。这些功能包括:接收表示图像的图像数据;确定与图像中的第一感兴趣区相对应的第一图像区域;确定图像的翘曲网格;确定与第一图像区域相关联的翘曲网格的第一部分;通过以下步骤来确定翘曲网格的成本函数:确定与翘曲网格的第一部分相关联的第一成本,其中第一成本包括与用于校正图像中所表示的第一感兴趣区的一个或多个几何畸变的、至少第一图像区域的一个或多个面部相关变换相关联的成本,以及确定与翘曲网格相关联的第二成本,其中第二成本包括用于保存至少通过一个或多个面部相关变换所修改的图像的边缘的直线度的一个或多个边缘相关变换的成本;基于对翘曲网格的成本函数的优化确定优化网格;以及基于优化网格修改图像的第一图像区域。
前面的发明内容仅是说明性的,而不旨在以任何方式限制。除了上述说明性方面、实施例和特征之外,通过参考图以及以下详细描述和附图,另外的方面、实施例和特征将变得显而易见。
附图说明
图1是依照示例实施例的方法的流程图。
图2示出依照示例实施例的具有面部框和扩展面部框的输入图像。
图3示出依照示例实施例的图2的输入图像的图像遮罩。
图4示出依照示例实施例的图2的输入图像的翘曲网格。
图5示出依照示例实施例的图2的输入图像的优化网格。
图6示出依照示例实施例的包括图2的输入图像的面部校正的输出图像。
图7是依照示例实施例的方法的流程图。
图8是依照示例实施例的方法的流程图。
图9是依照示例实施例的方法的流程图。
图10是依照示例实施例的方法的流程图。
图11是依照示例实施例的方法的流程图。
图12是依照示例实施例的方法的流程图。
图13是依照示例实施例的方法的流程图。
图14图示依照示例实施例的场景,其中表示两个面部的输入图像具有在对应的输出图像中校正的两个面部。
图15图示依照示例实施例的场景,其中表示四个面部的输入图像具有在对应的输出图像中校正的四个面部中的三个。
图16图示依照示例实施例的场景,其中计算设备显示输入图像和控件,当被选择时,该控件使计算设备生成包括输入图像中表示的面部的校正对应的输出图像1550。
图17描绘依照示例实施例的分布式计算架构。
图18是依照示例实施例的示例计算设备的功能框图。
图19是依照示例实施例的方法的流程图。
具体实施方式
当拍摄对象时,三维环境被再现为二维图像。因此,空间中的三维点被投影到二维坐标系上。作为此类投影的结果,可能发生各种畸变。例如,当捕获图像的视角与观看图像的视角不同时,可能发生透视畸变,并且透视畸变可以引起与成像设备相距不同距离的对象的相对外观畸变。在使用能够包括宽视场(WFOV)透镜和/或WFOV传感器的WFOV成像系统时,透视畸变伪影可能是特别引入注意的。因此,WFOV成像系统的优点—常常存在于例如智能电话、翻盖电话、平板的移动计算设备或其它设备上—常常与图像保真度方面的缺点相关联。这样的效果对于图像周边的对象来说是特别明显的。
结果,当拍摄人类面部或其它对象时,特别是在所得相片或其它图像的周边区中,作为透视畸变的结果,人类面部或其它对象可以展示拉伸特征和扭曲特征。这是成像系统的技术后果并在图像保真度方面可以是不利的,而且引起图像质量降低。特别地,人类面部畸变可能是特别引入注意的,因此即使在此类畸变相对较小的情况下,也表示图像质量的显著降级。也就是说,透视畸变能够导致不愉快的人类面部畸变,从而对用户体验造成负面影响。透视畸变能够导致不愉快的人类面部畸变,从而对用户体验造成负面影响。
因此,捕获有诸如面部(包括人类面部)的对象的透视畸变伪影的图像(例如,相片、视频记录中的影像)存在问题。在本文中描述了用于校正相片和/或其它图像中的这些透视畸变伪影的技术和相关装置。本文描述的技术和相关装置能够使用一个或多个投影来帮助校正这些伪影。更特别地,能够使用第一投影来局部地校正一个或多个输入图像的面部区;即,表示面部的输入图像的区,并且能够使用第二投影来校正在面部区外部的输入图像的区。例如,第一投影可以是立体投影,而第二投影可以是透视投影。能够在网格中体现第一投影和/或第二投影。另外,能够生成、显示、传送和/或以其它方式产生反映使用网格、第一投影和/或第二投影对一个或多个输入图像做出的校正的一个或多个校正图像—在一些情况下,校正图像能够将使用网格、第一投影和/或第二投影做出的校正反映到对应的输入图像的大多数而非全部像素。作为示例,能够在移动计算设备的软件应用中体现这些本文描述的技术。
其它技术已用于校正图像。在一些情况下,利用鱼眼透镜和/或相关软件来全局地映射图像以试图校正透视畸变伪影。然而,鱼眼透镜和/或相关软件不能够产生直线,并且渲染具有弯曲外观的所得图像。本文描述的技术和相关装置能够在维持图像中的直线的同时校正透视畸变伪影,从而在透视畸变校正图像中产生很少的(若有的话)附加伪影。另外,软件应用能够在移动计算设备上高效地执行本文描述的技术。
特别地,本文描述的技术依靠在图像的面部区上局部地混合正形投影(conformalprojection)的构思,其中面部区是表示一个或多个面部的图像的区。正形投影能够包括保角投影,诸如将球体投影到平面上同时保存曲线相交的角度的立体投影。图像的其余部分,即在面部区外部的图像的部分,能够使用保存直线的透视投影来渲染。然而,应用于整个图像的正形投影使整个图像中的刚性对象的形状和曲率畸变。为了避免对象的形状和曲率的这些畸变,本文描述的技术将正形投影局部地应用于面部区。然后,为了解决在面部区外部的形状/曲率畸变,对图像的其余部分使用保存直线度的透视变换。所得图像校正技术组合对图像的面部区的正形投影和对图像的其余部分的透视投影。
在一些示例中,能够在最小或无用户输入情况下使用本文描述的技术。例如,能够在无需请求用户标识图像的面部区、线或其它方面的情况下并且在无需请求用户指定在本文描述的技术的计算中利用的项的情况下利用本文描述的技术。相反,如在下面所讨论的,能够在没有此类用户输入的情况下在图像的各方面上并在本文描述的计算中使用的项上利用本文描述的技术,并且因此能够在自动图像校正应用中利用本文描述的技术。另外,能够在无需用户输入的情况下利用本文描述的技术来校正一系列图像,诸如视频记录中的一系列图像。因此,本文描述的技术能够有益地用于在无需用户输入的情况下校正静止图像和/或视频记录的图像中的面部区。当然,本文描述的技术与一些用户输入的变化也是可能的。
用于校正图像中的透视畸变的技术与装置
能够在翘曲网格上解决网格优化问题以组合对图像的面部区的正形投影和对图像的其余部分的透视投影。然后,能够通过使用解决网格优化问题的优化网格使具有透视畸变的相关输入图像翘曲来渲染输出图像。
在一些示例中,与在下面在图1的上下文中讨论的方法100有关的以下过程能够用于生成校正对应的输入图像I中的透视畸变中的一些或全部的校正输出图像O:
1.能够检查输入图像I的触发条件。例如,此类触发条件能够涉及面部(例如,人类面部、动物面部)和/或其它对象的表示、此类面部和/或对象的表示的大小以及与面部和/或对象的表示有关的正形性成本。其它触发条件也是可能的。
2.能够确定与图像I的面部区相对应的一个或多个面部遮罩。能够将面部遮罩的并集用作图像I的对应于面部区的各部分的组合。在要校正除面部以外的对象的伪影的一些示例中,面部遮罩和对应的面部区能够用除面部以外的对象的一个或多个遮罩和/或除面部以外的对象的图像I的一个或多个对应的对象区替换和/或扩增。
3.能够估计与面部区有关的比例因子。例如,图像I的面部区能够与第一类型的变换或其它处理技术相关联,并且图像I的非面部区能够与第二类型的变换或其它处理技术相关联—然后,比例因子能够表示利用第一类型的变换所处理的图像I的一部分P的面积与利用第二类型的变换所处理的图像I的部分P的面积之比(或者反之亦然)。其它比例因子也是可能的。
4.能够利用翘曲网格v中的能量项将网格优化问题公式化为优化方程。例如,网格优化问题可以是用于使在翘曲网格v中表示的能量项最小化的最小化问题。其它网格优化问题也是可能的。
5.能够对翘曲网格v强加边界条件。在一些示例中,不强加边界条件。
6.能够以数值方式求解翘曲网格v上的网格优化问题并且能够使该解归一化以产生最优网格v’。
7.能够对最优网格v’进行重新采样以生成反向网格z。
8.能够通过基于使用反向网格z所生成的坐标对输入图像I的像素进行采样来生成输出图像O。输出图像O能够通过减少或消除与输入图像I中的透视畸变有关的伪影来校正输入图像I。
其它过程是可能的以用于在生成校正对应的输入图像I中的透视畸变中的一些或全部的校正输出图像O时使用。
图1是依照示例实施例的方法100的流程图。与上述过程有关的方法100能够生成校正对应的输入图像I中的透视畸变的校正输出图像O。方法100能够由诸如下述计算设备1800的计算设备执行。
方法100能够在框110处开始,其中计算设备能够接收具有宽度W(I)和高度H(I)的输入图像I。另外,计算设备能够确定N,N是由大小比阈值大小大的图像I所表示的面部的数目。在下面在图7的上下文中描述与框110有关的详细过程。
在框120处,计算设备能够确定输入图像I中的N个面部的N个面部框FBk,其中k范围从1到N。图像的面部框能够指示表示诸如人类面部的面部的图像的区。在一些示例中,面部框能够具有正方形或矩形形状。在其它示例中,面部框能够具有与正方形或矩形不同的形状;例如,卵圆或椭圆形形状、三角形形状、六边形形状等。
计算设备能够必要时扩展N个面部框中的每个面部框FBk,1≤k≤N,以包含第k个面部的面部界标。面部的面部界标能够指示面部的特定特征在面部上的位置;面部的此类特征能够包括但不限于:具有面部的头的顶部、面部的毛发、面部的前额、面部的眼睛、面部的鼻子、面部的鼻孔、面部的嘴唇、面部的嘴、面部的下巴、面部的舌头、面部的牙齿、面部上的面部表情、面部上的酒窝、面部上的美丽标记和/或其它标记以及支撑目标的颈部。在下面在图8的上下文中描述与框120有关的详细过程。
作为与框120有关的示例,图2示出包括在墙240前面的面部210的示例输入图像200,其中面部210位于图像200的右侧边缘附近。图2示出面部210被初始面部框212部分地围绕。也就是说,在图2中所示的示例输入图像200中,N等于1,并且能够将面部框212认为是在扩展之前的FB1。然后,能够在图像200中检测面部界标—此类面部界标在图2中被示出为白色圆圈并且包括在面部210顶部附近的面部界标220和在面部210右下方的面部界标222。面部框212包括面部界标222但是不包括面部界标220。因此,在框120处,计算设备能够扩展面部框212以包括针对面部210找到的所有面部界标—所得扩展面部框在图2中被示出为扩展面部框230。
在框130处,计算设备能够针对N个面部框中的每个面部框FBk,1≤k≤N,计算输入图像I中的分段遮罩Mk。然后,计算设备能够将图像遮罩M确定为所有分段遮罩Mk的并集。
作为与框130有关的示例,图3示出图像遮罩300,其表示被分别表示为分段遮罩310和扩展面部框230的扩展面部框FB1的分段遮罩M1。分段遮罩310是表示面部210的遮罩,如由面部210的包括面部界标220和222的面部界标所图示的。
在一些示例中,在框130处,计算设备能够确定输入图像I是否包括透镜畸变。如果图像I确实包括透镜畸变,则能够通过使图像遮罩M翘曲来校正透镜畸变。
在框140处,计算设备能够为图像I创建具有NR x NC个顶点的至少一个翘曲网格v,其中NR和NC中的每一个均大于0。作为与框140有关的示例,图4示出翘曲网格400,其中NR=75=翘曲网格400的行数,并且NC=100=翘曲网格400的列数。
在框150处,计算设备能够利用与对于与遮罩M相对应的网格v的位置中的图像I中的N个面部执行一个或多个面部相关变换相关联的成本来更新翘曲网格v。例如,与执行一个或多个面部相关变换相关联的成本能够被称为面部相关成本。面部相关变换能够校正N个面部中的至少一个的一个或多个几何畸变。在下面在图9的上下文中描述与框150有关的详细过程。
在框160处,计算设备能够利用与执行用于保存至少通过一个或多个面部相关变换所修改的图像的边缘的直线度的一个或多个边缘相关变换相关联的成本并且利用翘曲网格v的边界的成本来更新网格v。例如,与执行一个或多个边缘相关变换相关联的成本能够被称为边缘相关成本。在下面在图10的上下文中描述与框160有关的详细过程。在一些示例中,一个或多个投影变换能够组合一个或多个面部相关变换和一个或多个边缘相关变换两者;在这些示例中的一些中,能够将面部相关成本和边缘相关成本组合为投影成本(与组合投影变换相对应)。
在框170处,计算设备能够基于如框150和160中所更新的翘曲网格v的顶点的成本项的数值优化如最小化来确定优化网格v’。在下面在图11的上下文中描述与框170有关的详细过程。
作为与框170有关的示例,图5示出优化网格500,其示出利用与面部210、扩展面部框230和分段遮罩310相关联的面部相关网格部分510来更新和优化的翘曲网格400。已经利用与对于输入图像200中的面部210执行面部相关变换相关联的成本更新了面部相关网格部分510。另外,与执行面部相关变换相关联的成本已经被优化;例如,使用数值优化来最小化。面部相关变换在图5中被反映作为优化网格500在面部相关网格部分510内的变形。与翘曲网格400一样,优化网格500具有行数NR=75,列数NC=100。
在框180处,计算设备能够通过对优化网格v’进行重新采样来确定反向网格z。在下面在图12的上下文中描述与框180有关的详细过程。
在框190处,计算设备能够通过至少以下步骤来确定输出图像O:对于图像O的每个像素P(O),基于在基于反向网格z而确定的采样坐标处拍摄的图像I的样本来更新P(O)。在下面在图13的上下文中描述与框190有关的详细过程。
在确定输出图像O之后,计算设备能够输出图像O;例如,显示图像O的一部分或全部,将图像O的一部分或全部存储在易失性和/或非易失性存储器中;将图像O的一部分或全部传递到一个或多个其它计算设备,将图像O打印到纸张等。
作为与框190有关的示例,图6示出校正输入图像200的输出图像600。特别地,与输入图像200的面部210相比,输出图像600中的面部610已经被旋转和缩放,其中,已经通过在上面在至少框150的上下文讨论的面部相关变换旋转和缩放了面部610。输出图像600也示出直线已经被保存;例如,相对于如输出图像600中所表示的墙640描绘门、门框等轮廓的直线也被示出为相对于输入图像200中表示的墙240的直线。在输入图像200和输出图像600两者中,在扩展面部框230外部的其它直线和直线之间的角度是相同的。因此,已经通过涉及使输入图像200翘曲以校正扩展面部框230内的透视畸变的方法100的过程渲染了输出图像600,方法100在生成输出图像600的同时确实未向输入图像200添加(至少)直线相关视觉伪影。
方法100能够被配置有隐私控件以确保在由方法100处理的图像中存在面部的一个或多个人的隐私。例如,计算设备能够从面部由面部框FBk表示的每个人获得显式许可—计算设备能够将面部呈现在面部框FBk中,其中k范围从1到N,可能在已经在框120中扩展了面部之后。然后,能够获得在继续方法100的剩余部分之前处理来自面部在其面部框FBk中的每个人的输入图像I的许可;即,计算设备能够显示面部框FBk以请求来自面部在显示的面部框中的每个人的批准。
在其它示例中,面部在图像中的一个或多个人能够给出在框110处接收到输入图像I之前执行方法100的在先批准,并且计算设备能够在执行方法100之前按需验证该批准。在仍然其它的示例中,此类许可可以是隐式的;例如,如果计算设备的所有者捕获他们自己的面部并且仅在“自拍”图像中捕获到他们自己的面部,然后使用方法100来请求图像校正,则所有者的仅仅对于他们自己的面部执行方法100的许可可以通过他们对自拍的图像校正的请求来推理。这些隐私相关技术和/或用于确保在输入图像I和/或其它图像中捕获到面部的人的隐私的其它技术的组合也是可能的。
图7是依照示例实施例的方法100的框110的过程的方法的流程图。例如,执行方法100的计算设备能够执行框710、720、730、740、750、760、770、772、774、776、780、782、784和790的过程中的至少一些,同时执行方法100的框120的过程。
在框710处,计算设备能够接收具有宽度W(I)和高度H(I)的输入图像I。计算设备能够确定N,其是由图像I表示的面部的数目,诸如但不限于人类面部的数目。例如,图2的输入图像200表示N=1个人类面部。计算设备能够确定面部的最小正形性成本CCmin,其中在下面在至少框774和776的上下文中更详细地讨论面部的正形性成本CCmin。计算设备能够令值N1等于N。
在框720处,计算设备能够确定N个面部的面部框FBk,1≤k≤N。为了确定N和/或面部框FB1、FB2…FBN中的一些或全部,计算设备能够利用面部检测软件,该面部检测软件对图像I中的面部进行定位和/或计数并且/或者计算在图像I中检测到的面部的面部框。计算设备能够令值k等于1。
在框730处,计算设备能够确定面部框FBk的大小例如面积是否大于面部框TS的阈值大小。如果计算设备确定面部框FBk的大小大于TS,则计算设备能够进行到框750。否则,计算设备能够确定面部框FBk的大小小于或等于TS,并且能够进入到框740。
在框740处,计算设备能够丢弃面部框FBk。通过丢弃面部框FBk,计算设备将有效地不再将与面部框FBk相关联的图像的面部部分作为面部来处理。然后,计算设备能够将N的值递减一;也就是说,计算设备能够令N=N-1。
在框750处,计算设备能够将k的值递增1;也就是说,计算设备能够令k=k+1。
在框760处,计算设备能够确定k是否大于N1。如果计算设备确定k大于N1,则计算设备能够进行到框770。否则,计算设备能够确定k小于或等于N1,并且能够进行到框730。
在框770处,计算设备能够确定N是否小于或等于0。如果计算设备确定N小于或等于0,则图像I中的面部没有超过阈值大小TS的对应的面部框,所以计算设备能够进行到框790。否则,计算设备能够确定N大于0,并且能够进行到框772。
在框772处,计算设备能够将k的值设定为等于1。
在框774处,计算设备能够确定面部框FBk的四个拐角C1、C2、C3和C4的最大正形性成本CCk。能够将面部框FBk的正形性成本CCk确定为面部框FBk的拐角C1、C2、C3和C4的坐标差的加权平方和,其中在至少一个维度上的拐角的坐标差通过基于面部框FBk的面积的值进一步加权。
在框776处,计算设备能够确定面部框FBk的正形性成本CCk是否小于最小正形性成本CCmin。如果计算设备确定CCk小于CCmin,则计算设备能够进行到框782。否则,计算设备能够确定CCk大于或等于CCmin并且计算设备能够进行到780。
在框780处,计算设备能够继续方法100的剩余部分;即,完成方法100的框110的过程并且通过开始执行方法100的框120的过程来继续方法100。
在框782处,计算设备能够将k的值递增1;也就是说,计算设备能够令k=k+1。
在框784处,计算设备能够确定k是否大于N。如果计算设备确定k大于N,则计算设备能够继续到框790。否则,计算设备能够确定k小于或等于N,并且能够进行到框774。
在框790处,计算设备能够将输入图像I拷贝到输出图像O;即,生成输入图像I的副本作为输出图像O。计算设备能够退出方法100,其中图像O是方法100的输出。
图8是依照示例实施例的方法100的框120的过程的方法的流程图。例如,执行方法100的计算设备能够在执行方法100的框120的过程的同时执行框800、810、820、830、840、850和860的过程中的一些或全部。
在框800处,计算设备能够令和/或将值k初始化为等于1。
在框810处,计算设备能够确定图像I中的面部k的一个或多个面部界标FLk。
在框820处,计算设备能够确定面部k的面部框FBk是否包含所有面部界标FLk。例如,计算设备能够确定每个面部界标FL的坐标是在面部框FBk内部还是外部。如果所有面部界标FLk的坐标都在面部框FBk内部,则计算设备能够确定面部框FBk包含所有面部界标FLk并且所以包围表示面部k的图像I的区域,而且计算设备能够进行到框840。否则,计算设备能够确定面部框FBk不包含所有面部界标FLk并且计算设备能够进行到框830。
在框830处,计算设备能够扩展面部框FBk以包含所有面部界标FLk。因此,在框830处扩展之后,面部框FBk包围表示面k的图像I的区域
在框840处,计算设备能够将k的值递增1;也就是说,计算设备能够令k=k+1。
在框850处,计算设备能够确定k是否大于N。如果计算设备确定k大于N,则计算设备能够进行到框860。否则,计算设备能够确定k小于或等于N,并且能够进行到框810。
在框860处,计算设备能够继续方法100的剩余部分;即,完成方法100的框120的过程并且通过开始执行方法100的框130的过程来继续方法100。
图9是依照示例实施例的方法100的框150的过程的方法的流程图。例如,执行方法100的计算设备能够在执行方法100的框150的过程的同时执行框900、910、920、930、940、950、960、970和980的过程中的一些或全部。
在框900处,计算设备能够令和/或将值k初始化为等于1。
在框910处,计算设备能够计算映射到立体空间中的面部框FBk的面积SAk并且计算映射到透视空间中的面部框FBk的另一面积PAk。然后,计算设备能够将面部k的本机比例因子NSFk计算为NSFk=SAk/PAk。本机比例因子NSFk能够指示被面部框FBk包围的面部k的大小如何在立体投影之后改变。
在框920处,计算设备能够创建翘曲网格u和v,其中翘曲网格u和v中的每一个均具有NR x NC个顶点,其中NR=行数大于0,并且其中NC=行数大于0。例如,NR=100,并且NC=75,而且在此示例中,网格u和v中的每一个均具有NR*NC=7500个顶点。翘曲网格v可以是遍及图像I的(顶点的)网格,可能在已经透镜校正图像I之后。翘曲网格u可以是遍及图像I的立体投影的(顶点的)翘曲网格。翘曲网格u和/或翘曲网格v的其它示例也是可能的。
在框930处,计算设备能够使网格v中的每个顶点与面部k的面部比例成本项FSCTk相关联。面部比例成本项FSCTk能够表示要执行校正如图像I中所表示的面部k的畸变的面部k的缩放量。能够将FSCTk计算为FSCTk=Wf*|ak-1/NSFk|2,其中Ws是用于面部缩放的加权项,其中NSFk是上面在框910的上下文中讨论的面部k的本机比例因子项,并且其中ak表示由紧接在下面讨论的变换矩阵Sk提供的面部k的缩放。
在框940处,计算设备能够为面部k设定和/或初始化两个隐式变量:变换矩阵Sk和平移向量tk。Sk能够包括表示面部k的缩放和/或旋转的变换矩阵并且tk能够包括表示面部k的平移的平移向量。例如,Sk能够包括表示用于面部k的缩放变换ak和旋转变换bk的组合的每面部刚性变换矩阵[ak_bk;-bk ak],并且tk能够包括每面部平移向量[txk,tyk],其中tx和tyk表示面部k的相应的x坐标和y坐标平移。由矩阵Sk和向量tk表示的面部k的缩放、旋转和/或平移可以是能够校正如图像I中所表示的面部k的一个或多个几何畸变的变换,诸如仿射变换。
在框950处,计算设备能够通过执行以下功能来制定翘曲网格vk中的每个顶点V的成本:(1)确定网格u中的对应顶点U,并且(2)使顶点V与面部变换成本项FTCTk相关联。变换成本项FTCTk能够表示要执行以校正如图像I中所表示的面部k的畸变的面部k的变换量。能够将FTCTk计算为FTCTk=Ws*|V-Sk*U–tk|2,其中Ws是用于面部变换的加权项,Sk是隐式变量和上面在框940的上下文中讨论的变换矩阵,并且tk是隐式变量和上面在框940的上下文中讨论的变换向量。
在框960处,计算设备能够将k的值递增1;也就是说,计算设备能够令k=k+1。
在框970处,计算设备能够确定k是否大于N。如果计算设备确定k大于N,则计算设备能够进行到框980。否则,计算设备能够确定k小于或等于N,并且能够进行到框910。
在框980处,计算设备能够继续方法100的剩余部分;即,完成方法100的框150的过程并且通过开始执行方法100的框160的过程来继续方法100。
图10是依照示例实施例的方法100的框160的过程的方法的流程图。例如,执行方法100的计算设备能够在执行方法100的框160的过程的同时执行框1000、1010、1020、1030、1040、1042、1050、1060、1070、1080和1090的过程中的一些或全部。
在框1000处,计算设备能够令和/或将值e初始化为等于1,并且令和/或将值NE初始化为等于图像I中表示的边缘和/或其它线的数目。例如,能够使用线检测算法来检测图像I中表示的边缘和/或其它线,并且能够将值NE设定为在图像I中检测到的边缘和/或其它线的数目。用于确定值NE的其它技术也是可能的。
在框1010处,计算设备能够将值E设定为等于图像I的边缘e,其中E与网格v中的顶点Vi和Vj相关联,并且其中I≠j。
在框1020处,计算设备能够使边缘E与表示与维持边缘E相关联的成本的边缘成本项ECT相关联。能够将ECT计算为ECT=Wr*|E|2,其中|E|2表示边缘E的长度并且其中Wr是正则化加权项。
在框1030处,计算设备能够使边缘E与表示与在边缘E已经被变换之后的弯曲边缘E相关联的成本的边缘弯曲项EB(E)相关联。取决于边缘E的水平方向或垂直方向,EB(E)能够等于两个值中的一个。更具体地,能够将EB(E)确定为:
EB(E)=Wb*|Vi,y+Vj,y|2,如果边缘E是水平的;或者
EB(E)=Wb*|Vi,x+Vj,x|2,如果边缘E是垂直的。
其中Wb可以是弯曲加权项。
在框1040处,计算设备能够将e的值递增1;也就是说,计算设备能够令e=e+1。
在框1042处,计算设备能够确定e是否大于NE。如果计算设备确定e大于NE,则计算设备能够进行到框1050。否则,计算设备能够确定e小于或等于NE,并且可以进行到框1010。
在框1050处,计算设备能够使网格v的界限上的每个顶点Vb与边界成本项BCT相关联。能够将BCT计算为BCT=Wb*d(Vb),其中d(Vb)是顶点Vb与网格v的界限之间的垂直距离,并且其中Wb可以是上面在框1030的上下文中讨论的弯曲加权项。
在框1060处,计算设备能够将网格v每个边上扩展了顶点数NBDRY,NBDRY>0。例如,NBDRY可以是整数值,诸如1、2、3、4或另一整数值。对于通过将网格扩展了NBDRY顶点而添加到翘曲网格v的每个顶点,计算设备能够固定与图像I的界限垂直的顶点的尺寸。然后,计算设备能够基于NBDRY更新网格v的行数NR和列数NC;例如,NR=NR+NBDRY并且NC=NC+NBDRY。
在框1070处,计算设备能够确定是否将在方法100中使用不对称成本。例如,变量、值、标志或其它类似数据项ACFLAG在将在方法100中使用不对称成本的情况下能够被设定为第一值(例如,一),而在将在方法100中不使用不对称成本的情况下能够被设定为第二值(例如,零)。然后,计算设备能够检查ACFLAG的值以确定是否将在方法100中使用不对称成本。如果计算设备确定将在方法100中使用不对称成本,则计算设备能够进行到框1080。否则,计算设备能够确定将在方法100中不使用不对称成本并且能够进行到框1090。
在框1080处,对于原先在网格v中的每个顶点Vi(即,在框1060处未添加的网格v的顶点),计算设备能够使顶点Vi与外部网格指示符函数OMI(Vi)=0相关联。对于原先不在网格v中的每个顶点Vj(即,在框1060处添加的网格v的顶点),计算设备能够使Vj与外部网格指示符函数OMI(Vj)=1相关联。
在框1090处,计算设备能够继续方法100的剩余部分;即,完成方法100的框160的过程并且通过开始执行方法100的框170的过程来继续方法100。
除在图9和图10的上下文中描述的成本函数外的其它成本函数也是可能的。另外,在一些示例中,能够修改成本函数的相对权重并且/或者能够用一个或多个其它投影替换在创建翘曲网格u时使用的立体投影。
图11是依照示例实施例的方法100的框170是过程的方法的流程图。例如,执行方法100的计算设备能够在执行方法100的框170的过程的同时执行框1100、1110、1120、1130、1140、1150、1160、1170和1180的过程中的一些或全部。
在框1100处,计算设备能够确定是否将在方法100中使用不对称成本。上面在框1070的上下文中讨论了用于确定是否将在方法100中使用不对称成本的技术。如果计算设备确定将在方法100中使用不对称成本,则计算设备能够进行到框1110。否则,计算设备能够确定将在方法100中不使用不对称成本并且能够进行到框1120。
在框1110处,计算设备能够使用涉及LevelNum个级别(LevelNum>1)的粗糙到精细技术来初始化优化网格v’。为了执行粗糙到精细技术,计算设备能够:(a)在最粗糙级别(例如,级别1)下,基于针对每个面部框FBk的立体投影和透视投影的插值来初始化优化网格V’,1≤k≤N;并且(b)对于每个更精细级别N,2≤N≤LevelNum;从级别N-1起向上采样初始化网格V’。
在框1120处,计算设备能够通过将翘曲网格V拷贝到优化网格V’来初始化优化网格V’。
在框1130处,计算设备能够通过执行与初始化网格V’的顶点相关联的成本和的数值最小化来获得优化网格V’并且确定隐式变量Sk和tk的值,其中Sk是隐式变量和上面至少在框940的上下文中讨论的变换矩阵,并且tk是隐式变量和上面至少在框940的上下文中讨论的变换向量。
能够用于执行与初始化网格V’的顶点相关联的成本和的数值最小化的示例数值解算器是在因特网上在ceres-solver.org处描述的Ceres解算器。
在框1140处,计算设备能够计算或以其它方式确定网格V’的dhmax、dhmin、dvmax、dvmin值。能够将dhmax值确定为在网格V’的左侧界限上的顶点v’i当中的dhmax=max(v’I,x)。能够将dhmin值确定为在网格V’的右侧界限上的顶点v’i当中的dhmin=min(v’i,x)。能够将dvmax值确定为在网格V’的顶部界限上的顶点v’i当中的dvmax=max(v’i,x)。能够将dvmin值确定为在网格V’的底部界限上的顶点v’i当中的dvmin=min(v’i,x)。
在框1150处,计算设备能够确定缩放向量sV’,其中缩放向量sV’=[sx,sy]=[W(I),H(I)]/[dhmin-dhmax,dvmin-dvmax],其中W(I)可以是图像I的宽度,并且H(I)可以是图像I的高度。
在框1160处,计算设备能够确定偏移向量oV’,其中偏移向量oV’=[ox,oy]=[dhmax,dvmax]。
在框1170处,计算设备能够通过确定v’I=sV’*(V’I-oV’)来对网格V’的每个顶点v’I进行调制。
在框1180处,计算设备能够继续方法100的剩余部分;即,完成方法100的框170的过程并且通过开始执行方法100的框180的过程来继续方法100。
图12是依照示例实施例的方法100的框180的过程的方法的流程图。例如,执行方法100的计算设备能够在执行方法100的框180的过程的同时执行框1200、1210、1220、1230、1240、1250、1260、1270、1280和1290的过程中的一些或全部。图12的流程图图示用于对最优网格v’进行重新采样以创建反向网格z的两遍算法。两遍算法的第一遍涉及如通过框1200、1210、1220、1230和1240所指示的优化网格v’的行。两遍算法的第二遍涉及如通过框1250、1260、1270、1280和1290所指示的优化网格v’的列。用于形成反向网格z的其它重新采样技术也是可能的。
在框1200处,计算设备能够令和/或将值RNum初始化为等于1并且将值CNum初始化为等于1。另外,计算设备能够令和/或将值NRV初始化为等于优化网格v’中的行数并且能够令和/或将值NCV初始化为等于优化网格v’中的列数。
在框1210处,计算设备能够在缓冲器BUF中存储v’的第RNum行。
在框1220处,计算设备能够针对存储在BUF中的第RNum行对列坐标进行插值。
在框1230处,计算设备能够将RNum的值递增1;也就是说,计算设备能够令RNum=RNum+1。
在框1240处,计算设备能够确定RNum值是否大于NRV,NRV的值是优化网格v’中的行数。如果计算设备确定RNum值大于NRV,则计算设备能够进行到框1250。否则,计算设备能够确定RNum值小于或等于NRV并且能够进行到框1210。
在框1250处,计算设备能够将缓冲器BUF的第CNum列拷贝到优化网格v’的第CNum列。
在框1260处,计算设备能够针对v’的第CNum列对行坐标进行插值。
在框1270处,计算设备能够将CNum的值递增1;也就是说,计算设备能够令CNum=CNum+1。
在框1280处,计算设备能够确定CNum值是否大于NCV,NCV的值是优化网格v’中的列数。如果计算设备确定CNum值大于NCV,则计算设备能够进行到框1290。否则,计算设备能够确定RNum值小于或等于NRV并且能够进行到框1250。
在框1290处,计算设备能够继续方法100的剩余部分;即,完成方法100的框180的过程并且通过开始执行方法100的框190的过程来继续方法100。
图13是依照示例实施例的方法100的框190的过程的方法的流程图。
例如,执行方法100的计算设备能够在执行方法100的框190的过程的同时执行框1300、1310、1320、1330、1340、1350、1360和1370的过程中的一些或全部。
在框1300处,计算设备能够令和/或将值Pix初始化为等于1并且能够令值NumPix等于输出图像O中的像素数。
在框1310处,计算设备能够令P(O)为图像O中的第Pix个像素并且能够令Zi为反向网格z中的P(O)的最近邻居的数目NumNbr,其中NumNbr是大于0的整数;例如,NumNbr能够等于1、2、3、4或另一正整数。
在框1320处,计算设备能够设定Coord(P(O)),其是透视空间中的像素P(O)的坐标,等于Zi的NumNbr值的插值。
在框1330处,计算设备能够使用透镜校正模型来查找透镜畸变空间上的Coord(P(O))以找到坐标InCoords(P(O))。
在框1340处,计算设备能够令P(O)等于对由InCoords(P(O))表示的坐标处的输入图像I的重新采样。然后,计算设备能够将图像O中的第Pix个像素设定为等于P(O)。
在框1350处,计算设备能够将Pix的值递增1;也就是说,计算设备能够令Pix=Pix+1。
在框1360处,计算设备能够确定Pix是否大于NumPix。如果计算设备确定Pix大于NumPix,则计算设备能够进行到框1370。否则,计算设备能够确定Pix小于或等于NumPix,并且能够进行到框1310。
在框1370处,计算设备能够退出方法100,其中图像O是方法100的输出。
用于利用诸如网格u、v、v’和/或z的一个或多个网格来使图像如图像I翘曲以形成输出图像如图像O的其它技术也是可能的。
图14图示依照示例实施例的场景1400,其中表示两个面部1420、1430的输入图像1410具有在对应的输出图像1450中校正的两个面部。场景1400从配备有相机的计算设备例如具有相机的智能电话使用相机来捕获输入图像1410开始。如图14的上部处所示,输入图像1410是工作环境中的两个人的图像。因此,输入图像1410表示两个人的两个面部1420、1430。输入图像1410也表示工作环境中的天花板的区1440,其中区1440示出对象似乎在天花板处或附近以各种角度聚集在一起。
场景1400继续计算设备从相机接收输入图像1410、使用上面讨论的方法100的技术来校正输入图像1410并且因此生成输出图像1450。特别地,使用如上面在方法100的上下文中讨论的仿射和/或立体变换来将输入图像1410的面部1420、1430校正为输出图像1450的相应面部1470、1480。例如,在输入图像1410中表示的面部1420、1430中的每一个均已经被旋转和拉长(缩放)以具有如输出图像1450的相应面部1470、1480中所示的更自然形状。
附加地,在生成输出图像1450的同时不校正输入图像1410的区1440。特别地,输入图像1410的区1440中的直线在输出图像1450的对应区1490中保持笔直。另外,在输入图像1410的区1440中以各种角度相交的线在输出图像1450的区1490中被示出为相同的各种角度下的相交线。因此,场景1400示出计算设备能够使用方法100来校正诸如输入图像1410的图像中的面部,而不用改变除输入图像1410的面部区中的直线和角度以外的输入图像1410与输出图像1450之间的直线。
图15图示依照示例实施例的场景1500,其中表示四个面部1520、1522、1524、1526的输入图像1510具有在对应的输出图像1550中校正的四个面部中的三个。场景1500从计算设备从相机接收输入图像1510开始。如图15的上部处所示,输入图像1510是工作环境中的至少四个人的图像。因此,输入图像1510表示至少四个人的至少四个面部1520、1522、1524、1526。
场景1500继续计算设备使用上面讨论的方法100的技术来校正输入图像1510并且因此生成输出图像1550。在场景1500中,面部1522具有小于上面至少在图1和图7的上下文中讨论的阈值大小TS的扩展面部框。因此,计算设备在生成具有对应面部1572的输出图像1550的同时不校正面部1522。另外,输入图像1510中的面部1520、1524和1526的扩展面部框中的每一个均大于阈值大小TS。场景1500继续计算设备校正仅输入图像1510的这三个面部1520、1524、1526;例如,使用仿射和/或立体变换作为使用方法100的过程来生成输出图像1550的一部分。
对输入图像1510的面部1520、1524、1526的校正将三个面部例如三个面部1520、1524、1526变换为输出图像1550的对应面部1570、1574、1576,同时生成具有对应面部1572的输出图像1550。附加地,在输出图像1550中不改变输入图像1510中的直线和直线之间的相交角度(除输入图像1510的面部区中的直线和角度以外);例如,从输入图像1510中所示的天花板悬吊的对象的角度。因此,场景1500图示使用方法100在不改变输入图像1510中的直线(在输入图像1510的面部区中的直线和角度外部)的情况下校正一些而非全部面部作为生成输出图像1550的一部分。
图16图示依照示例实施例的场景1600,其中计算设备1610使用方法100来校正输入图像1510作为生成输出图像1550的一部分。图16的上部示出场景1600从计算设备1610从相机接收输入图像1510并且然后显示输入图像1510和控件1620开始,其中控件1620包括被标记为“应用面部校正”的按钮。控件1620在被选择时,使计算设备1610使用方法100来校正输入图像;例如,输入图像1510,作为生成输出图像例如输出图像1550的一部分。在其它场景中,控件1620能够由图形用户界面(GUI)的除按钮以外的图形对象(例如,图标、对话框)来表示。在仍然其它的场景中,能够使用例如下列的一个或多个非GUI对象来控制使用控件1620控制的面部校正功能性:键盘上的键、命令行界面的命令。
场景1600继续计算设备1610的用户选择控件1620;例如,使用鼠标来点击控件1620;按压在触摸屏上与控件1620相对应的位置。在选择控件1620之后,计算设备1610如上面在图1和图15的上下文中更详细地讨论的那样使用方法100来生成输出图像1550。在生成输出图像1550之后,场景1600继续计算设备1610显示输出图像1550,如图16的下部处所示。输出图像1550已经使输入图像1510中的面部中的一些而非全在不改变输入图像1510的面部区中的直线外部的直线和角度的情况下被校正。
在一些场景中,用于捕获输入图像1410、输入图像1510和/或其它输入影像的相机能够被配备有宽视场(WFOV)(或广角)透镜和/或WFOV传感器以便促进从相对近的距离捕获场景。
示例数据网络
图17描绘依照示例实施例的分布式计算架构1700。分布式计算架构1700能够包括服务器设备1708、1710,所述服务器设备被配置成经由网络1706与可编程设备1704a、1704b、1704c、1704d、1704e进行通信。网络1706可以对应于LAN、广域网(WAN)、公司内部网、公用因特网,或被配置成在联网计算设备之间提供通信路径的任何其它类型的网络。网络1706也可以对应于一个或多个LAN、WAN、公司内部网和/或公用因特网的组合。
尽管图17仅示出五个可编程设备,但分布式应用架构可以为数十、数百或数千个可编程设备服务。此外,可编程设备1704a、1704b、1704c、1704d、1704e(或任何附加可编程设备)可以是任何种类的计算设备,诸如普通膝上型计算机、台式计算机、可穿戴计算设备、移动计算设备、头戴式设备、网络终端、无线通信设备(例如,智能电话或手机)等。在一些实施例中,诸如用可编程设备1704a、1704b、1704c指示的,可编程设备能够直接连接到网络1706。在其它实施例中,诸如用可编程设备1704d指示的,可编程设备能够经由诸如可编程设备1704c的相关计算设备间接连接到网络1706。在此示例中,可编程设备1704c能够作为在可编程设备1704d与网络1706之间传递电子通信的相关计算设备。在仍然其它的实施例中,诸如可编程设备1704e中所示,计算设备可以是例如下列的交通工具的一部分和/或在例如下列的交通工具内部:汽车、卡车、公共汽车、小舟或船、飞机等。在图17中未示出的仍然其它的实施例中,可编程设备能够既直接又间接连接到网络1706。
服务器设备1708、1710能够被配置成如由可编程设备1704a-1704e所请求的那样执行一个或多个服务。例如,服务器设备1708和/或1710能够向可编程设备1704a-1704e提供内容。内容能够包括但不限于web页面、超文本、脚本、诸如编译软件的二进制数据、图像、音频和/或视频。内容能够包括压缩内容和/或未压缩内容。能够对内容进行加密和/或解密。其它类型的内容也是可能的。
作为另一示例,服务器设备1708和/或1710能够给可编程设备1704a-1704e提供对用于数据库、搜索、计算、图形、音频、视频、万维网/因特网利用和/或其它功能的软件的访问。服务器设备的许多其它示例也是可能的。
计算设备架构
图18是依照示例实施例的示例计算设备1800的功能框图。特别地,图18中所示的计算设备1800能够被配置成执行下列的至少一个功能:输入图像200、图像遮罩300、翘曲网格400、优化网格500、输出图像600、计算设备1610、分布式计算架构1700、可编程设备1704a、1704b、1704c、1704d、1704e、网络1706和/或服务器设备1708、1710,和/或与方法100、场景1400、场景1500、场景1600和/或方法1900有关的至少一个功能。
计算设备1800可以包括用户接口模块1801、网络通信接口模块1802、一个或多个处理器1803、数据储存器1804和一个或多个传感器1820,所有这些都可以经由系统总线、网络或其它连接机制1805被链接在一起。
用户接口模块1801能够可操作来向外部用户输入/输出设备发送数据和/或从外部用户输入/输出设备接收数据。例如,用户接口模块1801能够被配置成向诸如触摸屏、计算机鼠标、键盘、键区、触摸板、轨迹球、操纵杆、相机、语音辨识模块和/或其它类似设备的用户输入设备发送数据和/或从这些用户输入设备接收数据。用户接口模块1801也能够被配置成向诸如下列的现在已知或以后开发的用户显示设备提供输出:一个或多个阴极射线管(CRT)、液晶显示器、发光二极管(LED)、使用数字光处理(DLP)技术的显示器、打印机、灯泡和/或其它类似设备。用户接口模块1801也能够被配置成生成音频输出,诸如扬声器、扬声器插孔、音频输出端口、音频输出设备、耳机和/或其它类似设备。用户接口模块1801能够进一步被配置有能够生成诸如下列的触觉输出的一个或多个触觉设备:振动和/或可通过触摸和/或与计算设备1800的物理接触检测的其它输出。在一些实施例中,用户接口模块1801能够用于提供用于利用计算设备1800的图形用户接口。
网络通信接口模块1802能够包括可配置成经由网络通信的一个或多个无线接口1807和/或一个或多个有线接口1808。无线接口1807能够包括一个或多个无线传送器、接收器和/或收发器,诸如蓝牙TM收发器、收发器、Wi-FiTM收发器、WiMAXTM收发器和/或可配置成经由无线网络通信的其它类似类型的无线收发器。有线线路接口1808能够包括一个或多个有线传送器、接收器和/或收发器,诸如以太网收发器、通用串行总线(USB)收发器或可配置成经由双绞线、同轴电缆、光纤链路或到有线网络的类似物理连接通信的类似收发器。
在一些实施例中,网络通信接口模块1802能够被配置成提供可靠、安全和/或认证的通信。对于本文描述的每个通信,能够提供用于确保可靠通信(即,受保证消息递送)的信息,可能作为消息报头和/或页脚的一部分(例如,分组/消息定序信息、封装报头和/或页脚、大小/时间信息和诸如循环冗余校验(CRC)和/或奇偶校验值的传输验证信息)。能够使用一个或多个加密协议和/或算法来使通信变得安全(例如,被编码或加密)和/或对通信进行解密/解码,所述一个或多个加密协议和/或算法诸如但不限于数据加密标准(DES)、高级加密标准(AES)、Rivest-Shamir-Adelman(RSA)算法、Diffie-Hellman算法、诸如安全套接字层(SSL)或传输层安全性(TLS)的安全套接字协议和/或数字签名算法(DSA)。也能够使用其它密码协议和/或算法或者作为对本文列举的那些的补充来使通信安全(然后对通信进行解密/解码)。
一个或多个处理器1803能够包括一个或多个通用处理器和/或一个或多个专用处理器(例如,数字信号处理器、图形处理单元、专用集成电路等)。一个或多个处理器1803能够被配置成执行被包含在数据储存器1804中的计算机可读程序指令1806和/或如本文所述的其它指令。
数据储存器1804能够包括能够由一个或多个处理器1803中的至少一个读取和/或访问的一个或多个计算机可读存储介质。一个或多个计算机可读存储介质能够包括易失性和/或非易失性存储部件,诸如光学、磁性、有机或其它存储器或盘储存器,其能够整个地或部分地与一个或多个处理器1803中的至少一个集成在一起。在一些实施例中,能够使用单个物理设备(例如,一个光学、磁性、有机或其它存储器或盘存储单元)来实现数据储存器1804,然而在其它实施例中,能够使用两个或更多个物理设备来实现数据储存器1804。
数据储存器1804能够包括计算机可读程序指令1806并且可能包括附加数据。在一些实施例中,数据储存器1804能够附加地包括执行本文描述的方法、场景和技术中的至少一部分和/或本文描述的设备和网络的功能性的至少一部分所需要的储存器。
在一些实施例中,计算设备1800能够包括一个或多个传感器1820。传感器1820能够被配置成测量计算设备1800的环境中的条件并且提供关于该环境的数据。例如,传感器1820能够包括下列中的一个或多个:(i)用于标识其它对象和/或设备的标识传感器,诸如但不限于射频标识(RFID)读取器、接近传感器、一维条形码读取器、二维条形码(例如,快速响应(QR)码)读取器和激光跟踪器,其中标识传感器能够被配置成读取诸如RFID标签、条形码、QR码的标识符,和/或被配置成被读取并提供至少标识信息的其它设备和/或对象;(ii)用于测量计算设备1800的位置和/或移动的传感器,诸如但不限于倾斜传感器、陀螺仪,加速度计、多普勒传感器、全球定位系统(GPS)设备、声纳传感器、雷达设备、激光位移传感器和罗盘;(iii)用于获得指示计算设备1800的环境的数据的环境传感器,诸如但不限于红外传感器、光学传感器、光传感器、相机、生物传感器、电容传感器、触摸传感器、温度传感器、无线传感器、无线电传感器、移动传感器、麦克风、声音传感器、超声传感器和/或烟雾传感器;以及(iv)用于测量作用于计算设备1800的一个或多个力(例如,惯性力和/或重力)的力传感器,诸如但不限于测量一个或多个维度上的力、扭矩、地面力、摩擦力的一个或多个传感器,和/或标识ZMP和/或ZMP的位置的零力矩点(ZMP)传感器。传感器1820的许多其它示例也是可能的。
示例操作方法
图19是依照示例实施例的方法1900的流程图。方法1900可以是计算机实现的方法。例如,方法1900能够由诸如计算设备1800的计算设备执行。
图19示出方法1900能够在框1910处开始。在框1910处,计算设备能够确定与图像中的第一感兴趣区相对应的第一图像区域,诸如上面至少在图1、图2、图7、图8、图14、图15和图16的上下文中所讨论的。
在一些示例中,第一感兴趣区能够表示第一人类面部,诸如上面至少在图1、图2、图7、图8、图14、图15和图16的上下文中所讨论的。在其它示例中,确定与图像中的第一感兴趣区相对应的第一图像区域能够包括从相机获得图像,诸如上面至少在图14、图15和图16的上下文中所讨论的。
在甚至其它示例中,第一感兴趣区能够表示第一面部;然后,确定第一图像区域能够包括:确定第一面部的第一面部框;确定第一面部框是否包围表示第一面部的图像的所有像素;以及在确定第一面部框包围表示第一面部的图像的所有像素之后,利用第一面部框作为第一图像区域,诸如上面至少在图1、图2、图7和图8的上下文中所讨论的。
在仍然其它的示例中,确定第一图像区域能够包括:确定第三感兴趣区的第二面部框;确定第二面部框是否未包围表示第三感兴趣区的第三面部的图像的所有像素;以及在确定第二面部框未包围表示第三面部的图像的所有像素之后:扩大第二面部框以包括表示第三面部的图像的所有像素,并且利用经扩大的第二面部框作为与第三面部相对应的图像区域,诸如上面至少在图1、图2、图7和图8的上下文中所讨论的。
在框1920处,计算设备能够确定图像的翘曲网格,诸如上面至少在图1、图4和图9的上下文中所讨论的。
在一些示例中,确定图像的翘曲网格能够包括确定第一图像区域是否具有大于阈值图像面积的面积;以及在确定第一图像区域具有大于阈值图像面积的面积之后,确定翘曲网格,诸如上面至少在图1、图7和图9的上下文中所讨论的。
在其它示例中,至少第一图像区域的一个或多个面部相关变换能够包括第一图像区域的旋转、第一图像区域的平移和/或第一图像区域的缩放;然后,确定图像的翘曲网格能够包括:确定图像的第三网格,第三网格包括第三多个顶点;以及通过至少以下步骤来基于第三网格确定翘曲网格:确定第三网格的一个或多个边,并且对于第三网格的一个或多个边中的每个边:将预定数目的附加顶点添加到第三网格的边;在将预定数目的附加顶点添加到第三网格的边之后,确定与第三网格的边相关联的第三网格的边界,该边界与第三网格的边界顶点相关联;以及确定与图像的边界垂直的第三网格的边界顶点的尺寸,诸如上面至少在图1、图9和图10的上下文中所讨论的。
在框1930处,计算设备能够确定与第一图像区域相关联的翘曲网格的第一部分,诸如上面至少在图1、图5和图9的上下文中所讨论的。
在框1940处,计算设备能够通过以下步骤来确定翘曲网格的成本函数:确定与翘曲网格的第一部分相关联的第一成本,其中第一成本包括与用于校正图像中所表示的第一感兴趣区的一个或多个几何畸变的、至少第一图像区域的一个或多个面部相关变换相关联的成本,以及确定与翘曲网格相关联的第二成本,其中第二成本包括用于保存至少通过一个或多个面部相关变换所修改的图像的边缘的直线度的一个或多个边缘相关变换的成本,诸如上面至少在图1、图9和图10的上下文中所讨论的。
在一些示例中,确定翘曲网格的成本函数能够进一步包括:确定与翘曲网格的第二部分相关联的附加第一成本,其中附加第一成本包括与用于校正第二感兴趣区的一个或多个几何畸变的、至少第二图像区域的一个或多个面部相关变换相关联的成本,诸如上面至少在图1、图9和图10的上下文中所讨论的。
在其它示例中,翘曲网格能够包括多个顶点;然后,确定与翘曲网格相关联的第二成本能够包括:为与图像的边缘相关联的翘曲网格的每个顶点指派每顶点边缘成本;以及为与翘曲网格的边界相关联的翘曲网格的每个顶点指派边界成本,诸如上面至少在图10的上下文中所讨论的。在这些示例中的一些中,为与图像的边缘相关联的翘曲网格的每个顶点指派每顶点边缘成本能够包括:确定图像的第一边缘的第一边缘正则化项,其中图像的第一边缘与至少翘曲网格的第一边缘顶点相关联;确定图像的第一边缘的第一边缘弯曲项;以及基于第一边缘正则化项和第一边缘弯曲项来确定第一边缘顶点的每顶点边缘成本,诸如上面至少在图10的上下文中所讨论的。在这些示例中的其它示例中,为与翘曲网格的边界相关联的翘曲网格的每个顶点指派边界成本能够包括:确定翘曲网格的第一边界顶点的边界成本值,第一边界顶点与翘曲网格的第一边界相关联,其中边界成本值基于第一边界顶点与翘曲网格的界限之间的距离,诸如上面至少在图10的上下文中所讨论的。
在甚至其它示例中,确定与翘曲网格的第一部分相关联的第一成本能够包括:使用第一变换来将第一图像区域映射到第一空间;使用第二变换来将第一图像区域映射到第二空间;确定第一图像区域的第一纵横比,第一纵横比基于第一空间的面积与第二空间的面积之比;以及基于第一纵横比确定与翘曲网格的第一部分相关联的第一成本,诸如上面至少在图9的上下文中所讨论的。在这些示例中的一些中,第一变换能够包括透视变换,并且其中第二变换能够包括立体变换,诸如上面至少在图9的上下文中所讨论的。在这些示例中的其它示例中,翘曲网格能够包括多个顶点;然后,确定与翘曲网格的第一部分相关联的第一成本能够包括:将翘曲网格的第一部分中的第一顶点的第一成本初始化为与在第一顶点处与第一变换相关联的第一变换值和在第一顶点处与第一变换相关联的第二变换值的插值相关联的值,诸如上面至少在图11的上下文中所讨论的。
在框1950处,计算设备能够基于对翘曲网格的成本函数的优化确定优化网格,诸如上面至少在图1、图5、图10和图11的上下文中所讨论的。
在一些示例中,对成本函数的优化能够包括成本函数的最小化;然后,基于对成本函数的优化确定优化网格能够包括:通过执行应用于翘曲网格的成本函数的最小化来确定优化网格,将左侧最大成本确定为优化网格的左侧界限的顶点的成本中的最大者;确定优化网格的右侧界限的顶点的成本中的最小者的右侧最小成本;将顶部最大成本确定为优化网格的顶部界限的顶点的成本中的最大者;确定优化网格的底部界限的顶点的成本中的最小者的底部最小成本;以及基于左侧最大成本、右侧最小成本、顶部最大成本和底部最小成本来修改优化网格。
在这些示例中的一些中,基于左侧最大成本、右侧最小成本、顶部最大成本和底部最小成本来修改优化网格能够包括:基于图像的宽度和右侧最小成本与左侧最大成本之差来确定图像的宽度比例;基于图像的高度和底部最小成本与顶部最大成本之差来确定图像的高度比例;以及基于宽度比例和高度比例执行优化网格的数学缩放。诸如上面至少在图11的上下文中所讨论的。
在框1960处,计算设备能够基于优化网格修改图像的第一图像区域,诸如上面至少在图1、图6、图12、图13、图14、图15和图16的上下文中所讨论的。在一些示例中,基于优化网格修改图像的第一图像区域能够包括:计算优化网格的采样;以及基于优化网格的采样修改图像的至少第一图像区域,诸如上面至少在图1、图12和图13的上下文中所讨论的。在其它示例中,图像能够包括多个像素;然后,基于优化网格修改图像的第一图像区域能够包括:通过对优化网格进行采样来确定采样网格,该采样网格包括多个采样顶点;对于多个像素中的特定像素,通过至少以下步骤来修改特定像素:确定多个采样顶点中的邻近特定像素的一个或多个邻近顶点;基于一个或多个邻近顶点确定多个像素中的重新采样像素的坐标;通过基于重新采样像素的坐标对多个像素中的一个或多个像素进行采样来确定重新采样像素的像素值;以及基于重新采样像素的像素值修改特定像素,诸如上面至少在图1和图13的上下文中所讨论的。
在一些示例中,方法1900能够进一步包括:确定与图像中的第二感兴趣区的位置相对应的第二图像区域,该第二图像区域与第一图像区域不同;以及确定与第二图像区域相关联的翘曲网格的第二部分,诸如上面至少在图1、图7、图14、图15和图16的上下文中所讨论的。
在一些示例中,能够提供一种计算设备,其中该计算设备包括:一个或多个处理器;和一个或多个计算机可读介质。一个或多个计算机可读介质能够具有存储在其上的计算机可读指令,这些计算机可读指令当由一个或多个处理器执行时,使计算设备执行包括方法1900的功能。
在其它示例中,能够提供一种计算设备,其中该计算设备包括用于执行方法1900的手段。
在甚至其它示例中,能够提供一种制品。该制品能够包括上面存储有计算机可读指令的一个或多个计算机可读介质,这些计算机可读指令当由计算设备的一个或多个处理器执行时,使计算设备执行包括方法1900的功能。在这些示例中的一些中,一个或多个计算机可读介质能够包括一个或多个非暂时性计算机可读介质。
以上详细描述参考附图描述所公开的系统、设备和方法的各种特征和功能。在图中,除非上下文另外规定,否则类似的符号通常标识类似的部件。在详细描述、图和权利要求中描述的说明性实施例不意在为限制性的。在不脱离本文呈现的主题的精神或范围的情况下,能够利用其它实施例,并且能够做出其它变化。将容易地理解的是,能够以全部在本文中显式地设想的各式各样的不同配置布置、取代、组合、分离和设计如本文通常描述的并在图中图示的本公开的各方面。
关于在图中并且如本文所讨论的梯形图、场景和流程图中的任一个或全部,每个框和/或通信可以表示依照示例实施例的信息的处理和/或信息的传输。替代实施例被包括在这些示例实施例的范围内。在这些替代实施例中,例如,取决于所涉及的功能性,描述为框、传输、通信、请求、响应和/或消息的功能可以根据所示出或讨论的次序被乱序执行,包括基本上并发或按相反次序。另外,可以与本文讨论的梯形图、场景和流程图中的任一个一起使用更多或更少的框和/或功能,并且这些梯形图、方案和流程图可以部分地或整个地彼此组合。
表示信息的处理的框可以对应于能够被配置成执行本文描述的方法或技术的具体逻辑功能的电路。替换地或附加地,表示信息的处理的框可以对应于程序代码(包括相关数据)的模块、段或一部分。程序代码可以包括可由处理器执行以便在该方法或技术中实现具体逻辑功能或动作的一个或多个指令。可以将程序代码和/或相关数据存储在诸如包括磁盘或硬盘驱动器或其它存储介质的存储设备的任何类型的计算机可读介质上。
计算机可读介质也可以包括非暂时性计算机可读介质,诸如像寄存器存储器、处理器高速缓存和随机存取存储器(RAM)一样存储数据持续短时间段的非暂时性计算机可读介质。例如,计算机可读介质也可以包括存储程序代码和/或数据持续更长时间段的非暂时性计算机可读介质,诸如辅助或持久性长期储存器,例如只读存储器(ROM)、光盘或磁盘、紧致盘只读存储器(CD-ROM)。计算机可读介质也可以是任何其它易失性或非易失性存储系统。例如,计算机可读介质可以被认为是计算机可读存储介质或有形存储设备。
此外,表示一个或多个信息传输的框可以对应于同一物理设备中的软件模块和/或硬件模块之间的信息传输。然而,其它信息传输可以在不同物理设备中的软件模块和/或硬件模块之间。
以上引用的方法的变化对于技术人员而言将是显而易见的。例如,虽然以上描述提供了对图像中的面部的畸变的校正的特定公开内容,但是该方法也可以被应用于其它感兴趣区或对象。因此,在以上公开中(诸如在短语“面部区”或“面部变换”中)提到形容词“面部”的地方,本领域的技术人员应领会,可以采用不需要这样的形容词的替代方法。类似地,在替代实现方式中,对“面部相关成本”、“面部相关转换”或其它“面部相关”特征的引用可以被更一般地认为是“对象相关的”或“区相关的”。
虽然已经在本文中公开了各个方面和实施例,但是其它方面和实施例对于本领域的技术人员而言将是显而易见的。本文公开的各个方面和实施例是为了说明性目的而提供的,而不旨在为限制性的,其真实范围由以下权利要求指示。
Claims (23)
1.一种计算机实现的方法,包括:
确定与图像中的第一感兴趣区相对应的第一图像区域;
确定所述图像的翘曲网格;
确定与所述第一图像区域相关联的所述翘曲网格的第一部分;
通过以下操作来确定所述翘曲网格的成本函数:
确定与所述翘曲网格的第一部分相关联的第一成本,其中,所述第一成本包括与用于校正所述图像中所表示的所述第一感兴趣区的一个或多个几何畸变的、至少所述第一图像区域的一个或多个面部相关变换相关联的成本,以及
确定与所述翘曲网格相关联的第二成本,其中,所述第二成本包括一个或多个边缘相关变换的成本,所述一个或多个边缘相关变换用于保存至少通过所述一个或多个面部相关变换所修改的所述图像的边缘的直线度;
基于对所述翘曲网格的所述成本函数的优化来确定优化网格;以及
基于所述优化网格来修改所述图像的第一图像区域。
2.根据权利要求1所述的计算机实现的方法,其中,所述第一感兴趣区表示第一人类面部。
3.根据权利要求1或权利要求2中的任一项所述的计算机实现的方法,进一步包括:
确定与所述图像中的第二感兴趣区的位置相对应的第二图像区域,所述第二图像区域与所述第一图像区域不同;以及
确定与所述第二图像区域相关联的所述翘曲网格的第二部分。
4.根据权利要求3所述的计算机实现的方法,其中,确定所述翘曲网格的所述成本函数进一步包括:确定与所述翘曲网格的第二部分相关联的附加第一成本,其中,所述附加第一成本包括与用于校正所述第二感兴趣区的一个或多个几何畸变的、至少所述第二图像区域的一个或多个面部相关变换相关联的成本。
5.根据权利要求1-4中的任一项所述的计算机实现的方法,其中,确定所述图像的所述翘曲网格包括:
确定所述第一图像区域是否具有大于阈值图像面积的面积;以及
在确定所述第一图像区域具有大于阈值图像区域的面积之后,确定所述翘曲网格。
6.根据权利要求1-5中的任一项所述的计算机实现的方法,其中,所述翘曲网格包括多个顶点,并且其中,确定与所述翘曲网格相关联的所述第二成本包括:
为与所述图像的边缘相关联的所述翘曲网格的每个顶点指派每顶点边缘成本;以及
为与所述翘曲网格的边界相关联的所述翘曲网格的每个顶点指派边界成本。
7.根据权利要求6所述的计算机实现的方法,其中,为与所述图像的边缘相关联的所述翘曲网格的每个顶点指派所述每顶点边缘成本包括:
确定所述图像的第一边缘的第一边缘正则化项,其中,所述图像的第一边缘与至少所述翘曲网格的第一边缘顶点相关联;
确定所述图像的第一边缘的第一边缘弯曲项;以及
基于所述第一边缘正则化项和所述第一边缘弯曲项来确定所述第一边缘顶点的所述每顶点边缘成本。
8.根据权利要求6或权利要求7所述的计算机实现的方法,其中,为与所述翘曲网格的边界相关联的所述翘曲网格的每个顶点指派所述边界成本包括:
确定所述翘曲网格的第一边界顶点的边界成本值,所述第一边界顶点与所述翘曲网格的第一边界相关联,其中,所述边界成本值基于所述第一边界顶点与所述翘曲网格的界限之间的距离。
9.根据权利要求1至8中的任一项所述的计算机实现的方法,其中,基于所述优化网格来修改所述图像的第一图像区域包括:
计算所述优化网格的采样;以及
基于所述优化网格的采样来修改至少所述图像的第一图像区域。
10.根据权利要求1至9中的任一项所述的计算机实现的方法,其中,确定与所述图像中的所述第一感兴趣区相对应的所述第一图像区域包括:从相机获得所述图像。
11.根据权利要求1-10中的任一项所述的计算机实现的方法,其中,所述第一感兴趣区表示第一面部,并且其中,确定所述第一图像区域包括:
确定所述第一面部的第一面部框;
确定所述第一面部框是否包围表示所述第一面部的所述图像的所有像素;以及
在确定所述第一面部框包围表示所述第一面部的所述图像的所有像素之后,利用所述第一面部框作为所述第一图像区域。
12.根据权利要求1-11中的任一项所述的计算机实现的方法,其中,确定所述第一图像区域包括:
确定第三感兴趣区的第二面部框;
确定所述第二面部框是否不包围表示所述第三感兴趣区中的第三面部的所述图像的所有像素;以及
在确定所述第二面部框不包围表示所述第三面部的所述图像的所有像素之后:
扩大所述第二面部框以包括表示所述第三面部的所述图像的所有像素,以及
利用所扩大的第二面部框作为与所述第三面部相对应的图像区域。
13.根据权利要求1至12中的任一项所述的计算机实现的方法,其中,确定与所述翘曲网格的第一部分相关联的所述第一成本包括:
使用第一变换来将所述第一图像区域映射到第一空间;
使用第二变换来将所述第一图像区域映射到第二空间;
确定所述第一图像区域的第一纵横比,所述第一纵横比基于所述第一空间的面积与所述第二空间的面积之比;以及
基于所述第一纵横比来确定与所述翘曲网格的第一部分相关联的所述第一成本。
14.根据权利要求13所述的计算机实现的方法,其中,所述第一变换包括透视变换,并且其中,所述第二变换包括立体变换。
15.根据权利要求13或权利要求14所述的计算机实现的方法,其中,所述翘曲网格包括多个顶点,并且其中,确定与所述翘曲网格的第一部分相关联的所述第一成本包括:
将所述翘曲网格的第一部分中的第一顶点的第一成本初始化为与在所述第一顶点处与所述第一变换相关联的第一变换值和在所述第一顶点处与所述第一变换相关联的第二变换值的插值相关联的值。
16.根据权利要求1-15中的任一项所述的计算机实现的方法,其中,至少所述第一图像区域的一个或多个面部相关变换包括所述第一图像区域的旋转、所述第一图像区域的平移和/或所述第一图像区域的缩放,并且
其中,确定所述图像的所述翘曲网格包括:
确定所述图像的第三网格,所述第三网格包括第三多个顶点;以及
通过至少以下操作来基于所述第三网格确定所述翘曲网格:
确定所述第三网格的一个或多个边,并且
对于所述第三网格的一个或多个边中的每个边:
将预定数目的附加顶点添加到所述第三网格的所述边,
在将所述预定数目的附加顶点添加到所述第三网格的所述边之后,确定与所述第三网格的所述边相关联的所述第三网格的边界,所述边界与所述第三网格的边界顶点相关联,以及
确定与所述图像的边界垂直的所述第三网格的边界顶点的尺寸。
17.根据权利要求1-16中的任一项所述的计算机实现的方法,其中,对所述成本函数的优化包括所述成本函数的最小化,并且其中,基于对所述成本函数的优化来确定所述优化网格包括:
通过执行应用于所述翘曲网格的所述成本函数的最小化来确定所述优化网格,
将左侧最大成本确定为所述优化网格的左侧界限的顶点的成本中的最大者;
确定所述优化网格的右侧界限的顶点的成本中的最小者的右侧最小成本;
将顶部最大成本确定为所述优化网格的顶部界限的顶点的成本中的最大者;
确定所述优化网格的底部界限的顶点的成本中的最小者的底部最小成本;以及
基于所述左侧最大成本、所述右侧最小成本、所述顶部最大成本和所述底部最小成本来修改所述优化网格。
18.根据权利要求17所述的计算机实现的方法,其中,基于所述左侧最大成本、所述右侧最小成本、所述顶部最大成本和所述底部最小成本来修改所述优化网格包括:
基于所述图像的宽度、以及所述右侧最小成本与所述左侧最大成本之间的差来确定所述图像的宽度比例;
基于所述图像的高度、以及所述底部最小成本与所述顶部最大成本之间的差来确定所述图像的高度比例;以及
基于所述宽度比例和所述高度比例来执行所述优化网格的数学缩放。
19.根据权利要求1至18中的任一项所述的计算机实现的方法,其中,所述图像包括多个像素,并且其中,基于所述优化网格来修改所述图像的第一图像区域包括:
通过对所述优化网格进行采样来确定采样网格,所述采样网格包括多个采样顶点;
对于所述多个像素中的特定像素,通过至少以下操作来修改所述特定像素:
确定所述多个采样顶点中的邻近所述特定像素的一个或多个邻近顶点;
基于所述一个或多个邻近顶点来确定所述多个像素中的重新采样像素的坐标;
通过基于所述重新采样像素的所述坐标对所述多个像素中的一个或多个像素进行采样,来确定所述重新采样像素的像素值;以及
基于所述重新采样像素的所述像素值来修改所述特定像素。
20.一种计算设备,包括:
一个或多个处理器;和
存储有计算机可读指令的一个或多个计算机可读介质,所述计算机可读指令当由所述一个或多个处理器执行时,使所述计算设备执行包括根据权利要求1-19中的任一项所述的计算机实现的方法的功能。
21.一种计算设备,包括:
用于执行根据权利要求1-19中的任一项所述的计算机实现的方法的组件。
22.一种制品,所述制品包括存储有计算机可读指令的一个或多个计算机可读介质,所述计算机可读指令当由计算设备的一个或多个处理器执行时,使所述计算设备执行包括根据权利要求1-19中的任一项所述的计算机实现的方法的功能。
23.根据权利要求22所述的制品,其中,所述一个或多个计算机可读介质包括一个或多个非暂时性计算机可读介质。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2018/031463 WO2019216879A1 (en) | 2018-05-07 | 2018-05-07 | Perspective distortion correction on faces |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112055869A true CN112055869A (zh) | 2020-12-08 |
Family
ID=62245443
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880093040.1A Pending CN112055869A (zh) | 2018-05-07 | 2018-05-07 | 对面部的透视畸变校正 |
Country Status (6)
Country | Link |
---|---|
US (2) | US11922720B2 (zh) |
EP (1) | EP3791356B1 (zh) |
JP (2) | JP7158499B2 (zh) |
KR (2) | KR102528516B1 (zh) |
CN (1) | CN112055869A (zh) |
WO (1) | WO2019216879A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11132800B2 (en) * | 2019-07-31 | 2021-09-28 | Google Llc | Real time perspective correction on faces |
CN111028169B (zh) * | 2019-12-09 | 2024-02-06 | Oppo广东移动通信有限公司 | 图像校正方法、装置、终端设备和存储介质 |
CN111899159B (zh) * | 2020-07-31 | 2023-12-22 | 北京百度网讯科技有限公司 | 用于变换发型的方法、装置、设备以及存储介质 |
US11334961B2 (en) | 2020-08-06 | 2022-05-17 | Apple Inc. | Multi-scale warping circuit for image fusion architecture |
TWI824321B (zh) * | 2021-07-02 | 2023-12-01 | 創惟科技股份有限公司 | 影像控制器、影像處理系統及影像修正方法 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7058237B2 (en) | 2002-06-28 | 2006-06-06 | Microsoft Corporation | Real-time wide-angle image correction system and method for computer image viewing |
US20150179218A1 (en) * | 2010-09-10 | 2015-06-25 | 3DOO, Inc. | Novel transcoder and 3d video editor |
US8922553B1 (en) * | 2011-04-19 | 2014-12-30 | Disney Enterprises, Inc. | Interactive region-based linear 3D face models |
US9972128B2 (en) * | 2012-07-20 | 2018-05-15 | The University Of British Columbia | Methods and systems for generating polycubes and all-hexahedral meshes of an object |
EP3066645A4 (en) * | 2013-11-04 | 2017-08-30 | The University Of British Columbia | Methods and systems for generating polycube segmentations from input meshes of objects |
US20150131924A1 (en) * | 2013-11-13 | 2015-05-14 | Microsoft Corporation | Creation of Rectangular Images from Input Images |
US10257494B2 (en) * | 2014-09-22 | 2019-04-09 | Samsung Electronics Co., Ltd. | Reconstruction of three-dimensional video |
WO2016069171A1 (en) * | 2014-10-31 | 2016-05-06 | Exxonmobil Upstream Research Company | Handling domain discontinuity in a subsurface grid model with the help of grid optimization techniques |
US9824494B2 (en) * | 2015-06-17 | 2017-11-21 | Adobe Systems Incorporated | Hybrid surfaces for mesh repair |
CN105046657B (zh) | 2015-06-23 | 2018-02-09 | 浙江大学 | 一种图像拉伸畸变自适应校正方法 |
WO2017027638A1 (en) * | 2015-08-10 | 2017-02-16 | The Board Of Trustees Of The Leland Stanford Junior University | 3d reconstruction and registration of endoscopic data |
US10796480B2 (en) * | 2015-08-14 | 2020-10-06 | Metail Limited | Methods of generating personalized 3D head models or 3D body models |
US9865032B2 (en) | 2015-09-04 | 2018-01-09 | Adobe Systems Incorporated | Focal length warping |
US9978120B2 (en) * | 2016-09-16 | 2018-05-22 | Adobe Systems Incorporated | Warping panoramic images to fit a boundary |
-
2018
- 2018-05-07 KR KR1020207032050A patent/KR102528516B1/ko active IP Right Grant
- 2018-05-07 KR KR1020237014506A patent/KR20230065365A/ko not_active Application Discontinuation
- 2018-05-07 WO PCT/US2018/031463 patent/WO2019216879A1/en unknown
- 2018-05-07 JP JP2020562661A patent/JP7158499B2/ja active Active
- 2018-05-07 CN CN201880093040.1A patent/CN112055869A/zh active Pending
- 2018-05-07 US US17/050,262 patent/US11922720B2/en active Active
- 2018-05-07 EP EP18727518.5A patent/EP3791356B1/en active Active
-
2022
- 2022-10-11 JP JP2022163357A patent/JP7441917B2/ja active Active
-
2024
- 2024-01-23 US US18/420,243 patent/US20240161538A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
KR20210006900A (ko) | 2021-01-19 |
JP2023011634A (ja) | 2023-01-24 |
WO2019216879A1 (en) | 2019-11-14 |
JP7441917B2 (ja) | 2024-03-01 |
US11922720B2 (en) | 2024-03-05 |
US20240161538A1 (en) | 2024-05-16 |
JP7158499B2 (ja) | 2022-10-21 |
US20210110142A1 (en) | 2021-04-15 |
EP3791356B1 (en) | 2023-12-20 |
KR102528516B1 (ko) | 2023-05-04 |
EP3791356A1 (en) | 2021-03-17 |
KR20230065365A (ko) | 2023-05-11 |
JP2021523455A (ja) | 2021-09-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11132800B2 (en) | Real time perspective correction on faces | |
US9729787B2 (en) | Camera calibration and automatic adjustment of images | |
JP7441917B2 (ja) | 顔に対する射影歪み補正 | |
US10748243B2 (en) | Image distortion transformation method and apparatus | |
US11961266B2 (en) | Multiview neural human prediction using implicit differentiable renderer for facial expression, body pose shape and clothes performance capture | |
JP2019117577A (ja) | プログラム、学習処理方法、学習モデル、データ構造、学習装置、および物体認識装置 | |
WO2019179342A1 (zh) | 图像处理方法、图像处理装置、图像处理系统及介质 | |
WO2022121842A1 (zh) | 文本图像的矫正方法及装置、设备和介质 | |
US11380049B2 (en) | Finite aperture omni-directional stereo light transport | |
US20220191542A1 (en) | Object Pose Estimation and Tracking Using Machine Learning | |
WO2022121843A1 (zh) | 文本图像的矫正方法及装置、设备和介质 | |
JP6371547B2 (ja) | 画像処理装置、方法、および、プログラム | |
JP2019146010A (ja) | 画像処理装置、画像処理方法およびプログラム | |
US12002132B1 (en) | Rendering using analytic signed distance fields | |
JP2022077221A (ja) | 画像処理装置、画像処理システム、画像処理方法、およびプログラム | |
CN118484082A (zh) | 用于显示画面的方法、装置、电子设备和介质 | |
JP2006259984A (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 |