王景鑫,潘 欣*
(1.吉林化工學院信息與控制工程學院,吉林 吉林 132000;2.長春工程學院計算機技術與工程學院,長春 130012)
自2016 年YOLO 神經網絡被提出后,因其具有識別速度快、網絡結構簡單等優點迅速火遍了整個計算機視覺領域。目前YOLO 的應用范圍十分廣泛,大到國防軍事,小到家庭門禁,可以說只要是有目標檢測的地方就有YOLO。而YOLO 能否應用于某一實際問題上的決定性因素便是其網絡模型,而網絡模型又是需要該領域大量的樣本數據進行樣本訓練得到。雖然YOLO 作者在每一代YOLO 發布之后都會給出幾個相對應的預訓練模型,這種預訓練模型的識別目標類別非常多,因此,使用這種預訓練模型應用于實際問題并不具有針對性。而開源的一些樣本數據集像COCO 數據集、OpenImages 樣本集,大部分包含的目標對象也是上百種并沒有針對某一領域的樣本數據集。因此,最好的解決方式即為通過拍攝某一領域內的樣本數據自行制作樣本數據集,用于該領域網絡模型的訓練,通過這種方式訓練得到的網絡模型應用于此領域的識別效果更佳,例如自制的蘋果花樣本集[1]、生姜樣本集[2]、甘蔗樣本集[3]、番茄樣本集[4]和茶葉樣本集[5]可以分別在蘋果區分工作、姜芽和生姜的識別研究、甘蔗莖節的識別研究、番茄識別和茶葉嫩芽的識別工作上訓練具有針對性的網絡模型,且檢測效果極佳。因此,如需在特定領域發揮YOLO 的目標識別能力就必須使用含有該區域的特定目標類別的數據進行訓練。
YOLO 神經網絡的訓練樣本數據集格式為yolo 格式,該格式的文件結構的層級結構如圖1 所示。
圖1 YOLO 樣本集結構圖
如圖1 所示,YOLO 樣本集包括2 部分。
1)圖像集部分:在圖像集文件夾中存放YOLO 樣本集的圖像樣本,這些圖像樣本又被分為訓練圖像樣本和驗證圖像樣本。
2)標簽集部分:在標簽集文件夾中存放YOLO 樣本集的標簽樣本,這些標簽樣本又被分為訓練標簽樣本和驗證標簽樣本。這些標簽樣本文件存儲格式為txt 格式,內容包含5 個數據,分別為
對于該類型描述文件,目前領域內經常使用圖像標注工具(labelimg)或近似的軟件工具進行標記。如圖2 所示。
圖2 人工標記圖
如圖2(a)所示,可以利用labelimg 工具快捷地進行人工對象標記。然而,在進行人工標記的時候不同人、同一人的不同時間所標記的內容可能存在細微差別,如圖2(b)所示。
標記框邊界的差距:圖中標記對象為一棵樹,在圖2(b)中①處的標記框緊緊貼合標記對象,②處的標記框邊界和標記對象之間還留有大片背景。
標記框尺寸的差距:在圖2(b)中③處的標記框長度比④處的標記框長度短。
總結,在采用人工對樣本集進行標注時,即使是同一人對同一圖像進行標記,所生成的標注框也是有所差別的。
針對模型的評價指標包括交并比(IoU)、精確率(Precision)、召回率(Recall)等。其中,IoU(Intersection over Union)[6]是計算目標檢測算法中對象預測框的精度,是目標檢測的預測框和真實框之間的重疊面積與這兩框面積之和的比值。公式如下
式中:Ao是真實框與預測框的交集(Area of Overlap),表示的是預測框與真實框的交集;Au是預測框與真實框的并集(Area of Union),表示的是預測框與真實框的并集。經過多次迭代,目前IoU 指標已經更新為CIoU[7],該損失函數即為YOLOv5 中使用的損失函數,其公式為
式中:αv為長寬比;w、h和wgt、hgt分別表示預測框的高寬和標注框的高寬。
從以上目標檢測技術的評估指標來看,無論IoU如何更新迭代,其評價標準都與真實框有關,真實框是否理想決定了評估指標的精度,從而影響整個訓練模型的精準程度,但是想要人工標注幾千張樣本集并保證標記框與理想的真實框完全符合,無論從數量上還是在質量上都難以達到要求。因此,本文引入了基于SAM 輔助標記的方法來解決這個問題。
分割一切圖像模型(Segment Anything Model,SAM)是Alexander Kirillov 等在2023 年提出的一種基于深度學習的端到端圖像分割模型。在SAM 模型的設計中,Alexander Kirillov 等提到SAM 模型設計滿足了3 個約束條件:一個能力強大的圖片編碼器(encoder)用來計算圖片嵌入,一個提示(prompt)編碼器用來嵌入提示,然后將這2 種信息源組合在一個輕量級的解碼器(decoder)用來預測分割掩碼(segmentation masks)。如圖3 所示。
圖3 SAM 網絡結構圖
如圖3 所示,SAM 模型包括以下3 個關鍵的組成部分。
1)圖片編碼器。該部分的主要功能是在可擴展性和強大的預訓練模型的激勵下,使用MAE 預訓練的視覺轉換器(Vision Transformer,ViT),可以最小化地處理高分辨率輸入。該圖像編碼器每運行一次,可以在提示模型之前應用。
2)提示編碼器。該部分的主要作用是通過位置編碼來表示points 和boxes,并將每一個提示類型的學習嵌入和自由形式的text 與CLIP 中的現成文本編碼相加。dense 的提示使用卷積進行嵌入,并通過圖像嵌入對元素進行求和。
3)掩碼解碼器。該部分的主要作用是將圖片嵌入。提示嵌入和輸出標記(token)映射到掩碼(mask)上,使用自注意力機制(self-attention) 和跨注意力機制(cross-attention)在提示圖片(prompt-to-image)和反之亦然(vice-versa)2 個方向上更新所有的嵌入。
如何將不規則的mask 轉換成為規則的標注框是本文的難點之一。設計由mask 轉換標注框思路如圖4所示。
圖4 mask 轉變標注框思路圖
圖4 為使用SAM 模型分割的一棵植被,假設以橫坐標軸為X軸,縱坐標軸為Y軸,原點(0,0)建立坐標系,根據SAM 分割的mask,取最上邊界點為(x1,y1),最下邊界點為(x3,y3),最左邊界點為(x2,y2),最右側邊界點為(x4,y4)。那么標注框的x、y、w、h就可以表示為
式中:(x,y)表示標注框的中心點坐標;w為標注框的寬;h為標注框的高,這樣得到的標注框可以非常貼合對象目標,是理想的標注框。在經典的標注工具中,比如在labelimg 工具中,標注框的信息是通過標注框計算得來,這里使用逆反思維,通過x、y、w、h確定標注框的大小和位置。這說明引進無監督自動分割輔助進行標記是十分可能的。
在圖5 中,將含有目標對象的圖像首先經過SAM模型,這里得到的是圖像中所有對象的mask 圖,通過鼠標點擊的方式選取目標對象的mask,通過計算獲得標注框的x、y、w、h4 個標注信息,利用標注信息在原圖像中畫出標注框,再根據對象目標的類別確定標注框的文本信息。
圖5 SAM 人工標記結構圖
利用SAM 模型標注方法與傳統的人工方法作對比,本章中使用的人工標注工具為labelimg 標注工具,選取的被標注圖片中被標注目標為一棵植物,因其形狀不規則更能檢驗標注的效果。效果對比如圖6 所示。
圖6 標注效果對比圖
圖6 (a)為使用labelimg 工具人工標注的標注框,圖6(b)為SAM 模型輔助標注的標注框,對比可以看出圖6(b)框貼合目標對象的邊緣區域,而圖6(a)框中存在著一些背景,目標對象的一小部分也沒有框選在內。總體上,SAM 模型輔助標注的效果更好。
通過使用這2 種標注方法制作樣本數據集進行訓練,觀察其模型識別性能,如圖7 所示。
圖7 檢測結果對比圖
為了更好地檢測效果,選取了將目標堆疊的圖片,觀察模型是否能檢測到被遮擋的目標。首先在檢測數量上進行對比。圖7(a)的檢測數量為17 個,其中檢測到被遮擋的目標數量為4 個。圖7(b)的檢測數量為15個,其中檢測到被遮擋的目標數量為2 個。通過對比可以看出,由SAM 輔助標注方法制作的樣本數據集訓練得到的模型性能強于傳統labelimg 標注方法制作的樣本數據集訓練得到的模型性能。
在使用YOLO 神經網絡進行個性化目標識別時,通常需要自行制作相應的樣本數據集用于模型訓練,而傳統制作樣本數據集的方法繁瑣且訓練得到的模型效果一般。因此,本文提出了一個基于Labelimg 的SAM 輔助標注方法,將SAM 模型應用在Labelimg 圖像標注工具中,使得樣本數據只通過點擊即可完成制作,使用該方法生成的標注框與目標的真實框的重疊度也得到了提升。通過實驗證明,使用該方法制作的樣本數據集訓練得到的識別模型在識別數量和識別能力上都有所提升。