摘 要 為了增強機器視覺與圖像處理課程教學效果與工程實用性,基于HALCON集成開發(fā)環(huán)境,研究開發(fā)一個復雜環(huán)境紙箱識別機器視覺綜合性實驗教學項目。該實驗項目首先使用圖像標注工具Deep Learning Tool對采集到的紙箱圖像進行標注,然后將標注后的文件集成到HALCON環(huán)境中進行訓練,最后通過調(diào)用訓練后的紙箱定位模型驗證機器視覺效果。實驗項目包括學生動手采集紙箱圖像和編寫代碼過程,可有效加深學生對機器視覺理論知識的理解,促進學生工程實踐能力的培養(yǎng)。
關(guān)鍵詞 機器視覺與圖像處理;深度學習;HALCON;實驗教學
中圖分類號:G642.423 文獻標識碼:B
文章編號:1671-489X(2024)18-0132-06
0 引言
機器視覺與圖像處理是一門新工科屬性的強實用性課程,也是一門多學科交叉的綜合性課程,具有數(shù)學公式多、理論原理抽象、學習起點高、理解難度大等特點[1-2]。為了增強課程的教學效果、達成教學目的,課程組面向?qū)嶋H工程應用需求,強化實踐教學,采用梅卡曼德Mech-Eye DEEP系列的3D相機和MVTec公司開發(fā)的HALCON集成開發(fā)環(huán)境,研發(fā)設計復雜環(huán)境紙箱識別機器視覺綜合性實驗教學項目。該項目不僅可以讓學生實際了解工業(yè)界常用機器視覺與圖像處理工具軟硬件平臺,訓練學生的動手能力,也可以以實際工程應用帶動課本理論學習,幫助學生融會貫通抽象的理論知識,提高學習主觀能動性,增強學生在實踐中發(fā)現(xiàn)問題和解決問題的能力,進一步培養(yǎng)學生的思考創(chuàng)新能力、理性批判能力和終身學習能力。
1 HALCON集成開發(fā)環(huán)境簡介
HALCON是德國MVTec公司開發(fā)的一套完善、標準的機器視覺算法軟件包,擁有可交互式集成開發(fā)環(huán)境HDevelop,算子提供C、C++、C#和VB等多種編程語言,用戶可以利用開發(fā)環(huán)境HDevelop直接導出不同語言的程序代碼,從而減少系統(tǒng)開發(fā)的難度,節(jié)約產(chǎn)品成本,縮短軟件開發(fā)周期。
HALCON具有深度學習版本,采用卷積神經(jīng)網(wǎng)絡實現(xiàn)對圖像的異常檢測、分類、目標檢測、實例分割、語義分割和邊緣提取。HALCON在深度學習模塊方面的特色主要體現(xiàn)在代碼集成度高、便捷性高、可視化更加多樣、針對性更強,并且更加容易和傳統(tǒng)算法與深度學習算法相結(jié)合。HALCON在歐美日的工業(yè)界已經(jīng)是公認的具有最佳效能的機器視覺軟件[3-5]。
2 實驗教學項目步驟設計
2.1 圖像采集與標注
圖像數(shù)據(jù)集的搭建是深度學習的基礎。本項目的檢測目標選用工業(yè)生產(chǎn)作業(yè)中常用的紙箱。為此,項目首先采用梅卡曼德Mech-Eye DEEP系列的3D相機在作業(yè)現(xiàn)場實地拍攝各類工況的紙箱圖像,共采集紙箱圖像518張,圖像真實有效,且具有應有的價值。部分紙箱采集圖像如圖1所示。
圖像標注的質(zhì)量會在一定程度上影響網(wǎng)絡訓練的效果。本項目采用數(shù)據(jù)集專用標記軟件Deep Learning Tool對采集的紙箱圖像進行標注,標注后生成的.hdict文件能夠集成到HALCON集成開發(fā)環(huán)境HDevelop中直接進行訓練。與當前流行的圖像標注工具LabelImg相比,Deep Learning Tool的標注界面可視化更高,標注起來更加方便快捷。該軟件提供不同種類的標注方法,如圖像分類、異常檢測、對象檢測、語義分割、實例分割等。
在Deep Learning Tool不同種類的標注中,對象檢測分為軸對齊矩形和自由矩形。軸對齊矩形的對象檢測是簡易的對象檢測方法,使用與坐標軸對齊的矩形包圍框進行標注。自由矩形的對象檢測是進階的對象檢測方法,該方法尤其適用于傾斜對象,也可以計算對象的尺寸。
考慮到紙箱的擺放可能無序、傾斜,紙箱圖像的標注方法采用自由矩形的對象檢測方法。標注界面可以顯示標簽類別、標注框中心點的X坐標和Y坐標、標注框的高度和寬度以及標注框的角度。
2.2 網(wǎng)絡模型構(gòu)建與訓練
深度學習是一系列機器學習的方法集合,其算法結(jié)構(gòu)類似于多層次的神經(jīng)網(wǎng)絡,對大量的訓練樣本圖像進行學習,提取各個層次的特征,使網(wǎng)絡具有判別和推理的能力。
深度學習的本質(zhì)是參數(shù)迭代,學習完成后輸出模型,與傳統(tǒng)的學習模型相比,最明顯的區(qū)別就是網(wǎng)絡更加復雜[6-7]。HALCON中集成的基于深度學習的目標檢測網(wǎng)絡模型及說明如下:
1)pretrained_dl_classifier_alexnet.hdl,該網(wǎng)絡模型適用于簡單的分類任務;
2)pretrained_dl_classifier_compact.hdl,該網(wǎng)絡模型的優(yōu)點是節(jié)省內(nèi)存和提高運行效率;
3)pretrained_dl_classifier_enhanced.hdl,該網(wǎng)絡模型比網(wǎng)絡模型2擁有更多的隱含層,計算更加復雜,因此可以勝任更復雜的任務,但需要更多的內(nèi)存和更長的訓練時間;
4)pretrained_dl_classifier_mobilenet.hdl,基于該網(wǎng)絡模型構(gòu)造的分類器是一個小而低功耗的模型,因此更適合移動和嵌入式視覺應用;
5)pretrained_dl_classifier_resnet50.hdl,該網(wǎng)絡模型適用于更復雜的任務,與網(wǎng)絡模型3的結(jié)構(gòu)不同,相比之下,其訓練更穩(wěn)定、魯棒性更好。
紙箱定位流程如圖2所示,主要實現(xiàn)算子如下。
2.2.1 圖像數(shù)據(jù)預處理
1)通過read_dict算子讀取標注好的數(shù)據(jù)文件并存入數(shù)據(jù)字典DLSample中,DLSample可以充當一個數(shù)據(jù)庫,存儲數(shù)據(jù)的所有必要信息。
2)通過split_dl_dataset算子對紙箱數(shù)據(jù)集進行分割,將數(shù)據(jù)集劃分為訓練集、驗證集和測試集三個部分,占比分別為70%、15%和15%。
3)接著通過create_dict算子創(chuàng)建預處理字典DLModelDetectionParam并通過set_dict_tuple算子設置相關(guān)參數(shù)。
4)通過create_dl_preprocess_param_from_model算子從深度學習網(wǎng)絡中檢索所有必要的預處理參數(shù)。
5)通過preprocess_dl_dataset算子對數(shù)據(jù)進行預處理,預處理后會將數(shù)據(jù)存入磁盤中,這樣可以減少后期訓練的時間。預處理完成后可以使用算子dev_display_dl_data對預處理后的數(shù)據(jù)進行可視化。
2.2.2 模型構(gòu)建
考慮到采集的紙箱圖像數(shù)量較多但種類較為單一,所以選用pretrained_dl_classifier_compact.hdl網(wǎng)絡模型。通過create_dl_model_detections算子創(chuàng)建網(wǎng)絡模型,并通過set_dl_model_param算子設置學習率(learning_rate)、批量大小(batch_size)、迭代次數(shù)(epoch)等模型參數(shù)。
1)學習率是深度學習的一個重要參數(shù),決定訓練期間如何對梯度進行加權(quán),意味著目標函數(shù)是否能以及何時能收斂至局部最小值。
2)批量大小表示在一次迭代中能夠處理的圖像數(shù)量,直接影響網(wǎng)絡訓練速度。
3)迭代次數(shù)是使用訓練集的所有數(shù)據(jù)進行的一次完整訓練過程。
通過train_dl_model算子進行模型訓練,訓練結(jié)束后輸出的最佳模型保存為hdl文件。通過evaluate_dl_model算子對模型進行評估,主要評估指標有全類平均正確率(mean Average Preci-sion,mean_ap)、損失函數(shù)、精確率和召回率等。如果評估指標不夠理想,可以進行模型調(diào)優(yōu),即重新設置參數(shù)訓練。
2.2.3 模型預測
通過算子apply_dl_model調(diào)用訓練好的紙箱定位模型,對測試圖像進行預測。通過算子get_dict_tuple獲取字典中的鍵值,包括定位框所屬類別、推理邊界框的中心點坐標等信息。
2.3 網(wǎng)絡模型評估
數(shù)據(jù)集檢測會產(chǎn)生以下四類檢測結(jié)果:
1)預測正確,原本是正樣本,檢測也為正樣品(TP,真陽性);
2)預測正確,原本是負樣本,檢測也為負樣本(TN,真陰性);
3)預測錯誤,原本是負樣本,檢測為正樣本(FP,假陽性);
4)預測錯誤,原本是正樣本,檢測為負樣本(FN,假陰性)。
其中,正樣本表示前景目標,負樣本表示背景。TP+FP+TN+FN表示樣本總數(shù),TP+FN表示實際正樣本數(shù),F(xiàn)P+TN表示實際負樣本數(shù),TP+FP表示預測結(jié)果為正樣本數(shù)(包括預測正確和預測錯誤的),TN+FN表示預測結(jié)果為負樣本數(shù)(包括預測正確和預測錯誤的)。
對于訓練好的網(wǎng)絡模型需要進行評估,一些重要的性能評估指標介紹如下。
精確率(Precision)表示預測正確的正樣本在全部預測是正樣本中的占比,計算式為:
召回率(Recall)表示預測正確的正樣本在實際所有正樣本中的占比,計算式為:
精確率和召回率的取值在0~1之間,數(shù)值越接近1,目標檢測效果越好。一個好的目標檢測模型精確率和召回率兩項指標越高越好,但是由于置信度閾值設定的不同,這兩個指標的變化趨勢往往相反,因此,在實際檢測場景中需要根據(jù)自己的判斷選擇取舍或者繪制Precision-Recall(簡稱P-R)曲線幫助分析[8],如圖3所示。
根據(jù)P-R曲線提出平均精度(Average Preci-sion,AP)性能指標,一般來說,目標檢測模型越好,AP值越高,其計算式為:
實際的P-R曲線中,召回率是離散的,AP的計算式為:
對于多類別場景,引入mAP(Mean Average Precision),表示多個類別AP的平均值。mAP的大小在0~1之間,值越大,目標檢測效果越好,其計算式為:
式中,N代表總類別數(shù)。
訓練過程中,設置參數(shù)“batch_size”為2,表示一次處理2張圖像數(shù)據(jù)。訓練過程如圖4所示,其中,最上排的圖片是原始輸入的紙箱圖像,中間排的圖片是識別出的實例對象,最下排的圖片是訓練后得到的定位框。
圖5是進行模型訓練時的一些必要參數(shù)信息,圖中顯示正在使用train_dl_model算子進行模型訓練,Epoch表示迭代次數(shù),Iteration表示使用訓練樣本對模型進行的一次參數(shù)更新過程,Time elapsed表示已經(jīng)訓練的時間,Time left表示訓練剩余時間,還給出了評估指標mean_ap和模型參數(shù)的具體信息:學習率learning_rate=0.000 050,批量大小batch_size=2,動量momentum=0.99,正則化參數(shù)weight_prior=0,以及圖片維度image_dimensions=640×480×1,表示圖片為寬度640像素、高度480像素的單通道灰度圖。
圖5還顯示了損失函數(shù)Loss與迭代次數(shù)Epochs的變換曲線,可以看出損失函數(shù)曲線隨著迭代次數(shù)的增加由急劇下降到逐漸平穩(wěn),檢測準確率也在不斷提高。
使用mean_ap(mean Average Precision)指標評估網(wǎng)絡訓練后得到的紙箱定位模型,mean_ap與迭代次數(shù)Epochs的變換曲線如圖6所示??梢姡笜薽AP隨著迭代次數(shù)的增加,由時大時小上升到逐漸平穩(wěn),檢測準確率不斷提高。
3 實驗結(jié)果分析
完成以上實驗步驟以后,學生可以通過算子apply_dl_model調(diào)用訓練好的紙箱定位模型對測試圖像進行預測,觀察機器視覺檢測效果。圖7是基于HALCON集成開發(fā)環(huán)境編寫的界面。
通過算子get_dict_tuple獲取字典中的鍵值。
1)Bbox_Row1:推斷邊界框定義在檢測物體的中心點的行坐標。
2)Bbox_Col1:推斷邊界框定義在檢測物體的中心點的列坐標。
3)Bbox_Length1:推斷邊界框邊1一半的長度。
4)Bbox_Length2:推斷邊界框邊2一半的長度。
5)Bbox_Phi:水平軸和Bbox_Length1之間的角度。
6)Bbox_Confidence:邊界框推理的置信度值。
圖8是紙箱視覺辨識測試結(jié)果圖,辨識結(jié)果顯示所有定位框所屬的類別是paperbox,說明識別出來的都屬于紙箱類別,得到的置信度值分別是1.00、1.00、1.00、0.91和0.85,置信度在0~1之間,置信度越高,表示定位的效果越好。
圖9是獲取到的定位框的具體信息圖,可以得到五個紙箱定位框中心點的行坐標分別為91.384 6、151.61、112.438、237.538和276.904;五個紙箱定位框中心點的列坐標分別為217.464、213.655、264.148、381.125和256.765;五個紙箱定位框邊1一半的長度分別為23.66、23.825 1、19.746、20.887和59.272 4;五個紙箱定位框邊2一半的長度分別為30.697 2、30.127 4、48.306 2、84.397 2和49.152 1;五個紙箱定位框的邊1和水平軸的弧度分別為-0.060 817 4、-0.058 319 9、0.017 574、-0.282 788和-0.010 411 7;五個紙箱定位框的置信度值分別為1.0、1.0、0.999 979、0.911 363和0.854 632。在紙箱定位結(jié)果圖中紙箱定位框的置信度值保留兩位小數(shù)。
學生可以通過調(diào)用訓練好的模型對紙箱圖像測試集進行定位,得到定位結(jié)果和具體定位框參數(shù)信息,且定位結(jié)果良好,置信度接近于1。
4 結(jié)束語
本文運用Deep Learning Tool圖像標注工具和HALCON集成開發(fā)環(huán)境設計開發(fā)了一種機器視覺紙箱定位綜合實驗項目。本實驗項目首先對采集到的紙箱圖像進行標注,然后導入HALCON環(huán)境,進行數(shù)據(jù)預處理、模型構(gòu)建和模型預測,得到紙箱定位最佳模型,最后調(diào)用訓練好的紙箱定位模型,對測試集進行測試,完成對機器視覺紙箱定位效果的驗證。
Deep Learning Tool標注軟件具有各類標注方法,HALCON環(huán)境中也集成了多種檢測方法,學生可以根據(jù)理論知識和實際情況選用不同的標注方法和檢測方法,對各種定位目標進行實驗。本實驗項目不僅可以讓學生鞏固圖像處理理論知識,了解市場上常用的機器視覺開發(fā)軟件,還可以鍛煉學生的編程應用能力、實踐動手能力和創(chuàng)新開發(fā)能力,取得良好的教學效果。
5 參考文獻
[1] 楊澤青,張明軒,陳英姝,等.基于機器視覺的表面缺 陷檢測方法研究進展[J].現(xiàn)代制造工程,2023(4):143- 156.
[2] 鞏師鑫,趙國瑞,王飛.機器視覺感知理論與技術(shù)在煤 炭工業(yè)領域應用進展綜述[J].工礦自動化,2023,49(5): 7-21.
[3] 李穎,段玉坤,秦浩然,等.基于機器視覺Halcon軟件 的齒輪參數(shù)檢測系統(tǒng)[J].機電工程技術(shù),2023,52(3): 188-193.
[4] 程強,黃河,許靜靜,等.一種基于雙目視覺和Halcon 的高效機器人手眼標定方法[J].現(xiàn)代電子技術(shù),2023, 46(13):35-42.
[5] 陳嵐萍,劉寒寒,馬正華.基于Halcon的普通工件目標 檢測方法[J].計算機工程與設計,2018,39(8):2576- 2581.
[6] 楊航,陳瑞,安仕鵬,等.深度學習背景下的圖像三維 重建技術(shù)進展綜述[J].中國圖象圖形學報,2023,28(8): 2396-2409.
[7] 楊鋒,丁之桐,邢蒙蒙,等.深度學習的目標檢測算法 改進綜述[J].計算機工程與應用,2023,59(11):1-15.
[8] 張超.P-R曲線與模型評估問題研究[J].現(xiàn)代信息科 技,2020,4(4):23-24,27.