王冬梅,王 良,孫文然,祁 超,沈建龍
(1.上海船舶工藝研究所,上海 200032;2.廣州文沖船舶修造有限公司,廣東 廣州 511462;3.招商局重工(江蘇)有限公司,江蘇 南通 226116)
在船舶制造企業(yè)中,船舶設(shè)備堆放涉及物資集配、物流傳輸、信息標記、堆場庫位規(guī)劃、入庫和出庫使用等一系列操作,有些船舶設(shè)備屬于進口產(chǎn)品,相關(guān)信息資料為英文描述,現(xiàn)場領(lǐng)料和安裝人員較難在第一時間準確辨識其詳細信息、項目使用和安裝調(diào)試等。行業(yè)內(nèi)的骨干企業(yè)引進智能化船舶設(shè)備立體倉庫,實現(xiàn)船舶設(shè)備倉儲管理無人化。收貨入庫階段的船舶設(shè)備信息識別尤為重要,只有具備快速辨識能力,才能提升管理效率。
船舶設(shè)備具有種類繁多、數(shù)量龐大的特點,在倉庫捕獲的船舶設(shè)備圖像中,背景場景均十分復(fù)雜。目前,在半人工的條件下,識別船舶設(shè)備并獲取其相關(guān)信息較為費時費力,且不夠精確。考慮將深度學(xué)習(xí)應(yīng)用于船舶設(shè)備信息識別,提出一種基于深度學(xué)習(xí)的船舶設(shè)備信息智能化識別模型,建模過程如下:(1)進行船舶設(shè)備圖像預(yù)處理和圖像樣本標記[1],為生成訓(xùn)練/測試數(shù)據(jù)集提供基礎(chǔ);(2)建立卷積神經(jīng)網(wǎng)絡(luò)[2],構(gòu)造模型函數(shù),結(jié)合船舶設(shè)備信息識別特定場景,設(shè)計和設(shè)置模型基礎(chǔ)參數(shù),將生成的數(shù)據(jù)集輸入模型進行訓(xùn)練和評估,并根據(jù)評估結(jié)果對模型進行網(wǎng)絡(luò)框架修改、參數(shù)調(diào)整和結(jié)果測試;(3)對模型投入工業(yè)生產(chǎn)后的算法進行優(yōu)化設(shè)計,滿足工業(yè)生產(chǎn)對船舶設(shè)備信息智能化識別的需要。
船舶設(shè)備圖像預(yù)處理過程如下:(1)通過倉庫攝像頭捕捉大量船舶設(shè)備圖像,在捕捉時應(yīng)注意圖像清晰程度,篩除模糊圖像;(2)將圖像統(tǒng)一裁剪為相同大小并存儲,圖像裁剪需要進行批量處理,將其裁剪為合適尺寸的小圖;(3)進行與視覺相關(guān)的圖像處理,包括圖像降噪、圖像增強和圖像陰影校正等,三者分別屬于圖像算術(shù)運算中的加法運算、減法計算和陣列乘除法運算。
為創(chuàng)建訓(xùn)練/測試數(shù)據(jù)集,應(yīng)對樣本圖像中的船舶設(shè)備種類及其特征信息進行標記。需要特別注意的是:船舶設(shè)備種類繁多且部分船舶設(shè)備相似度較高。可使用標注工具Labelimg進行樣本標記,如圖1所示。
圖1 Labelimg應(yīng)用示例
在標記后生成與圖像對應(yīng)的txt文件,其規(guī)范如下:(1)每行均為一個目標;(2)類別序號由零索引(0)開始;(3)每行坐標格式為class x_center y_center width height;(4)框坐標須采用歸一化的xywh格式(由0至1),若框以像素為單位,則將x_center和width除以圖像寬度,將y_center和height除以圖像高度。
在標記后生成與圖像對應(yīng)的可擴展標記語言(Extensible Markup Language, XML)文件,其規(guī)范如圖2所示。
圖2 與圖像對應(yīng)的XML文件示例
txt文件和XML文件均為樣本標記文件,有利于進行有監(jiān)督學(xué)習(xí),但兩者分別適用于YOLOv5網(wǎng)絡(luò)結(jié)構(gòu)和Keras網(wǎng)絡(luò)結(jié)構(gòu)。
進行數(shù)據(jù)集創(chuàng)建,將樣本圖像全部轉(zhuǎn)化為張量,得到可輸入模型的數(shù)據(jù)樣本。為有利于加速模型收斂,進行數(shù)據(jù)標準化。將數(shù)據(jù)樣本按8∶1的比例分為訓(xùn)練集和測試集。
卷積神經(jīng)網(wǎng)絡(luò)構(gòu)建分為輸入/輸出層構(gòu)建、卷積層構(gòu)建、池化層[3]構(gòu)建、全連接層[4]構(gòu)建和激活函數(shù)與優(yōu)化函數(shù)的輔助應(yīng)用等。
卷積層一般包括多個卷積核[5],其中每個元素均對應(yīng)1個權(quán)重因數(shù)和1個偏差量。為構(gòu)建卷積層,先進行卷積運算提取特征圖,將特征圖通過激活函數(shù)的處理再輸出。特征圖和卷積核均以矩陣形式存在,可進行卷積計算。在卷積過程后會輸出1幅新特征圖,這需要卷積核和特征圖進行多次卷積計算。卷積運算和卷積核滑動如圖3所示。
圖3 卷積運算和卷積核滑動示例
池化層實際是一種降采樣過程,卷積層和池化層的作用與濾波器相似。池化作用是壓縮特征圖,有利于防止過擬合。池化函數(shù)分多種,常用的為最大池化和平均池化。最大池化過程如圖4所示。
圖4 最大池化過程示例
全連接層一般由線性部分和非線性部分組成。全連接層如圖5所示。由圖5可知:從input layer到hidden layer1實際已是一個完整的全連接層轉(zhuǎn)換過程。
圖5 全連接層轉(zhuǎn)換示例
在構(gòu)建卷積神經(jīng)網(wǎng)絡(luò)后,設(shè)計和設(shè)置模型的基礎(chǔ)參數(shù),并將生成的數(shù)據(jù)集輸入模型進行訓(xùn)練和評估。采用成熟的YOLOv5網(wǎng)絡(luò)作為基礎(chǔ)模型,將創(chuàng)建的大量船舶設(shè)備樣本數(shù)據(jù)集輸入其中進行訓(xùn)練和評估,分別輸出訓(xùn)練模式下的損失函數(shù)(loss)與準確率(accuracy)和評估模式下的損失函數(shù)(val_loss)與準確率(val_accuracy),如圖6所示。由圖6可知:在訓(xùn)練后的結(jié)果中,模型識別準確率可達80%~90%。這說明該方法可適用,但準確率仍有待提升。
圖6 訓(xùn)練/評估模式下的損失函數(shù)和準確率
在訓(xùn)練后生成可用于船舶設(shè)備信息識別的卷積神經(jīng)網(wǎng)絡(luò)模型,根據(jù)評估模式下的損失函數(shù)和準確率,對模型進行結(jié)構(gòu)和參數(shù)調(diào)整。調(diào)整方法:增加卷積層和卷積核的深度寬度,有利于提高模型準確率;將學(xué)習(xí)速度(learningrate)調(diào)整至最佳點,一般在初始訓(xùn)練時學(xué)習(xí)速度設(shè)置較大,需要一步一步地進行測試。通過不斷調(diào)整網(wǎng)絡(luò)結(jié)構(gòu)和訓(xùn)練參數(shù),使模型準確率達到期望值,最終生成基于深度學(xué)習(xí)的船舶設(shè)備信息智能化識別模型。將船舶設(shè)備圖像測試數(shù)據(jù)輸入模型,檢驗其識別結(jié)果是否符合真實,評定是否識別成功?;谏疃葘W(xué)習(xí)的船舶設(shè)備信息智能化識別建模應(yīng)用流程如圖7所示。
圖7 基于深度學(xué)習(xí)的船舶設(shè)備信息智能化識別建模應(yīng)用流程
深度學(xué)習(xí)方法應(yīng)用于工業(yè)生產(chǎn)的優(yōu)勢如下:(1)在模型成熟后可完全將生產(chǎn)人工智能(Artificial Intelligence,AI)化,無須手動即可準確識別;(2)單幅圖像預(yù)測的識別時間在1 s內(nèi),大幅加快識別速度,提升船舶設(shè)備倉儲管理效率;(3)模型通過數(shù)據(jù)集的增加進行更新和優(yōu)化,變得更加準確,通過不斷優(yōu)化更加適用于當(dāng)前場景。
在工業(yè)生產(chǎn)中的優(yōu)化方法如下:
(1)將模型應(yīng)用于船舶設(shè)備信息識別過程,收集倉庫日常捕獲的數(shù)據(jù)集,存儲于云端。
(2)每隔一段特定時間,將這些在實際生產(chǎn)中捕獲的船舶設(shè)備圖像大數(shù)據(jù)再次投入模型訓(xùn)練,在樣本量顯著增加后,通過在訓(xùn)練和評估中調(diào)整模型結(jié)構(gòu)和參數(shù),生成新的模型。
(3)循環(huán)往復(fù),進行模型的更新與優(yōu)化,最終提高識別準確率。