向林浩,鄭佳楠,周國豪,劉銳,劉偉建
(1.中國船級社,北京 100007;2.南京智慧水運科技有限公司,南京 210001)
隨著卷積神經(jīng)網(wǎng)絡(convolutional neural networks,CNN)等深度學習方法的發(fā)展,利用其開展圖像識別的效果已經(jīng)超過傳統(tǒng)的圖像識別方法。無人機、機器人等新型裝備在船舶檢驗中得到越來越廣泛的應用。在長時間的作業(yè)過程中,這些設備將采集大量的圖像數(shù)據(jù),需要驗船師對圖像實時保持關注并判斷船舶狀況,易導致視覺疲勞。因此,有必要將基于深度學習的圖像識別技術引入船舶檢驗領域,快速地識別出無人機、機器人等新型裝備所采集的船體結構圖像中的典型結構節(jié)點,便于后續(xù)進一步對典型節(jié)點是否存在腐蝕、裂紋、變形等缺陷開展目標檢測,也便于自動保存節(jié)點圖像作為檢驗證據(jù)留存。
為了保證典型船體結構節(jié)點檢測的準確率和效率,提出開發(fā)一種基于Faster R-CNN算法的深度神經(jīng)網(wǎng)絡模型用于船舶大型肘板趾端(以下簡稱“趾端”)結構與縱骨貫穿結構的目標檢測,建立不同類型船舶的趾端結構與縱骨貫穿結構數(shù)據(jù)集,并對樣本數(shù)據(jù)進行清理和數(shù)據(jù)增強。采用遷移學習的方式訓練出用于趾端結構和縱骨貫穿結構檢測的Faster R-CNN算法模型,通過無人機實際拍攝的趾端與縱骨貫穿結構視頻,驗證該算法模型。
結合船體結構圖像樣本存在的結構形式及布置復雜、缺陷形態(tài)復雜、圖像噪聲、光照條件與拍攝角度差異性大等因素,分析船體結構圖像樣本采集與分類要求、數(shù)據(jù)集標準等,以保證算法模型的收斂性以及泛化能力,避免因船體結構數(shù)據(jù)集質量導致典型結構節(jié)點的目標檢測算法模型訓練存在欠擬合、過擬合、不收斂等問題。
采集到的趾端結構、縱骨貫穿結構圖像示例見圖1。
圖1 數(shù)據(jù)采集示意
結合目前主流的深度學習目標識別算法對數(shù)據(jù)集的要求,利用主流的數(shù)據(jù)標注工具對典型船體結構節(jié)點開展數(shù)據(jù)標注工作。質量好的船體結構數(shù)據(jù)集應具有以下2種特征:①可供標注的船體結構樣本圖像正負樣本比重一定,且樣本量多;②船體結構節(jié)點標注質量高。標注品質取決于人工標注時對圖像像素點的位置判斷精準度,人工標注的像素點越接近于被標注船體結構節(jié)點的邊緣像素,則標注質量就越高。需要標注者在標注工作中保持較高的專業(yè)性和專注度。若一份標注工作的精確率要求為100%,則像素點與被標注物的邊緣像素點的誤差應在一個像素值以內。
1)數(shù)據(jù)清洗:檢查船體結構樣本是否存在缺失結構數(shù)據(jù)、船艙環(huán)境噪聲數(shù)據(jù)、重復結構數(shù)據(jù)等問題。
2)數(shù)據(jù)標注:分配船體結構標注任務,制定船體結構標注指南,執(zhí)行標注任務。
3)標注檢測:由驗船師與算法訓練專家交叉評審標注質量。
數(shù)據(jù)標注之后,還需結合船體結構節(jié)點檢測算法模型訓練過程中出現(xiàn)的問題,不斷調整船體結構數(shù)據(jù)集以解決由于數(shù)據(jù)標注中出現(xiàn)的問題或者是數(shù)據(jù)集本身的問題而導致的訓練問題,形成滿足典型船體結構節(jié)點識別要求的數(shù)據(jù)標注標準,并轉換為各類目標檢測算法模型所需的數(shù)據(jù)集格式。
按照趾端結構和縱骨貫穿結構的結構特征,分別對所建立的數(shù)據(jù)集中的圖像樣本進行標注,示例見圖2。
圖2 結構標注示意
在一步檢測法(one-stage)方面,Joseph Redmon等提出YOLO(you only look once)目標檢測算法[1]。YOLO檢測速度雖然快,但是容易出現(xiàn)遺漏目標的情況。針對YOLO模型的不足,Liu Wei提出SSD(single shot multibox detector)模型,融合了YOLO和Faster R-CNN優(yōu)點的SSD模型,提高了檢測速度和準確性。該模型以VGG16[2]為基礎網(wǎng)絡進行特征提取,在不同大小的特征圖上按照比例生成不同大小的默認框(default box),從而實現(xiàn)了對不同大小物體進行檢測,提高了整個模型的泛化能力。
而二步檢測法(two-stage)是將目標識別問題分解成兩個階段性任務,首先是產(chǎn)生候選框,然后再對候選框進行分類以及位置精調。Ross Girshick等于2014年提出了一種區(qū)域卷積神經(jīng)網(wǎng)絡(region-based convolutional neural networks,R-CNN)[3],該算法相比于傳統(tǒng)的目標檢測方法,在準確率上有很大的提升,但因識別速度不快等缺點,導致其無法運用到實時檢測系統(tǒng)上。針對R-CNN存在的缺點,何凱明(kaiming He)等提出了空間金字塔模型(spatial pyramid pooling net,SPP-Net)[4],該方法雖然加快了R-CNN的速度,但需要對模型進行多次訓練。Ross B.Girshick提出了使用ROI Pooling的池化結構對R-CNN進行改進。何凱明(He Kaiming)等又提出了增加候選區(qū)域網(wǎng)絡(region proposal networks,RPN)結構的Faster R-CNN檢測方法[5],該網(wǎng)絡結構通過不同大小的候選框從而實現(xiàn)對多尺度的目標檢測的效果,使得位置檢測更精準,速度更快。
綜合考慮典型船體結構節(jié)點識別模型的開發(fā)難度以及模型訓練效率,選擇Faster R-CNN算法來訓練模型來完成船體結構識別任務。
首先,采用卷積層、Relu非線性激活層與池化層的組合構建Faster R-CNN網(wǎng)絡結構,如VGG16或Resnet101去除全連接層后的結構,提取整張圖像的特征圖。再將該特征圖輸入到區(qū)域生成網(wǎng)絡層中提取候選框。針對各候選框,采用Softmax層判斷候選框選取的正確性,進而采用邊界回歸算法對候選框進行修正,以獲得精確的候選框。將提取的特征圖與獲得的精確候選框輸入到池化層,提取候選特征圖并進行分類,以確定最終識別的目標。Faster R-CNN結構見圖3。
圖3 Faster R-CNN結構示意
2.3.1 數(shù)據(jù)預處理
考慮到船體結構形式復雜、尺度差異大,采集的樣本質量參差不齊,會影響模型最終的識別效果。因此,在標注完樣本數(shù)據(jù)后,對樣本中用于訓練的圖像樣本和其中包含的所有目標回歸框進行可視化分析。收集的圖像樣本大小從800像素×800像素至6 000像素×6 000像素均有分布,并且差異較大。圖像樣本統(tǒng)計見圖4。
圖4 圖像樣本統(tǒng)計
各區(qū)間分布比例見圖5。
圖5 圖像樣本分布
回歸框尺寸極差較大,既有很小的回歸框,尺寸接近0,也有超大回歸框,尺寸超過3 000像素。目標回歸框統(tǒng)計見圖6。
圖6 目標框統(tǒng)計
進一步分析回歸框的具體分布,僅有2.8%的回歸框尺寸大于1 000像素。
最終刪除部分異常離群數(shù)據(jù),并將圖像分辨率縮放至640像素作為模型的數(shù)據(jù)集。
2.3.2 數(shù)據(jù)增強
在實際的船舶環(huán)境中,環(huán)境光照、趾端以及縱骨貫穿結構的角度變化非常復雜,為了增強模型在不同光照、拍攝角度下的泛化性,同時為了盡量避免訓練過程中出現(xiàn)的過擬合現(xiàn)象,選擇通過數(shù)據(jù)增強的方式來擴充與提升訓練樣本的數(shù)量與質量。針對船舶環(huán)境中光照變化頻繁的問題,選擇采用改變圖像亮度的方法來模擬光照的變換。數(shù)據(jù)增強效果見圖7。
圖7 數(shù)據(jù)增強效果
R-CNN是雙階段檢測中最具代表性的網(wǎng)絡結構,與YOLO為代表的單階段網(wǎng)絡相比具有更高的檢測準確率。
考慮到兼顧速度和檢測精度的應用環(huán)境,對Faster-RCNN算法的網(wǎng)絡結構進行改良與運用。改良后的Faster-RCNN網(wǎng)絡結構見圖8。
圖8 改進后的Faster-RCNN的網(wǎng)絡結構
在選擇好目標檢測算法之后,利用數(shù)據(jù)標注工作中形成的滿足當前目標檢測算法以及網(wǎng)絡結構的船體結構節(jié)點訓練數(shù)據(jù),采用在VOC開源數(shù)據(jù)上的模型進行遷移學習,初始學習率設為0.001。同時設置學習率衰減策略,具體做法為在連續(xù)3輪迭代過程中,如果損失函數(shù)下降幅度低于0.02則學習率衰減為原來的0.5,經(jīng)過50輪迭代訓練后,模型精度達到90%以上。訓練結果見圖9。
圖9 訓練結果
使用訓練好的模型對船舶檢驗無人機拍攝的船體結構視頻進行驗證,實驗平臺的硬件環(huán)境為12核CPU Intel Xeon E5-2678 v3,GPU為GTX 1080Ti,檢測速度可達10.2 幀/s。
本文通過實際檢測中返回的置信度來評價船體結構檢測識別的準確率。置信度可以理解為框出的Box內確實有物體的自信程度和框出的Box將整個物體的所有特征都包括進來的自信程度。置信度可用來評判在實際分類任務中分類器得到的結果是否可靠。該指標與數(shù)據(jù)集無直接關聯(lián)性,故可以表示實際檢測任務中的檢測準確率。將置信度閾值設置在90%之上進行識別,可以直觀的從圖中看出被識別物體的類別以及置信度,相關的檢測見圖10,位于類別名之后的是該類別的置信度,該指標表示模型本身對該次檢測任務所返回結果的認可程度,數(shù)值越接近于1,表明其結果越可信。
圖10 趾端結構識別結果
基于Faster R-CNN的算法模型可準確識別船舶大型肘板趾端與縱骨貫穿結構,模型精度達到90%以上。驗證結果表明,將基于深度學習的目標檢測算法應用于船舶檢驗領域可行。
后續(xù)研究應考慮根據(jù)船體結構檢驗范圍,進一步開展其他類型船體結構節(jié)點以及船體結構缺陷的目標檢測,同時提高模型的檢測速度,對船舶檢驗無人機拍攝的視頻進行全范圍的實時檢測。