畢曉琳,侯卓軒,張瀛天
(廣東東軟學院,廣東 佛山 528225)
鋁型材產(chǎn)品被普遍應用到人們實際生活的許多環(huán)節(jié),比如鋁合金門窗、燈飾等,與人們的生活聯(lián)系密切。鋁棒是鋁型材成品的加工的原料,目前,多數(shù)鋁材廠商采用噸作為包裝單位的方式按重量進行鋁棒原料的采購,但是實際生產(chǎn)中常常要了解掌握的是具體的鋁棒條數(shù),因而要求鋁材廠商對采購的鋁棒實現(xiàn)更快速準確的復核和驗收計數(shù)。目前大多數(shù)鋁材廠對鋁棒的數(shù)量清點工作主要依靠人工清點完成。這種方法不僅造成人力物力的浪費,而且計數(shù)的準確率通常不高,計數(shù)結果難以復核。
隨著計算機科學與技術的發(fā)展日益成熟,鋁材廠商都傾向于使用更加智能的方式來代替一些重復、乏味的人力工作。20 世紀70 年代便有棒材自動識別計數(shù)[1]的實踐。第一種方法是使用機械裝置來分離棒材,然后在機械裝置的基礎上利用光電管實現(xiàn)自動計數(shù)[2],第二種方法是將數(shù)字圖像技術運用到棒材圖像識別和處理中,比如采用模板匹配的方法進行計數(shù)[3],或連通區(qū)域匹配實現(xiàn)棒材計數(shù)的方法[4]。盡管使用圖像處理方法進行計數(shù)的相關技術已經(jīng)比較成熟,但是該類實踐對圖像拍攝背景、圖像采集設備有較高的要求。在上述所提的研究中,棒材都是垂直放置,且拍攝背景是純色,非常容易將背景與棒材分離,但是鋁棒在實際的加工生產(chǎn)過程中,由未經(jīng)培訓非專業(yè)的工人拍攝到的鋁棒圖片大概率不是垂直放置的,且拍攝背景雜亂,因此僅依靠一般的數(shù)字圖像處理方法進行計數(shù)是不符合實際的。
結合卷積神經(jīng)網(wǎng)絡圖像識別算法的優(yōu)點,能夠在復雜環(huán)境中準確識別特征圖像。YOLO 是由Redmon et al.[5]于2016 年提出的一種只完整查看一次圖像的識別模型,YOLO 與其他卷積神經(jīng)圖像識別算法相比,YOLO 模型將對象檢測視為簡單的回歸問題,具有快速、準確的優(yōu)點[6]。本研究使用YOLO 算法作為圖像識別模型,并在使用模型識別之前,采用系列圖像處理算法壓縮輸入模型的信息量,提升訓練和識別速度。
在本研究中,拍攝的鋁棒端面樣本圖像都是來自鋁材生產(chǎn)車間,在自然燈光狀態(tài)下拍攝,樣本圖像背景中有設備、墻體、屋頂?shù)雀蓴_因素。
用手機拍攝共圖像1309 張,其中我們將樣本又分為訓練集、驗證集以及測試集。訓練集是用于模型擬合的數(shù)據(jù)樣本,驗證集是用于調整模型的超參數(shù)和用于對模型的能力進行初步評估。通常用來在模型迭代訓練時,用以驗證當前模型泛化能力,以決定是否停止繼續(xù)訓練。測試集是用來評估最終模型的泛化能力。
使用YOLOv5框架進行目標檢測必須先對圖片進行標注,生成對應的txt文檔。本研究樣本標注使用在線圖像標注軟件Roboflow(https://app.roboflow.com/)。用Roboflow 生成YOLOv5 能夠讀取的標注信息。
由于識別目標為單獨對鋁棒檢測和計數(shù),圖片中沒有其他與鋁棒特征相似的對象,因此我們只標注1個類,名為“Aluminum bar”。圖片總共1309 張,被隨機化分為3 組:943 張為訓練集,266 張為驗證集,100 張為測試集。所有的鋁棒都進行了標注,總的標注6492 個。圖片標注好之后進行導出,導出時將圖片尺寸調整為640*640 像素,以適應YOLOv5 模型。
標注工作完成后,將鋁棒端面彩色圖片進行灰度化處理[7],去除掉圖片原本的色彩信息,簡化了輸入訓練模型的信息量,以達到提高訓練效率的結果。
在真實生產(chǎn)環(huán)境中,拍攝到的鋁棒端面圖像背景相對復雜,鋁棒端面相較復雜背景亮度更高,因此為了使鋁棒端面在背景中更加突出,對鋁棒端面灰度圖作對比度增強[8]的處理,使得鋁棒端面和背景亮度差異更大。為避免復雜背景產(chǎn)生噪點影響模型準確率,將對比度增強后的圖片進行了高斯濾波[9]去噪。
為了進一步縮減圖像信息量,僅將鋁棒端面的形態(tài)信息輸入圖像識別模型進行訓練,我們將去噪后的圖片采用Sobel 算子邊緣提取算法[10]獲取鋁棒形貌信息,至此完成模型訓練前的圖像處理工作。
基于YOLO 模型在圖像識別領域的有著模型簡單、識別準確的優(yōu)點,綜合YOLO 幾種模型的優(yōu)缺點,本研究采用YOLOv5 模型作為圖像識別模型。YOLOv5 的總體架構由四部分構成:輸入端、Backbone、Neck 和Head。
Backbone 部分作為特征提取網(wǎng)絡,主要是由Focus和BottleneckCSP 組成。
Focus 在減少計算量的同時實現(xiàn)下采樣過程,Bottl eneckCSP 是此特征提取網(wǎng)絡的核心。
Neck 部分采用了FPN 與Pan 相結合的結構。Head部分實現(xiàn)輸出的功能,包括檢測的Probability、Score以及Bounding-box。
在本研究的實驗中使用的訓練權重文件為YOLOv5m,使用Google Colab 提供的云GPU 進行訓練。共訓練了三組鋁棒圖片進行測試,581 張圖片需要約7 小時13 分,450張圖片需要5小時23分,178張圖片需要2小時36分。
為了驗證使用圖像處理方法能夠減少模型訓練信息,提高模型訓練速率,本研究做了兩組對比實驗。一組實驗是直接將標注過的圖片與和標注文件輸入YOLOv5 模型進行訓練,以下簡稱Y 模型。另一組實驗則是在模型對圖片進行訓練前,對所有圖片進行上述圖像處理,再將圖片和標注信息輸入YOLOv5 模型進行訓練以下簡稱M+Y 模型。
對于M+Y 模型來說,僅將鋁棒形態(tài)信息輸入模型,大幅壓縮了圖像樣本信息量,因此訓練時間得到大幅縮短。
本研究中,為排除偶然性的結果,采取不同數(shù)量的訓練集和驗證集圖像,輸入Y 模型和M+Y 模型進行訓練,總共訓練3 次YOLOv5 模型,綜合比較訓練時長。每次訓練模型輸入的訓練集、驗證集圖像數(shù)量,以及Y模型與M+Y 模型的訓練時間對比如表1 所示。結果表明,不論訓練集和驗證集圖像數(shù)量多少,采用圖像處理方法先提取有效信息再訓練模型,都能大幅提升訓練速度。M+Y 模型的平均訓練時間僅為Y 模型的15.16%,平均訓練時長大約縮短了85%。
表1 模型和M+Y 模型訓練時長對比
此外,在本研究中,使用準確率作為模型評估的標準,其中準確率分為單張圖片(簡稱單圖)的準確率和總體準確率。單圖準確率定義為:
其中,i為本張圖的序號,AI(Accuracy of one Image)為單圖準確率,AN(Actual Number of aluminum bars)為單圖中實際鋁棒數(shù),DN(Detected Number of aluminum bars)為單圖中檢測出的鋁棒數(shù)量。n 張鋁棒識別圖的總體準確率定義為:
其中,A(n)為n 張圖的總體準確率,AI(Accuracy of one image)為單圖準確率。
運用Y 模型與M+Y 模型通過YOLOv5 訓練,分別得到兩個權重文件,即Y.pt 與MY.pt。分別使用這兩個權重文件對100 張鋁棒圖進行識別與計數(shù),其中100張鋁棒圖包含54 張來自測試集與46 張來自驗證集的圖像。將識別計數(shù)結果統(tǒng)計整理,Y 模型與M+Y 模型的總體準確率如表2 所示。若不采用圖像處理方法,直接將鋁棒彩圖輸入YOLOv5 得到的Y 模型的總體準確率為70%,而采用圖像處理方法得到的M+Y 模型的總體準確率為84%。
表2 Y 模型與M+Y 模型的總體準確率
本研究表明,在對鋁棒端面圖像進行鋁棒識別計數(shù)的實踐中,先采用圖像處理方法提取有效信息,壓縮圖片信息,大幅減少輸入模型訓練的信息量,能夠有效地提高訓練速率,并且由于排除了無關信息造成的誤差,識別計數(shù)的準確率也得到了提升。在本研究中,壓縮鋁棒圖像信息量后,訓練時長僅為未壓縮前的15.16%,訓練速度的大幅提升為實現(xiàn)模型自適應提供了實踐基礎。在真實鋁材加工工廠的生產(chǎn)流程中,各生產(chǎn)線上有大量工人會在不同流程階段在一天內多次使用該鋁棒識別計數(shù)軟件,一天累計新拍攝的鋁棒端面圖像有可能上千張,因此為了模型的優(yōu)化,模型需要自適應地將新拍攝的圖像作為補充訓練樣本,使模型能夠“認識”更多各樣格式排列的鋁棒,從而提高模型的準確率,而在真實生產(chǎn)應用中,如果要頻繁地自適應重新訓練模型,且不耽誤軟件的日常使用,則對模型訓練速度有極高要求。因此,本研究提出的先提取圖像有效信息再進行模型訓練的識別計數(shù)方法,不僅使訓練速度得到大幅提升,而且能提高識別計數(shù)準確率,為棒材識別計數(shù)以及模型自適應發(fā)展提供了新的研究方向。