一种改进的透视变换算法

2016-04-01 05:26洪留荣葛方振
关键词:畸变控制点矩形

孙 雯, 洪留荣, 葛方振

(淮北师范大学计算机科学与技术学院, 安徽 淮北 235000)

一种改进的透视变换算法

孙 雯, 洪留荣, 葛方振

(淮北师范大学计算机科学与技术学院, 安徽 淮北 235000)

针对图像的透视畸变问题,提出一种新的直线检测算法和改进的透视变换方法相结合的方法,实现对畸变图像的校正。通过新的直线检测算法—TSAP,得到边界直线和顶点位置,从而实现直线探测。使用改进的控制点策略确定控制点,利用透视变换公式,实现对畸变图像的校正和归一化。MATLAB仿真实验结果表明,该方法计算量小,精度高,容错性高。

透视变换;直线检测;太阳能电池板;切空间

图像在获取的过程中,由于受到镜头精度,成像系统的非线性,拍摄角度等因素的影响,会发生不同程度的几何畸变。在进行拍摄过程中,摄像机和物体通常存在一定夹角,导致拍摄图像存在一定的透视畸变,但在实际应用中,通常需要得到的是图像的正视图图像,因此需要对畸变进行校正。图像的校正也越来越受到关注。

常用的图像校正方法主要有控制点变换方法、角度检测法及透视变换方法[1-3]。无论哪种校正算法,首先都要对畸变图像进行直线探测。控制点变换方法针对图像本身,依据控制点的对应关系,使用线性差值方法完成对图像的校正,但是控制点校正算法的压缩拉伸恢复能力较弱,当采集平面与图像平面存在偏差时,校正效果较差[4]220-226;角度检测法依据检测到的直线的角度,进行旋转校正,忽视了图像的透视畸变,存在局限性;透视变换方法根据摄像机的成像原理,对图像的透视畸变进行校正,效果较好,但是透视变换首先需要对控制点进行精确地探测,常用的Hough变换,计算量大,实时性较差,且检测精度不高[5-6]。

本文提出了一种改进的图像校正算法,通过一种新的直线探测方法和透视变换相结合实现图像校正。首先将边缘化后的原始图像进行切空间表示[7],对切空间图像进行角度方向投影,得到原始图像直线部分的点的累加峰值,通过峰值确定图像中的直线部分,从而实现直线探测。针对任何图像,若可以探测到四条相交直线段,得到相交直线的交点作为变换点,并定义这四个交点对应的正视图中的坐标。四对变换点通过透视变换公式,得到变换参数,通过变换参数对原始图像进行坐标变换,即可实现对透视畸变图像到理想正视图的校正。

1 透视变换理论

1.1 透视投影的原理

透视投影,就是从视图空间到目标空间的带透视性质的坐标变换(见图1)。

图1 透视投影的标准模型

可以认为观察者以E点为视点,P′平面为视平面看向物体,P′平面为近截面,P为远截面,P与P′之间的棱台区域为可视区域。观察者的视线穿过P′平面投影到P平面,形成物体的透视图。

1.2 透视变换

以点E为视点,看向P′平面上的矩形,视线经过P′平面到达P平面时,由于视点与P′平面有一定的夹角,矩形发生透视畸变,投影成为新的矩形,如图2所示。

图2 透视变化

以矩形区域的四个角点为例,经过透视变换后A′->A,B′->B,C->C,D′->D,矩形的形状发生改变。透视投影实质上就是P′平面上的每一点在视角的作用下投影到P平面的过程。若将P平面定义为物体的正视图平面,那么透视变换就是透视投影平面上的每一个像素点变换到正视图上对应的像素点的过程。为了实现透视畸变的校正,只需要找到P平面上的点和物体正视图上对应点的变换公式。

二维图像透视变化公式[8-9]可以表示为

(1)

(2)

式中(x,y)是投影图像的坐标,(u,v)是正视图上的坐标。a,b,c,d,e,f,g,h是畸变参数。

2.3 改进的控制点的选择

由式(1)、式(2)可以推出,只要得到四对透视变换前后对应点的坐标,就可以解出畸变参数,从而实现透视变换[10-11]。定义这四对变换点为控制点,所以控制点的确定,对实现透视变换有很重要的作用。对于图2所示的矩形进行透视变换,选取P平面上的畸变矩形作为原始图像。

在进行变换点选择时,使用“边廓点”方法定义矩形的四个角点为控制点。该方法保证控制点分布均匀,且将要进行变换的区域控制在一个规则的坐标范围内。此时,控制点的点位误差可以控制到最小。

此时还需确定控制点对应的正视图中的坐标位置。对应不同的正视图控制点坐标,其校正结果也不同。在实际应用中,希望校正后的图像能度量物体的实际大小且与物体实际大小的误差尽可能的小。文献[12]使用的方法是:使用物体的实际尺寸转换成相应的坐标值。这样导致在校正过程中,校正之后的图像边缘不连续,此时,一并将该坐标的右,下,右下角3个像素的灰度值设成和该点相同的值,以使图片看起来是连续的。文献[4]226使用灰度级插值法来保证图像的连续性和平滑性。不论使用哪种方法,都未能保证正视图图像能精准度量物体的实际尺寸,且计算量都大幅度提升。

为了较少计算量,并提升正视图图像与物体实际尺寸的匹配度,本文使用三个像素来度量实际物体的一个点,将正视图对应控制点的坐标设置成实际物体的3倍大小。经过试验分析,改进的控制点,计算简单,运算量较低,且使用改进的控制点进行图像校正时,能够保证校正后的正视图大小与物体实际尺寸的匹配度较高,且误差很小。

2 一种新的直线检测算法TSAP

由透视变换理论分析可知,影响透视变换的一个主要因素就是控制点的探测。对于一个矩形图像来说,控制点的选择通常为矩形的四个角点。而角点的探测则需要通过矩形的边缘直线进行解析。因此问题转化为对矩形中直线的探测问题,只要确定了矩形中的直线,通过直线解析式,可以得到相交直线的角点,也就是控制点。

本文使用的TSAP算法,首先将采集到的原始图像进行二值边缘化,然后进行切空间表示,对切空间图像进行角度方向投影,得到原始图像中直线部分的点的累加值,通过峰值确定图像中的直线部分,从而实现直线探测。

2.1 切空间表示

假设存在一条曲线l={li},θi=∠(li-1li,lili+1), di为li与li+1的距离, i={0,…,n }。当li+1在li-1li的右侧时,令θi>0,否则θi<0(见图3)。

(3)

将直角坐标系中的曲线转化到由Ti2T(i+1)1,T(i+1)1T(i+1)2表示的切空间内,转化规则如下:

(1) T02=(0,0)

其中 i∈{1,……,n}

(3) Ti2=(T(i1))*x,T(i1)*y+θi),其中,i∈{1,……,n-1} (如果l是一个封闭曲线,则l0=ln);

值得注意的是当是一条沿顺时针方向的封闭曲线时,Tn1的坐标为(1,2π)。

图3 切空间示意图

由切空间转化规则,可以得到性质如下:

性质1:平面上一条直线,由于其理论θi恒等于0,在切空间内是一条水平直线,如图4a所示。

性质2:由一条曲线连接的两条直线,在连接点处其θi发生突变,对于曲线部分,其θi连续随机变化,在切空间内会形成两条水平线,水平线间以曲线连接,如图4b所示。

性质3:如果一条直线中间被曲线分开,则曲线端点处的θi发生突变,曲线内部,其θi连续随机变化,则在切空间上形成一条水平线,且被曲线分开,如图4c所示。

图4 各类线段及其切空间表示

由图4可以看到直线对应的切空间表示并不是一个直线,而是以Δθi进行上下波动。这是因为对于实际图像来说,直线的像素点以整数形式表示,且直线部分存在锯齿现象。由性质2可以得到推论,若两条直线相连,则在切空间内会形成两条水平线。针对矩形图形,则在切空间内会形成四条水平线,也就是矩形边缘直线在切空间内被划分到四个区域,如图5所示。

图5 矩形图像的切空间表示

2.2 角度投影

已知矩形边缘直线被划分到不同区域,不同区域以直线的偏转角度进行划分。此时不同的直线对应的角度必定不同。将图4b进行角度方向投影,则直线段上对应的点大量聚集,产生峰值点。由矩形的性质可以知道,进行角度投影之后会产生四个峰值点,峰值点是直线段上的点的集合。

由切空间定义可以知道,Ti1表示曲线的坐标信息,Ti2表示曲线的角度信息。首先将切空间图像进行角度方向上的投影,也就是令di=0。由图4b可以知道,若图像中存在直线部分,则对应的切空间表示进行角度投影之后,直线上的所有的点将聚集在同一个角度上,产生峰值点。峰值点的角度值对应不同的直线间的偏转情况,并不度量直线的方向。

投影公式如下

Pi1=di

(4)

(5)

Pi1是发生偏转的角度值,I为指示函数,取值为0,1,Pi2是偏转角度相同的基元段的个数。

记录偏转角度相同的基元段的个数。P值最大时,对应的偏转角度θl表示了一条直线。

投影公式更新为

Pi1=di

(6)

(7)

针对图5所示的切空间表示,Pi2会有四个峰值点,每一个峰值点都是原图像中的直线部分的点集合。由此可以得到边缘曲线中的直线段的所有坐标点的信息。

直线的探测实质上就是探测组成直线的点的集合。由公式(6)~式(7),得到直线部分的点的集合,即可构造直线的解析式,实现直线探测。

2.3 算法的普适性

针对图6所示的破损直线,由于破损部分相对直线部分的点较少,且其θi连续随机变化,具有较大离散性,所以,在进行直线探测时,不会影响直线探测的准确性。

图6 破损矩形的切空间表示

对于图6所示的破损矩形进行TSAP,峰值点仍为4个,此时对于破损的边缘部分,已知边缘中的直线部分的坐标信息,可以实现两段探测,也可以仅探测一段。算法具有较高的灵活性,且直线探测的正确性得到保障。

3 分析变换

3.1 透视变换

已知直线解析式,可实现对控制点的确定。将控制点作为已知变量,求解透视变换参数。

式(1)和式(2)的矩阵表示形式为

(8)

已知投影图像的角点坐标为(x1,y1),(x2,y2),(x3,y3),(x4,y4),正视图对应的控制点的坐标为(u1,v1),(u2,v2),(u3,v3),(u4,v4)。则根据式8得到透视变换的矩阵为

(9)

记作:Z=A*M,

则M=A-1*M

(10)

其中M记作变换参数。

已知变换参数,作用于原始图像,即可实现对畸变图像的校正。

F=P*M

(11)

式(11)中,P为透视投影图像,M为变换参数,F为校正之后的正视图图像。

实际应用中,很多时候在进行校正时,不需要考虑图像的灰度和内部情况,仅需要对外部轮廓进行校正。针对这种情况,不需要对原始图像进行校正,可以仅对二值边缘化之后的图像进行校正,减少计算量(见图7)。

图7 图像透视校正

3.2 误差分析

定义校正误差函数为L(Y,f(x))

L(Y,f(x))=(Y-f(x))2

(12)

式中f(x)表示校正之后的边缘长度,Y表示物体实际边缘长度。

使用经验风险Remp估算期望损失,分析算法的精确性,定义经验风险为

(13)

算法使用三个像素来度量实际物体的一个像素点,若Remp值小于3,则算法的误差不超过实际物体的一个像素点,算法精确度较高。

3.3 算法总结

步骤1 使用TSAP算法实现直线探测,获得图像中的四条直线;

步骤2 联立直线解析式,求得交点坐标;

步骤3 定义改进的正视图坐标作为控制点;

步骤4 将四对控制点作为已知变量,带入透视变换的方程式,求解畸变参数;

步骤5 将畸变参数作用于待校正图像,实现图像校正。

4 实验分析

为更好的对本文透视变换算法进行分析,现针对工业生产中的太阳能图片进行实验,随机抽取实际工厂中的40张太阳能电池板进行实验,实验结果如表1所示。

表1 算法分析

实验分析如下:

(1)本文所用TSAP算法具有较好的直线检测效果,容错率高。特别的当直线出现破损时,例如直线中间或者端点处发生破损,也就是存在曲线时,根据切空间性质2,3可知,本算法仍然可以实现直线的正确检测。这是因为TSAP算法是基于统计的算法,峰值点的统计可以很大程度的减少误差,对于直线中存在的毛刺,断裂有很好的容错性,如图8所示。

图8 直线探测

若直线探测正确,则相应的控制点也能被正确定位,此时可以实现图像的透视变换,如图9所示。

图9 透视校正

(2)当直线存在破损情况,且破损处呈直线特性而不是曲线时,可能存在过度检测情况。此时若破损处的直线长度大于实际直线非破损部分长度,则此时探测出的直线为破损处的直线。

由于直线探测误差,将导致透视校正出现误差。

5 结论

图像校正在数字图像处理领域越来越受到关注,实现高正确性,高精度和快速的图像校正,是图像校正的一个重要研究方向。

为实现图像的透视校正,通常需要对目标点进行精准的探测,也就是对直线的精确探测,本文提出一种新的直线检测算法—TSAP,在进行直线检测时,对切空间内的图像仅需一次投影,利用统计特性,即可实现对直线的快速正确探测,其算法计算量远低于Hough变换,且检测精确度较高。在进行透视校正时,使用改进的控制点策略,针对特定的工业图像,仅对图像轮廓进行校正,保证了校正的精确性,并减少了计算量。

[1] 李立钢,刘波,尤红建,等.星载遥感影像几何精校正算法分析比较[J].光子学报,2006,35(7):1 028-1 034.

[2] 辛舟,龚俊.空间复合角构成倾斜面加工角度的变换[J].机械设计与制造,2003(5):97-98.

[3] 何援军.透视和透视投影变换—论图形变换和投影的若干问题之三[J].计算机辅助设计与图形学学报.2005,17(4):734-739.

[4] 胡东红,汪浩,艾君,等,两种图像校正算法在实际应用中的比较[J].计算机工程与应用,2009,45(13):191-226.

[5] 陈国栋.Hough变换改进算法研究[D].哈尔滨:哈尔滨工业大学,2007:9-19.

[6] 段汝娇,赵伟,黄松岭,等.一种基于改进Hough变换的直线快速检测算法[J].仪器仪表学报,2010,31(12):2 774-2 780.

[7]THANHPHUONGNGUYEN,DRISABELLE.Circularitymeasuringinlineartime[R].2010InternationalConferenceonPatternRecognition,2010:2 098-2 101.

[8]GUANLING.FrontMatterMultimediaImageandVideoProcessing[M].BocaRaton;CRCPressLLC,2001.

[9]TEKALPAM.DigitalVideoProcessing.[M].2nd.北京:清华大学出版社,1998:165-166.

[10] 郝永杰,刘文耀,路烁.畸变汽车牌照图像的空间校正[J].计算机应用,2001,21(4):30-32.

[11] 叶青,张春华.汽车牌照实时几何畸变校正方法[J].红外与激光工程,2004,33(2):181-184.

[12] 代勤,王延杰,韩广良.基于改进Hough变换和透视变换的透视图像校正[J].液晶与显示,2012,27(4):552-556.

An Improved Perspective Transformation Method

SUN Wen, HONG Liu-rong, GE Fang-zhen

(School of Computer Science and Technology, Huaibei Normal University, Huaibei Anhui 235000, China)

Aiming at the problem of perspective distortion of image, a new method based on the new line detection algorithm and the improved perspective transformation method is proposed to correct distorted image. Through the new line detection algorithm-TSAP, we can get the boundary line and the vertex position, so as to realize the linear detection. Using the improved control point policy to determine control point and perspective transformation formula, we can correct and normalize the distorted images. MATLAB simulation results show that the proposed method is of low computation, high accuracy and high fault tolerance.

perspective transformation; line detection; solar panel; tangent space

2016-02-20

国家自然基金资助项目(61572224);安徽省自然科学基金资助项目(1408085MF130); 安徽省高校省级自然科学基金资助项目(KJ2013A229);安徽省高校省级自然科学基金资助项目(KJ2013Z281)

孙雯(1992-),女,安徽濉溪人,在读硕士,研究方向:模式识别。

TP391

A

1672-1098(2016)06-0075-06

猜你喜欢
畸变控制点矩形
两矩形上的全偏差
几何特性对薄壁箱梁畸变效应的影响
化归矩形证直角
NFFD控制点分布对气动外形优化的影响
在Lightroom中校正镜头与透视畸变
从矩形内一点说起
基于风险管理下的项目建设内部控制点思考
基于纯平移两视图几何的镜头畸变参数标定
SDCORS在基础地理信息控制点补测中的应用
提升猪场母猪生产性能的关键控制点