陳文勤,郝慧杰,肖 建,郭宇鋒
(南京郵電大學 電子與光學工程學院、微電子學院,江蘇 南京 210023)
隨著太陽能電池使用量的不斷增加,光伏陣列模塊的發電和壽命已受到越來越多的關注,其中光伏熱斑效應[1]的檢測尤為重要[2]。目前常用的檢測方法有兩類:(1)基于太陽能電池片發電時的物理特性進行監控的檢測方法[3-4];(2)基于圖像處理算法對紅外圖像中熱斑進行識別。該文針對圖像處理算法進行重點研究和實現。
近年來,通過無人機搭載可見光、紅外設備進行自動巡檢獲取熱斑圖像的方法得到較為廣泛的使用[5-6]。越來越多的科研人員將目光聚焦到了圖像識別算法領域,通過外部手段監測光伏電池的運行狀況。文獻[7]在分析Otsu法和最大散度閾值法的基礎上,提出自適應最大散度閾值差法。文獻中經過多次圖像分割實驗嘗試,總結了得到最大散度閾值的快速方法,此方法可以更有效地識別光伏熱斑。文獻[8]基于邊緣檢測方式,使用Canny邊緣檢測算子作為診斷模塊進行光伏熱斑識別。文獻[9]先對光伏電池片的各種運行狀態進行狀態分類編碼,然后通過可擴展脈沖神經網絡的方法實現光伏熱斑識別。以上方法雖然都可以對熱斑進行較為準確的檢測,但是在實際運用過程中,通過無人機拍攝的圖片里除了有數量不等的光伏陣列,光伏陣列之間還有復雜多變的各種背景信息,包括土地、建筑物等。因此在進行光伏熱斑檢測前,需要對圖片進行預處理,分割出需要檢測的光伏陣列區域。
該文首先進行光伏陣列圖像特征分析,并在此基礎上提出基于光伏陣列區域局部灰度特征的高精度區域分割算法。
通過無人機搭載熱成像相機,預設無人機巡航線路[10],可以依次獲取光伏電站對應區域的光伏陣列紅外圖像。圖1為其中一張典型的光伏陣列紅外圖像,內容包含多塊光伏陣列和背景信息,圓圈部分為光伏熱斑區域。由圖片展示內容可以判斷出目標區域內的局部灰度一致性較好,而背景區域因為路面凹凸不平,導致光照產生的陰影和高亮區域不一致,局部灰度一致性較差。

圖1 光伏陣列紅外圖像
圖2為圖1的灰度直方圖,圖像的灰度值主要集中在0~80和160~255這兩個區間,對照圖1,可以看出背景區域和背景區域的間隙在0~80之間,故目標區域與背景區域存在混淆。

圖2 灰度直方圖
該文根據無人機拍攝的紅外圖像特征分析結果中,光伏陣列區域局部灰度一致性好的先驗條件,采取以下幾個步驟:(1)應用高斯濾波器對原始圖像進行預處理,提高圖像的信噪比;(2)建立二維矩陣IM×N,使用5×5的滑動窗口計算去噪后的灰度圖像的局部標準差并填入二維矩陣IM×N中,并設置閾值T,將光伏陣列與背景區域區進行區分后,轉換為二值化圖像輸出;(3)基于圖像形態學膨脹,對二值化圖像中的光伏陣列的孔洞進行填充;(4)采用基于尺寸的篩選方法,對區域外的存在的孤立小區域進行去除;(5)根據各個光伏陣列的水平或垂直基準信息,重新調整光伏陣列的區域,得到最終分割結果。算法框圖如圖3所示,本節以下內容將對該算法的各個步驟進行詳細介紹。

圖3 算法框圖
為了保證較高的數據采集速率和節約無人機的耗電量,無人機通常位于光伏電站上空幾十米甚至上百米的高度實時采集光伏電站紅外圖像。然而,在無人執行圖像收集過程中,存在大氣吸收、光線反射等原因,導致光伏電站紅外圖像存在較多的噪聲,尤其是高斯噪聲[11-12]。此處采用核數為5×5的二維高斯濾波器:
F(x,y)=f(x,y)*G(x,y)
(1)
二維高斯函數有個重要的特性是旋轉對稱性,使得處理后的圖像能在降噪的同時保留豐富的邊緣細節。
因為目標區域內的局部灰度一致性較好,目標區域局部校準差較小。該步驟會計算出每個像素的局部標準差,并生成新的局部標準差矩陣。
(1)創建一個M×N二維矩陣IM×N,M和N的維度與原圖像相同,M和N的大小為640和480。
(2)設置一個K×K的滑動窗口,這個滑動窗口以圖像每個像素為中心選取K×K的區域,作為基本計算單元,求取局部標準差。在圖像處理中,當前像素宜位于滑動窗口中心,所以圖像處理窗口尺寸一般選擇奇數,并且滑動窗口的大小還跟運算速率相關聯,選擇窗口越大,完成計算耗費的時間就越多。基于以上原因以及實際操作經驗,選取5×5的滑動窗口,如圖4所示。

圖4 第一個滑動窗口的5×5模板
(3)圖4展示了一個滑動計算窗口,通過平均值計算公式(2)和標準差計算公式(3)得到當前窗口中局部標準差,填入到二維矩陣IM×N的[(K-1)/2,(K-1)/2]位置中。計算公式如下:
(2)
(3)

因為5×5的滑動窗口具有一定的寬度,導致圖像邊緣位置存在一部分無效像素。該文使用邊界像素處理的簡單方法,超出的部分使用中心對稱的方式進行灰度值的填補。
(4)通過閾值函數threshold()設置閾值T,將二維矩陣進行公式(4)的二值化操作,并輸出對應的二值化圖像f。閾值T取值為局部標準差矩陣IM×N所有元素的均值。閾值條件如下:

(4)
(5)
閾值條件中255所代表的顏色為白色,所以局部灰度一致性較好的光伏陣列區域會顯示為白色,而背景區域顯示為黑色,如圖5所示。
但是,部分光伏陣列區域因為某些原因而呈現出黑色區域(圓框);部分背景區域因為反射光照較好呈現白色區域(方框)。以下步驟是將這部分區域進行修正操作。

圖5 二值化圖像f
經過2.2節局部標準差矩陣生成的圖像二值化操作后,仍有部分區域因為當時的光照等原因導致輸出的結果不太理想。
由于圖片噪聲或陰影,大型光伏陣列被分裂成多個小區域。本節將利用形態學膨脹的方式:
(6)
形態學膨脹操作后將填充圖5的孔洞,以形成完整的光伏陣列區域。填充情況如圖6所示。

圖6 光伏陣列填充情況
通過圖像預處理操作后,從圖中可以看出光伏陣列的輪廓已經比較明顯,通過2.2節的閾值化函數threshold()得到的圖像,這時邊緣是正負區域之間的邊界。
(1)首先,需要對所有光伏陣列進行定位,并取最小外接矩形輪廓,得到多個用規則矩形包裹的光伏陣列區域,作為待確認區域。
(2)由于部分背景區域比較平整,導致部分區域的灰度一致性較好,即可能出現非光伏陣列大小的矩形區域(如圖5的右下角位置),因此需要對待確認區域進行篩選。采用基于尺寸的篩選方法,對每一個待確認區域獲取長、寬、面積參數作為閾值,與光伏陣列預測數據進行對比,排除不滿閾值范圍的待確認矩形位置。使用R(i)代表每個確認區域位置,具體規則如式(7)所示:
(7)
如果待確認區域長度、寬度都在t1、t2范圍以內,則將其作為目標區域,范圍外的部分作為背景區域。
(3)區域裁剪:因為某些灰度一致性較好的背景區域可能與光伏陣列緊靠,導致光伏陣列的上邊緣或者下邊緣容易出現較多的背景區域,如圖5中方框中的內容。為了提取更有效的光伏陣列區域,首先根據水平或垂直基準信息,確定光伏陣列區域的包含背景區域的是上邊緣還是下邊緣。其次,獲取光伏陣列區域的平均高度作為參考,如果是下邊緣包含地面背景區域時,則從光伏陣列的上邊緣部分開始,向下取高度為光伏陣列的平均高度的區域作為裁剪區域,并以此作為新的光伏陣列的識別結果。
經過如上操作,文中算法獲取的光伏陣列如圖7所示。

圖7 最終分割結果
與傳統圖像分割算法的比較。
本節將與傳統圖像分割算法中的邊緣檢測算法和Otsu算法所得到的分割結果進行比較。邊緣檢測算法的核心是獲得目標區域的邊緣,然后根據邊緣劃定閉合區域進行分割[13-14]。Otsu算法的原理是遍歷所有可能的閾值,然后對每個閾值結果的兩類像素計算方差,然后自動決定最優的閾值[15]。
為驗證文中算法的有效性和可靠性,選取2張尺寸為640×480像素的圖像,如圖8(a)和圖9(a)所示。分別應用文中算法、邊緣檢測算法和Otsu算法進行圖像處理,最終分割結果如下所示:

圖8 算法對比1

圖9 算法對比2
為了定量分析文中算法與傳統算法識別的有效性及可靠性,在表1中選取了準確率、漏檢率和誤檢率這三項測試指標。

表1 基于光伏陣列局部灰度特征的高精度分割算法,邊緣檢測和Otsu算法的定量比較結果
準確率是衡量光伏陣列分割有效性的一項指標,其中數值代表圖像分割算法準確識別到的光伏陣列面積與真實光伏陣列面積的比值,并且準確率越高,說明有效性越高;漏檢率也是光伏陣列分割有效性的一項指標,數值代表沒有準確識別到的光伏陣列面積與真實光伏陣列面積的比值,準確率和漏檢率之和等于100%;誤檢率是衡量算法可靠性的一項指標,數值等于算法將背景區域當成光伏陣列的面積與真實光伏陣列總面積的比值,并且漏檢率越低,說明算法的可靠性越高。
邊緣檢測算法:通過查看圖8(c)、圖9(c)及表1的數據,發現經過邊緣檢測后的光伏陣列邊緣信息保持較好,目標輪廓清晰。但是因為此時拍攝位置偏高,目標區域分辨能力偏低,此時的分割結果會將同一塊光伏陣列分割為多塊,還會保存少量背景信息,分割效果不理想。
Otsu算法:通過查看圖8(d)、圖9(d)及表1的數據,在光照均勻條件下,發現Otsu算法分割的圖像比邊緣檢測法更規則,可以獲取比較理想的分割效果。但是此方法也存在一定的缺點:如圖8(d)所示,基本上所有光伏陣列的右上邊緣信息都沒有得到良好的處理,導致漏檢率升高。
通過表1可看出,文中方法的分割效果比邊緣檢測和Otsu算法更優秀,在對光伏陣列進行準確分割的同時,還能更好地保存邊緣信息。
綜上所述,基于邊緣檢測的圖像分割算法更適合用于邊緣信息完整的圖像上,只有當圖像擁有明顯的邊緣信息、目標有清晰輪廓時才能達到最好的分割效果。基于Otsu的圖像分割算法會丟失部分邊緣信息,且在算法運行時需要遍歷所有可能的閾值,不是一個高效的過程。相比之下,文中算法運行對于光伏陣列分割完整,運行效率高,更適合用于光伏陣列的有效區域分割。
基于光伏陣列紅外圖像的光伏陣列局部灰度一致性較好的特點,提出基于的局部標準差特征的算法,輔以形態學膨脹、基于尺寸和位置信息篩選算法實現了對光伏陣列區域的精確分割。通過與邊緣檢測分割算法和Otsu分割算法的定量比較。結果表明,該算法能夠準確、有效地對光伏陣列區域進行分割,分割效果優于傳統算法。