,,,,
(1.長(zhǎng)沙理工大學(xué) 物理與電子科學(xué)學(xué)院,長(zhǎng)沙 410114; 2.近地空間電磁環(huán)境監(jiān)測(cè)與建模湖南省普通高校重點(diǎn)實(shí)驗(yàn)室,長(zhǎng)沙 410114; 3.長(zhǎng)沙億旭智能科技有限公司,長(zhǎng)沙 410000)
陶瓷材料是除金屬和高聚物以外的一類(lèi)無(wú)機(jī)非金屬材料,采用天然或人工合成化合物經(jīng)過(guò)嚴(yán)格的成形和高溫?zé)Y(jié)而成,是現(xiàn)代三大支柱材料之一,其主要成分包括氮化硅,陶瓷的斷裂韌性一般很低,是典型的脆性材料,即使是微小的缺陷,也容易在該處造成應(yīng)力集中而破壞[1]。傳統(tǒng)人工檢測(cè)方法只能檢測(cè)微小陶瓷管表面缺陷破損、氣孔、裂紋等缺陷,而且人工檢測(cè)穩(wěn)定性差、沒(méi)有統(tǒng)一的標(biāo)準(zhǔn)等缺點(diǎn),基于PC平臺(tái)的機(jī)器視覺(jué)系統(tǒng)多通道缺陷檢實(shí)現(xiàn)難度大、成本高、且體積大不易安裝[3]。本文中針對(duì)5.5*2.1*2.1 mm左右方形微小陶瓷管尺寸,探索一種微小陶瓷管缺陷檢測(cè)方法,設(shè)計(jì)實(shí)現(xiàn)成本相對(duì)低、漏檢率低、體積小、穩(wěn)定性高的微小陶瓷管缺陷檢測(cè)系統(tǒng),采用FPGA+STM32F429的平臺(tái)并且結(jié)合圖像處理算法來(lái)完成陶瓷管缺陷檢測(cè)系統(tǒng)的設(shè)計(jì),通過(guò)結(jié)合局部分塊+面積的思想的方法,簡(jiǎn)化了方形陶瓷管的檢測(cè)過(guò)程,同時(shí)也保證了檢測(cè)正確率。
陶瓷管缺陷檢測(cè)系統(tǒng)結(jié)構(gòu)如圖1所示。系統(tǒng)包括陶瓷管傳送、檢測(cè)和分選、剔除4個(gè)部分。傳送部分由振動(dòng)盤(pán)和傳送帶組成,檢測(cè)和分選部分由轉(zhuǎn)盤(pán)、紅外傳感器、CMOS工業(yè)相機(jī)、圖像處理單元等組成,剔除部分由定位控制模塊和氣泵組成。工作流程為振動(dòng)盤(pán)中的待檢測(cè)陶瓷管,經(jīng)過(guò)一定速度的勻速振動(dòng)和轉(zhuǎn)動(dòng),使陶瓷管沿著振動(dòng)盤(pán)的內(nèi)壁滑動(dòng)到傳送帶,傳送帶將陶瓷管逐個(gè)送到轉(zhuǎn)盤(pán),通過(guò)單相交流串勵(lì)電機(jī)帶動(dòng)陶瓷管在轉(zhuǎn)盤(pán)上轉(zhuǎn)動(dòng)[4],安裝在轉(zhuǎn)盤(pán)旁邊的紅外傳感器檢測(cè)到白色方形陶瓷管時(shí),開(kāi)啟高亮的白色LED燈進(jìn)行曝光,同時(shí)觸發(fā)CMOS工業(yè)相機(jī)AR0134獲取陶瓷管圖像,經(jīng)過(guò)圖像處理單元判斷是否有缺陷,并將結(jié)果輸送到PLC執(zhí)行機(jī)構(gòu),實(shí)現(xiàn)對(duì)陶瓷管進(jìn)行分選,如果是正品則直接送入到收集箱,碰到有缺陷的陶瓷管則開(kāi)啟氣泵剔除。
圖1 陶瓷管缺陷檢測(cè)系統(tǒng)結(jié)構(gòu)示意圖
整個(gè)系統(tǒng)主控制模塊執(zhí)行,要求速度快,體積小。根據(jù)ARM和FPGA的特點(diǎn),采用ARM+FPGA組成[5],由FPGA采集陶瓷管圖像,并存儲(chǔ)到DDR中,進(jìn)行圖像的預(yù)處理,預(yù)處理后的數(shù)據(jù)通過(guò)SPI總線傳遞給ARM,ARM對(duì)陶瓷管圖像進(jìn)行二值化以及形態(tài)學(xué)處理后,采用局部分塊+面積的方法完成陶瓷管圖像的缺陷檢測(cè)[6]。
根據(jù)系統(tǒng)要求,采用CMOS工業(yè)攝像頭捕捉陶瓷管圖像,經(jīng)過(guò)FPGA進(jìn)行膨脹、腐蝕、開(kāi)運(yùn)算、 閉運(yùn)算等形態(tài)學(xué)的預(yù)處理,通過(guò)SPI將陶瓷管圖像傳送給STM32F429ZIT6,對(duì)陶瓷管圖像進(jìn)行識(shí)別與處理,達(dá)到識(shí)別缺陷的目的。檢測(cè)結(jié)果通過(guò)LAN8742發(fā)送到上位機(jī)顯示。
基于ARM+FPGA的陶瓷管缺陷檢測(cè)系統(tǒng)主要由以下幾個(gè)部分組成,電源電路、圖像數(shù)據(jù)采集電路、ARM主控制電路、FPGA主控制電路、SDRAM數(shù)據(jù)緩沖電路等。
1)電源電路。
電源電路設(shè)計(jì)如圖2所示,由于陶瓷管缺陷檢測(cè)系統(tǒng)芯片正常工作時(shí)需要供電,我們提供的是+24 V的輸入電壓,然后經(jīng)過(guò)設(shè)計(jì)電源轉(zhuǎn)換電路。電源轉(zhuǎn)換電路的作用就是電平轉(zhuǎn)換,把輸入電壓轉(zhuǎn)換成系統(tǒng)正常工作時(shí)需要的電壓。本設(shè)計(jì)中輸入電壓為+24 V,輸出電壓的+5 V給AR0134攝像頭模塊提供電壓、+3.3 V電壓輸出給STM32供電和+2.5 V和+1.2 V給FPGA內(nèi)核提供供電電壓等,并且讓輸入電源經(jīng)過(guò)流和過(guò)壓保護(hù)電路[7],當(dāng)輸入電壓超過(guò)壓敏電阻36 V的極限值時(shí)瞬間燒毀,當(dāng)電流超過(guò)500 mA時(shí)保險(xiǎn)絲瞬間熔斷,降至500 mA以下時(shí)保險(xiǎn)絲恢復(fù)功能,從而使電路實(shí)現(xiàn)了正常供電和異常保護(hù)功能,提高在工業(yè)的生產(chǎn)需求過(guò)程中對(duì)外界環(huán)境的抗干擾能力。
圖2 電源電路設(shè)計(jì)
2)圖像數(shù)據(jù)采集電路。
圖像數(shù)據(jù)采集電路采用具有LVDS接口與并行數(shù)據(jù)接口的全局CMOS工業(yè)攝像頭來(lái)完成,能夠使采集到的陶瓷管圖像在傳輸?shù)倪^(guò)程中具有高噪聲抑制能力、保證可靠的信號(hào)傳輸?shù)忍攸c(diǎn)。這里選用1 280*960@45 fps或者1 280*720@60 fps的全局CMOS工業(yè)攝像頭AR0134來(lái)采集陶瓷管缺陷系統(tǒng)圖像,它通過(guò)全局快門(mén)的方式高速的獲取圖像,靈敏度為:6.1 V/lux-sex,意思就是單位光強(qiáng)照在傳感器上一秒鐘的話(huà),傳感器可以輸出6.1 V的電壓,能夠在很暗的光線下獲取清晰的圖像。
3)ARM主控制電路。
如圖3所示,本缺陷檢測(cè)系統(tǒng)選用ARM STM32F429ZIT6作為主處理器,在整個(gè)控制系統(tǒng)中處于核心地位,主要實(shí)現(xiàn)系統(tǒng)程序模塊間的調(diào)度與協(xié)調(diào),完成對(duì)通過(guò)DMA傳送過(guò)來(lái)的陶瓷管預(yù)處理圖像的采集,以及對(duì)陶瓷管圖像進(jìn)行特征的提取和識(shí)別等等,在系統(tǒng)的整體性能上起到了至關(guān)重要的作用。它具有低功耗、體積小、低成本、高可靠能,內(nèi)部集成了SDRAM控制器和以太網(wǎng)控制器等等,能夠很好的滿(mǎn)足工業(yè)需求[8]。
圖3 STM32F429控制電路
4)FPGA主控制電路。
采用FPGA EP4CE22F17C8N控制電路,靈活性很好,性能可靠,邏輯單元多大20 000多個(gè),提供 RAM存儲(chǔ)塊,這些存儲(chǔ)塊一般可以配置成單口RAM、雙口RAM、FIFO、ROM甚至移位寄存器等,擁有硬件乘法器,支持 LVDS I/O,兼容的LVDS通道達(dá)120多個(gè),支持多種類(lèi)型的IP核,如串口IP核、SPI核、SDRAM IP核等等[9],在整個(gè)控制系統(tǒng)中FPGA將陶瓷管數(shù)據(jù)緩存到DDR中,以及完成陶瓷管圖像的預(yù)處理,如二值化、形態(tài)學(xué)運(yùn)算等等。
5)SDRAM數(shù)據(jù)緩沖電路。
陶瓷管缺陷檢測(cè)數(shù)據(jù)存儲(chǔ)電路如圖3所示,通過(guò)使用STM32F429內(nèi)部集成的FMC控制器來(lái)控制SDRAM,F(xiàn)MC連接好外部的存儲(chǔ)器并初始化后,就可以直接通過(guò)訪問(wèn)地址來(lái)讀寫(xiě)數(shù)據(jù),使用FMC外接存儲(chǔ)器時(shí),其存儲(chǔ)單元是映射到STM32的內(nèi)部尋址空間的;在程序里,定義一個(gè)指向這些地址的指針,然后就可以通過(guò)指針直接修改該存儲(chǔ)單元的內(nèi)容,F(xiàn)MC外設(shè)會(huì)自動(dòng)完成數(shù)據(jù)訪問(wèn)過(guò)程,讀寫(xiě)命令之類(lèi)的操作不需要程序控制[10]。
圖4 陶瓷管缺陷檢測(cè)數(shù)據(jù)存儲(chǔ)電路
通過(guò)局部分塊的思想來(lái)確定陶瓷管的缺陷所在的位置。局部分塊的思路就是對(duì)陶瓷管圖像進(jìn)行目標(biāo)區(qū)域的確定后,對(duì)目標(biāo)區(qū)域按照一定的比例進(jìn)行分塊,把它們分成若干塊,即直接在空間上將這些區(qū)域分成若干塊,這種局部分塊的思想能夠使我們更好的尋找到缺陷的位置,達(dá)到縮小處理范圍的目的,候志強(qiáng)、黃安奇等人針對(duì)目標(biāo)跟蹤過(guò)程中的目標(biāo)表現(xiàn)變化等問(wèn)題,采取了局部分塊和模型更新的視覺(jué)跟蹤算法,運(yùn)用該算法在目標(biāo)表現(xiàn)、遮擋情況等的處理能力都有所增強(qiáng),余旺盛、田孝華等人在處理視覺(jué)運(yùn)動(dòng)過(guò)程中目標(biāo)出現(xiàn)魯棒性的問(wèn)題[11],運(yùn)用了基于局部分塊的加權(quán)算法來(lái)處理,使跟蹤的精度更高、成功率更高,田孝華、查宇飛等人利用局部分塊的模型,并結(jié)合貝葉斯理論框架進(jìn)行視覺(jué)跟蹤,達(dá)到了目標(biāo)變化時(shí)的適應(yīng)性大大增強(qiáng),結(jié)果更加穩(wěn)定的效果[12]。
針對(duì)長(zhǎng)方形的目標(biāo)區(qū)域來(lái)說(shuō),進(jìn)行局部分塊的塊數(shù)可以用多種多樣的,可以分為兩塊、四塊、六塊、八塊等等,如圖5所示,為八塊局部分塊示意圖,即將目標(biāo)區(qū)域分為兩行四列,分塊的大小可以按照自己的需求來(lái)設(shè)定。
如圖所示的八塊分法的思想一般用均勻分塊,這樣操作方便,但是這樣分塊會(huì)出現(xiàn)分塊不必要的現(xiàn)象,從而達(dá)不到很好的分塊效果,所以,可以采用把目標(biāo)區(qū)域分成九塊的方法來(lái)分塊,九塊的分塊不需要均勻,可以大小不一,可根據(jù)具體需要來(lái)分塊,即把它分成3行3列的塊,這里把它分成了長(zhǎng)方形塊的四角、四邊、中間一個(gè)塊,4個(gè)角組成了4個(gè)塊,四條邊組成了4個(gè)塊,然后中間的一個(gè)區(qū)域分成一塊。對(duì)于中間的塊來(lái)說(shuō),如果中間區(qū)域出現(xiàn)了前景色的像素,那么該陶瓷管就存在缺陷;對(duì)于4個(gè)角構(gòu)成的四塊來(lái)說(shuō),如果它們不構(gòu)成字母"L"形狀就判斷為有缺陷;對(duì)于四條邊構(gòu)成的4個(gè)塊來(lái)說(shuō),如果不在同一條直線上就表示圖像存在缺陷。
圖5 長(zhǎng)方形輪廓分塊示意圖
通過(guò)處理后的陶瓷管缺陷邊緣相對(duì)突出,可以較快計(jì)算出目標(biāo)的面積,可以通過(guò)求出連通區(qū)域的面積來(lái)作為檢測(cè)缺陷的重要指標(biāo),面積可以很方便的衡量一個(gè)物體的總尺寸,采取的最簡(jiǎn)單和有效的計(jì)算面積的方法就是計(jì)算連通區(qū)域包括邊界在內(nèi)的所有像素的總和,在整幅陶瓷管圖像中,陶瓷管本身的大小相對(duì)整體圖像占比很小,因?yàn)槠渲邪吮尘皥D像,若要對(duì)缺陷面積檢測(cè)需要開(kāi)始找到其所在的位置,對(duì)分割的圖像確定目標(biāo)區(qū)域的思路是,首先從上往下開(kāi)始掃描,遇到像素點(diǎn)時(shí)停止掃描,記錄這個(gè)時(shí)候的行數(shù)L1,然后對(duì)圖像從下面到上面做掃描,當(dāng)有像素點(diǎn)的時(shí)候記錄此時(shí)的行數(shù)L2,按照同樣的方法,分別進(jìn)行由左至右以及由右至左的像素點(diǎn)的掃描,找到這個(gè)時(shí)候的列號(hào)分別為C1,C2。這個(gè)時(shí)候由(L1,C1),(L2,C2)這兩點(diǎn)確定的區(qū)域就是所找到的目標(biāo)區(qū)域,在目標(biāo)區(qū)域內(nèi),采用基于區(qū)域的統(tǒng)計(jì)方法來(lái)計(jì)算面積,具體的思路如下:
1)先進(jìn)行從左到右,從上到下對(duì)目標(biāo)區(qū)域進(jìn)行掃描。算出相同行不連通的行程然后對(duì)它們進(jìn)行標(biāo)號(hào);
2)然后從左上到右下對(duì)目標(biāo)區(qū)域進(jìn)行掃描,相鄰的行若出現(xiàn)像素值相同的情況,那么就將下面行的標(biāo)號(hào)修改成與上面的行的標(biāo)號(hào)相同;
3)最后從右下到左上對(duì)目標(biāo)區(qū)域進(jìn)行像素點(diǎn)的掃描,相鄰的行中若有像素值相同的情況,那么就將上面行的標(biāo)號(hào)修改成與下面的行的標(biāo)號(hào)相同;
4)最后對(duì)標(biāo)過(guò)的號(hào)進(jìn)行排序。在將目標(biāo)區(qū)域標(biāo)號(hào)后,能達(dá)到檢測(cè)不同連通區(qū)域面積的目的,把相同點(diǎn)相加,最后得到的總的像素點(diǎn)就是所求的連通區(qū)域的面積,可以通過(guò)這種方法來(lái)計(jì)算缺陷的面積,即使缺陷是沒(méi)有規(guī)律的也可以通過(guò)用這種方法來(lái)識(shí)別陶瓷管圖像缺陷,通過(guò)計(jì)算多個(gè)不連通區(qū)域的面積,按照面積的大小來(lái)區(qū)分缺陷和噪聲,所以這個(gè)方法可以對(duì)陶瓷管圖像去噪,通過(guò)對(duì)目標(biāo)區(qū)域圖像進(jìn)行標(biāo)號(hào)后,獲取不同檢測(cè)目標(biāo)的面積實(shí)現(xiàn)測(cè)量。
本系統(tǒng)ARM采用的是STM32F429ZIT6芯片。ARM芯片開(kāi)發(fā)使用的是Keil公司開(kāi)發(fā)的ARM開(kāi)發(fā)工具M(jìn)DK。整個(gè)ARM 芯片軟件的開(kāi)發(fā)過(guò)程可以分為3個(gè)步驟:編寫(xiě)C語(yǔ)言源程序,編譯源程序,固化程序(燒制Flash)[13]。ARM芯片STM32F429的軟件程序主要有4個(gè)任務(wù):①通過(guò)SPI接受從FPGA傳送過(guò)來(lái)的陶瓷管圖像數(shù)據(jù);②對(duì)陶瓷管圖像進(jìn)行數(shù)字圖像處理運(yùn)算;③將檢測(cè)結(jié)果通過(guò)以太網(wǎng)發(fā)送到上位機(jī)進(jìn)行顯示,同時(shí)也可以通過(guò)OLED進(jìn)行顯示;
本系統(tǒng)FPGA采用的是EP4CE22F17C8N芯片。FPGA芯片開(kāi)發(fā)使用的是Altera公司開(kāi)發(fā)的Quartus II,主要有3個(gè)任務(wù):①通過(guò)工業(yè)攝像頭AR0134采集陶瓷管圖像數(shù)據(jù);②將陶瓷管圖像緩存到DDR MT46V32M16;③通過(guò)SPI將數(shù)據(jù)傳送給STM32F429進(jìn)行處理;
該系統(tǒng)的軟件設(shè)計(jì)如圖6所示,ARM芯片STM32F429ZIT6首先進(jìn)行初始化,包括串口、SDRAM、OLED模塊、定時(shí)器模塊、以太網(wǎng)LAN8742模塊等等[14], 當(dāng)傳感器檢測(cè)到陶瓷管時(shí),觸發(fā)工業(yè)攝像頭AR0134捕獲陶瓷管圖像,然后經(jīng)過(guò)FPGA的預(yù)處理后,通過(guò)SPI將陶瓷管圖像傳送給STM32F429ZIT6,它對(duì)陶瓷管圖像進(jìn)行識(shí)別與處理后,將檢測(cè)結(jié)果通過(guò)LAN8742發(fā)送到上位機(jī)進(jìn)行顯示,同時(shí)也可以通過(guò)OLED進(jìn)行顯示[15];
圖6 系統(tǒng)軟件設(shè)計(jì)示意圖
實(shí)驗(yàn)結(jié)果如表1所示,通過(guò)檢測(cè)從5 000到50 000之間間隔5 000的10種數(shù)量的陶瓷管,經(jīng)過(guò)ARM+FPGA的陶瓷管缺陷檢測(cè)系統(tǒng)檢測(cè)后,相對(duì)于傳統(tǒng)陶瓷管缺陷檢測(cè)漏檢率10%來(lái)說(shuō),要遠(yuǎn)遠(yuǎn)低于它,漏檢率一般低于1%。由此可以看出,此系統(tǒng)代替?zhèn)鹘y(tǒng)陶瓷管缺陷檢測(cè),漏檢率低。并且在檢測(cè)的過(guò)程中,檢測(cè)速度快,系統(tǒng)穩(wěn)定性高,抗干擾能力強(qiáng),從而提高了生產(chǎn)效率,有效的滿(mǎn)足工業(yè)生產(chǎn)的需要。
表1 陶瓷管缺陷檢測(cè)結(jié)果表
采用ARM+FPGA來(lái)實(shí)現(xiàn)微小陶瓷管缺陷檢測(cè),利用FPGA來(lái)采集陶瓷管圖像數(shù)據(jù)以及預(yù)處理,通過(guò)STM32進(jìn)行圖像處理運(yùn)算,實(shí)現(xiàn)對(duì)陶瓷管缺陷在線檢測(cè)系統(tǒng)檢測(cè)算法的研究,包括對(duì)采集到實(shí)物圖像做預(yù)處理,如進(jìn)行灰度直方圖,進(jìn)行形態(tài)學(xué)的運(yùn)算,如膨脹、腐蝕、開(kāi)運(yùn)算、閉運(yùn)算等等,通過(guò)提取圖像的感興趣區(qū)域來(lái)對(duì)陶瓷管圖像目標(biāo)進(jìn)行提取,利用局部分塊和面積法結(jié)合的思想來(lái)確定陶瓷管的缺陷。實(shí)驗(yàn)結(jié)果表明,該微小陶瓷管缺陷檢測(cè)系統(tǒng)檢測(cè)速度快,穩(wěn)定性高,抗干擾能力強(qiáng),漏檢率低,而且體積小、可靠性強(qiáng)、成本低,適用于批量微小陶瓷檢測(cè)。
[1] 余文勇,石 繪. 機(jī)器視覺(jué)自動(dòng)檢測(cè)技術(shù)[M]. 北京:化學(xué)工業(yè)出版社,2013.
[2]沙翠翠. 基于機(jī)器視覺(jué)的陶瓷管缺陷識(shí)別技術(shù)研究[D].西安:西安科技大學(xué),2010.
[3]程 佩,房海華,黃 藍(lán). 基于FPGA+DSP的數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J]. 計(jì)算機(jī)測(cè)量與控制,2016(11):148-150.
[4]陳 浩,吳定祥,康志遠(yuǎn),等.單相交流串勵(lì)電機(jī)調(diào)速系統(tǒng)設(shè)計(jì)[J]. 機(jī)電工程,2016,(12):1483-1487.
[5]李 濤. 劍桿織機(jī)送經(jīng)卷取運(yùn)動(dòng)的雙控法研究,測(cè)控技術(shù)[J].2015,34(4):67-70.
[6]余旺盛,田孝華,侯志強(qiáng),等. 基于局部分塊學(xué)習(xí)的在線視覺(jué)跟蹤[J]. 電子學(xué)報(bào), 2015, 43(1): 74-68.
[7]李艷麗. 開(kāi)關(guān)電源中保護(hù)電路的研究與設(shè)計(jì)[D].成都:西南交通大學(xué),2015.
[8]葛文慶,賴(lài) 華,靳振宇,等. 基于Cortex-M3內(nèi)核的STM32微控制器研究與電路設(shè)計(jì)[J]. 大慶師范學(xué)院學(xué)報(bào),2013(6):44-47.
[9]張永軍. 基于FPGA的圖像處理系統(tǒng)設(shè)計(jì)與算法實(shí)現(xiàn)研究[D].重慶:重慶大學(xué),2006.
[10]李天旭,陳廣大,王騰騰,等. 基于STM32的恒溫水浴溫度檢測(cè)與控制系統(tǒng)設(shè)計(jì)[J]. 計(jì)算機(jī)測(cè)量與控制,2017(6):41-44.
[11]楊小明,胡文軍,樓俊鋼,等. 局部分塊的一類(lèi)支持向量數(shù)據(jù)描述[J]. 計(jì)算機(jī)應(yīng)用, 2015, 35(4): 1026-1029.
[12]王 鋒,殷珍珍,李 彬. 基于分塊局部二值模式的圖像檢索研究[J]. 微電子學(xué)與計(jì)算機(jī), 2014, 31(5): 21-23.
[13]龔 濤. 基于FPGA的圖像采集處理系統(tǒng)[D].武漢:華中科技大學(xué),2005.
[14]韋喜波. DDR SDRAM控制器的設(shè)計(jì)與驗(yàn)證[D].哈爾濱:哈爾濱工業(yè)大學(xué),2009.
[15]楊凱斌,吳定祥,龔金成,等. 圓環(huán)陶瓷檢測(cè)算法研究[J].中國(guó)陶瓷,2017(3):39-44.