譚 任,唐 忠,王鴻亮,王 帥
1(沈陽(yáng)化工大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,沈陽(yáng) 110027)
2(中國(guó)科學(xué)院大學(xué),北京 100049)
3(中國(guó)科學(xué)院 沈陽(yáng)計(jì)算技術(shù)研究所,沈陽(yáng) 110168)
隨著信息技術(shù)不斷發(fā)展,將傳統(tǒng)制造與信息技術(shù)相結(jié)合而形成的智能制造更是取得突飛猛進(jìn)的成績(jī),在全球范圍內(nèi)逐漸成為制造業(yè)發(fā)展趨勢(shì).第四次工業(yè)革命到來(lái),智能制造站上風(fēng)口,由此而衍生出新的生產(chǎn)方式,產(chǎn)業(yè)形態(tài),商業(yè)模式.我國(guó)提出《中國(guó)制造2025》規(guī)劃,把智能制造放在了主體地位,逐漸將傳統(tǒng)制造往智能制造方向引導(dǎo)轉(zhuǎn)型.智能制造產(chǎn)業(yè)鏈所蘊(yùn)藏的巨大益處在逐漸被挖掘,高效性,便捷性,安全性為市場(chǎng)注入了新的活力.
在傳統(tǒng)制造中,裝配是生產(chǎn)過程中重要的一環(huán),隨著智能制造的不斷發(fā)展,裝配環(huán)節(jié)也越來(lái)越智能化.
隨著中國(guó)汽車行業(yè)競(jìng)爭(zhēng)日益增強(qiáng),對(duì)生產(chǎn)出來(lái)的汽車質(zhì)量的要求也越來(lái)越嚴(yán)格[1].以往,在裝配環(huán)節(jié)中,裝配件在經(jīng)人工裝配過后還需使用大量人工來(lái)進(jìn)行復(fù)核,才能最后提交.這過程存在以下幾點(diǎn)問題可以進(jìn)行優(yōu)化:(1)復(fù)核過程又使用大量人工,消耗太多人力資源.(2)大量復(fù)雜的裝配件使人工學(xué)習(xí)的成本非常高.(3)使用人工會(huì)給裝配結(jié)果帶來(lái)不確定性.尤其是在人工長(zhǎng)時(shí)間工作過后,裝配精度會(huì)下降,給后續(xù)復(fù)核人員帶來(lái)巨大壓力.
隨著深度學(xué)習(xí)的廣泛應(yīng)用,目標(biāo)檢測(cè)的精確度和效率都得到了較大提升[2],被廣泛使用于智能制造領(lǐng)域.張麗秀等人[3]使用改進(jìn)的YOLOv3 算法對(duì)汽車前臉進(jìn)行識(shí)別,該算法對(duì)小目標(biāo)檢測(cè)效果并不好,余永維等人[4]與張靜等人[5]在訓(xùn)練YOLOv3 算法模型的時(shí)候采用的數(shù)據(jù)集較小,有過擬合的表現(xiàn).曹之君等人[6]改進(jìn)的Faster RCNN 算法,與魏中雨等人[7]使用的Mask RCNN 算法識(shí)別目標(biāo)的準(zhǔn)確度較低,不適合工業(yè)生產(chǎn)環(huán)境.王帥等人[8]基于混合現(xiàn)實(shí)進(jìn)行零件檢測(cè),在檢測(cè)過程中使用的VR 設(shè)備較為昂貴,工業(yè)生產(chǎn)環(huán)境中全員配備較為困難.同時(shí),將VR 眼鏡采集到的數(shù)據(jù)傳送到服務(wù)器端,再經(jīng)過服務(wù)器端計(jì)算,最后將結(jié)果返回到眼鏡,這一過程所消耗時(shí)間較長(zhǎng).為此,本文使用高性能嵌入式設(shè)備,在已有的車間裝配檢測(cè)的相關(guān)研究基礎(chǔ)上,采用優(yōu)秀目標(biāo)檢測(cè)算法,有效提高目標(biāo)檢測(cè)準(zhǔn)確率,減少目標(biāo)識(shí)別消耗時(shí)間,降低硬件使用成本.
隨著計(jì)算機(jī)視覺技術(shù)的飛速發(fā)展,工業(yè)領(lǐng)域?qū)哂凶R(shí)別功能的視覺識(shí)別系統(tǒng)的需求不斷增加[9].基于深度學(xué)習(xí)的汽車內(nèi)飾件裝配檢測(cè)系統(tǒng)在汽車內(nèi)飾件裝配過程中,可以有效的減少使用人工的數(shù)量,降低成本,提高裝配件復(fù)核效率.
在傳送帶上方安裝顯示器和視像頭,將顯示器和攝像頭與內(nèi)部搭載汽車內(nèi)飾件裝配檢測(cè)系統(tǒng)的英偉達(dá)開發(fā)板(Jetson Xavier NX)相連接,如圖1所示.員工在傳送帶旁裝配汽車內(nèi)飾件,上方攝像頭對(duì)準(zhǔn)員工操作區(qū)域,將采集的數(shù)據(jù)傳輸?shù)接ミ_(dá)開發(fā)板進(jìn)行實(shí)時(shí)目標(biāo)檢測(cè).當(dāng)員工裝配完后,可以在對(duì)面的顯示器中看到英偉達(dá)開發(fā)板對(duì)裝配完的汽車內(nèi)飾件的檢測(cè)結(jié)果.如果檢測(cè)結(jié)果符合預(yù)期的汽車內(nèi)飾件裝配結(jié)果,則通過復(fù)核,直接提交.如果檢測(cè)結(jié)果不符合預(yù)期的汽車內(nèi)飾件裝配結(jié)果,則預(yù)警,提示員工修改.
圖1 汽車內(nèi)飾件裝配工作環(huán)境
優(yōu)化汽車內(nèi)飾件裝配過程的核心是英偉達(dá)內(nèi)搭載的汽車內(nèi)飾件裝配檢測(cè)系統(tǒng),系統(tǒng)架構(gòu)設(shè)計(jì)分成3 層,分別是數(shù)據(jù)層,平臺(tái)層和應(yīng)用層.數(shù)據(jù)層是完成對(duì)數(shù)據(jù)的處理,先采集數(shù)據(jù)得到原始數(shù)據(jù),再對(duì)數(shù)據(jù)進(jìn)行標(biāo)注,制作數(shù)據(jù)集,將數(shù)據(jù)集傳入下一層供平臺(tái)層使用;平臺(tái)層是在嵌入式設(shè)備搭建機(jī)器學(xué)習(xí)平臺(tái),分別訓(xùn)練Faster RCNN 與YOLOv5,完成對(duì)兩個(gè)模型的評(píng)估,選擇最優(yōu)模型進(jìn)行目標(biāo)檢測(cè);應(yīng)用層主要是完成人機(jī)交互等操作.具體系統(tǒng)構(gòu)架如圖2所示.
圖2 汽車內(nèi)飾件檢測(cè)構(gòu)架圖
制作的汽車內(nèi)飾件數(shù)據(jù)集中包含5 847 張圖片,大小1.6 GB.其中含5 種汽車內(nèi)飾件,每種汽車內(nèi)飾件具體特征標(biāo)注情況如表1所示.
表1 汽車內(nèi)飾件具體特征標(biāo)注情況
英偉達(dá)開發(fā)板(Jetson Xavier NX)是外形小巧的AI 超級(jí)計(jì)算機(jī),可為邊緣系統(tǒng)提供超級(jí)計(jì)算機(jī)性能.70 mm × 45 mM的開發(fā)板擁有高達(dá) 21 TOPS 的加速計(jì)算能力,為并行運(yùn)行現(xiàn)代神經(jīng)網(wǎng)絡(luò)并處理來(lái)自多個(gè)高分辨率傳感器的數(shù)據(jù)提供有力支持.同時(shí),英偉達(dá)開發(fā)板擁有低功耗,散熱性好的特點(diǎn),即便開發(fā)板全力運(yùn)行,也只要15 W 功耗.將風(fēng)扇設(shè)置好參數(shù),開發(fā)板GPU 核心位置也不會(huì)超過50 度.具體英偉達(dá)開發(fā)板外觀如圖3所示.
圖3 英偉達(dá)開發(fā)板
首先給Nvidia Jetson Xavier NX 燒寫JetPack.
官方純凈鏡像文件,該鏡像文件中已經(jīng)自帶OpenCV 4.1,Cuda 10.2,Cudnn 7.63,無(wú)需再另安裝.在Ubuntu 18 系統(tǒng)下部署Python 3.6 環(huán)境,安裝以下依賴包.具體如表2所示.
表2 環(huán)境依賴包詳情
系統(tǒng)的核心內(nèi)容是對(duì)汽車內(nèi)飾件的檢測(cè).以已經(jīng)采集到的汽車內(nèi)飾件數(shù)據(jù)為依據(jù),訓(xùn)練模型得到權(quán)重文件,應(yīng)用權(quán)重將工業(yè)攝像頭拍攝到的汽車內(nèi)飾件進(jìn)行識(shí)別.
目標(biāo)檢測(cè)屬于計(jì)算機(jī)視覺的一個(gè)基本任務(wù),該任務(wù)可以細(xì)化為目標(biāo)定位與目標(biāo)識(shí)別兩個(gè)任務(wù).目前主流的目標(biāo)檢測(cè)方法分為兩類:(1)單階段目標(biāo)檢測(cè)方法;(2)雙階段目標(biāo)檢測(cè)方法.單階段目標(biāo)檢測(cè)方法是直接回歸目標(biāo)的位置坐標(biāo)值和目標(biāo)的類別概率,主要有YOLO[10]算法和SSD[11]算法,雙階段目標(biāo)檢測(cè)方法是先生成一系列樣本候選框,然后剔除掉框出背景的候選框,最后對(duì)候選框中的目標(biāo)進(jìn)行分類,主要有RCNN[12]算法,Fast-RCNN[13]算法,Faster RCNN[14]算法,雙階段目標(biāo)檢測(cè)算法速度相對(duì)較慢訓(xùn)練較困難但是準(zhǔn)確率高,單階段目標(biāo)檢測(cè)算法準(zhǔn)確率沒有雙階段目標(biāo)檢測(cè)算法高但是速度較快.分別選取單階段目標(biāo)檢測(cè)方法中的YOLOv5 和雙階段目標(biāo)檢測(cè)方法中的Faster RCNN對(duì)數(shù)據(jù)集進(jìn)行訓(xùn)練,選取較優(yōu)模型作為汽車內(nèi)飾件檢測(cè)系統(tǒng)的核心檢測(cè)方法.
3.3.1 YOLOv5 模型實(shí)驗(yàn)分析
YOLOv5 的網(wǎng)絡(luò)結(jié)構(gòu)主要由輸入端、Backbone、Neck、Head 構(gòu)成.YOLOv5 的輸入端對(duì)數(shù)據(jù)集進(jìn)行mosaic 數(shù)據(jù)增強(qiáng)后傳入后續(xù)網(wǎng)絡(luò).YOLOv5 的Backbone部分是檢測(cè)網(wǎng)絡(luò)的主干,網(wǎng)絡(luò)提取出圖像的高中低層的特征.YOLOv5 的Neck 部分主要用于生成特征金字塔,特征金字塔會(huì)增強(qiáng)模型對(duì)于不同縮放尺度對(duì)象的檢測(cè),從而能夠識(shí)別不同大小和尺度的同一個(gè)物體.YOLOv5 的Head 部分進(jìn)行最終檢測(cè).
GIoU作為YOLOv5 的損失函數(shù),具體算法是兩個(gè)任意框A,B,找到一個(gè)最小的封閉形狀C,讓C可以把A,B包含在內(nèi),接著計(jì)算C中沒有覆蓋A和B的面積占C總面積的比值,然后用A與B的IoU減去這個(gè)比值.公式如下:
訓(xùn)練模型初始,參數(shù)的選擇對(duì)模型的訓(xùn)練速度和結(jié)果的精度都有影響,甚至參數(shù)選擇錯(cuò)誤會(huì)導(dǎo)致模型在搭建的平臺(tái)訓(xùn)練不下去.經(jīng)過多次實(shí)驗(yàn),均衡模型訓(xùn)練速度和結(jié)果的精確性,設(shè)置參數(shù)batch-size 為16,epochs 為300,workers 為2,使用默認(rèn)超參數(shù)學(xué)習(xí)率為0.01,學(xué)習(xí)率動(dòng)量為0.937,權(quán)重衰減系數(shù)為0.000 5.使用YOLOv5 訓(xùn)練已制作的數(shù)據(jù)集,訓(xùn)練過程圖片如圖4、圖5所示.
圖4 訓(xùn)練過程圖
圖5 訓(xùn)練過程圖
使用深度學(xué)習(xí)輕量級(jí)可視化工具Wandb 查看訓(xùn)練結(jié)果,訓(xùn)練過程中的損失值變化曲線如圖6所示,PR 曲線如圖7所示,準(zhǔn)確率如表3所示.
圖6 訓(xùn)練過程中的損失曲線
圖7 Precision-Recall 曲線圖
表3 特征檢測(cè)準(zhǔn)確率
從圖6 中可以看出,在迭代50 次之前模型的損失值下降的非常快,在迭代50 次到300 次之間,模型的損失值下降就很緩慢了,達(dá)到迭代300 次,此時(shí)模型的損失值就已經(jīng)非常小了.由此可見本次實(shí)驗(yàn)訓(xùn)練的模型是好的.
PR 曲線中,縱坐標(biāo)Precision,準(zhǔn)確率,表示預(yù)測(cè)結(jié)果中,預(yù)測(cè)為正樣本的樣本中,正確預(yù)測(cè)為正樣本的概率;橫坐標(biāo)Recall,召回率,表示在原始樣本的正樣本中,最后被正確預(yù)測(cè)為正樣本的概率.Precision 和Recall是分類性能評(píng)估的重要指標(biāo).在實(shí)際當(dāng)中,我們往往希望得到的準(zhǔn)確率和召回率都比較高.從圖7 中可以看出本次的訓(xùn)練,準(zhǔn)確率和召回率都很高,是比較好的結(jié)果.
從表3 中可以看出,最后的識(shí)別效果很好,13 個(gè)特征的識(shí)別率都在0.95 以上.
3.3.2 Faster RCNN 模型實(shí)驗(yàn)分析
Faster RCNN 有4 個(gè)主要內(nèi)容.卷積層,用于提取圖片的特征,輸入為整張圖片,輸出為提取出的特征,簡(jiǎn)稱為feature maps.RPN 網(wǎng)絡(luò),用于生成候選區(qū)域(region proposals).ROI Pooling,該層收集輸入的feature maps 和proposals,綜合這些信息后,提取proposal feature maps,得到固定尺寸的feature map,然后送入后續(xù)全連接層判定目標(biāo)類別.分類和回歸,這一層的輸出是最終目的,輸出候選區(qū)域所屬的類,和候選區(qū)域在圖像中的精確位置.
從圖8 中可以看出,在模型迭代開始,模型總的損失值就快速的下降到了1.0 以下,在迭代到10 000 次之后模型總的損失值是一直在0.5 以下,在迭代完成后,可見模型總損失值非常小,模型最終實(shí)現(xiàn)收斂,顯示出本次訓(xùn)練的模型是好的.特征檢測(cè)準(zhǔn)確率如表4所示.
圖8 訓(xùn)練過程中的損失曲線
表4 特征檢測(cè)準(zhǔn)確率
從表4 中可以看出,最后的識(shí)別效果也不錯(cuò),但是沒有YOLOv5 的測(cè)試結(jié)果好.雖然說(shuō)雙階段目標(biāo)檢測(cè)方法在大物體目標(biāo)檢測(cè)上比單階段目標(biāo)檢測(cè)方法要有更高的準(zhǔn)確率,但是在小目標(biāo)檢測(cè)上,卻沒有更好的表現(xiàn).這里YOLOv5 的檢測(cè)效果比Faster RCNN 的檢測(cè)效果更好,是因?yàn)閅OLOv5 在前面的網(wǎng)絡(luò)中融合了更多的語(yǔ)義特征,對(duì)小目標(biāo)檢測(cè)進(jìn)行了優(yōu)化.
汽車內(nèi)飾件裝配檢測(cè)系統(tǒng)將工業(yè)攝像頭采集到的汽車內(nèi)飾件圖片,通過YOLOv5算法識(shí)別出汽車內(nèi)飾件關(guān)鍵特征,將識(shí)別后的結(jié)果存入數(shù)據(jù)庫(kù)中.Java Web 程序從數(shù)據(jù)庫(kù)中讀取,將汽車內(nèi)飾件特征的檢測(cè)情況展示在網(wǎng)頁(yè)頁(yè)面上,并根據(jù)汽車內(nèi)飾件的特征分類及數(shù)量最終確定汽車內(nèi)飾件的分類.
員工在裝配完汽車內(nèi)飾件后,可以實(shí)時(shí)在屏幕上看到汽車內(nèi)飾件裝配檢測(cè)系統(tǒng)反饋的裝配結(jié)果,如果裝配后的汽車內(nèi)飾件成功被識(shí)別到了預(yù)設(shè)的分類,則提交通過,否則提示員工進(jìn)行修改,員工可根據(jù)識(shí)別到的汽車內(nèi)飾件關(guān)鍵特征對(duì)未通過的內(nèi)飾件修改,然后進(jìn)行再一次提交.汽車內(nèi)飾件裝配檢測(cè)系統(tǒng)反饋結(jié)果具體如圖9、圖10所示.
圖9 系統(tǒng)運(yùn)行圖1
圖10 系統(tǒng)運(yùn)行圖2
為優(yōu)化汽車內(nèi)飾件裝配過程,減少對(duì)裝配后的汽車內(nèi)飾件進(jìn)行質(zhì)量檢測(cè)所花費(fèi)的時(shí)間.本系統(tǒng)采用YOLOv5算法,實(shí)現(xiàn)了對(duì)汽車內(nèi)飾件的實(shí)時(shí)檢測(cè),并取得了很好的效果.雖然人工在裝配過程中依然有很大的作用,無(wú)法被完全替代,但是設(shè)計(jì)的汽車內(nèi)飾件裝配檢測(cè)系統(tǒng)可以輔助人工在汽車內(nèi)飾件裝配后立刻進(jìn)行復(fù)核,不需要再額外抽調(diào)人工進(jìn)行復(fù)核,很大程度上避免了人力資源的浪費(fèi),減少人工的學(xué)習(xí)成本,提高裝配環(huán)節(jié)的效率及裝配結(jié)果的確定性.系統(tǒng)對(duì)標(biāo)號(hào)2 和4 的汽車內(nèi)飾件檢測(cè)準(zhǔn)確率在0.98 以下,仍需要進(jìn)一步優(yōu)化.