劉興 錢(qián)進(jìn)
一汽-大眾汽車(chē)有限公司佛山分公司,中國(guó)·廣東 佛山 528000
圖像識(shí)別是指計(jì)算機(jī)對(duì)圖片進(jìn)行讀取,解析圖片中的信息,依據(jù)于智能識(shí)別算法,對(duì)圖像進(jìn)行處理、分析、識(shí)別、分類(lèi)。CNN 的快速發(fā)展,大大提升了圖像識(shí)別處理的能力[1]。
在汽車(chē)在生產(chǎn)過(guò)程中需要安裝多根線束,因?yàn)榫€束形狀的特異性等,主要依靠人工進(jìn)行安裝,在安裝過(guò)程中如果發(fā)生錯(cuò)裝漏裝等現(xiàn)象,不易第一時(shí)間發(fā)現(xiàn)問(wèn)題,一旦出現(xiàn)問(wèn)題就會(huì)產(chǎn)生較大的返工維修等,會(huì)造成巨大的損失。
針對(duì)上述錯(cuò)漏裝不易發(fā)現(xiàn)的問(wèn)題,而且為了實(shí)現(xiàn)最低成本實(shí)現(xiàn)預(yù)防的問(wèn)題,論文主要描述了一套基于樹(shù)莓派,通過(guò)python、OpenCV、CNN 模型來(lái)實(shí)現(xiàn)汽車(chē)線束圖像識(shí)別的方法,從而杜絕錯(cuò)漏裝的現(xiàn)象。本系統(tǒng)通過(guò)python snap7 與線體PLC 通信來(lái)獲取當(dāng)前車(chē)輛信息和車(chē)輛所處的位置;其次利用OpenCV 進(jìn)行拍照然后對(duì)拍攝圖像進(jìn)行預(yù)處理;再利用CNN 進(jìn)行圖像識(shí)別分類(lèi);最后利用樹(shù)莓派外接相應(yīng)的報(bào)警設(shè)施最終實(shí)現(xiàn)錯(cuò)漏裝或者安裝不到位的報(bào)警[2],該系統(tǒng)具有低成本、低功率、高準(zhǔn)確率的特點(diǎn)。
主要包含3 大模塊,分別為車(chē)輛信息采集模塊、圖像采集模塊,圖像識(shí)別模塊。
車(chē)輛信息采集模塊:利用python-snap7 與plc s7-300 實(shí)時(shí)通訊獲得固定位置車(chē)輛到達(dá)信息,作為后續(xù)拍照、分析啟動(dòng)的先決條件。
圖像采集模塊:利用OpenCV 進(jìn)行現(xiàn)場(chǎng)圖片采集并進(jìn)行降噪、灰度處理、像素大小處理。
圖像識(shí)別模塊:利用遷移學(xué)習(xí),訓(xùn)練自己的網(wǎng)絡(luò)模型,將采集處理后的圖片與模型對(duì)比分析,判斷安裝狀態(tài)
在汽車(chē)生產(chǎn)過(guò)程因?yàn)槎嘬?chē)型并線生產(chǎn),故線束安裝狀態(tài)有多種情況,這里暫時(shí)以兩種車(chē)型安裝后的狀態(tài)為初始圖片集合。利用樹(shù)莓派和UVC 相機(jī)共收集auok、aunook、vwok、vwnook 四種狀態(tài)下1112 張圖片,圖片大小為640*480px。然后對(duì)圖片進(jìn)行二極化灰度處理,因?yàn)樵跇颖九臄z過(guò)程中,因?yàn)橄鄼C(jī)自身的問(wèn)題及信號(hào)傳輸?shù)目赡軙?huì)收到信號(hào)干擾問(wèn)問(wèn)題,會(huì)導(dǎo)致圖片中通常會(huì)產(chǎn)生高斯噪聲和椒鹽噪聲,會(huì)出現(xiàn)影響視覺(jué)判斷的黑白像素點(diǎn),論文利用OpenCV的cv2.blur()均值濾波函數(shù)對(duì)其進(jìn)行降噪處理,其濾波核ksize 為(5,5)[3]。
并根據(jù)卷積神經(jīng)網(wǎng)絡(luò)的計(jì)算要求,對(duì)圖片進(jìn)行歸一化處理,確保圖片大小等為標(biāo)準(zhǔn)形式[4]。
式中:xi 為圖像像素點(diǎn)值;min(x)、max(x)分別為圖像像素的最小值與最大值。
為了數(shù)據(jù)統(tǒng)一處理,Tensorflow 框架使用的圖片數(shù)據(jù)格式為T(mén)FRecord 格式,其可以將各種數(shù)據(jù)類(lèi)型轉(zhuǎn)換為tensorflow 可以識(shí)別的數(shù)據(jù),在python 中,其主要依靠TFRecordWriter 存入到Example 協(xié)議內(nèi)存中,更易應(yīng)用于神經(jīng)網(wǎng)絡(luò)框架中[4]。
卷積神經(jīng)網(wǎng)絡(luò)為當(dāng)前最為火爆的深度學(xué)習(xí)網(wǎng)絡(luò)學(xué)習(xí)的一種,其主要為識(shí)別二維圖形,通過(guò)卷積層和池化層交替連接,最終通過(guò)全連接層輸出分類(lèi)結(jié)果[5]。
本系統(tǒng)利用TensorFlow 框架自主搭建一個(gè)簡(jiǎn)易的卷積神經(jīng)網(wǎng)絡(luò),分別為→卷積層→池化層→卷積層→池化層→卷積層→全連接層→全連接層→回歸分類(lèi)層(見(jiàn)表1)。
表1 網(wǎng)絡(luò)結(jié)構(gòu)
讀取存儲(chǔ)的tfrecord格式數(shù)據(jù)集,并聲明程序所需的變量,包含圖像的高寬、圖像分類(lèi)種類(lèi)、訓(xùn)練次數(shù),學(xué)習(xí)率,batch 等,利用Tensorflow 的tf.train.Saver( ).save(sess,path)保存訓(xùn)練好的模型。
為便于操作,利用智能語(yǔ)音控制模塊采集語(yǔ)音,通過(guò)RXTX 串口協(xié)議,將語(yǔ)音信號(hào)作為啟動(dòng)條件,然后通過(guò)snap7 獲取車(chē)輛信息,作為拍照程序的啟動(dòng)信號(hào)二,并拍攝當(dāng)前狀態(tài)照片,然后對(duì)當(dāng)前照片進(jìn)行降噪、灰度二值化、圖片大小統(tǒng)一等處理,然后載入訓(xùn)練好的預(yù)測(cè)模型中,進(jìn)行驗(yàn)證測(cè)試。
論文提出了一種基于CNN 和OpenCV,利用樹(shù)莓來(lái)解決汽車(chē)線束安裝是否錯(cuò)漏裝的解決方案。其主要利用Tensorflow 平臺(tái)構(gòu)建一個(gè)7 層的CNN,利用OpenCV 對(duì)拍攝的圖片進(jìn)行降噪處理,利用樹(shù)莓派處理能力進(jìn)行圖像識(shí)別分類(lèi)。
本系統(tǒng)主要有車(chē)輛信息采集模塊、圖像采集模塊,圖像識(shí)別模塊系統(tǒng)三大模塊,利用了CNN、OpenCV、GPIO、語(yǔ)音模塊、UVC、樹(shù)莓派,構(gòu)建了低成本、低功耗的汽車(chē)線束安裝識(shí)別系統(tǒng),拓展了圖像識(shí)別在汽車(chē)制造領(lǐng)域的使用場(chǎng)景。