檢測算法檢測人臉位置和大小,通過該信息確定出人物所處的矩 形區域和余下的背景區域,以圖2為例確定出的人物區域和背景區域如圖4所示。計算出 將人物區域旋轉至視場中心需要旋轉的角度,,計算公式為:
[0081]
[0082] 其中L為人物區域中心到視場中心的水平偏移距離,f為焦距,L和f均轉化為以 像素數為單位。則人物區域的單應性變換可寫為:
[0086] 將上式描述的單應性變換記為H(Xli ]),則可以定義人物區域網格點單應性約束的 能量函數:
[0088] 其中P1為人物區域網格點的集合。背景區域不需單應性變換,因此該區域網格點 的單應性約束能量函數定義為:
[0090] 其中P2為背景區域網格點的集合。總的單應性約束能量函數即為
[0092] 步驟C2:構造單應性兼容約束能量函數。人物區域和背景區域有公共的邊。為了 防止各個區域經過單應性變換之后造成區域相接部分出現錯位現象,必須在區域的鄰接部 分加入單應性兼容約束。定義Ph。為區域間共有邊界的網格點,H i、H2分別為人物和背景區 域的單應性變換。則單應性兼容約束的能量函數為:
[0098] 所述單應性變換氏為3 X 3的單位矩陣。
[0099] 步驟C3 :構造直線保持約束能量函數。保證圖像中直線經校正后仍然保持筆直, 需要加入直線保持約束。首先使用直線段檢測算法檢測圖像中除人物之外背景區域的直線 段。將檢測到的直線集合定義為L。
[0100] 由于并不是任何一條直線都經過網格點,因此如圖5所示,在每一個有直線經過 的網格中定義一個虛擬點
[0102] 其中系數a, b, c, d由與u-v坐標相對應的x-y坐標值經雙線性插值計算得到。計 算公式為:
[0107] 其中,尤取為網格塊內線段的中點。
[0108] 對于任意一條直線,定義其起始點和終點分別為Ustal^P u end。如圖6所示,為了將 曲線拉直為直線,需要計算曲線上的點\ ,與該點到直線上投影點之間的距離D,并將D約 束為零。由幾何關系可以得到,該距離D的計算式為
[0111] 其中,n = Oi1, n2)為直線的單位法向量。計算出距離D,則可定義直線保持約束的 能量函數為
[0113] 步驟C4 :構造全局坐標平滑約束能量函數。要使圖像內容能夠一致連續,需定義 全局坐標平滑約束,定義u-v坐標的雅可比矩陣為
[0115]當雅可比矩陣中的各項滿足柯西-黎曼方程:
[0118] 時,可實現坐標的連續平滑。由于網格是離散的,將上式離散化得
[0119] Uwi-Ulij= Vli^1-Vlij
[0120] Uli^1-Ulij= -(V1^i-Vlij)
[0121] 通過上式可計算坐標平滑約束能量函數:
[0122] Es= Σ ((u1+1, -Uli j) - (Vli ?+1-ν?ι ?))2+Σ ((V1^i j-Vli s) + (u,, j+1-Ulj s))2
[0123] 步驟C5 :構造全局坐標均勻約束能量函數。僅考慮坐標平滑約束會使得最終校正 圖像外圍網格比圖像中部網格大很多。因此,有必要加入全局坐標均勻約束,使得圖像內外 的網格比例保持一致。拉普拉斯方程的解具有均勻性質,因此這里采用拉普拉斯算子。將 拉普拉斯算子離散化,可定義坐標均勻約束的能量函數為
[0125] 步驟D :線性最小二乘求解。為每一個能量函數添加權重系數并將各能量函數相 加得到總能量函數為:
[0127] 要使能量函數最小,需使E = 0。E = 0,則Eh,Eh。,E1, Es,Eu均需為0,由此可以構造 出線性方程組
[0128] Ax = b
[0129] 其中A為約束矩陣,包含約束能量函數中的Uli j前的各個系數。包含待求未知 量Uli,和V u的列向量,b包含各個方程的常數項。由于該線性方程組是超定的,可用線性 最小二乘法對:(進行求解,求解公式為
[0130] X = (AtA) JATb
[0131] 步驟E :求解出網格點坐標Uli,和V u后,需采用雙線性映射計算出除網格點之外 的其余坐標。如圖7所示,已知網格點口1^2^3^4坐標,網格內任意點(11,¥)的計算式為
[0132] (u, ν) = (l-χ) (1-y)pl+x(1-y)ρ2+(l-χ)yp3+xyp4
[0133] 步驟F :計算出校正坐標(u,v)后。經過從輸入坐標值到計算得到的坐標值的重 映射和插值,即可得到最終校正圖像,如圖8所示。校正圖像邊界不規則,需剪裁為矩形后 輸出,如圖9所不。
【主權項】
1. 一種圖像拉伸畸變自適應校正方法,其特征在于,所述方法包括以下步驟: 步驟A:輸入帶有物體拉伸畸變的圖像。 步驟B:建立網格及坐標,將帶有物體拉伸畸變的圖像劃分為正方形均勻網格,網格交 點坐標記為X1^=(Xu,yu),i,j為網格交點序號;設網格交點坐標X1^校正后的坐標為 uLi= (uU'.i)。 步驟C:構造Ui^的約束能量函數。 步驟Cl:構造單應性約束能量函數。計算出將人物區域旋轉至視場中心需要旋轉的角 度#_,計算公式為: <p-arctan(£ / /) 其中L為人物區域中心到視場中心的水平偏移距離,f為焦距,L和f均轉化為以像素 數為單位。則人物區域的單應性變換可寫為:將上式描述的單應性變換記為HUli ,),則可以定義人物區域網格點單應性約束的能量 函數:步驟C2 :構造單應性兼容約束能量函數。 定義Ph。為人物區域和背景區域間共有邊界的網格點,HpH2分別為背景區域和人物區 域的單應性變換。則單應性兼容約束的能量函數為:步驟C3 :構造直線保持約束能量函數。首先使用直線段檢測算法檢測圖像中除人物之 外背景區域中的直線段。將檢測到的直線集合定義為L。 在每一個有直線經過的網格中定義一個虛擬點uL其中系數a,b,c,d由與U-V坐標相對應的x-y坐標值經雙線性插值計算得到。計算公 式為:其中,取為網格塊內線段的中點。 對于任意一條直線,定義其起始點和終點分別為Ustal^PuOTd。 計算曲線上的點Uli,與該點到直線上投影點之間的距離D,并將D約束為零。由幾何關 系可以得到,該距離D的計算式為 D=I(Uli -Ustart) Tn其中,n= (ni,n2)為直線的單位法向量。計算出距離D,則可定義直線保持約束的能量 函數為=vujn^vij' 通過上式可計算坐標平滑約束能量函數: Es= 5:((Uwi -Uli^-(Vli ^1-Vlij))2+5:((V1^i -Vli^ +(Uli ^1-Ulij))2; 步驟C5 :構造全局坐標均勻約束能量函數。將拉普拉斯算子離散化,可定義全局坐標 均勻約束的能量函數為步驟D:線性最小二乘求解。為每一個能量函數添加權重系數并將各能量函數相加得 到總能量函數為:使E= 0,則Eh,Eh。,E1,Es,Eu均需為0,由此可以構造出線性方程組 Ax=b 其中A為約束矩陣,包含約束能量函數中的Ulij前的各個系數。X為包含待求未知量Ulij和Vu的列向量,b包含各個方程的常數項。 用線性最小二乘法對X進行求解,求解公式為 X= (AtA) :ATb 步驟E:求解出網格點坐標Uli,和Vu后,采用雙線性映射計算出除網格點之外任意點 (x,y)校正后的坐標為 (u,v) = (1-x) (l-y)pl+x(l-y)p2+(l-x)yp3+xyp4〇 其中^1^2^3^4分別為點(1,7)所在網格的4個網格點坐標^1為左上角網格點坐 標,p2為右上角網格點坐標,p3為左下角網格點坐標,p4為右下角網格點坐標。 步驟F:計算出校正坐標(u,v)后。通過從輸入坐標值(x,y)到計算得到的坐標值 (u,v)的重映射和插值,得到校正圖像。
【專利摘要】本發明提出了一種圖像拉伸畸變自適應校正方法。首先將圖像劃分為均勻方形網格并建立輸入輸出坐標;其次通過人臉檢測算法確定出人物區域與背景區域,分別為各個區域建立單應性約束,以校正人物區域中出現的拉伸畸變,并為相鄰區域建立單應性兼容約束,保證各個區域的連續性;通過直線檢測算法確定直線區域,為直線區域建立直線保持約束,以保證校正后的直線不出現彎曲;通過全局坐標平滑和均勻性約束保證整幅圖像一致連續。再將上述約束表述為能量函數,并加入權重,將各個能量方程相加。使用最小二乘方法計算出能量最小時的坐標值,即得到校正后的圖像坐標值。最后使用雙線性映射進行渲染得到最終校正圖像。
【IPC分類】G06T3/60, G06T5/00
【公開號】CN105046657
【申請號】CN201510354230
【發明人】馮華君, 楊波
【申請人】浙江大學
【公開日】2015年11月11日
【申請日】2015年6月23日