(1.山西大學(xué) 軟件學(xué)院,太原 030001; 2.河北工程大學(xué) 信息與電氣工程學(xué)院,河北 邯鄲 056038;3.秦皇島可視自動(dòng)化設(shè)備有限公司,河北 秦皇島 066007)
隨著國(guó)家對(duì)新能源開發(fā)的重視與投入,光伏發(fā)電已經(jīng)成為近年來發(fā)展最快的新能源技術(shù),目前,我國(guó)已經(jīng)成為了世界上最大的光伏生產(chǎn)國(guó),提供了全球90%以上的硅片供給。其中太陽能電池片是光伏發(fā)電設(shè)備的基礎(chǔ)配件,其生產(chǎn)速度和每片的質(zhì)量是決定光伏發(fā)電設(shè)備質(zhì)量最重要的因素[1]。而隨著大規(guī)模機(jī)器化生產(chǎn),僅靠提高生產(chǎn)工藝與技術(shù)是無法實(shí)現(xiàn)電池片100%的良品率的,這就需要對(duì)生產(chǎn)的電池片進(jìn)行分檢。傳統(tǒng)的分檢操作由人工進(jìn)行,因此效率無法保證,分檢的標(biāo)準(zhǔn)也因人而異。因此,數(shù)字圖像處理技術(shù)被應(yīng)用到流水化生產(chǎn)過程中。現(xiàn)有設(shè)備都是通過相機(jī)獲取電池片的圖像,并通過對(duì)圖像數(shù)據(jù)進(jìn)行處理與分析,判斷當(dāng)前電池片存在的問題并進(jìn)行分類。
目前已有的分選機(jī)主要對(duì)電池片進(jìn)行的檢測(cè)種類有顏色分選、表面贓物、劃痕、斷柵、崩邊、缺角、脫晶等。其中顏色、臟污等決定了電池片的光電轉(zhuǎn)換性能,而崩邊、缺角等決定了電池片的生產(chǎn)質(zhì)量。因此,在工業(yè)生產(chǎn)分檢過程中,優(yōu)先保證產(chǎn)品質(zhì)量,淘汰存在缺陷的電池片,進(jìn)而根據(jù)顏色等其他標(biāo)準(zhǔn)將電池片按性能等級(jí)來分類。這就要求在自動(dòng)化檢測(cè)過程中,首先檢測(cè)電池片的邊緣缺陷,這一檢測(cè)不僅要求判斷的準(zhǔn)確率高,還要求具有極快的處理速度[2]。
邊緣缺陷檢測(cè)在數(shù)字圖像處理中一直有著廣泛的研究并在工藝零件探傷,生產(chǎn)質(zhì)量監(jiān)控中有著重要應(yīng)用。近來,錢基德等人[3]針對(duì)高分辨率的大型液晶屏采集圖像進(jìn)行處理,提出改進(jìn)的梯度優(yōu)化方法來快速、準(zhǔn)確的檢測(cè)液晶屏邊緣不亮的產(chǎn)品。而蔣莉等人[4]也提出了基于形態(tài)學(xué)的方法來檢測(cè)液晶屏生產(chǎn)過程中的邊緣不亮的不良品。另外,劉建春等人[5]通過合理使用現(xiàn)有的膨脹腐蝕等數(shù)字圖像處理方法對(duì)高光垂直照射下的零件邊緣的細(xì)小缺陷進(jìn)行了識(shí)別與檢測(cè)。如何對(duì)已有理論方法進(jìn)行優(yōu)化、改進(jìn),進(jìn)而將其應(yīng)用到工業(yè)生產(chǎn)中,實(shí)現(xiàn)快速、準(zhǔn)確地完成識(shí)別任務(wù)已經(jīng)成為了目前的研究熱點(diǎn)。
針對(duì)太陽能電池片的邊緣缺陷檢測(cè)方法也一直在研究,但并沒有可以直接應(yīng)用到分選機(jī)上的合適的算法。姚明海等人[6]提出了基于RPCA(robust principal component analysis)的太陽能電池片表面缺陷檢測(cè)方法,該方法實(shí)現(xiàn)并優(yōu)化了已有的逼近梯度算法和非精確增廣拉格朗日乘子算法。但是,這兩種算法在進(jìn)行電池片檢測(cè)時(shí),需要使用16幅像素為830*586電池片圖像組合成為一張圖像進(jìn)行處理,這種預(yù)處理的過程與實(shí)際工業(yè)生產(chǎn)過程不符,難以應(yīng)用。同時(shí),處理過程中大量的迭代計(jì)算也使得每幅圖檢測(cè)的最短耗時(shí)達(dá)到2.21 s。Fu[7]則提出以電池片顏色分布梯度為標(biāo)準(zhǔn)進(jìn)行缺陷檢測(cè),然而這種檢測(cè)方法對(duì)背景灰度分布的依賴性高,且邊緣位置本身具有高梯度值,所以無法準(zhǔn)確處理邊緣位置的缺陷。
隨著人工智能技術(shù)的發(fā)展,研究人員也試圖通過深度學(xué)習(xí)與神經(jīng)網(wǎng)絡(luò)等技術(shù)實(shí)現(xiàn)電池片邊緣的缺陷檢測(cè)。王憲保等人[8]提出了基于深度學(xué)習(xí)的缺陷檢測(cè)方法,該方法將像素為64*64的圖像作為訓(xùn)練對(duì)象,平均每張圖片檢測(cè)消耗0.151 s。但是該方法在針對(duì)工業(yè)中使用的千萬像素級(jí)別的圖像建立訓(xùn)練集時(shí)困難極大,同時(shí)對(duì)于像素較大的圖像,找到缺陷位置并訓(xùn)練也難以實(shí)現(xiàn)。伍李春等人[9]針對(duì)上述難題提出了利用模板匹配及顏色直方圖匹配的方法,優(yōu)先通過匹配識(shí)別找到疑似缺陷的位置,之后再進(jìn)行訓(xùn)練。該方法僅將可以檢測(cè)的圖片尺寸增大到了656*492像素。劉磊等人[10]則提出了在經(jīng)過新的預(yù)處理方法之后進(jìn)行學(xué)習(xí)分類的方法,該方法已經(jīng)可以訓(xùn)練千萬像素的圖像,但由于預(yù)處理方法簡(jiǎn)單,識(shí)別準(zhǔn)確度不高。
無論是傳統(tǒng)的數(shù)字圖像處理方法還是加入機(jī)器學(xué)習(xí)的新方法,都需要一種穩(wěn)定、快速且準(zhǔn)確的判斷邊緣缺陷的方法。而現(xiàn)有的邊緣檢測(cè)算法通常默認(rèn)圖像中電池片邊緣是一條直線。這并不符合實(shí)際生產(chǎn)中采集得到的圖像,因此使得已有算法在應(yīng)用中往往出現(xiàn)大量誤判。同時(shí),隨著分選機(jī)檢測(cè)項(xiàng)目的增多和檢測(cè)精度要求的提升,如何降低單項(xiàng)檢測(cè)的處理時(shí)間,提高單項(xiàng)檢測(cè)的處理結(jié)果的復(fù)用成為了迫切需要解決的問題。因此,針對(duì)電池片本身的形狀特征,提出一種基于凸包的快速邊緣缺陷檢測(cè)算法。該算法結(jié)構(gòu)流程如圖1所示,其通過對(duì)電池片邊緣點(diǎn)集進(jìn)行凸包運(yùn)算,進(jìn)而獲得缺陷點(diǎn)集中每個(gè)點(diǎn)的缺陷深度。同時(shí),還能計(jì)算出電池片幾何中心點(diǎn)以及電池片的偏轉(zhuǎn)角度,便于傳輸歸正和其他缺陷檢測(cè)過程復(fù)用。實(shí)驗(yàn)證明,該算法較已有算法在速率上大幅提升,且在實(shí)際生產(chǎn)中的檢測(cè)過程中表現(xiàn)良好,檢測(cè)效果達(dá)到了分選機(jī)的工業(yè)生產(chǎn)標(biāo)準(zhǔn)。
圖1 凸包檢查邊緣缺陷結(jié)構(gòu)功能圖
太陽能電池片的缺陷檢測(cè)多用于如分選系統(tǒng),串檢系統(tǒng)等流水線類型的檢測(cè)機(jī)器上,而電池片的拍攝方法都是由檢測(cè)系統(tǒng)的視覺工位完成。在分選機(jī)的視覺工位中,一般通過置于頂部的相機(jī)向下方拍攝,電池片在下方通過傳輸帶運(yùn)送,整個(gè)拍攝環(huán)境在球形或立方形的暗室中進(jìn)行。因此獲取的圖像中一般存在電池片主體,傳輸皮帶(部分分選機(jī)結(jié)構(gòu)不使用皮帶傳輸)以及傳輸過程中產(chǎn)生的碎片等雜質(zhì)。這里以實(shí)際生產(chǎn)使用中的一臺(tái)分選機(jī)獲取的圖像(如圖2)為研究對(duì)象。
因電池片邊緣缺陷極小,而工業(yè)生產(chǎn)中對(duì)一張160 mm邊長(zhǎng)的電池片的檢測(cè)精度至少要達(dá)到0.1 mm。假設(shè)像素距離與物理距離的比值K值為0.1 mm/pixel,則至少需要電池片占滿一張1 600×1 600像素的圖像才能拍攝出電池片邊緣達(dá)到0.1 mm以上的缺損信息。該算法所使用圖像為千萬級(jí)像素相機(jī)所拍攝的三通道24位彩色圖像,其分辨率為3 440×3 324像素,電池片占據(jù)圖像2/3以上部分,因而可以保證K值小于0.1 mm/pixel。用A4紙,頁邊距上下左右已經(jīng)設(shè)置好,請(qǐng)不要改動(dòng)。
圖2 單晶與多晶電池片輕微破片正面圖像
圖2中分別為具有邊緣缺損的多晶電池片和單晶電池片的圖像,其中圖2(a)為多晶電池片,其缺陷在圖中右下角,而圖2(b)為單晶電池片,其缺損在左下角。不難發(fā)現(xiàn),圖片中的缺陷極小,難以觀察,同時(shí)由于圖像像素規(guī)模大,傳統(tǒng)的邊緣缺陷檢測(cè)方法需要大量時(shí)間尋找缺陷位置并計(jì)算深度。圖2中的圖像是從具有立方體暗室的分選機(jī)上拍攝得到,圖像中的傳輸帶影響了在傳輸帶上方電池片邊緣的檢測(cè)過程(即便使用白色或透明傳送帶,也會(huì)因長(zhǎng)時(shí)間使用而變臟污影響檢測(cè))。另外,為了使得電池片邊緣與背景易于區(qū)分,電池片下方存在白色背光源打亮背景,因而導(dǎo)致部分邊緣信息丟失進(jìn)而影響邊緣缺陷檢測(cè)。此外,由于傳輸結(jié)構(gòu)的穩(wěn)定性不足,每次拍照時(shí)電池片位置與角度存在偏差,因此每張圖像中的電池片會(huì)因透視效應(yīng)和鏡頭畸變而導(dǎo)致尺寸僅存在差異,且電池片邊緣非直線,進(jìn)而影響邊緣缺陷的檢測(cè)過程。
為此,針對(duì)圖像中缺陷深度過小,背景臟污干擾以及電池片形狀畸變等問題,提出一種基于凸包的邊緣缺陷檢測(cè)算法。該算法在成像結(jié)果中電池片形狀存在畸變的情況下,依然可以準(zhǔn)確穩(wěn)定地獲得缺陷位置與深度。該算法包含三步:首先,利用傳統(tǒng)的閾值分割將前景與背景分離;其次,獲取前景圖像的邊緣輪廓點(diǎn)集;最后,計(jì)算輪廓點(diǎn)的凸包并得到凹陷位置和凹陷深度。
從圖2中所示的電池片缺陷圖像可知,圖像中的電池片本身及傳輸帶與白色背景易于區(qū)分,電池片邊緣線清晰可識(shí)別。同時(shí),電池片上紋理信息(即電池片表面柵線)并未繪制到電池片邊緣,可見電池片邊緣與背景交線的兩側(cè)顏色單一,易于提取。因此,該算法首先對(duì)圖片進(jìn)行閾值分割得到二值化圖像,進(jìn)而突出電池片邊緣,分離背景與前景信息。
實(shí)際生產(chǎn)中對(duì)流水線上的電池片進(jìn)行取像時(shí),由于相機(jī)安裝位置與角度的固定性,所拍攝的圖像中電池片的尺寸、光照基本相同,特別是對(duì)于同批次的電池片而言。因此,該算法統(tǒng)計(jì)多張同批次電池片圖像中前景信息所占的像素比例,得到一組像素比例的樣本值,計(jì)算這組樣本值的均值與方差,并根據(jù)方差不斷排除異常值得到穩(wěn)定的平均值。以這一均值作為傳統(tǒng)的p-分位數(shù)法[11]的先驗(yàn)參數(shù),對(duì)新拍攝得到的每張圖像進(jìn)行閾值分割,即可快速準(zhǔn)確地將前景與背景分離,得到保留邊緣信息的二值化圖像,該邊緣信息包括電池片邊緣與電池片下方的傳輸帶邊緣,如圖3(a)所示。
圖3 電池片二值化及輪廓提取效果圖
自動(dòng)閾值分割算法首先根據(jù)已有的大量樣本文件統(tǒng)計(jì)出一組前景與背景的像素比例集Ti作為輸入信息,通過不斷加入新樣本后刪除這組樣本Ti中的異常值點(diǎn)(即樣本值中與均值距離最遠(yuǎn)的值)不斷更新樣本標(biāo)準(zhǔn)方差,直到樣本標(biāo)準(zhǔn)方差值小于約定值δ,如算法1中步驟d)~k)所示,其循環(huán)過程中集合T的總?cè)萘渴冀K小于初始樣本大小。此時(shí)得到的均值mk即可作為對(duì)圖像進(jìn)行閾值分割的參數(shù)。在流水線檢測(cè)過程中,該值會(huì)被不斷更新修正,以適應(yīng)傳輸過程中電池片之間的差異性。一般不要超過兩行。
算法1:自動(dòng)閾值更新算法
輸入:先驗(yàn)參數(shù)mk所對(duì)應(yīng)的樣本集合T。
輸出:更新后的樣本集合T與其均值mk。
a) newk = Thread(img) with mk; //使用mk對(duì)圖像進(jìn)行閾值分割
b) T.push(newk); //將新的比例值加入集合K
c) do{
d) mk = mean(T) //計(jì)算新集合的均值
e) md = std(T) //計(jì)算新集合的標(biāo)準(zhǔn)差
f) maxk = 0
g) for i from 0 to sizeof(T) step 1
h) if(maxk < |T[i]-mk|)
i) maxk = |T[i]-mk|
j) plc = i
k) T.pop(T[plc])
l) while(md>δ)
在分選機(jī)上進(jìn)行算法驗(yàn)證時(shí),為了盡可能地保持檢測(cè)的穩(wěn)定性與準(zhǔn)確率,在抽取相同批次的電池片樣片進(jìn)行預(yù)先的閾值更新算法得到分割閾值(算法1中的mk)后,使用算法1邊檢測(cè)邊更新閾值。而在實(shí)際生產(chǎn)過程中,為了加快檢測(cè)速度,提高檢測(cè)效率,通常對(duì)同一批次的電池片使用預(yù)先計(jì)算好的閾值作為固定閾值,或采用隨機(jī)選片的方式進(jìn)行算法1的閾值更新過程來降低檢測(cè)的運(yùn)算時(shí)間。根據(jù)獲得的自動(dòng)閾值將圖2(a)所示電池片進(jìn)行二值化分割后的圖像如圖3(a)所示。
從圖3(a)中可以看出,閾值分割后圖中可能存在多個(gè)輪廓信息,包括表面紋理產(chǎn)生的不完整孔洞,以及傳輸過程中掉落的碎片引起的黑色斑點(diǎn)等。而利用文獻(xiàn)[12]中提出的輪廓跟蹤提取方法,可以得到圖像中包括碎片等雜質(zhì)的輪廓以及電池片上電極紋理等在內(nèi)的所有輪廓信息。顯然,在所有輪廓中電池片與傳輸帶的輪廓是其中面積最大的一個(gè)(如圖3(b)中方框內(nèi)點(diǎn)狀輪廓線所示)。而從圖3(b)中的局部放大圖中可以看到文獻(xiàn)[12]中的方法所得到的輪廓是一組有序的離散點(diǎn)集M。圖中的該點(diǎn)集M中還包括了電池片下方傳輸帶的輪廓信息。此時(shí),傳輸帶部分的輪廓信息干擾了電池片邊緣的檢測(cè),使得傳輸帶上的電池片輪廓部分無法直接進(jìn)行提取。因此,提出傳輸帶部分與非傳輸帶部分兩種不同的檢測(cè)方法,該方法需要將邊緣輪廓點(diǎn)集M分割成電池片上部分和輪廓上部分。對(duì)電池片上部分直接使用基于凸包的邊緣檢測(cè)方法進(jìn)行缺陷檢測(cè),而傳輸帶上部分則通過顏色距離的方法進(jìn)行檢測(cè)(見2.2節(jié))。
算法2:邊緣點(diǎn)濾波算法
輸入:輪廓上的有序點(diǎn)集M。
輸出:電池片上的非光滑點(diǎn)集Q,與傳輸帶交點(diǎn)集合G。
a) start = M[0]; pass = M[1];
b) for i from 2 to sizeof(M) step 1
c) dis = distance(start,M[i]);
d) ang = arcos(start,pass,M[i]);
e) if dis < least || (π-ang) near 0 /*不相鄰兩點(diǎn)間距離小于給定值或三點(diǎn)幾乎構(gòu)成直線*/
f) pass = M[i]; continue;
g) if thread < ang < π //三點(diǎn)構(gòu)成轉(zhuǎn)折線
h) Q = start //點(diǎn)start放入集合Q
i) if 0 < ang < thread //角度為直角,傳輸帶轉(zhuǎn)折處
j) G = pass //點(diǎn)pass放入集合G
k) start = pass; pass = M[i];
l) clear(G) //根據(jù)位置信息過濾錯(cuò)誤交界點(diǎn)
m) for i from 0 to sizeof(Q) step 1
n) erase Q[i] between pair(G) //刪除每對(duì)交界點(diǎn)間的點(diǎn)
另外,從圖3(b)的局部放大圖上可以看出,由于拍攝得到的電池片邊緣存在相機(jī)拍攝引起的鋸齒形狀,導(dǎo)致了光滑連續(xù)的邊緣上產(chǎn)生了大量相鄰的輪廓點(diǎn)信息。為了保證檢測(cè)精度的同時(shí)最大程度地加快后續(xù)處理的運(yùn)算速度,就需要減少邊緣輪廓點(diǎn)集M上的非關(guān)鍵點(diǎn)的信息(特別是無破損邊緣上的輪廓點(diǎn)以及傳輸帶上的輪廓點(diǎn))。為此提出了一種邊緣點(diǎn)濾波算法(如算法2所示),該算法通過一次遍歷電池片輪廓的有序點(diǎn)集M,利用三角形余弦定理進(jìn)行累加計(jì)算(算法2中步驟d),刪除輪廓點(diǎn)集M中的大量平滑連續(xù)點(diǎn)(算法2中步驟m,n),保留輪廓點(diǎn)中的轉(zhuǎn)折點(diǎn)。同時(shí),結(jié)合傳輸帶與電池片近似直角的固有特征,得到傳輸帶與電池片之間交點(diǎn)的集合G(如圖4(a)中連接處點(diǎn)所示),進(jìn)而區(qū)分電池片的輪廓點(diǎn)集與傳輸帶上的點(diǎn)集部分。
圖4 電池片傳輸帶交界點(diǎn)集與電池片邊緣點(diǎn)集
經(jīng)過算法2的濾波作用后,邊緣點(diǎn)集被分為傳輸帶上點(diǎn)集(圖4(b)中傳輸帶上點(diǎn))與電池片邊緣的點(diǎn)集Q(圖4(b)中電池片角落上點(diǎn))。由于電池片本身作為凸多邊形的特性(即便受鏡頭畸變等因素影響,其所成圖像中的電池片輪廓依然能夠保持著凸的性質(zhì))。因此,只要對(duì)邊緣點(diǎn)集Q進(jìn)行凸包運(yùn)算,得到的凸包信息就是電池片的理想完整邊緣。進(jìn)而根據(jù)點(diǎn)集Q中在凸包內(nèi)、外側(cè)點(diǎn)到凸包邊緣的像素距離即可得到破損位置以及破損深度,其檢測(cè)精度可以達(dá)到像素級(jí)別。同時(shí),由于算法2的濾波作用,因此點(diǎn)集Q中需要進(jìn)行的運(yùn)算大幅降低,提高了檢測(cè)效率。
電池片邊緣點(diǎn)集的凸包的計(jì)算使用Jarvis步進(jìn)法,由于邊緣點(diǎn)集Q為有序點(diǎn)集,因此可以得到一個(gè)依然有序的凸包集合A(如圖5中邊線上的淺灰色點(diǎn)所示)和一個(gè)非凸包上點(diǎn)的集合B(如圖5中深灰色點(diǎn)所示)。依次遍歷集合B,得到集合A中距離集合B中元素m最近的兩個(gè)點(diǎn){(m1,m2)|m1,m2∈A}的坐標(biāo),最終根據(jù)這3個(gè)點(diǎn)的像素坐標(biāo),計(jì)算出缺陷集合B中的每個(gè)點(diǎn)m處的缺陷深度dm。由于得到的缺陷深度的單位為像素,因此根據(jù)2.1節(jié)中提出的比例關(guān)系K值,可知實(shí)際缺陷深度近似等于dm/10 mm。最后根據(jù)生產(chǎn)要求,設(shè)定篩選標(biāo)準(zhǔn)值ε,挑選出dm/10>ε的不合格品,標(biāo)記顯示不合格產(chǎn)品的缺陷位置,并給出各個(gè)缺陷的破損深度值。
圖5 電池片凸包上點(diǎn)集與凸包外點(diǎn)集
電池片的傳輸姿態(tài)對(duì)于檢測(cè)正確率以及傳輸下料等有著重要意義,而在1.3節(jié)計(jì)算缺陷深度時(shí)得到的點(diǎn)集A可以很好的描述電池片的姿態(tài)信息。通過算法2得到的電池片凸包點(diǎn)集中的點(diǎn)均在電池片邊緣上,且凸包構(gòu)成的輪廓緊緊包裹在電池片周圍。因此,凸包的重心和偏轉(zhuǎn)角度就是電池片的重心與偏轉(zhuǎn)角度。由于電池片的物理形狀為中心對(duì)稱的多變形,所以在沒有較大缺損的情況下,電池片的中心即為電池片的重心。
凸包的重心可以通過將凸多邊形分解為多個(gè)依次相連的三角形,之后對(duì)每個(gè)三角形的重心進(jìn)行積分獲得凸包的重心。若設(shè)凸包內(nèi)任意一個(gè)三角形的重心坐標(biāo)為(x,y),該三角形的面積為ρ,那么二維平面內(nèi)凸包的重心即為:
(1)
其中,三角形的構(gòu)造可以在該獲取凸包點(diǎn)集的同時(shí)獲得。具體方法是在進(jìn)行Jarvis步進(jìn)法時(shí),每找到一個(gè)新的屬于凸包的點(diǎn),就用該點(diǎn)與凸包的起點(diǎn)與上一個(gè)找到的凸包上的點(diǎn)構(gòu)造一個(gè)三角形并計(jì)算其重心坐標(biāo)與面積。當(dāng)凸包查找完成時(shí),構(gòu)造的三角形剛好組成整個(gè)凸包。最終,在計(jì)算電池片邊緣凸包的同時(shí),也得到了凸包的重心,即電池片中心的像素坐標(biāo),減少了運(yùn)算時(shí)間。計(jì)算過程如圖6所示。
圖6 Jarvis步進(jìn)法求凸包及三角形分割
由算法2得到的凸包集合A中的點(diǎn)是有序的,結(jié)合圖6所示,通過一次遍歷不斷計(jì)算集合內(nèi)連續(xù)三點(diǎn)所構(gòu)成的三角形,不但可以計(jì)算出電池片的重心,還可以將凸包上的點(diǎn)集劃分成多條邊線上的點(diǎn)集。任取其中一條邊上的點(diǎn)集進(jìn)行直線擬合,就可以得到這條邊的偏轉(zhuǎn)角度。而電池片自身物理形狀為一個(gè)規(guī)則的多邊形,因此根據(jù)邊線的偏轉(zhuǎn)角度的均值即可以算出電池片的偏轉(zhuǎn)角度。
在生產(chǎn)應(yīng)用中,為了加快運(yùn)算速度,可以直接使用算法2得到的傳輸帶與電池片的交點(diǎn)集合G來計(jì)算電池片在圖像中左右兩條邊的偏轉(zhuǎn)角度。由于存在相機(jī)安裝位置以及圖像畸變等因素的影響,一般選取兩條邊偏轉(zhuǎn)角度的均值作為電池片的偏轉(zhuǎn)角度。
當(dāng)電池片的缺損位置剛好在傳輸帶上方時(shí),由于傳輸帶的遮擋,無法直接通過輪廓信息得到該處的缺損信息,因此選擇通過電池片與傳輸帶之間存在顏色差異來識(shí)別邊緣缺陷。通過算法2得到的交點(diǎn)集G中的4組交點(diǎn),獲取對(duì)應(yīng)的四條傳輸帶與電池片的交線段,進(jìn)而判斷垂直于該線段的左右像素點(diǎn)(片外側(cè)點(diǎn)a,片內(nèi)側(cè)點(diǎn)b)間的顏色距離dis,用以判別交線段兩側(cè)是否存在缺陷。其中:
(2)
由于HSV色彩空間的錐形結(jié)構(gòu)更適合相近顏色的距離計(jì)算,因此距離公式選用HSV分量進(jìn)行計(jì)算。在實(shí)際生產(chǎn)中,長(zhǎng)期使用的傳輸帶因存在臟污而使拍攝到的傳送帶上存在黑色或其他顏色的使用痕跡。為此,設(shè)計(jì)了雙距離檢測(cè)方法,即既要計(jì)算交線段兩端像素點(diǎn)的顏色距離,還要計(jì)算交線段兩端像素點(diǎn)與黑色和白色的距離均值。若兩像素點(diǎn)間的顏色距離很小或與黑色與白色的距離均值的差值很小,則稱這兩個(gè)像素點(diǎn)顏色相同,即表示兩個(gè)像素點(diǎn)同在傳輸帶上或同在電池片上。根據(jù)這一原則,依次判斷交線段兩端的像素點(diǎn),若兩點(diǎn)顏色相同,則交線短兩側(cè)可能存在缺陷,需要繼續(xù)計(jì)算沿垂直于交線方向上的電池片一側(cè)的相鄰像素點(diǎn),直到找到顏色距離大于設(shè)定值的像素點(diǎn),該像素點(diǎn)到交線的像素距離就是電池片的破損深度。圖7中所示為圖像中所有像素點(diǎn)到電池片邊緣上藍(lán)色像素點(diǎn)的距離梯度圖和圖像中每個(gè)像素點(diǎn)到黑白像素的顏色距離均值梯度圖。顯然,兩幅圖中都可以清晰區(qū)分電池片上被傳輸帶遮擋的邊緣信息。
圖7 電池片與傳輸帶間顏色距離
為了驗(yàn)證算法在運(yùn)算效率上的優(yōu)勢(shì),選取文獻(xiàn)中多種缺陷檢測(cè)方法進(jìn)行對(duì)比實(shí)驗(yàn)。并通過本文算法在實(shí)際生產(chǎn)中檢測(cè)結(jié)果進(jìn)行統(tǒng)計(jì),驗(yàn)證算法的可行性與穩(wěn)定性。實(shí)驗(yàn)環(huán)境選擇在電池片分選機(jī)上搭載Win7系統(tǒng)的工控機(jī)中進(jìn)行。實(shí)驗(yàn)圖片通過電池片分選機(jī)上的1 500萬像素的工業(yè)相機(jī)采集的高清圖像,每張圖片都是3 456*3 162的像素大小。程序使用Opencv函數(shù)方法,對(duì)具有不同邊緣缺陷的電池片進(jìn)行檢測(cè)后的效果如圖8所示。
由圖8可知,本文算法可以檢測(cè)不同類型電池片的邊緣缺損情況(圖中圓圈標(biāo)記缺損位置)并能給出缺損深度和電池片的偏轉(zhuǎn)角度(圖中豎線表示當(dāng)前方向,圖中文字顯示缺陷深度以及電池片重心和偏轉(zhuǎn)角度);當(dāng)電池片上的崩邊與漏漿缺陷達(dá)到邊緣位置時(shí),也可以通過該算法進(jìn)行檢測(cè)。此外,本文算法通過電池片正面或背面照片,甚至對(duì)破片、碎片均可正常檢測(cè),具有良好的魯棒性。為了更好的證明本文算法的優(yōu)點(diǎn),選取參考文獻(xiàn)中提到的幾種主流算法及每種算法的描述與測(cè)試數(shù)據(jù)繪制對(duì)比結(jié)果如表1所示。
由表1可知,文獻(xiàn)[6]中基于RPCA的方法檢測(cè)圖像尺寸較小,但時(shí)間消耗巨大,盡管可以檢測(cè)出多項(xiàng)電池片表面的缺陷,但難以直接用于有產(chǎn)量要求的分選機(jī)中;而如文獻(xiàn)[8]和[9]中基于深度學(xué)習(xí)的檢測(cè)方法對(duì)訓(xùn)練樣本的需求量較大,訓(xùn)練過程對(duì)運(yùn)算設(shè)備的要求較高,因此大多使用小尺寸圖片進(jìn)行模型訓(xùn)練,遠(yuǎn)小于實(shí)際尺寸。而且基于深度學(xué)習(xí)的方法僅能對(duì)電池片是否存在缺陷進(jìn)行分類,無法給出具體的缺陷尺寸等數(shù)據(jù);文獻(xiàn)[13]中僅
對(duì)電池片姿態(tài)的計(jì)算開銷就遠(yuǎn)大于本文算法。本文算法的時(shí)間復(fù)雜度為O(n)級(jí)別,對(duì)較大尺寸圖像依然具有很快的處理速度。因此,本文算法更適合用于進(jìn)行實(shí)時(shí)檢測(cè)的在線分選機(jī)設(shè)備,該算法具有運(yùn)算速度快,檢測(cè)精度高,能獲得缺陷深度信息和電池片的位置與偏轉(zhuǎn)角度信息的優(yōu)點(diǎn)。
為了進(jìn)一步驗(yàn)證本文算法在實(shí)際生產(chǎn)過程中的優(yōu)越性能,選取某車間的一臺(tái)分選機(jī)應(yīng)用本文算法,由現(xiàn)場(chǎng)人工統(tǒng)計(jì)其在不同時(shí)段對(duì)不同種類電池片進(jìn)行邊緣缺陷檢測(cè)的結(jié)果,如表2所示。其中,正檢率 = 正檢數(shù) / 破損片總數(shù)(正檢數(shù)+漏檢數(shù));誤檢率 = 誤檢數(shù) / 檢測(cè)總數(shù)。
表2 全天不同時(shí)段檢測(cè)結(jié)果統(tǒng)計(jì)
由表2可知,不管是對(duì)于顏色和形狀較為穩(wěn)定的單晶硅太陽能電池片,還是良品率較低的多晶硅電池片,總的正確檢出率可以保持在97%以上,而誤檢率控制在了0.1%以下,滿足電池片分選的工業(yè)生產(chǎn)要求。本文還選取廠區(qū)內(nèi)兩臺(tái)不同廠家的分選機(jī)與搭載本文算法的分選機(jī)進(jìn)行崩邊與缺角這一單一項(xiàng)目的檢測(cè)。由工人選取1 000張多晶電池片,其中包含20張做了標(biāo)記的殘缺電池片,分別使用不同的分選機(jī)對(duì)這1 000張電池片進(jìn)行檢測(cè),檢測(cè)結(jié)果如圖9所示。
圖9 3種不同分選機(jī)檢測(cè)結(jié)果統(tǒng)計(jì)圖
圖9中所示3種設(shè)備都達(dá)到了標(biāo)稱的檢測(cè)速度,該檢測(cè)速度還與機(jī)械結(jié)構(gòu)相關(guān)。通過對(duì)比可知本文算法檢測(cè)出全部標(biāo)記缺陷電池片且僅錯(cuò)檢了一張正常片,較另外兩臺(tái)設(shè)備具有更好的效果和正確率。
綜上,本文的算法在保證了電池片缺陷檢測(cè)準(zhǔn)確性的前提下,提升了檢測(cè)的速度,同時(shí)算法的魯棒性使其可以應(yīng)用在不同的成像環(huán)境中,降低了設(shè)備的依賴性。與目前主流的算法相比,本文算法更適應(yīng)于工業(yè)生產(chǎn)設(shè)備對(duì)實(shí)時(shí)性和準(zhǔn)確性的要求。目前,算法在電池片工藝點(diǎn)干擾下仍會(huì)出現(xiàn)誤判,將繼續(xù)對(duì)此進(jìn)行研究。