何 師,于 強
(1.中國科學院國家空間科學中心,北京 100192;2.中國科學院大學 計算機科學與技術(shù)學院,北京 101408)
隨著機器視覺,工業(yè)自動化的快速發(fā)展,工業(yè)4.0[1]的概念已經(jīng)被提上日程。傳統(tǒng)很多需要人工來手動操作的工作,漸漸的被機器所替代。神經(jīng)網(wǎng)絡(luò)更是讓計算機視覺有了更廣闊的應(yīng)用場景,它將基于人類視覺的分類[2]、檢測[3]、分割[4]等任務(wù)實現(xiàn)自動化。目標檢測技術(shù)已經(jīng)廣泛應(yīng)用于人臉識別[5]、自動駕駛[6]、工業(yè)生產(chǎn)[7]等領(lǐng)域。
在圖書的生產(chǎn)過程中,圖書的質(zhì)量保證是重中之重。要保證任何一本圖書在出廠時都不能夠有任何的裝訂錯誤。
裝訂過程中出現(xiàn)的錯誤形式如下圖所示,從上至下依次為正確樣本、順序出錯樣本、章節(jié)重復樣本、章節(jié)缺失樣本。
圖1 四種樣本圖書
目前,該項工作主要是由人工來完成,這造成了正版圖書較高的圖書成本,并且很難完全保證圖書質(zhì)量。利用自動化方式來完成圖書質(zhì)量的檢測,是圖書生產(chǎn)過程中必然的趨勢。在圖書裝訂檢測領(lǐng)域,杜萬全先后提出過使用在線稱重[8]、計算機視覺[9]兩種方式,但都只是一種探索和想象,并未真正落地實現(xiàn)。在基于深度學習的目標檢測方面,YOLOv3具有速度快、精度高的特征優(yōu)勢,并且已經(jīng)在很多方面應(yīng)用。本文研究借助于YOLOv3模型,對圖書裝訂進行識別檢測,并使用Qt完成軟件系統(tǒng)的研發(fā)。
圖書裝訂檢測系統(tǒng)由圖像采集模塊、圖書智能識別模塊和后處理模塊三個模塊組成。圖像采集模塊包括工業(yè)CCD相機——大華相機、平行光源、觸發(fā)器。后處理模塊包過氣缸、氣泵、氣閥和一個裝訂有誤圖書的回收裝置。智能識別模塊主要是通過深度學習算法對圖書的裝訂進行識別和檢測。
圖2 系統(tǒng)組成圖(位置檢測)
整個流程如圖3所示。傳送帶上的圖書到達觸發(fā)器位置之后會觸發(fā)相機進行拍照,拍得的照片會通過網(wǎng)線(RJ45)傳送給電腦,軟件首先會對拍到的圖像進行識別,識別分為兩次,第一次識別圖書在整個圖片中的位置,按照識別到的圖書位置對整個圖像進行裁剪。裁剪完之后會再次進行識別,此次識別是識別書脊側(cè)的標志塊,識別完之后提取識別到的標志塊的中點坐標,使用最小二乘法進行線性擬合。通過綜合判斷識別到的標志塊的數(shù)量、擬合得到的參數(shù)和相關(guān)系數(shù),最終得到圖書的裝訂是否有誤。若圖書裝訂結(jié)果正確,則后處理裝置不觸發(fā);若裝訂有誤,則觸發(fā)后處理裝置,彈出回收裝置將圖書截獲。
圖3 系統(tǒng)流程圖
基于深度學習的目標檢測方法主要分為兩類[10]:一種是基于候選區(qū)域的兩階段(Two Stage)目標檢測如FastRCNN[11]、Faster R-CNN[12]等,另一種是基于回歸的單階段(One Stage)目標檢測算法如YOLO[13]和SSD[14]。兩種方法各有利弊,綜合對比各種方式之后選擇YOLOv3作為本系統(tǒng)的檢測模型。
YOLOv3模型無論是精度還是速度都要優(yōu)于其他模型。使用Geoforce 2080Ti OpenCV FP16,Network size=416,fps可以達到159[15]。這個速度滿足了每秒鐘檢測一本樣本圖書所需要的時間要求。
整個系統(tǒng)的兩次識別都是通過YOLOv3模型識別的。在對本地圖書樣本進行標記之后,訓練Github上提供的預訓練的模型[15],將得到的模型用于后期的識別工作中。
為提高識別精度,本文中主要通過修改cfg 文件中的參數(shù)實現(xiàn),例如:使用不同的初始網(wǎng)絡(luò)大小、設(shè)置random=1、訓練模型時設(shè)置layer=23,stride=4。
訓練樣本使用的不同光照強度下的不同種類圖書、同一種圖書不同樣本,共20種圖書1000余個樣本。此外,我們在訓練模型時曾使用在同一光照強度下不同的樣本進行訓練,但最終得到的結(jié)果并不能識別到任何的標志,并且mAP始終為0,由此我們推測,YOLOv3對圖像的亮度敏感。
圖書裝訂結(jié)果是根據(jù)線性擬合的參數(shù)決定的,線性擬合的方式是采用最小二乘法。
設(shè)x和y之間的函數(shù)關(guān)系為y=ax+b,此式中有兩個待定參數(shù),a為斜率,b為截距。對于所得到的N組數(shù)據(jù),xi認為是準確的,所有的誤差只和yi有關(guān)。用最小二乘法估計參數(shù)時,要求觀測值yi的偏差的加權(quán)平方和最小,即:
對a,b分別求一階偏導數(shù):
對a,b再分別求二階偏導數(shù):
令一階偏導數(shù)為0:
解得:
相關(guān)系數(shù)r:
軟件采用Qt5.12進行開發(fā)。主要分為以下幾個部分:相機控制模塊、外部設(shè)備控制模塊、目標檢測與判斷模塊、前端界面模塊。
圖4 系統(tǒng)模塊組成
圖5 主界面功能
相機控制模塊:相機為大華工業(yè)相機,型號為A3600MG18,分辨率為3072*2048,單通道圖像。此模塊主要將大華相機提供的接口集成在軟件中,實現(xiàn)的兩個功能是控制相機的開關(guān)和拉流方式。通過點擊軟件界面上的“打開相機”、“關(guān)閉相機”兩個按鈕,可以實現(xiàn)控制相機的打開和關(guān)閉。點擊界面上的“開始識別”、“停止識別”按鈕,將會改變相機的拉流方式從持續(xù)拉流和外部觸發(fā)之間切換,同時這兩個按鈕也控制著軟件的識別功能的開始和停止。
目標檢測與判斷模塊:此部分的代碼主要是實現(xiàn)兩個接口函數(shù)YOLO和線性擬合。YOLO函數(shù)將相機的數(shù)據(jù)流讀進來,然后進行識別和判斷,同時返回出識別到的所有的小黑塊的位置信息。線性擬合函數(shù)會將上一步Y(jié)OLO返回的位置信息作為輸入,通過最小二乘法擬合直線并將得到的參數(shù)和相關(guān)系數(shù)與給定的值和閾值進行比較,得到最終結(jié)果并返回。
外部設(shè)備控制模塊:此模塊有兩個功能,一個是與光敏傳感器的通信來控制相機的拍照,另一個是當識別到錯誤圖書的時候驅(qū)動外部設(shè)備彈出回收裝置并收回。
最后一個模塊是前端界面模塊。前端界面采用的Qt庫進行開發(fā),集成了前三個模塊的內(nèi)容。界面上包括顯示區(qū)、控制區(qū)和菜單欄。顯示區(qū)顯示相機實時畫面、識別的圖像結(jié)果和文字結(jié)果??刂茀^(qū)設(shè)置了四個按鈕,對應(yīng)了相機控制模塊和目標檢測與判斷模塊。除此之外,軟件還將模型訓練集成到其中,包括樣本的采集(拍照)、樣本標注、模型訓練。菜單欄中單張拍照實現(xiàn)了相機的軟觸發(fā)功能,點擊按鈕相機就會拍照一張。樣本標記是將LabelImg這個軟件集成到其中,點擊按鈕會會將LabelImg這個軟件彈出。參數(shù)調(diào)整會彈窗顯示本次圖書樣本的參數(shù)信息和閾值信息,并且可以根據(jù)使用情況對此進行調(diào)整。
實驗中檢測所用的計算機的配置如表1所示。
表1 測試計算機配置
圖6 識別流程圖
圖7 軟件界面
對9種圖書4096本樣本圖書進行裝訂檢測。系統(tǒng)檢測圖書裝訂準確率ACC為正確檢測的圖書樣本數(shù)占總樣本圖書的比值,如式子。
其中,TP表示實際正確且檢測為正確的樣本個數(shù),F(xiàn)N表示實際正確但是檢測為錯誤樣本的個數(shù),F(xiàn)P表示實際裝訂有誤但是檢測為正確的樣本個數(shù),TN表示實際錯誤且檢測為有誤的樣本個數(shù)。實驗結(jié)果如表2所示。
表2 實驗結(jié)果
由于生產(chǎn)過程中負樣本數(shù)量較少,在實驗過程中手動制造了缺失、重復、亂序三種錯誤在不同厚度的6種圖書(悲慘世界、從0到 1、背影、新華字典、古漢語常用字字典、成語詞典)共36個負樣本,均能將錯誤識別出來。
從實驗結(jié)果可以看出,每種樣本的檢測準確率η≥95%,總體檢測的準確率β≥97%。另一方面,平均每個樣本的檢測時間為100ms,滿足生產(chǎn)線所要求的檢測速度。
本系統(tǒng)開發(fā)完成之后在通州皇家印刷廠的生產(chǎn)線進行線上試驗,通過連續(xù)一周對樣本的檢測,ACC準確率達到96%,每個樣本的檢測時間小于100ms,滿足線上生產(chǎn)需求。
針對圖書裝訂檢測的方法,本文中采用的是使用線性擬合的方式對識別到的結(jié)果進行判斷,除此之外還可以通過對識別到的結(jié)果進行仿射變換再通過模板匹配的方式進行判斷。
總體來說,此套圖書檢測系統(tǒng),具有十分廣闊的應(yīng)用前景,基本可以滿足現(xiàn)在國內(nèi)所有的圖書印刷行業(yè)的檢測問題。并且隨著工業(yè)智能化的不斷推進,機器視覺一定會被廣泛的引用到圖書生產(chǎn)過程檢測中。