(安徽大學 計算智能與信號處理教育部重點實驗室,合肥 230039)
光學器件由于在實際的生產過程中的失誤導致成像原理無法滿足小孔成像模型,因此采集得到的圖像往往存在畸變現象[1]。鏡頭畸變對相機的標定精度存在直接的影響,從而影響著后續的測量與三維重建的精度。
現如今,為了得到更好的校正效果,國內外的學者們在該方面做了很多研究。Tsai兩步法中首先通過線性標定求解出初始參數,在通過非線性優化求得最終的標定參數與畸變系數[2]。張正友標定法[3]首先通過建立畸變的數學模型,在利用多幅不同位姿的標定板圖像完成對畸變參數的標定,但該算法需要通過考慮畸變的種類來建立數學模型。葉峰等對Tsai兩步法進行改進,首先選取畸變較小的圖像中心位置進行參數的求解,再將焦距和平移分量作為變量,采用迭代的方法逼近精確值。該算法計算較為繁瑣,求解過程較為復雜[4]。楊麟等人基于直線的投影還是直線的特性提出利用直線投影特征來對圖像進行校正,但該算法需要保證實際場景中必須存在直線[5]。文獻[6]提出將圖像中的畸變曲線提取出來,通過優化畸變參數來將曲線轉化為直線,但該算法模型建立較為困難。以上的這些算法都需要建立數學模型,但由于畸變種類較多,無法建立準確的數學模型,因此本文提出改進的遺傳模擬退火的BP神經網絡算法來進行畸變校正。該算法無需考慮畸變的數學模型,通過理想點與畸變點作為網絡的輸入與輸出,通過訓練得到畸變模型,同時本文采用改進的遺傳模擬退火算法對BP神經網絡的權值和閾值進行優化,與傳統的神經網絡相比,加快了網絡的訓練速度。
由于實際生產的光學器件成像原理并不滿足小孔成像,導致實際投影點與理想像點并不在同一點上,即鏡頭存在畸變[7]。為了提高圖像校正的精度,不僅僅只考慮徑向畸變,同時也要考慮切向畸變[8]。因此理想像點(u,v)與實際投影點(Xd,Yd)滿足關系如下:
(1)
其中:
(2)
傳統的BP神經網絡采用梯度下降法進行反向傳遞來對權值和閾值進行修正,但該算法收斂速度較慢,同時精度不高,而LM算法既保留了梯度下降法的優點[9],同時收斂精度較高,因而采用LM算法對BP神經網絡進行改進。
BP神經網絡的目標誤差函數為:
(3)
其中:n代表輸出層的節點總數,yi表示第i個輸出節點的期望輸出,ci代表第i個輸出節點的實際輸出,w是一個包含了BP神經網絡中所有的權值與閾值的向量。
在神經網絡反向傳播中,LM算法對網絡中權值和閾值的修正量記為Δx,可表示為:
Δx=-[JT(w)J(w)+μI]-1JT(w)e(w)
(4)
其中:J(w)為雅克比矩陣。
利用BP神經網絡進行畸變校正,無需考慮畸變數學模型,過程簡單,但BP神經網絡在應用過程中存在收斂速率較慢,易收斂到局部最優解的弊端,難以滿足精度上的要求[10]。因而本文采用改進的遺傳模擬退火算法優化BP神經網絡的權值與閾值,提高BP神經網絡的性能。
改進的GA-SA算法優化操作關鍵性步驟如下。
2.2.1 初始化操作
根據所要優化的參數構成一個向量,然后根據該個體向量隨機生成初始種群,因GA-SA算法是對網絡的閾值和權值進行優化,因而按照網絡的誤差構造適應度函數。
(5)
2.2.2 選擇操作
傳統的遺傳算法在選擇操作中常采用輪盤選法,但該方法選擇隨意性太大,在滿足既考慮下代種群多樣性,也考慮盡可能多的選擇好的個體的同時,本文采用分段選擇策略與隨機抽樣相結合的選擇操作,設計選擇方法如下:
①計算種群的適應度值,同時對其按由小到大進行排序構成新的種群,由適應度函數式(5)所示,適應度值越小,個體基因越好,因而新種群中的個體是按從好到差進行排序的。
②將新種群平均分成好中差3個子種群,在分別從3個子種群中按隨機抽樣的方法選擇一定數量的個體,構成選擇操作后的種群,在本文算法中,好中差3個子種群抽取數量的比例按照5:3:2進行選擇操作,其目的是為了在保證下代種群多樣性的同時盡可能保留好的個體。
2.2.3 自適應交叉和變異操作
自適應交叉操作是以一定的概率Pc來對個體進行重組,生成新的個體,通過調整的值來保證在后代種群進化過程中盡可能保留好的個體基因。
(6)
其中:Pc1,Pc2分別表示初始交叉概率中較大值與較小值,fmin,fave,f分別表示當前種群中的最小適應值,平均適應值及交叉個體中較小的適應度值。
種群中兩個個體的交叉方式如下[11]:
(7)
其中:x1,x2為交叉操作前選中的個體,x'1,x'2為交叉操作后產生的新個體,r為[0,1]上的隨機數。
自適應變異操作是通過一定概率Pm來對選中的個體進行變異操作,保存種群的多樣性,同時通過自適應概率Pm來防止優質個體發生基因突變。
(8)
其中:Pm1,Pm2分別表示初始變異概率中較大值與較小值,fmin,fave,f分別表示當前種群中的最小適應值,平均適應值及變異個體的適應度值。
在變異操作中,對個體采用隨機抽樣的方法確定個體X中需要變異的基因:xi,然后采用非均勻變異算子[12]對該基因進行變異。
(9)
其中:x'i為基因xi變異后得到的基因,G,Gmax分別為當前進化代數和算法中總的迭代次數;r1為(0,1)上的隨機數,ai,bi為該變異基因取值范圍的最小和最大值。
2.2.4 模擬退火局部優化操作
為了避免遺傳算法易于收斂到局部最優的情況,在種群趨于穩定時,進行模擬退火[13]再優化操作。判斷種群是否趨于穩定的條件如下: