?

基于改進Faster RCNN與Grabcut的商品圖像檢測①

2018-11-14 11:36胡正委
計算機系統應用 2018年11期
關鍵詞:邊框標定類別

胡正委,朱 明

(中國科學技術大學 信息科學與技術學院,合肥 230031)

近年來,深度學習被用于很多領域.如人臉識別,對象檢測等[1–4].深度學習可以從大量的數據捕捉有用的信息,同時也由于大數據時代的來臨與計算設備性能的提高,使深度學習的應用成為現實.VGG[1,5]模型起初被用于物體識別,然后被擴展到人臉識別等任務中.GoogleNet[6]提出的Inception結構,使用多個小尺寸的卷積核來代替大尺寸卷積核,減少了網絡參數,也提高了模型性能.Resnet[7]的提出很大程度上改進了傳統的網絡結構,并在Imagenet上獲得最好的效果.通過遷移學習[8],這些網絡模型也已經被廣泛地應用到了各種識別任務中.同時,對象識別任務逐漸擴展到對象檢測任務,即從單個對象的分類擴展到了多個對象的分類和定位.Faster RCNN[3]及其擴展版本成為近年來最有效的方法之一.

然而若將上述方法遷移到新的任務中,都需要在新的任務上使用大量標定數據重新調整模型.但是,在實際場景中,數據的標定是非常難的工作,需要消耗很大的財力物力和人力[9].Vinyals,Koch[10,11]等人開始致力于研究如何在僅有少量訓練樣本甚至沒有訓練樣本時進行分類工作.然而相比較于分類任務的數據標定,檢測任務中邊框定位數據的標定更難獲得.如何在沒有邊框標定數據的情況下,將分類任務遷移到檢測任務也是目前研究的難點.

本文提出一種方法,解決了數據瓶頸問題,可以在無需邊框標定的情況下進行商品的檢測定位.本文構建的數據集中,訓練圖像僅包含單個商品,且沒有邊框標定,而測試圖像中包含多個商品.本文首先對Faster RCNN進行改進,提出非類別特異性Faster RCNN,并結合遷移學習,對訓練數據進行預標定; 然后結合Grabcut[12]無監督方法,對訓練數據進行樣本增強,生成逼真的多個物體的訓練圖像; 然后再對非類別特異性Faster RCNN進行訓練,使其可以檢測多個物體; 最后提出基于Faster RCNN的重識別方法,在Faster RCNN中添加重識別層,來提高多個物體檢測精度.

1 非類別特異性Faster RCNN

傳統的Faster RCNN包括兩部分,如圖1所示: 區域候選網絡(RPN)和頭網絡(Network Head).其中區域候選網絡為頭網絡提供Feature Map(特征圖) 和ROI(感興趣區域).頭網絡利用ROIAlign/ROIPool[13]從特征圖中提取特定ROI的特征,并利用分類層和邊框回歸進行物體分類和邊框回歸.

圖1 Faster RCNN框架

其中分類層的輸出維度為分類類別數目C與背景類別,即C+1.回歸層輸出維度為類別數目的4倍,即4C,為預測的每個類別的中心坐標與長寬.本文將其中的回歸層稱為類別特異性的回歸,因為其對每個類別都會產生對應的邊框預測.然而在預測時,只有1個類別的邊框會被選中.因此其它類別的邊框回歸結果可以認為是一定程度的冗余.而且不同的數據集具有不同的類別數目,則相應的邊框回歸層也需要采集大量的邊框標定數據進行訓練.

本文對回歸層進行改進,提出非類別特異性回歸層.其中,回歸層輸出維度與類別無關,輸出維度由4C改為4.并在公開的COCO[14]數據集上進行訓練,然后遷移到商品數據集上,且不需要再訓練.一方面減少了模型的冗余,另一方面解決了數據的瓶頸問題.

本文利用提出的非類別特異性Faster RCNN,對構建的商品數據集中的訓練圖像進行預標定.其中訓練圖像僅包含單個商品.因為實際應用中,單個商品的圖像非常容易采集,而邊框的標定工作則需要大量的成本.如圖2顯示了本文提出的非類別特異性Faster RCNN對訓練圖片的預標定效果.

圖2 非類別特異性Faster RCNN邊框預標定

2 結合Grabcut的樣本增強方法

非類別特異性的Faster RCNN解決了邊框回歸的問題,但是在訓練數據中只有單個商品,而測試圖片中有多個商品時,分類問題是目前很難解決的.即使可以用單個商品來訓練分類模型,但測試圖像中的多個商品會存在邊框重疊甚至遮擋的情況.在訓練圖像沒有出現商品重疊的情況下進行模型的訓練,會使模型的分類能力不夠魯棒,不足以識別邊框重疊甚至遮擋的商品,增大了分類的難度.因此本文提出一種樣本增強方法,通過對單個商品訓練圖片的處理,來生成具有多個商品的訓練圖像.

通過類別非特異性的Faster RCNN,可以得到單個商品圖像中商品的邊框.一個直接的想法是將圖像中的商品邊框部分提取出來,經過旋轉或者平移之后,與其它商品進行組合,如圖3所示.

圖3 僅基于邊框預標定的樣本增強

然而,這種方法會導致商品邊框中的背景區域會覆蓋其它商品區域,與實際圖片相差很大.因此僅利用商品圖像的邊框不足以完成逼真的樣本生成.若能獲得商品的精確區域信息,例如商品對象掩碼,則可以分離出背景區域,解決生成的樣本中商品被背景遮擋的問題.因此本文利用Gabcut方法對訓練圖像中商品進行分割.

Grabcut在用戶交互的基礎上,分別為背景和前景構建了GMM(高斯混合模型).背景和前景模型都分別包含個GMM函數.RGB圖像中的像素集定義為,圖像中每個像素都有一個高斯函數標記,表示一個GMM函數.最終組成了向量每個像素還有一個表示是否為背景的標記,值為0表示背景,為1表示前景.并定義能量函數:

其中,U定義為:

Grabcut與Graphcut[15]方法都是交互式圖像分割方法.其中Graphcut需要在交互時提供精確前景和背景像素種子區域,并計算其它像素與前景和背景的相似度,利用圖論算法計算最佳分割.而Grabcut算法的用戶交互較少,僅需要提供一個包含前景的矩形邊框,分割步驟如下:

(1) 通過用戶交互提供前景對象的邊框,將邊框外的區域初始化為,邊框內的區域初始化為不確定區域前景區域初始化為空對于區域總的像素,置區域中像素,置然后分別對的像素分別初始化個高斯函數.

在利用本文提出的非類別特異性Faster RCNN之后,可以獲得訓練圖像中單個商品的矩形邊框,因此只需要再結合Grabcut算法,對商品的精確區域進行分割.然后再將訓練集中的單個商品區域進行隨機旋轉和平移,并進行隨機組合,即可生成多個商品的訓練圖像,效果如圖4所示.值得注意的是,考慮到數據的準確性,商品之間不能完全覆蓋,因為如果商品過度覆蓋,會導致區域內的真實商品幾乎被覆蓋,而占大面積區域的商品與實際標簽不符,這樣會誤導識別模型的訓練.因此隨機組合時需要對商品的重疊區域面積進行約束,假設重疊面積的上限為sup.考慮三種融合策略:(1)進行隨機旋轉和平移,僅約束重疊面積的上限,即sc≤sup,即融合時,商品可能會距離較遠,這是sc=0.(2)在限制重疊面積上限的同時,對重疊面積的下限做約束,即sc≥0.這種方案使商品之間必須有重疊,保證了商品之間的距離較近,但又沒有大面積覆蓋.(3)增大對重疊面積下限的約束,即這樣做是為了商品之間重疊的可能性更大,并通過模型的訓練來區分重疊的情況.

圖4 結合Grabcut的樣本增強

3 重識別層

Faster RCNN是一種兩級(tow stage)方法.第一級由RPN(候選區域網絡)先篩選出候選區域,過濾掉一部分背景區域.第二級由頭網絡對候選區域進行細分類,同時對每個候選區域的邊框進行矯正,即邊框回歸.顯然RPN提取的候選區域是不精確的,這會影響頭網絡識別準確度.因此本文提出重識別層,來提高Faster RCNN識別的準確度.

因為經過頭網絡的邊框回歸層之后的邊框位置會更精確,這里的邊框回歸層為本文提出的非類別特異性回歸方法.而且頭網絡的分類層又過濾了一大部分背景區域.本文將利用頭網絡回歸之后的精確區域,并結合ROIAlign方法,對這些區域作為輸入,再一次經過頭網絡的分類層.如圖5所示.

圖5 重識別層模型

傳統Faster RCNN可以定義為:

所添加的重識別層,選出候選區域中被分類為非背景的區域,背景類別用0表示,然后將其回歸邊框作為新的候選區域再進行分類和回歸,表示為:

4 實驗分析

4.1 數據集

本文在構建的商品數據集上驗證了提出了方法.本文提出的數據集如圖6所示.利用本文的方法.我們不需要在商品數據集上訓練邊框回歸.所以本文構建的商品數據集訓練圖像僅包含類別信息.訓練集中共包含3200張訓練圖像,400張測試圖像,共計40個商品類別.訓練圖像通過2個攝像頭在4個不同的視角下拍攝的,每張圖像只有一個商品對象.而測試圖像包含多個商品,使用另外一個攝像頭拍攝,且圖像中的商品位置,角度多樣,且包含跨背景的測試圖像,如購物車背景下采集的測試圖像.

圖6 本文構建的商品數據集圖片示例

所提出的非類別特異性Faster RCNN是在COCO數據集訓練完成的,并直接應用于商品訓練圖像數據的預標注.COCO數據集共80個類別,并包括非常多的圖片以及邊框和類別標注.

本文構建的商品數據集和COCO數據集主要的區別在于,本文商品數據集中的物體時可旋轉的,且訓練數據遠遠少于COCO數據集.且本文構建的數據集中,訓練圖片僅包含單個商品,且不需邊框標定.

4.2 網絡模型訓練

本文提出的非類別特異性回歸層來改進原始Faster RCNN 的類別特異性回歸層,組成非特異性Faster RCNN 模型.希望能夠從公開數據集中學習邊框回歸知識,并直接應用于單個商品訓練圖片的預標注.(1) 首先利用原始的FasterRCNN 在COCO 上進行訓練,其主干網絡中Resnet 模型使用ImageNet 預訓練模型,然后進行分類層和回歸層的訓練,最后進行整體網絡模型的聯合訓練.這樣做是為了使的模型從COCO數據集中學習到有效的特征泛化能力.(2) 將訓練好的Faster RCNN 模型中的邊框回歸層改為所提出的非類別特異性回歸層,其他部分的參數保持不變,僅在COCO 數據集訓練非類別特異性回歸層.(3) 對于新的非類別特異性Faster RCNN,再使用COCO 數據集調優整個網絡.這樣是為了使ROIAlign 得到的特征可以兼顧分類和邊框回歸的能力.通過以上步驟訓練完成的模型可以直接用于商品訓練圖像的標注.訓練非類別特異性Faster RCNN時,其基本超參數設置如表1所示.

表1 非類別特異性Faster RCNN基本參數設置

通過非類別特異性Faster RCNN與Grabcut的結合,可以生成大量的多個商品圖像樣本.并用于整體模型的訓練.訓練步驟如下: (1)首先,在用于訓練樣本預標定的非類別特異性Faster RCNN 的參數基礎上進行訓練,保持主干網絡和非類別特異性回歸層參數不變,僅訓練分類層模型.(2)然后保持非類別特異性回歸層參數不變,同時訓練RPN 網絡的分類層和回歸層,以及步驟(1)中的分類層.(3)訓練整個網絡,包括主干網絡中的Resnet 參數,僅固定非類別特異性回歸層.這是因為主干網絡中的特征由COCO 訓練完成,為了使其更好地提取商品數據中的特征,需要對其主干網絡參數進行訓練.通過以上步驟,利用生成的樣本訓練完成的模型可以用于真實商品圖像的檢測任務.而且其中的非類別特異性回歸層無需在目標數據集進行再訓練,更加印證了其知識遷移的能力.

在實驗中,我們使用Faster RCNN的擴展版Mask RCNN,其除Faster RCNN方法外利用了特征金字塔網絡(FPN)和興趣區域對齊(ROIAlign)方法[6].在訓練過程中不需要進行分割預測,因此我們移除了Mask RCNN中的分割分支,只使用其分類和回歸分支.實驗在2個NVIDIA TITANX GPU上進行.初始的學習率為0.001,并在訓練時手動調整.動量參數Momentum為0.9.

4.3 實驗結果

首先利用COCO數據集訓練Faster RCNN中的分類分支與本文提出的非類別特異性回歸分支.如圖7所示,圖中的黑色邊界是由于Mask RCNN[13]方法中的零填充(Zero Padding)導致的,Mask RCNN方法是Faster RCNN的擴展版本.其中虛線代表候選區域,實線代表候選區域對應的邊框回歸結果,可以看出本文提出的非類別特異性回歸分支可以預測候選區域的真實邊框,而且商品周圍的候選區域對應的回歸邊框趨向于同一位置.同時相較于傳統Faster RCNN,回歸層參數量減少很多,且不需再訓練即可遷移到其它數據集.

圖7 候選區域與其對應的回歸邊框

提取訓練圖像的商品邊框之后,結合Grabcut算法對商品區域進行分割.因為訓練圖像包含大面積背景,若直接利用Grabcut算法對原始訓練圖像進行分割,其分割效果非常不理想.因為沒有邊框來標定圖像的背景區域,一般取圖像的最外圍的像素作為背景.然而其所占面積非常小,很難對整個背景進行建模.在結合本文提出的非類別特異性Faster RCNN預標注算法與Grabcut算法進行訓練集的商品圖像分割.然后使用簡單的圖像處理方法,來生成多個商品的訓練圖像,用于Faster RNN模型的訓練,生成的圖像數據如圖4所示.在使用Grabcut 算法進行圖像生成時,對象重疊面積上限設置為10 000.對于不同的重疊面積,本文對其效果進行了對比.如圖8,當重疊面積為0時,即商品距離較遠時,效果不好,因為商品距離較遠,很難出現折疊等情況,使得網絡得不到折疊情況的訓練,所以效果相對較差.當重疊面積為6000時,模型的召回率(Recall) 和精度(Precision) 分別達到93.8%和96.3%,效果最好.重疊面積過大時,會使商品之間大面積覆蓋,會傾向于誤導網絡誤識別.

模型在進行識別和定位時,對于每個區域都會輸出其對應類別的概率,在進行模型的布置時通常需要對概率進行閾值化,過濾概率低的預測,保留概率高的結果.因此,我們分析了不同的閾值對于模型的召回率和精度的影響,如圖9.一般情況下概率閾值越高,精度越高,召回率越低.概率閾值越低,精度越低,召回率越高.圖9中,概率閾值為0.3時,我們的模型能同時達到較高的精度和召回率,這是因為模型對類別的預測概率較高,低閾值對其影響不大,模型預測能力強.本文為了權衡準確率和召回率,確定概率閾值為0.7,這是召回率為93.8%,精度為96.3%.

圖8 不同組合策略的檢測結果

圖9 不同概率閾值的檢測效果

如表2,我們通過對模型各部分進行分析,所提出的結合Grabcut 的樣本增強方法,使檢測召回率提升超過40%,精確度提升了30%.為了提高多個商品檢測的精度,本文提出了重識別層,將分類與回歸之后的候選區域,經過邊框回歸層矯正之后,再次輸入分類層.經過非特異性邊框回歸層的矯正,可以有效避免候選區域不精確帶來的分類誤差.在使用重識別層時,比不使用重識別層時召回率提高了3%,精率提高了4%.

表2 本文所提方法各部分效果分析

因為所提出的非類別特異性Faster RCNN可以檢測到單個商品邊框,當應用到多個商品的檢測時,其主要問題是當商品邊框內存在其他商品的區域時會對識別造成干擾.而非類別特異性Faster RCNN的邊框回歸不受多個商品的影響.因此,在使用本文生成的多個商品的訓練數據進行訓練時,僅訓練分類層的參數,同時保持非類別特異性回歸層參數不變.檢測結果如圖10所示,通過所提出的圖像增強技術,實現了多個商品的檢測,且其中的非類別特異性回歸層僅使用公開數據集訓練,并學習到了回歸知識,且遷移到商品圖像檢測時并不需要再訓練.

圖10 商品檢測結果

本文在構建的商品數據集中量化驗證了所提出的方法.由于本文旨在解決數據瓶頸問題.所構建的訓練數據集中僅有類別標簽,沒有邊框標定.這種情況下,傳統的圖像檢測方法一般使用無監督的SIFT[16]特征,計算被檢索圖像的局部特征并與訓練集中圖像的特征做相似度匹配.目前效果最好的深度學習方法,如VGG16[1]、VGG19[1]、 Xception[17]、Resnet[7],一般將其視為多標簽分類任務進行識別.本章對這些方法進行了比較.如表3所示,SIFT和其它目前最優的深度學習方法的性能明顯低于本文所提出的方法.一方面SIFT沒有區別背景特征,從而導致背景特征影響了匹配效果;另一方面其為無監督人工特征,在識別效果上不及有監督方法,而且商品包裝會有嚴重的反光,也使其特征性能較低.其它深度學習方法由于從單個商品訓練圖像推廣到多個商品訓練圖像時,沒有學習到多個商品相近時的區分信息,同時也沒有區別背景特征,因此識別率低.而有些深度學習模型如VGG16和VGG19,其效果和SIFT相差不大,這是因為從單個商品訓練圖像到多個商品識別與定位這種跨任務識別任務使得深度學習模型性能很低.而本文方法通過提出一種無需目標數據集訓練的樣本標注以及樣本增強方法,可以利用單個商品的訓練圖像來學習到多個商品的區分信息,起到了跨任務的橋梁作用,對性能有很大提升.

表3 不同的方法對比

5 結論與展望

本文基于Faster RCNN提出了一種非類別特異性的邊框回歸層,僅使用公開數據集訓練,無需在目標數據集上進行再訓練,并將其用于數據預標定與商品檢測.同時結合Grabcut與非類別特異性Faster RCNN提出了一種樣本增強方法,來生成包含多個商品的訓練圖像,用于模型的訓練; 并為Faster RCNN添加了重識別層,提高了檢測精度.未來,我們將致力于研究如何在沒有數據標定的情況下,將本文方法拓展到圖像分割領域.

猜你喜歡
邊框標定類別
論陶瓷刻劃花藝術類別與特征
輕卡前視攝像頭的售后標定
一種輕卡前視單目攝像頭下線標定方法
一起去圖書館吧
使用朗仁H6 Pro標定北汽紳寶轉向角傳感器
CT系統參數標定及成像—2
CT系統參數標定及成像—2
外出玩
通過美工刀切分屏幕與邊框
用不上的磚塊
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合