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