(淮北師范大學計算機科學與技術學院 淮北 235000)
在制作太陽能電池片時,表面成膜工藝的好壞決定了太陽光的吸收效率。目前工業界主要應用等離子化學氣相沉積技術經高溫把氮化硅沉積于電池片表面,由于各電池片沉積的多少不一,使得電池片表面顏色深淺不一致,業界根據顏色深淺程度,把太陽能電池片分為六類:淺淡藍(Light-Light Blue,LLB)、中淡藍(Medium Light Blue,MLB)、深淡藍(Dark Light Blue,DLB)、淺深藍(Light Dark Blue,LDB)、中深藍(Medium Dark Blue,MDB)和深深藍(Deep Dark Blue,DDB)。一張野外用的大電池板要使用相同顏色的電池片,使光照吸收均勻,外觀顏色一致。而太陽能電池片顏色差別小,難以區分,并且人眼長時間工作,會產生視覺疲勞導致無法正確分類太陽能電池片。
針對人工分類太陽能電池片的困難,國內外學者對其花紋和顏色的分類進行了研究。文獻[1]利用bp神經網絡對不同花紋太陽能電池片進行分類以便于比較不同絨面效果對光電轉換效率的影響,但該方法需人為提取特征作為輸入。文獻[2~3]利用基于顏色直方圖統計對太陽能電池片顏色進行分類。但太陽能電池片表面顏色分布不均勻,且需要選擇標準樣品做對比實驗,因此實驗無法確定統一標準,實驗結果誤差大。以上方法都依賴人為主觀意識獲取太陽能電池片的分類特征,這對太陽能電池片的分類結果有很大的影響。
近年來隨著深度學習的發展,通過監督學習式或非監督學習式的特征學習方法已漸漸替代手工獲取特征方式。其中卷積神經網絡[4]是深度學習的代表算法之一。1990年,Lecun等開發了Lenet-5[5]卷積神經網絡。2012年,Krizhevsky等基于Lenet-5網絡設計的Alexnet[6]在大規模圖像問題上識別率遠高于傳統的識別方法。Alexnet的成功為其他CNN模式帶來靈感,如ZFnet[7]、Vggnet[8]、Googlenet[9]、Resnet[10]、Densenet[11]等。然而,訓練像Alexnet、Vggnet和Googlenet等這些深層的網絡是非常困難的,且時間復雜度高,難以滿足工業實時性要求。這使得國內外學者對初始網絡的改進進行了研究。李勇[12]等在LeNet-5卷積神經網絡中引入了跨連接的思想進行面部表情識別;林哲聰[13]等使用卷積層代替全連接層,提出一種GMP-LeNet-5卷積神經網絡進行車牌識別。白創[14]等提出了通過改進網絡結構實現人臉識別的LeNet-FC模型。上述方法都是對LeNet-5網絡進行改進并應用在不同領域。因此,本文考慮在太陽能電池片的顏色分類任務中引入LeNet-5網絡。然而LeNet-5網絡中的Sigmoid激活函數容易產生梯度彌撒、收斂速度慢的問題,導致分類準確率低。除此之外,考慮到是對太陽能電池片的顏色進行分類[15],僅以RGB顏色空間圖像作為輸入,會忽略其他顏色空間在圖像分類模型上的作用[16~20]。
為此提出了基于多顏色空間的太陽能電池片智能分類算法。首先構建太陽能電池片基本分類模型,通過改進LeNet-5的網絡結構和修改激活函數提高模型性能;然后分析不同顏色空間在太陽能電池片分類中的作用,并給出多顏色空間分類融合算法。經過實驗驗證,算法滿足工業生產流水作業的要求,達到識別率不低于90%的預期效果。
LeNet-5卷積神經網絡是一個多隱層的人工神經網絡。如圖1所示其基本結構主要包括輸入層、卷積層(C1,C3)、池化層(S2,S4)、全連接層(C5,C6)和輸出層,激活函數為Sigmoid。
LeNet-5網絡最初是應用于手寫數字識別,但用于識別太陽能電池片分類時,網絡模型收斂速度慢,泛化能力差。由于與手寫數字圖片相比,太陽能電池片圖片顏色豐富,紋理復雜。因此必須對傳統的LeNet-5網絡進行相應的改進。

圖1 LeNet-5網絡結構圖
針對傳統LeNet-5網絡在識別太陽能電池片出現的問題,做了如下改進。
1)結構改進
增加了一層卷積層和一層池化層以學習到數據的更高層特征;將全連接層中的第二層改為dropout層,dropout層可以使網絡中某些隱藏層節點在訓練期間不工作,但它們的權重將根據需要保留。dropout層可以提高訓練集的錯誤率,降低測試集的錯誤率,提高網絡的泛化能力。
另外,太陽能電池片圖片的顏色和紋理比手寫數字圖片更為復雜,原有網絡的參數用于太陽能電池提取特征效果并不好。參考文獻[14]中9種不同結構CNN的性能測試表明3×3的卷積核是最佳的。因此,本文將原5×5卷積核的尺寸改為3×3。此外,為了獲得更豐富的特性,每層卷積核的數量分別設置為32、50和64。全連接層的第一層中的節點數更改為1024。太陽能電池片分類模型網絡結構如圖2所示。

圖2 太陽能電池片分類模型網絡結構圖
2)修改激活函數
原有的Sigmoid激活函數在訓練網絡時出現梯度消失現象,導致基于LeNet-5模型的太陽能電池片顏色分類訓練中收斂速度慢。根據ReLU和sig?moid激活函數的計算公式(1)~(2)可知,ReLU本身計算量遠小于Sigmoid激活函數,并且其一階導數是1,不會造成梯度消失。

另外ReLU激活函數具有單邊抑制負輸入和正輸入線性映射的特性。因此ReLU激活函數的非線性映射具有稀疏性,可以使網絡更稀疏,解決了sig?moid激活函數引起的梯度消失問題。此外,ReLU激活函數的梯度很好計算,大大縮短了訓練時間,提高了收斂速度。
圖像分類是計算機視覺領域最基本的應用之一。大多數用于圖像分類的數據集往往由彩色圖像組成,并且以往的圖像分類算法沒有對數據集進行顏色空間轉換,而是直接使用RGB顏色空間圖像進行分類,忽略了其他顏色空間的作用。因此本小節主要討論以下幾種計算機視覺常用到的顏色空間(包括RGB、HSV、Lab、YUV和YCbCr)對太陽能電池片分類的影響。
顏色空間是定義在三維空間中,包含定義的顏色域中的所有顏色。RGB顏色空間是目前最常用的顏色空間之一,使用紅、綠、藍三原色來定量表示顏色。RGB顏色空間每個通道值的范圍是0到255。在RGB顏色空間,任意色光F都有可以用RGB三種顏色不同分量的相加混合而成。
HSV顏色空間是將RGB顏色空間中的點在倒圓錐體中的表示方式,是從人類如何看待顏色的角度開發的顏色空間。HSV顏色空間即色相(Hue)、飽和度(Saturation)和明度(Value)。H的范圍是0~360,S和V的范圍是0~1。
Lab顏色空間用數字化的方式描述人對顏色的感知,由亮度L和有關色彩的a、b三個要素組成。a表示從洋紅色至綠色的范圍,b表示從黃色到藍色的范圍。RGB顏色空間無法直接轉換成Lab顏色空間,需先轉換成XYZ顏色空間,再轉換成Lab顏色空間。
YUV顏色空間是被歐洲電視系統所采用的一種顏色編碼方法,Y代表亮度(Luma),U和V代表的是色度(Chrominance)和濃度(Chroma)。YCbCr是YUV經過縮放和偏移的顏色空間。YCbCr顏色空間由亮度Y和有關色度的Cb、Cr三個要素組成。Cb反映的是RGB輸入信號藍色部分與RGB信號亮度值之間的差異。Cr反映了RGB輸入信號紅色部分與RGB信號亮度值之間的差異。
利用第二節提出的改進LeNet-5網絡作為太陽能電池片基本分類模型,研究分析不同顏色空間對太陽能電池片分類的作用。將原始RGB顏色空間的太陽能電池片圖片轉換為HSV、Lab、YUV和YCbCr顏色空間圖片,分別將不同顏色空間圖片作為太陽能電池片基本分類模型的輸入。另外,基于本文是對太陽能電池片顏色分類的研究,因此考慮直接提取太陽能電池片B通道的值作為輸入研究對太陽能電池片分類的影響,而不是直接輸入RGB圖片。圖3展示了不同顏色空間的太陽能電池片數據集在太陽能電池片分類模型上的準確率隨迭代次數的增加的變化。

圖3 不同顏色空間的識別準確率對比
由圖3可知,可發現使用不同的顏色空間會給實驗帶來不同的結果。基于RGB、HSV、Lab、YUV、YCbCr顏色空間和B通道的太陽能電池片隨著迭代次數的增加,準確率以不同的上升速度上升,最后準確率趨于0.8~1之間。為了獲得更有用的分類效果信息,將太陽能電池片在不同顏色空間的每一類準確率統計出來,如表1所示。

表1 太陽能電池片每一類在不同顏色空間的準確率
通過對表1更仔細的觀察,可發現不同類別的太陽能電池片在不同顏色空間下有不同的準確率。具體表現在LLB和DDB兩類太陽能電池片均獲得較高的準確率,主要原因在于這兩類太陽能電池片的顏色辨別度高,易于分類。而MLB、DLB、LDB和MDB位于中間的四類太陽能電池片顏色差別小,分類準確率較低。其中MLB、DLB、LDB和MDB分別在HSV、YCbCr、Lab和RGB顏色空間取得最高準確率。
另外,通過觀察基于B通道分類太陽能電池片的準確率,發現太陽能電池片識別準確率較低。考慮太陽能電池片表面是由藍色和白色線條組成,若只基于B通道分類太陽能電池片會忽略其他相關隱性特征,因此后續實驗去除基于B通道分類太陽能電池片。
基于以上發現,可以得出一個重要結論:不同類別的太陽能電池片可以更好地用不同顏色空間表示并且各顏色空間之間沒有存在百分之百的相關性。因此可以利用RGB、HSV、Lab、YUV和YCbCr多種顏色空間相互補充,以獲得更好的分類結果。
根據上述得出的結論提出基于多顏色空間的太陽能電池片智能分類算法。算法結構如圖4所示。

圖4 基于多顏色空間的太陽能電池片分類算法圖
有圖4可知,算法首先將不同顏色空間圖片作為太陽能電池片基本分類模型的輸入,訓練得到各基分類器;然后由多顏色空間分類融合算法決定最終分類結果。多顏色空間分類融合算法具體步驟如下。
1)分別對圖像的不同顏色空間做分類,獲得各基分類器的分類概率P;
2)選擇P最大的作為各基分類標簽Pr;
3)利用多數表決原則對不同顏色空間的分類結果做統計,若存在最大概率的分類標簽可以決定最終分類結果;否則由4)計算得到分類結果。
4)最終分類結果的標簽由式(3)計算得到,定義如下:

其中,y為最終預測分類標簽,n為分類正確的個數,c為顏色空間種類個數;Pc為太陽能電池片在各顏色空間預測的標簽。w為分類投票權重,當Pc等于Pr時,w賦值為1,否則,w賦值為0。
本實驗中太陽能電池片的數據采集平臺是由環形無影光源和固定在頂端的工業相機組成,工業相機型號為Basler acA2500。如圖5所示。通過拍攝6類不同顏色的太陽能電池片,并隨機翻轉增強太陽能電池片數據集最終得到2934張圖片,圖片尺寸大小為224×224。將每類太陽能電池片圖片按8∶2的比例分成訓練集和測試集。

圖5 太陽能電池片的數據采集平臺
本次實驗硬件平臺顯卡為RTX2080Ti,軟件平臺為python,應用TensorFlow框架構建改進的LeNet-5分類模型,結合不同的顏色空間實現太陽能電池片的智能分類。實驗首先比較分析不同模型在太陽能電池片分類中的性能,驗證了改進的LeNet-5網絡的有效性;然后對不同的顏色空間組合對太陽能電池片分類效果做分析,發現RGB、Lab和HSV三種顏色空間的組合模型分類效果最佳,準確率高達94.56%。
4.2.1 不同模型在太陽能電池片分類性能比較

圖6 太陽能電池片在不同網絡的識別準確率
為了驗證改進的LeNet-5網絡性能,本文太陽能電池片基礎分類模型與傳統的LeNet-5網絡、bp神經網絡和支持向量機(Support Vector Machine,SVM)進行對比。設置迭代次數為3000次,批量大小為64,學習率為0.0001。太陽能電池片隨迭代次數在不同網絡上的識別準確率結果如圖6所示。由圖6可知,改進的LeNet-5網絡在識別準確率上均高于其他網絡。傳統的LeNet-5網絡因sig?moid激活函數收斂速度慢,學習能力差,實現太陽能電池片分類的準確率維持在45%左右,分類效果差。另外,由于太陽能電池片表面顏色差別小且不均勻,提取的顏色特征容易對Bp神經網絡和SVM造成分類影響,因此對太陽能電池片識別準確均低于改進的LeNet-5網絡。
4.2.2 不同顏色空間對太陽能電池片分類效果分析

表2 太陽能電池片在結合不同顏色空間的準確率
基于太陽能電池片在不同顏色空間的識別準確率不同,因此結合不同顏色空間相去實現太陽能電池片的分類,表2給出結合不同顏色空間的分類結果。
由表2可知,太陽能電池片在結合YUV和YCbCr顏色空間時,準確率都會有所下降。這是由于太陽能電池片最主要的顯性特征是顏色,從YUV和YCbCr顏色空間的物理意義和開發角度可知這兩個顏色空間將亮度和色度分離,更加注重亮度,減少了色度分量。而RGB、HSV和Lab顏色空間是基于顏色感知的顏色模型,用飽和度和色調描述色彩,更有利于基于顏色分類的應用。
另外,結合表1和表2可發現當識別太陽能電池片準確率較高的顏色空間結合識別準確率較低的顏色空間時,準確率會有所下降;識別太陽能電池片準確率較高的顏色空間結合識別準確率較高的顏色空間時,準確率都會有所上升。因此結合多個識別準確率高的顏色空間會得到較好的識別準確率。所以針對本文太陽能電池片分類問題,最終選擇結合RGB、Lab和HSV三種顏色空間實現太陽能電池片的智能分類,分類準確率為94.56%。
本文在對太陽能電池片分類識別問題的研究上引入卷積神經網絡方法,針對傳統LeNet-5卷積神經網絡在太陽能電池片分類識別上的不足進行改進,使太陽能電池片識別準確率均高于傳統的LeNet-5網絡、bp神經網絡和SVM。并在改進的LeNet-5網絡基礎上,研究不同顏色空間對于太陽能電池片分類的影響。實驗結果表明太陽能電池片在結合RGB、Lab和HSV三種顏色空間時獲得最高準確,而在YUV和YCbCr顏色空間準確率較低,不適合用于太陽能電池片分類。與傳統方法相比,本文算法更加高效,具有較好的泛化性,分類準確率滿足工業應用需求。