王佳文, 朱永燦,2, 王帥, 李科鋒
(1. 西安工程大學電子信息學院, 陜西 西安 710048;2. 西安電氣設備互聯(lián)傳感與智能診斷重點實驗室, 陜西 西安 710048)
航拍光伏組件圖像經(jīng)常會受到拍攝高度、 拍攝角度、 光照[1-2]等因素的影響, 從而產(chǎn)生各種畸變, 導致光伏組件表面的形狀和大小出現(xiàn)變化, 進而影響光伏組件的檢測和識別[2-3]。 比如用機器視覺的方法進行光伏組件表面遮擋物識別時, 需要得到遮擋物的具體位置和遮擋面積, 如果圖像存在畸變, 圖像中心部分的細節(jié)會被拉伸, 導致光伏組件的大小和位置等信息出現(xiàn)誤差[4], 這會影響到光伏組件的識別和分類, 得到錯誤的判定和測量結果。 另外, 校正圖像畸變還可以提高圖像的清晰度和分辨率, 使光伏系統(tǒng)分析更加準確和可靠[5-6]。綜上所述, 航拍光伏組件圖像的畸變校正對于提高光伏組件圖像質(zhì)量、 檢測準確性和降低維護成本具有重要的意義。
目前針對機器視覺系統(tǒng)的圖像畸變的校正一般是通過建立圖像非線性畸變模型實現(xiàn)的。 這種方法的主要思想就是對圖像畸變前后坐標點的非線性關系進行數(shù)學模擬。 Hao S[7]利用成像畸變數(shù)據(jù), 采用最小二乘法擬合畸變多項式函數(shù)完成映射畸變。HE Y[8]提出了一種自適應分類擬合魚眼圖像校正方法, 在不同失真差劃分的區(qū)域, 采用不同的參數(shù)曲線進行擬合和校正。 Rahman[9]通過相機標定獲得相機的內(nèi)外參數(shù), 提高了圖像校正的精度。 翟爽[10]利用相機標定獲得的參數(shù), 在現(xiàn)場可編程門陣列(field programmable gate array, FPGA) 中通過查找表的方式來代替復雜的在線計算, 減少硬件內(nèi)部資源消耗。 楊雪[11]提出了利用卷積神經(jīng)網(wǎng)絡對系統(tǒng)的圖像非線性畸變模型進行完整求解, 并基于圖像非線性畸變模型對系統(tǒng)的圖像畸變實施校正。 王健明[12]基于全變分投影和空洞修復的光場圖像透視變換算法, 達到畸變校正的目的。
雖然這些方法在圖像畸變校正領域具有一定的領先優(yōu)勢, 但仍然存在一定局限性, 如算法的精度受到標定板、 擬合模型和計算方法等因素的影響,可能存在誤差。 部分算法需要使用特殊的標定板或樣板, 不適用于實際應用場景中的任意圖像。 部分算法需要計算大量的參數(shù)[13-15], 處理速度較慢,不能滿足實時性要求。 對于特殊情況的處理不夠靈活, 如對于非對稱畸變、 大角度畸變等情況, 算法效果不理想[16]。 部分算法對于光照條件和場景變化比較敏感, 需要重新標定或者調(diào)整參數(shù)。
本文提出一種無需標定就可以實現(xiàn)航拍光伏組件圖像畸變校正的方法, 該方法基于幾何畸變校正理論, 通過對光伏組件圖像的特征點進行提取和匹配, 計算出畸變校正所需的參數(shù), 并對圖像進行畸變校正。
本文所提圖像畸變校正算法如圖1 所示, 首先利用特征點提取算法從光伏組件圖像中提取出一些關鍵的特征點, 如角點[17]和邊緣點等; 然后使用特征點匹配算法對這些特征點進行匹配, 以獲取畸變前后的對應關系。 接著, 利用計算幾何的理論,對這些對應點進行三角測量和坐標變換, 計算出相機的內(nèi)外參數(shù)和畸變校正所需的參數(shù)。 最后, 利用這些參數(shù)對圖像進行畸變校正, 得到校正后的光伏組件圖像。
圖1 圖像畸變校正算法流程
相比傳統(tǒng)的基于標定的畸變校正方法, 該方法無需標定, 操作簡單方便, 可以實現(xiàn)對光伏組件圖像的快速畸變校正, 并且能夠在實際應用中提供較為準確的畸變校正效果。
采集的航拍光伏組件圖像, 可能存在噪聲, 影響后續(xù)計算光伏組件上異物尤其是覆冰雪面積時的準確性, 故采用去噪算法, 如均值濾波、 中值濾波[18]等, 再采用圖像增強算法, 如直方圖均衡化[19]、 對比度拉伸等, 提高圖像質(zhì)量。 光伏陣列圖像中包含多個光伏組件, 需要對圖像進行分割,提取出光伏組件的輪廓和區(qū)域。 再對光伏組件圖像進行特征點提取和匹配, 如角點、 邊緣點等, 計算出光伏組件在畸變前后的對應關系。 其次利用計算機視覺和機器學習技術[20], 對光伏組件進行識別和分類, 如識別不同類型的光伏組件、 判斷光伏組件的質(zhì)量。 最后利用光伏組件圖像的特征信息, 進行數(shù)據(jù)分析和應用, 檢測光伏組件的遮擋等。 具體實現(xiàn)還需結合具體的應用場景和算法技術進行調(diào)整、 優(yōu)化。
光伏組件切向畸變校正方法的具體流程如下:1) 特征點提取。 利用光伏組件數(shù)字圖像確定4 個特征點。 2) 三角測量和坐標變換。 利用計算幾何的理論, 通過對特征點的對應關系進行三角測量和坐標變換, 計算出相機的內(nèi)外參數(shù)及畸變校正所需的參數(shù)。 3) 畸變校正。 利用計算出的相機參數(shù)和畸變校正參數(shù), 對光伏組件圖像進行畸變校正, 得到校正后的光伏組件圖像。
該方法無需進行傳統(tǒng)基于標定的畸變校正方法中的標定過程, 通過特征點提取和匹配、 三角測量和坐標變換的方法, 直接從光伏組件圖像中獲取相機的內(nèi)外參數(shù)和畸變校正所需的參數(shù), 從而實現(xiàn)光伏組件切向畸變圖像的快速校正。
如圖2 所示, 以像平面中點o為原點, 以過o點的像素行、 像素列為x軸、y軸建立像平面坐標系o-xy; 以過o點且分別與x、y平行的直線為X軸和Y軸, 以光軸為Z軸建立直角坐標系O-XYZ;以f表示焦距,l表示像素的寬度和高度,F=f/l。以A1、 A2、 A3、 A4依次表示光伏陣列4 個頂點,如圖3 所示。 4 個頂點在直角坐標系O-XYZ和像平面坐標系o-xy中的坐標依次為(Xi,Yi,Zi)、(xi,yi) (i=1, 2, 3, 4), 以h表示光伏組件的寬度, 記:
圖2 像平面坐標系與直角坐標系示意
圖3 4 個特征點位置示意
則
則光伏組件四個頂點的坐標為
通過以上步驟, 可以提取出光伏組件圖像中的4 個頂點特征點, 用于特征點匹配和畸變校正。
確定相機坐標系的參考坐標系, 以及相機坐標系和參考坐標系之間的變換關系, 使用已知的初始值來進行優(yōu)化。 將4 組二維點坐標(x,y) 分別變換到參考坐標系中, 得到4 組變換后的三維點坐標(X,Y,Z)。 利用三角測量算法, 通過4 組變換后的三維點坐標(X,Y,Z), 計算出相機坐標系的相對位置變換關系。
圖像畸變校正流程如下。
1) 建立畸變校正模型。 根據(jù)計算出畸變校正所需的參數(shù), 建立畸變校正模型。
2) 讀取待校正的圖像。 從文件或攝像頭中讀取待校正的圖像。
3) 對圖像進行畸變校正。 對每個像素點進行畸變校正, 根據(jù)畸變校正模型將畸變后的坐標映射回畸變前的坐標, 得到校正后的圖像。
4) 保存校正后的圖像。 將校正后的圖像保存到文件中, 或在顯示器上顯示。
在進行圖像畸變校正時, 為了避免圖像邊緣的像素點被映射到圖像外部, 通常會對校正后的圖像進行插值處理, 本文采用最近鄰插值算法。
相機模型描述相機的內(nèi)部參數(shù)和外部參數(shù), 通常使用針孔相機模型。 其中, 內(nèi)部參數(shù)包括相機的焦距、 像素尺寸和主點位置等, 外部參數(shù)包括相機的位置和方向等。 相機模型可以用一個投影矩陣表示, 該矩陣將三維世界坐標系下的點映射到二維圖像坐標系下的點。 目前相機模型有線性模型和非線性模型兩種。 實際的成像系統(tǒng)是透鏡成像的非線性模型, 如小孔成像模型, 如圖4 所示。
圖4 小孔成像模型
圖中f為焦距;O為光圈、 針孔、 攝像機中心。
攝像機坐標系(O) 下的空間P點投影到像平面坐標系(C′) 下P′點的坐標, 如圖5 所示。
圖5 攝像機坐標系與像平面坐標系
轉(zhuǎn)換關系如圖6 所示, 攝像機坐標系(O) 下的空間P點投影到像平面坐標系(C′) 下P′點,P到P′坐標映射關系表示為:
圖6 轉(zhuǎn)換關系示意圖
可以把像平面坐標系看作是基于傳感器中心點建立的, 人眼看照片時看到的點也是基于圖像的像素點。 所以還有一個基于圖片的坐標系, 叫作像素坐標系, 如圖7 所示。
圖7 像素坐標系
像素坐標系一般用o-uv來表示, 原點在圖像的左上角,u指向右邊,v指向下邊, 像素坐標是整數(shù)。
像素坐標系與成像平面之間, 相差了一個縮放和一個原點的平移。 我們設像素坐標在u軸上縮放了α倍, 在v軸上縮放了β倍, 同時原點平移了(cx,cy)T。 所以P′的坐標與像素坐標(u,v) 的關系為:
式中,f的單位為m;α、β的單位為像素/m;fx、fy的單位為像素。 把式(6) 寫成矩陣形式為:
式中, 中間量組成的矩陣稱為相機的內(nèi)參數(shù)矩陣K, 表達了從相機坐標系到像素坐標系的坐標轉(zhuǎn)換。
畸變模型描述相機拍攝角度的畸變情況, 通常包括徑向畸變和切向畸變兩種類型。 徑向畸變指的是由鏡頭的形狀和光路的偏差導致的圖像失真現(xiàn)象[21]; 切向畸變則是由相機鏡頭安裝不平行于成像平面而引起的失真現(xiàn)象[16]。 畸變模型可以用一個多項式函數(shù)表示, 該函數(shù)將校正前的圖像坐標映射到校正后的圖像坐標。 由于航拍圖像多是由角度問題導致的圖像畸變, 所以主要討論的是航拍光伏組件圖像切向畸變的校正, 如圖8、 圖9 所示。
圖8 理想機位與誤差機位
圖9 正常圖像、 垂直畸變圖像及水平畸變圖像
綜合相機模型和畸變模型, 可以建立一個數(shù)學模型, 將校正前的圖像坐標映射到校正后的圖像坐標。 該模型由相機的內(nèi)部參數(shù)、 外部參數(shù)和畸變參數(shù)組成, 可以通過三角測量和坐標變換的方法得到。 在進行圖像校正時, 將圖像坐標通過模型映射到校正后的坐標系下, 即可實現(xiàn)畸變校正。
根據(jù)前設的映射關系, 記原始圖像中的坐標為(u,v), 對應齊次坐標為(U,V,W), 變換后的坐標為(x,y)。 齊次坐標就是將一個原本n維的向量用一個n+1 維向量來表示, 是指一個用于投影幾何里的坐標系統(tǒng), 則有式(8)。
對(U,V,W) 乘以任何一個常系數(shù)而不影響計算結果, 即對上述矩陣方程兩邊同時乘以一個系數(shù)t33, 得到公式(9)。
假設現(xiàn)有n組對應的點: (u1,v1) 對應(x1,y1), (u2,v2) 對應(x2,y2), …, (un,vn) 對應(xn,yn), 那么可以得到矩陣形式的線性方程組, 如式(10) 所示。
記
那么T=(ATA)-1ATB, 解得矩陣T即為畸變校正所需的參數(shù)。
用本文畸變校正方法校正光伏組件航拍圖像中水平方向畸變和垂直方向畸變的切向畸變圖像, 視覺校正結果如圖10 所示。
圖10 本文算法校正結果
為評估校正圖像的準確率, 用像素點個數(shù)法分別統(tǒng)計畸變前和校正后的覆冰雪區(qū)域面積及覆冰區(qū)域占比, 用相對準確率來說明畸變校正效果, 評估算法畸變結果示例如圖11 所示, 計算結果見表1。
表1 畸變校正準確率評估表
圖11 評估算法畸變結果示例
式中,La為手動分割出的冰雪區(qū)域面積;Li為算法得到的冰雪區(qū)域面積;M為相對準確率。
由圖11 和表1 結果可以確定, 該校正算法可以處理航拍光伏組件圖像中切向畸變問題, 相對準確率提升20%~55%。
本文針對因拍攝角度存在的圖像畸變問題, 提出一種無需標定的航拍光伏組件圖像畸變校正方法。 相比傳統(tǒng)基于標定的畸變校正方法, 該方法具有更高的便利性和準確性, 可以實現(xiàn)對光伏組件圖像的快速畸變校正, 并且能夠在實際應用中提供較為準確的畸變校正效果。
由結果可得本文算法不僅提升了圖片的視覺校正效果, 還提升了20%~55%的相對準確率, 對于航拍光伏組件圖像的異物識別、 運維檢修具有一定的應用價值。