趙 謙,李蓉蓉,錢 渠 ,馬 莉,尹怡晨
(1.西安科技大學(xué)通信與信息工程學(xué)院,陜西西安 710054;2.南通智能感知研究院,江蘇南通 226000;3.西安地山視聚科技有限公司,陜西西安 712044)
在大力發(fā)展新能源產(chǎn)業(yè)的趨勢下,太陽能作為分布最廣泛的可再生能源受到了廣泛關(guān)注[1]。但是目前,太陽能的轉(zhuǎn)換效率較低,為了提高太陽能電池轉(zhuǎn)換效率,促使光伏產(chǎn)業(yè)的良性發(fā)展,各行各業(yè)都在不斷研究新方法[2]。例如在電池內(nèi)部器件的結(jié)構(gòu)設(shè)計(jì)進(jìn)行改進(jìn)[3];還有在太陽能板流入市場前的各類檢測技術(shù),比如基于圖像處理的太陽能電池板檢測技術(shù)的研究[4-5];還有將目光投射至光伏產(chǎn)業(yè)上游產(chǎn)品——石英坩堝的大量研究。石英坩堝作為拉制單晶硅主要設(shè)備,在太陽能光伏發(fā)電中起著至關(guān)重要的作用[6]。在長時(shí)間高溫條件下,石英坩堝內(nèi)表層的氣泡很容易破裂,將氣泡中的氣體和石英微粒釋放到硅液中,從而將雜質(zhì)引入單晶硅中,導(dǎo)致拉制出的單晶硅的結(jié)構(gòu)發(fā)生變化[7]。因此對于石英坩堝的質(zhì)量檢測工作是一項(xiàng)具有研究性意義而又充滿挑戰(zhàn)性的工作。
目前對于石英坩堝的檢測大多以人工為主,準(zhǔn)確性得不到保障。在近幾年發(fā)展起來的流水線檢測工作中,機(jī)械設(shè)備代替了人工完成了一些稱重、口徑測量等簡單工作。對于石英坩堝內(nèi)壁的微小缺陷、透明層氣泡的檢測等方面還處于研究階段。隨著現(xiàn)代各種技術(shù)的不斷研究,各行各業(yè)不斷改革創(chuàng)新的趨勢下,機(jī)器視覺結(jié)合圖像處理等領(lǐng)域不斷發(fā)展,可以代替人工完成一些危險(xiǎn)的、重復(fù)性的檢測工作[8-9]?;跈C(jī)器視覺的數(shù)字圖像技術(shù)因其高效的處理效果廣泛應(yīng)用于工業(yè)檢測[10-11]。2019年劉國華等人[12]設(shè)計(jì)了一套以機(jī)器人為平臺(tái)的機(jī)器視覺的坩堝缺陷檢測系統(tǒng),并且結(jié)合基于圖像尺度的平移向量的圖像拼接算法對石英坩堝的缺陷進(jìn)行識(shí)別與拼接,最終達(dá)到高效的良好的檢測效果。但是這種技術(shù)所使用的機(jī)械臂費(fèi)用高,也僅僅是處理內(nèi)壁較大范圍的劃痕等缺陷,并不適用于后期集成發(fā)展。本文以此背景,展開對石英坩堝透明層氣泡數(shù)量、直徑、面積等參數(shù)的提取研究,旨在結(jié)合機(jī)器視覺與圖像處理去實(shí)時(shí)智能化地檢測石英坩堝透明層的氣泡。
基于ARM的石英坩堝氣泡無損動(dòng)態(tài)檢測系統(tǒng)主要由硬件結(jié)構(gòu)和軟件部分構(gòu)成,如圖1所示。硬件結(jié)構(gòu)由待檢測物體、圖像采集與數(shù)字化系統(tǒng)組成;軟件部分由操作系統(tǒng)、底層驅(qū)動(dòng)以及相關(guān)圖像處理算法組成。
圖1 石英坩堝智能檢測系統(tǒng)架構(gòu)
硬件平臺(tái)包括電源模塊、機(jī)械臂、電子放大鏡、石英坩堝碎片、ARM Cortex-M控制單元、ARM Cortex-A7核心控制板、顯示單元。核心控制單元控制機(jī)械臂攜載電子放大鏡實(shí)現(xiàn)圖像數(shù)據(jù)采集,具體方法是:利用STM32f103rct6控制板上的A/D轉(zhuǎn)換器采集電位器的電壓值,電壓值的范圍是0~1.65 V,舵機(jī)的轉(zhuǎn)動(dòng)角度為0~180°,通過映射關(guān)系將轉(zhuǎn)動(dòng)角度與電壓值進(jìn)行轉(zhuǎn)換,利用電阻分壓原理,實(shí)現(xiàn)控制電位器電阻值的大小來控制機(jī)械臂舵機(jī)的轉(zhuǎn)動(dòng)角度。在視覺上機(jī)械臂的的運(yùn)動(dòng)方向與同步控制桿的運(yùn)動(dòng)方向一致。
機(jī)械臂搭載的電子放大鏡可以做到對坩堝內(nèi)壁任意的位置點(diǎn)氣泡圖像的采集,電子放大鏡作為平臺(tái)的圖像采集前端自帶輔助光源功能,當(dāng)光線照度不充足時(shí),可以手動(dòng)調(diào)節(jié)輔助光源的亮度;采集到的圖像數(shù)據(jù)發(fā)送到圖像處理單元ARM Cortex-A7處理實(shí)時(shí)采集的石英坩堝透明層氣泡,達(dá)到動(dòng)態(tài)檢測的目的,對處理結(jié)果進(jìn)行JEPG壓縮,通過有線或以太網(wǎng)傳輸至上位機(jī)進(jìn)行顯示。整體結(jié)構(gòu)如圖2所示。
圖2 系統(tǒng)實(shí)物圖
石英坩堝透明層氣泡的圖像處理算法是軟件部分的核心,主要包括氣泡圖像預(yù)處理、氣泡圖像邊緣定位以及氣泡分割處理等幾部分。
將石英坩堝透明層的氣泡采集到之后,先利用仿真軟件來驗(yàn)證算法的可行性以及處理效果,針對坩堝氣泡復(fù)合層的影響,所拍攝的氣泡圖像輪廓與背景像素差異小,首先對氣泡圖像進(jìn)行增強(qiáng)處理,使得氣泡輪廓信息被增強(qiáng);接著提出融合霍夫變換邊緣檢測算法提取坩堝氣泡的輪廓;石英坩堝透明層的氣泡會(huì)發(fā)生重疊現(xiàn)象,需要對重疊氣泡進(jìn)行分割。接著利用向量叉乘來篩選出凹點(diǎn)與凸點(diǎn),進(jìn)而完成重疊氣泡的分割,進(jìn)一步提高了石英坩堝透明層氣泡的檢測準(zhǔn)確性。
石英坩堝透明層的氣泡直徑在μm級(jí)別,在氣泡復(fù)合層的影響下,采集到的氣泡圖像輪廓與背景像素差異小,因此先對氣泡圖像進(jìn)行區(qū)域增強(qiáng)。增強(qiáng)結(jié)果見圖3。
(a)原始圖像
(b)增強(qiáng)圖像
經(jīng)過增強(qiáng)后的氣泡圖像對比度提高了,氣泡的輪廓與背景的差異也增大了。
接著提取氣泡輪廓,傳統(tǒng)的檢測氣泡輪廓的方法有形態(tài)學(xué)算子、Sobel算子、LOG算子、Canny算子等[13]。Sobel算子計(jì)算方向單一,單一閾值處理可能會(huì)丟失重要的邊緣信息;LOG雖然克服了拉普拉斯算子抗噪能力差的缺點(diǎn),但是圖像的尖銳邊緣也可能會(huì)被濾除;Canny在邊緣檢測的處理效果最好且具備一定抗噪性,但是其雙閾值的選取需要人為設(shè)定。針對上述算法檢測邊緣的不足,提出改進(jìn)的氣泡輪廓提取算法。
Canny算法[14]可以有效抑制高斯白噪聲。這種算法有如下3個(gè)準(zhǔn)則:邊緣點(diǎn)檢測準(zhǔn)確性高,算法可以盡可能地識(shí)別圖像的實(shí)際邊緣;檢測的邊緣錯(cuò)誤率小,所有的邊緣均能被檢測,無偽邊緣響應(yīng),邊緣有唯一響應(yīng),邊緣點(diǎn)只存在一個(gè)像素值。
理論上Canny算法在提取目標(biāo)輪廓方面效果顯著,但其高斯濾波的參數(shù)、雙閾值大小均需人為設(shè)定,檢測結(jié)果易受主觀因素影響。本文提出的改進(jìn)算法步驟如下:
(1)形態(tài)學(xué)填充;由于光線的影響,氣泡中心區(qū)域的像素值非常接近背景區(qū)域的像素值。氣泡中心區(qū)域的灰度值小于閾值,會(huì)被識(shí)別為背景。氣泡的中心可能會(huì)出現(xiàn)一個(gè)“孔洞”。需要利用形態(tài)學(xué)填充,消除氣泡內(nèi)部的影響。
(2)計(jì)算梯度幅值及方向。
(3)非極大值抑制;找出圖像梯度中的局部極大值點(diǎn),抑制非極大值,得到細(xì)化的邊緣。
(4)利用霍夫變換連接氣泡邊緣;細(xì)化后的氣泡邊緣并不完整,采用霍夫變換將計(jì)算得到的梯度極大值點(diǎn)進(jìn)行連接,得到完整的氣泡輪廓圖像。
本文對采集到的的坩堝氣泡圖像進(jìn)行了大量的實(shí)驗(yàn),為了驗(yàn)證提出改進(jìn)氣泡邊緣檢測算法的檢測效果,將其與LOG算子、Sobel算子及文獻(xiàn)[15]處理結(jié)果進(jìn)行比較,實(shí)驗(yàn)結(jié)果如圖4所示。
從上述結(jié)果可以看出,經(jīng)過LOG算子檢測出來的氣泡輪廓包含較多雜質(zhì);經(jīng)過Sobel算子檢測出來的氣泡輪廓雖然完整度高且清晰,但是丟失了一些微小氣泡的信息;文獻(xiàn)[15]利用數(shù)學(xué)形態(tài)學(xué)算子,去提取目標(biāo)的輪廓,將此算法應(yīng)用到本文中,提取的氣泡輪廓完整,但是將部分不是氣泡雜質(zhì)輪廓也提取出來了;經(jīng)過本文的提取算法后,對氣泡輪廓定位準(zhǔn)確,氣泡輪廓完整清晰。
為了提高分類的準(zhǔn)確性以及準(zhǔn)確分割重疊氣泡,利用Freeman鏈碼來進(jìn)行凹凸點(diǎn)的篩選。Freeman碼是用曲線起始點(diǎn)的坐標(biāo)和邊界點(diǎn)方向代碼來描述曲線或邊界的方法[16],以8個(gè)向量矩陣作為編碼的符號(hào),
(a)LOG算子
(b)Sobel算子
(c)文獻(xiàn)[15]算法
(d)本文算法
以45°的角倍數(shù)對整個(gè)區(qū)域進(jìn)行劃分(0°,45°,90°,135°,180°,225°,270°,315°),所以可以用一組方向數(shù)據(jù)來表示一段曲線輪廓,鏈碼表示在目標(biāo)分析、圖像分割中廣泛應(yīng)用[17]。
本文將檢測到的重疊氣泡二值圖像進(jìn)行角點(diǎn)提取,選取了64個(gè)角點(diǎn)鏈碼值進(jìn)行統(tǒng)計(jì),得到了表示其形狀的鏈碼值序列,示意圖如圖5所示。
檢測出來的角點(diǎn)有凹點(diǎn)與凸點(diǎn)之分,以角點(diǎn)的向量叉乘去判別當(dāng)前角點(diǎn)是否為凹點(diǎn)。假設(shè)當(dāng)前角點(diǎn)為Pi(xi,yi)、前角點(diǎn)為Pi-1(xi-1,yi-1)、后角點(diǎn)為Pi+1(xi+1,yi+1)。計(jì)算向量Pi-1Pi與向量PiPi+1的叉乘。
(4)
對鏈碼進(jìn)行向量叉乘,其示意圖如圖6所示。
圖6 向量示意圖
圖6的前半部分表示一個(gè)凸點(diǎn),此時(shí)的向量叉乘結(jié)果為負(fù);后半部分表示一個(gè)凹點(diǎn),向量叉乘的結(jié)果為正。利用上述方法遍歷整個(gè)氣泡輪廓,對檢測出來的凹點(diǎn)進(jìn)行標(biāo)記,分割實(shí)驗(yàn)結(jié)果如圖7所示。
圖7 凹點(diǎn)檢測結(jié)果
從圖7可以看出,重疊區(qū)域的所有凹點(diǎn)均被準(zhǔn)確識(shí)別。采用凹點(diǎn)之間分割線最短原則對重疊區(qū)域進(jìn)行分割,結(jié)果如圖8所示。
圖8 分割結(jié)果圖
從實(shí)驗(yàn)結(jié)果看,針對這種重疊氣泡的分割,本文算法在凹點(diǎn)被標(biāo)識(shí)以后,可以有效分割出重疊氣泡。
文獻(xiàn)[18]中提出的凸殼區(qū)域分割算法,分割思想是先找尋能夠完全包圍重疊區(qū)域的凸殼,再利用凸殼對重疊區(qū)域進(jìn)行最大限度的腐蝕,這樣就能得到重疊部位的凹陷區(qū)域,根據(jù)重疊目標(biāo)的位置關(guān)系,進(jìn)行分割處理。利用這種算法提取重疊氣泡的凹陷區(qū)域,結(jié)果如圖9所示。
文獻(xiàn)[18]使用最大凸殼對重疊區(qū)域進(jìn)行最大限度的腐蝕。這種算法思想在凹陷區(qū)域特征明顯時(shí),對凹點(diǎn)區(qū)域定位準(zhǔn)確,從圖9可以看出,當(dāng)重疊區(qū)域不明顯時(shí),利用凸殼不斷腐蝕重疊區(qū)域找尋凹陷區(qū)域具有很大局限性,可能導(dǎo)致凹陷區(qū)域提取失敗。其分割結(jié)果如圖10所示。
圖10 文獻(xiàn)[18]分割結(jié)果圖
文獻(xiàn)[18]在使用標(biāo)準(zhǔn)測試圖像時(shí),分割效果良好,在外界干擾較大的情況下對于真實(shí)的重疊目標(biāo)圖像分割、定位效果略差。實(shí)驗(yàn)結(jié)果表明,當(dāng)重疊區(qū)域特征不明顯,凸殼最大限度腐蝕重疊氣泡區(qū)域也會(huì)將凹陷區(qū)域一并腐蝕掉,進(jìn)而也會(huì)導(dǎo)致重疊氣泡不能被正確分割。
利用STM32f103rct6控制機(jī)械臂轉(zhuǎn)動(dòng)角度,搭載機(jī)械臂實(shí)現(xiàn)石英坩堝透明層氣泡的采集,將本文處理坩堝透明層氣泡的算法移植到ARM CortexTM-A7核心控制板上,對實(shí)時(shí)采集的坩堝透明層氣泡進(jìn)行動(dòng)態(tài)檢測,處理結(jié)果通過無線或者以太網(wǎng)傳輸至上位機(jī)進(jìn)行顯示,結(jié)果如圖11所示。
圖11 坩堝動(dòng)態(tài)檢測截圖
將檢測到氣泡直徑大于100 μm、單張圖像氣泡數(shù)超過100個(gè)的圖像信息進(jìn)行保存,以便后期信息查詢,切實(shí)提高石英坩堝檢測的效率。經(jīng)測試石英坩堝透明層氣泡檢測模塊的最終檢測速度為一幀圖像100 ms,基本無卡頓。經(jīng)過測試,平臺(tái)對石英坩堝透明層氣泡的檢測達(dá)到了快速有效的要求。
目前對于坩堝透明層微小氣泡的檢測大多由人工檢測,檢測效率低且受主觀因素影響大?;诖?,本文設(shè)計(jì)出一種基于ARM的石英坩堝氣泡動(dòng)態(tài)智能檢測平臺(tái)。
(1)該平臺(tái)利用STM32內(nèi)部的A/D轉(zhuǎn)換器采集電位器的電壓值,得出電壓變化與舵機(jī)轉(zhuǎn)動(dòng)角度的映射關(guān)系,進(jìn)而通過控制電位器的電阻控制機(jī)械臂舵機(jī)的轉(zhuǎn)動(dòng)角度,搭載電子放大鏡以實(shí)現(xiàn)石英坩堝透明層任意位置氣泡的采集功能。
(2)提出一種改進(jìn)的氣泡輪廓提取算法用來準(zhǔn)確檢測出氣泡的輪廓,并結(jié)合鏈碼標(biāo)記與凹點(diǎn)檢測分割算法處理重疊氣泡。較文獻(xiàn)[18]誤檢率降低62.75%,提高了坩堝氣泡的檢測精度。
(3)將MATLAB程序轉(zhuǎn)化成C++程序在ARM核心控制板對實(shí)時(shí)采集的氣泡圖像進(jìn)行動(dòng)態(tài)檢測。通過無線協(xié)議將檢測結(jié)果傳輸至上位機(jī)進(jìn)行顯示,為石英坩堝智能化檢測提供了新的思路。