RobertCarroll,UnivofCalifornia;ManneeshAgarwala,UnivofCalifornia;AseemAgarwala,Adobe.ReportDate:2010.07.13将3D场景投射到广角图像上,尽可能的避免失真。失真的类型:1.直线扭曲;2.场景物体局部形变。本文方法量化失真程度,使其最小化。3D场景投射到平面图像上,细节包括以下两部分:1.Naturalshape;2.Linearstructure。我们应该尽可能使得平面图像上的内容与在真实3D场景中观察到的内容相同。◦单一视点的视觉信息定义为可见球体,我们要找到一个可见球体到平面图像的映射,尽可能保留上述细节。球面是不可展平面,任何映射都会产生感知扭曲。◦大部分照片的视角范围是40°左右,扭曲不明显。◦广角图像中,扭曲极其明显。上千年来,共发现了数百种球面到平面的映射,没有一种能够避免所有类型的失真。◦艺术家提出了一种处理广角图像的方案:绘制人群的时候,摈弃原有的经典透视图算法,改用手绘。核心思想:以图像内容为基础,局部调整映射。本文提出一种基于内容的映射:可见球体→平面图像。使结果图像看起来更加自然。提供图形接口使用户和系统进行交互,标识出感知上重要的直线,提供人脸检测器等模块识别出场景中的显著物体。◦对映射进行最优化,显著物体的形状保持不变,标记的直线不变。定义能量项,用来衡量广角图像的失真程度。在映射满足用户定义的约束的前提下,使其最小化。知觉恒常性(PerceptualConstancy):在视网膜上,物体本质性质通常要优于非本质性质。◦SizeConstancy:镜子中看到自己的脸只有实际的一半大,观念中认为和真实的是一样大的。◦还包括ShapeConstancy和OrientationConstancy。基于以上理念,广角投射空间应具有的性质:1.形状恒常性(局部):平面图像上看到应该和空间中看到的一样。例:空间中的球→平面中的圆。保形映射。2.形状恒常性(全局):避免扭曲全局形状。线性不变。3.方位恒常性:垂直线or水平线在投射图像中保持原来的方向。映射名称描述优缺点保形保线Perspective球心发出射线,映射到球的切平面。图像边缘失真严重。适合于视角小于40°的图像。×√Mercator圆柱投影。子午线对应平面中的一条线。能够处理水平方向360°视野的图像,但是垂直方向180°方位失真严重。√×Stereographic极点向发出射线,映射到切平面上。局部保形,对经过图像中心的直线保线,图像边缘失真严重。×√分为两部分:1.简单的人机交互界面,指定需要保留什么性质;2.利用加权最小平方优化方法,得到可见球体→平面图像的空间变换的映射。读取广角图像。◦来源:广角透射镜头,鱼眼镜头,全景拼接,etc。系统中预设好类似的映射,用户需要告知图像的种类和视野。用户需要标识出重要直线和显著区域。本文算法只对用户认为重要的直线保持线性。◦标识直线这一步可以缺省,因为本文算法可以对大多数直线满足近似保线性。用户可以选择两种类型的线性约束:1.Generallineconstraint:保持线性。2.Fixedorientationlineconstraint:调整方位。设置一条线,对其标记h或v。允许用户设置输入图像的视野,使得用户易于处理参数不明的图像。对可视球体和平面图像进行参数化:◦可视球体:经度λ,纬度φ。λ=(λ,φ)。◦平面图像:u,v。u=(u,v)。得到两个函数,λ(u,v)和φ(u,v)。或λ(u)。两个方向的微分向量:h是k扭转90°所得,∴我们对映射进行离散化,即对网格进行采样。规定V为输入图像中,视野内所有顶点的集合。对所有任意一个球面网格顶点λi,j,通过最优化方法,计算出它在2D平面中对应的ui,j的值。回到刚才的Cauchy-Riemann方程:离散化后,得到:由于所有的四边形在球面上大小不同,所以应对球面的每个区域施加不同的权重。从而得到保形能量:其中,wi,j即为变化权重。两个定义:◦L:用户定义的所有的线性约束。◦Lf:fixedorientationlineconstraints。在约束中,需要将球面空间上一条直线上的所有点约束到平面空间的一条直线上。事实上,直线不是“绝对直”,很少的点真正落在直线段上。如果一条线和一个四边形相交,在四边形上产生一个虚拟顶点。用双线性插值法处理该点,计算出该点的位置和双线性插值系数(a,b,c,d),得到。继续定义:◦Vl:直线l相交的四边形的四个顶点。◦ulstart,ulend:直线l的两个端点。点u到直线l的距离:其中:单位直线法向量扭转90°。线性能量:非线性,解法:Gauss-NewtonorLevenberg-Marquardt。另一种思路:(u-ustart)与它的投影的差。线能量改写为:(投影的正规化长度)Elo允许点在直线定位后滑动,Eld允许点不滑动的前提下直线改变方位。利用Elo和Eld进行迭代算法。迭代算法:1.初始化si,j。2.令Elo为直线线性能量,对映射最优化,得到每个ui,j的值,从而计算出每条直线的法向。3.令Eld为直线线性能量,利用2中得到的法向对映射最优化,更新每个ui,j的值,进而得到si,j的值。4.重复2、3两步,直至收敛。两三次迭代后,视觉效果就已经很接近收敛;10次迭代后,几乎已经收敛。Conformality和Lineconstraints会导致视觉缺陷。这是由于它们不考虑标尺和方位的极度变化。添加一个平滑能量项来限制变化速度。考虑h,我们希望引入权值wi,j,用Frobenius规范给出能量项:同理,对k有:经过实践,仅仅使用h已经足够。我们引入权值来防止线性约束的端点附近发生过多的形变。权值函数包括三部分:1.线段端点权值2.显著区域权值:通过局部显著项,允许图像的平滑区域发生较小的变形。对每个点设定一个值,并正规化到[0,1]内;3.人脸检测权值:人脸是极其敏感的区域,检测出人脸后,对其施加Mercator投影,这是因为脸部不能被拉伸,并且线性特征不明显。总权值:同样也可以把总能量分成两部分:本文采用的参数值:wc=1,ws=12,wl=10。最后一步,由用户对结果进行剪裁。大多数结果中,更类似于Mercator,但是直线保持了线性。用户在交互中指定的约束直线为5条到40条之间,平均为20条。顶点数取决于:1.对可视球体离散化的分辨率;2.输入图像对可见球体的覆盖程度;2.4GHz,Core2DuoCPU,对比结果:◦180°照片,80000顶点,15s。◦全景照片,40000顶点,1m。不足之处:1.平行直线离的过近的部分产生失真。2.在处理许多不同方向的直线时,难以保证所有的直线都是直的。3.球面坐标在南北极为奇异点,难以处理。进一步工作:1.解决极点附近的奇异点问题;2.尽可能实现完全自动化,消除用户手动输入的步骤。