楊 哲, 卜子渝, 劉純平
(1.蘇州大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,江蘇 蘇州 215006;2.江蘇省計(jì)算機(jī)信息處理技術(shù)重點(diǎn)實(shí)驗(yàn)室,江蘇 蘇州 215006)
機(jī)器視覺(jué)是人工智能的一個(gè)重要分支,具有非接觸、低成本、高效率和安全可靠等優(yōu)點(diǎn),在制造業(yè)中主要用于尺寸測(cè)量[1-2]、物體定位[3-4]和缺陷檢測(cè)[5-6]等。目前,基于機(jī)器視覺(jué)的缺陷檢測(cè)正逐漸取代人工在智能制造中廣泛應(yīng)用[7],如焊接檢測(cè)[8]、涂裝檢測(cè)[9]、印刷檢測(cè)[10-11]、軌道檢測(cè)[12]、包裝檢測(cè)[13-14]等。隨著效率、精度和穩(wěn)定性等方面性能的提升,機(jī)器視覺(jué)在智能制造領(lǐng)域的應(yīng)用將越來(lái)越廣泛,機(jī)器視覺(jué)方面的人才需求持續(xù)增加。
機(jī)器視覺(jué)課程在新工科專業(yè)教學(xué)體系中有著重要作用,涉及圖像處理、自動(dòng)控制、模式識(shí)別等課程的知識(shí),需要綜合運(yùn)用理論知識(shí)與操作技能,具有綜合性、系統(tǒng)性和操作性強(qiáng)的特點(diǎn)。因此,各高校結(jié)合自身的學(xué)?;蛐袠I(yè)特色,對(duì)機(jī)器視覺(jué)課程進(jìn)行了教學(xué)改革和探索,包括實(shí)驗(yàn)系統(tǒng)開(kāi)發(fā)[15-18],教學(xué)項(xiàng)目設(shè)計(jì)[19]和教學(xué)模式探索[20]等。
根據(jù)我校新工科專業(yè)建設(shè)的要求,以智能制造過(guò)程中激光雕刻缺陷檢測(cè)的需求和過(guò)程為案例,對(duì)機(jī)器視覺(jué)綜合實(shí)踐課程的內(nèi)容和過(guò)程進(jìn)行了教學(xué)設(shè)計(jì),豐富了機(jī)器視覺(jué)課程的實(shí)踐教學(xué)資源,對(duì)于提高學(xué)生的專業(yè)理論、實(shí)踐技能和工程素養(yǎng)有較好的促進(jìn)作用。
機(jī)器視覺(jué)是用機(jī)器代替人做測(cè)量和判斷,一般先通過(guò)攝像裝置將待測(cè)目標(biāo)轉(zhuǎn)換成圖像信號(hào),傳送給圖像處理系統(tǒng),得到目標(biāo)的形態(tài)信息;再根據(jù)像素分布和亮度、顏色等信息,轉(zhuǎn)變成數(shù)字信號(hào);圖像系統(tǒng)對(duì)這些信號(hào)進(jìn)行各種運(yùn)算來(lái)抽取目標(biāo)的特征,進(jìn)而根據(jù)判別的結(jié)果來(lái)控制現(xiàn)場(chǎng)的設(shè)備動(dòng)作。
設(shè)計(jì)的基于機(jī)器視覺(jué)的激光雕刻缺陷檢測(cè)實(shí)踐教學(xué)體系如圖1所示,包含4個(gè)環(huán)節(jié),8個(gè)任務(wù),分為3個(gè)層次的難度要求。實(shí)踐環(huán)節(jié)根據(jù)課程需要用到的知識(shí)內(nèi)容進(jìn)行劃分,涵蓋了硬件基礎(chǔ)、程序設(shè)計(jì)、圖像處理、自動(dòng)控制和模式識(shí)別等先導(dǎo)課程。實(shí)踐任務(wù)是每個(gè)環(huán)節(jié)中學(xué)生需要完成的具體內(nèi)容,學(xué)生以3或4人為1小組,合作完成8個(gè)任務(wù),難度要求分成基礎(chǔ)性、綜合性和創(chuàng)新性訓(xùn)練3個(gè)層次。
課程所需的硬件設(shè)備,包括工業(yè)相機(jī)、環(huán)形光源、激光雕刻機(jī)、傳送帶(含電動(dòng)機(jī))、繼電器、計(jì)算機(jī)等。工業(yè)相機(jī)型號(hào)為BASLER acA3800-10gm,分辨率為3840×2748,幀速率為10 f/s。光源為環(huán)形白光,24 V供電。激光雕刻機(jī)型號(hào)為VigoTec VG-L5,工作有效尺寸A5幅面(19 cm×13 cm)。傳送帶長(zhǎng)50 cm、寬20 cm,繼電器型號(hào)為T(mén)CP-KP-I202。
軟件使用PyQt5進(jìn)行開(kāi)發(fā)和集成,需要使用第三方庫(kù)和開(kāi)源框架包括TensorFlow2.1,OpenCV 4.5,Paddlepaddle2.1,NumPy 1.19,LaserWeb 4.0等。
(1)硬件連接。學(xué)生根據(jù)圖2所示搭建硬件系統(tǒng)。系統(tǒng)中工業(yè)相機(jī)和光源通過(guò)實(shí)驗(yàn)支架固定在傳送帶正上方。相機(jī)通過(guò)千兆以太網(wǎng)與計(jì)算機(jī)相連。激光雕刻機(jī)通過(guò)鋁合金導(dǎo)軌框架橫跨在傳送帶上,通過(guò)GRBL控制板的USB接口與計(jì)算機(jī)相連,驅(qū)動(dòng)皮帶輪和步進(jìn)電動(dòng)機(jī)進(jìn)行二維平面運(yùn)動(dòng),運(yùn)動(dòng)范圍需位于相機(jī)視野之內(nèi)。傳送帶的電動(dòng)機(jī)與繼電器相連,繼電器通過(guò)千兆以太網(wǎng)與計(jì)算機(jī)相連。
(2)相機(jī)標(biāo)定。在后續(xù)激光雕刻環(huán)節(jié),要求通過(guò)LaserWeb開(kāi)源軟件控制雕刻機(jī)工作。因此,要求學(xué)生編寫(xiě)程序并通過(guò)接口,將要雕刻的圖像坐標(biāo)轉(zhuǎn)換成LaserWeb可識(shí)別的GCode坐標(biāo)。因此,需要先將GCode坐標(biāo)平面和圖像平面進(jìn)行投影標(biāo)定。由于標(biāo)定物是平面,因此將世界坐標(biāo)系構(gòu)造在Z=0的平面上,然后進(jìn)行單應(yīng)性(Homography)計(jì)算。根據(jù)張正友標(biāo)定法[21],此時(shí)世界坐標(biāo)系和圖像坐標(biāo)系的投影式為:
式中:H為一個(gè)3×3的矩陣,其中有一個(gè)元素為齊次坐標(biāo),因此H有8個(gè)待解未知量;s為尺度因子;(X,Y)為L(zhǎng)aserWeb生成的GCode坐標(biāo),是已知量;(u,v)為相機(jī)拍攝的像素坐標(biāo)。一組對(duì)應(yīng)的(X,Y)→(u,v)可以獲得兩組方程?,F(xiàn)有8個(gè)未知量,因此需要4組對(duì)應(yīng)的點(diǎn)來(lái)求解單應(yīng)性矩陣H。學(xué)生首先用LaserWeb以2 cm間隔在雕刻板上雕刻直線網(wǎng)格,然后在相機(jī)拍攝的圖像上提取交叉點(diǎn)坐標(biāo),如圖3所示。將LaserWeb雕刻的交叉點(diǎn)GCode坐標(biāo)和拍攝的交叉點(diǎn)圖像坐標(biāo)按對(duì)應(yīng)順序,通過(guò)OpenCV的findHomography函數(shù)求解H。
求解H之后,將需要雕刻的圖像坐標(biāo)經(jīng)過(guò)投影變換,轉(zhuǎn)換成GCode坐標(biāo)傳遞給LaserWeb,由LaserWeb控制雕刻機(jī)的GRBL控制板進(jìn)行雕刻,同時(shí)顯示雕刻進(jìn)度和位置,如圖4所示。因此學(xué)生需要通過(guò)自行查閱資料和小組分工討論,將LaserWeb代碼集成到小組編寫(xiě)的程序中,這對(duì)鍛煉學(xué)生的集成軟件開(kāi)發(fā)能力有極大的幫助。
(1)目標(biāo)定位。將待雕刻目標(biāo)(方形有機(jī)玻璃板)放置在傳送帶上,控制電動(dòng)機(jī)帶動(dòng)傳送帶,同時(shí)連續(xù)獲取相機(jī)圖像并判斷是否有目標(biāo)出現(xiàn)以及目標(biāo)的位置。學(xué)生通過(guò)程序檢測(cè)圖像中物體的輪廓、周長(zhǎng)和面積,如圖5(a)所示。如果與待雕刻目標(biāo)一致,說(shuō)明目標(biāo)已完全進(jìn)入,如圖5(b)所示。當(dāng)目標(biāo)中心點(diǎn)接近圖像中心時(shí),通過(guò)繼電器停止傳送帶的電動(dòng)機(jī)工作,讓目標(biāo)停止在工作區(qū)域中心,如圖5(c)所示??紤]到延遲問(wèn)題,傳送帶停止后相機(jī)會(huì)重新獲取一張工作區(qū)域的圖像。在該圖像上,對(duì)待雕刻目標(biāo)進(jìn)行最終位置的定位,如圖5(d)所示。
(2)圖像預(yù)處理。目標(biāo)定位之后,對(duì)圖像進(jìn)行預(yù)處理。要求學(xué)生分別采用保邊濾波、泛洪填充、邊緣檢測(cè)和膨脹處理等圖像處理方法。保邊濾波可以調(diào)用OpenCV函數(shù)edgePreservingFilter,目的是保留待雕刻目標(biāo)的圖像邊緣,減少消除傳送帶表面問(wèn)題引入的噪聲干擾,如圖6(a)所示。泛洪填充可以調(diào)用floodFill函數(shù)實(shí)現(xiàn),將雕刻目標(biāo)邊緣外側(cè)的背景全部填充為黑色,以去除背景圖像的噪聲,如圖6(b)所示。邊緣檢測(cè)可以用Canny函數(shù)實(shí)現(xiàn),用于準(zhǔn)確檢測(cè)出待雕刻目標(biāo),如圖6(c)所示。膨脹處理可以用函數(shù)dilate實(shí)現(xiàn),使得目標(biāo)邊緣更加清晰,如圖6(d)所示。
(1)缺陷模型訓(xùn)練。在進(jìn)行缺陷檢測(cè)前,學(xué)生需要先進(jìn)行缺陷模型的訓(xùn)練,這是實(shí)踐課程的難點(diǎn),是對(duì)學(xué)生創(chuàng)新能力的一種訓(xùn)練,要求學(xué)生基于SSD(Single-Shot-Detection)模型并進(jìn)行優(yōu)化。
SSD是基于深度學(xué)習(xí)的單階段目標(biāo)檢測(cè)模型,平衡了YOLO和Faster RCNN的優(yōu)缺點(diǎn),在檢測(cè)精度和檢測(cè)速度上取得了較好的綜合性能。但由于原始SSD模型對(duì)淺層特征圖的表征能力不夠,導(dǎo)致對(duì)小目標(biāo)檢測(cè)能力不足。因此要求學(xué)生采用淺層特征圖融合的方法,優(yōu)化SSD的小目標(biāo)檢測(cè)能力,從而提升模型整體性能。SSD基本模型的特征金字塔由6個(gè)卷積層組成,然而這些卷積層之間不存在任何聯(lián)系,只是單獨(dú)作為分類和回歸網(wǎng)絡(luò)的輸入,如圖7所示。
特征金字塔由下而上,特征圖的尺度逐漸變小,而尺度大的特征圖對(duì)小目標(biāo)檢測(cè)更加敏感。因此,學(xué)生需要將特征金字塔中的淺層特征上采樣,將其與上層特征圖融合,通過(guò)兩次上采樣和8次卷積操作,增強(qiáng)淺層特征圖的細(xì)節(jié)信息表達(dá)能力,從而提高算法性能。改進(jìn)后的SSD模型結(jié)構(gòu)如圖8所示。
SSD模型的先驗(yàn)框設(shè)置遵循線性規(guī)則
式中:m為特征圖數(shù)量;sk為先驗(yàn)框相對(duì)于輸入圖像的比例,第1張?zhí)卣鲌D中的s1初始設(shè)置為0.1。其余5張?zhí)卣鲌D的sk(k=2,3,4,5,6)由計(jì)算所得;smin設(shè)為0.2,smax設(shè)為0.9。
為了覆蓋不同類型的目標(biāo),需要設(shè)定先驗(yàn)框不同的寬高比αr∈{1,2,3,1/2,1/3},對(duì)先驗(yàn)框的寬(wk)和高(hk)進(jìn)行調(diào)整:
模型的損失函數(shù)包含兩個(gè)部分——分類損失和回歸損失:
式中:N為所有樣本數(shù)量;Lconf為分類損失;Lloc為回歸損失;α為權(quán)重系數(shù),用于調(diào)整兩種損失的權(quán)重。分類損失中,x為預(yù)測(cè)框是否匹配到真實(shí)框,若匹配到取1,否則取0;z為預(yù)測(cè)框中目標(biāo)的類別概率?;貧w損失中,l和g為預(yù)測(cè)框和真實(shí)框在圖像中位置。
分類損失采用交叉熵?fù)p失,前半部分為正樣本損失,后半部分為負(fù)樣本損失:
其中,^zci表示第i個(gè)預(yù)測(cè)框中類別為c的概率
當(dāng)c為0時(shí),表示預(yù)測(cè)框中的內(nèi)容是背景。
回歸損失采用smoothL1損失表示:
據(jù)了解,尿素廠檢修重點(diǎn)在造氣、凈化和尿素車間,主要檢修任務(wù)為造氣氣洗塔填料更換、1#-24#爐三氣閥門(mén)更換、1#-6#系統(tǒng)吹風(fēng)機(jī)煤氣管道更換,凈化1#變換系統(tǒng)更換觸媒、冷副線三通更換、低甲1#醇分熱洗及內(nèi)件割除,尿素高壓設(shè)備檢測(cè)、換熱設(shè)備清洗、水解塔塔盤(pán)檢查清洗、高甲冷列管換管、壓力設(shè)備檢測(cè)修補(bǔ)、脫硫塔更換填料等,全廠共計(jì)檢修項(xiàng)目高達(dá)366項(xiàng)。
當(dāng)?shù)趇個(gè)預(yù)測(cè)框匹配到了真實(shí)框j時(shí),xcij為1。其中c表示該真實(shí)框中的目標(biāo)類別;smoothL1損失函數(shù)為
它的優(yōu)點(diǎn)是當(dāng)預(yù)測(cè)框與真實(shí)框較遠(yuǎn)時(shí),其產(chǎn)生大小為±1的梯度,模型會(huì)以較大的梯度向最優(yōu)解方向收斂。而當(dāng)預(yù)測(cè)框與真實(shí)框較近時(shí),產(chǎn)生大小為x的梯度,模型會(huì)以較小的梯度繼續(xù)趨于最優(yōu)解,即
數(shù)據(jù)集為教師事先采集的不同種類和位置的劃痕缺陷數(shù)據(jù)集,一共有1 000張圖片,其中250張為缺陷圖片,包含4種不同種類和位置的劃痕缺陷,如圖9所示。
學(xué)生首先需將數(shù)據(jù)集按照4∶1的比例,隨機(jī)分成訓(xùn)練集和測(cè)試集,然后對(duì)訓(xùn)練數(shù)據(jù)集進(jìn)行數(shù)據(jù)增強(qiáng)。數(shù)據(jù)增強(qiáng)不僅能夠擴(kuò)充數(shù)據(jù)集,還有正則化的作用,有助于提高模型性能。在數(shù)據(jù)增強(qiáng)時(shí),對(duì)圖像進(jìn)行隨機(jī)縮放和隨機(jī)水平翻轉(zhuǎn),縮放系數(shù)在0.5~2之間。同時(shí)對(duì)圖像的寬高比進(jìn)行隨機(jī)調(diào)整,調(diào)整幅度在0.5~1.5之間。最后將訓(xùn)練完成的模型,在測(cè)試數(shù)據(jù)集上驗(yàn)證性能。
(2)空板缺陷檢測(cè)。缺陷模型訓(xùn)練完成后,根據(jù)模型輸出的缺陷區(qū)域,計(jì)算缺陷的面積和長(zhǎng)度。如果大于設(shè)定的閥值,則判定缺陷過(guò)大,不能滿足雕刻要求,否則通過(guò)集成的LaserWeb進(jìn)行雕刻。
(3)雕刻缺陷檢測(cè)。實(shí)際生產(chǎn)過(guò)程中,不僅會(huì)雕刻產(chǎn)品Logo等固定標(biāo)志,還會(huì)雕刻型號(hào)、序列號(hào)等可變內(nèi)容,如圖10所示。因此,首先在圖像上標(biāo)注檢測(cè)區(qū)域(見(jiàn)圖10綠色框)、Logo檢測(cè)區(qū)域(見(jiàn)圖10藍(lán)色框)以及OCR檢測(cè)區(qū)域(見(jiàn)圖10橙色框)。
對(duì)OCR檢測(cè)區(qū)域,采用PaddleOCR進(jìn)行識(shí)別。對(duì)Logo檢測(cè)區(qū)域,系統(tǒng)通過(guò)BF匹配器,將雕刻圖像和模板圖像進(jìn)行特征匹配,特征點(diǎn)分別采用SIFT,AKAZE,KAZE探測(cè)器進(jìn)行提取,各自進(jìn)行特征匹配。根據(jù)最終效果,選擇效果最佳的兩種探測(cè)器及其提取的特征點(diǎn),如圖11所示。
如圖12所示,對(duì)于面積或長(zhǎng)度大于閥值的缺陷區(qū)域,計(jì)算區(qū)域內(nèi)每個(gè)像素點(diǎn)pi到模板輪廓的最短距離di,得到區(qū)域的評(píng)分score:
式中,k為經(jīng)驗(yàn)參數(shù)。
最后將所有缺陷區(qū)域的評(píng)分求和,作為雕刻圖像的整體缺陷評(píng)分。根據(jù)設(shè)定的接受范圍,判定雕刻結(jié)果為通過(guò)或者不通過(guò)。
表1所示為學(xué)生優(yōu)化的SSD模型與Faster RCNN,SSD基本模型和YOLOv3模型對(duì)劃痕缺陷檢測(cè)的精度和速度(幀/s)對(duì)比。經(jīng)過(guò)淺層特征融合優(yōu)化的SSD模型,準(zhǔn)確率、召回率和F1指標(biāo)都有較大的提升,檢測(cè)速度也達(dá)到42.2幀/s,雖然速度不及YOLOv3模型,但已經(jīng)可以滿足實(shí)時(shí)檢測(cè)的需要。圖13所示為學(xué)生小組開(kāi)發(fā)的缺陷檢測(cè)軟件。
表1 空板缺陷檢測(cè)結(jié)果
雕刻缺陷檢測(cè)是通過(guò)圖像特征匹配完成的。因此,首先用LaserWeb雕刻100張圖像,每張圖像的Logo保持不變,型號(hào)和序列號(hào)都不相同。然后學(xué)生先對(duì)每張雕刻圖像進(jìn)行程序評(píng)分,并判定是否通過(guò),如圖14所示。接著用人工方法,對(duì)100張雕刻圖像進(jìn)行復(fù)核,挑出有缺陷的圖像與系統(tǒng)判定的結(jié)果進(jìn)行對(duì)比。最終檢測(cè)結(jié)果,各小組完成的程序?qū)Φ窨倘毕輽z測(cè)的平均精度F1值都能達(dá)到90%~95%,速度可以達(dá)到30~40幀/s。說(shuō)明學(xué)生都能較好地理解并實(shí)現(xiàn)雕刻缺陷圖像特征的提取、匹配和結(jié)果判定,達(dá)到了預(yù)期的綜合實(shí)踐要求。
為了培養(yǎng)學(xué)生對(duì)機(jī)器視覺(jué)理論學(xué)習(xí)和動(dòng)手實(shí)踐能力,對(duì)機(jī)器視覺(jué)算法和系統(tǒng)設(shè)計(jì)的過(guò)程有直觀的感受,以智能制造過(guò)程中激光雕刻缺陷檢測(cè)的需求和過(guò)程為參考,對(duì)機(jī)器視覺(jué)綜合實(shí)踐課程的內(nèi)容和過(guò)程進(jìn)行了教學(xué)設(shè)計(jì)。學(xué)生通過(guò)小組合作的方式,共同完成4個(gè)實(shí)踐環(huán)節(jié)的8項(xiàng)不同難度要求的實(shí)踐任務(wù),綜合運(yùn)用硬件基礎(chǔ)、程序設(shè)計(jì)、圖像處理、自動(dòng)控制和模式識(shí)別等課程的知識(shí),強(qiáng)化了綜合性、系統(tǒng)性和創(chuàng)新性的要求。有效提高了學(xué)生的創(chuàng)新能力、動(dòng)手能力和工程實(shí)踐能力,提升了學(xué)生對(duì)科研創(chuàng)新和專業(yè)知識(shí)的濃厚興趣。