王天珩,張軼
(四川大學視覺合成圖形圖像技術國家重點學科實驗室,成都 610065)
目標檢測是近年來一個非常熱門的研究方向。目標檢測的本質可以理解為在場景中對一個物體進行分類和定位,但是該領域存在一個問題:預測結果的偏置和精度飽和問題。
理想情況下:樣本越多,檢測精度越高。而在很多真實世界應用場景下,如果選擇的樣本有偏差,可能會造成在有監督學習方式下目標檢測的效果下降。于是,在盡可能減少標簽代價的情況下盡可能增加目標檢測精度就成為了當前研究的熱點。
近些年來,深度卷積神經網絡在目標檢測領域發展迅速,產生了大量的深度網絡,其中有Fast R-CNN、SPP等網絡模型,但是當訓練樣本的數量較少或者樣本中存在大量困難樣例的時候,檢測精度就會不可避免地下降。主動學習[1]是一種能夠保證目標性能不受太大影響下,同時能夠有效減少標注樣本數量的機器學習算法。主動學習先是訓練少量有標簽的樣本,然后將訓練出的模型預測大量無標簽樣本并且加入訓練集中,可以看做是特殊的半監督學習[2]。本文將主動學習算法和深度卷積網絡結合在了一起。
在本算法中,有標簽樣本會被分為完備數據集和不完備數據集。一個完備的樣本是有著正確的感興趣區域(ROI)信息,例如物體的類別、屬性、位置信息和尺寸,但是在訓練中所用到的不完備樣本信息以上的信息則可能不完全正確。對于不完備數據的處理不同于其他完備數據,因為這些不完備數據不但可能對于當前的分類模型沒有幫助,甚至可能造成目標檢測分類器性能下降。
在實驗中,采用了信息含量較高的樣本,兼顧了樣本的多樣性。目標就是先用少量的完備有標簽數據集訓練出一個初始模型,然后隨著迭代逐次往其中加入不完備數據或者無標簽樣本。由于該算法采用了主動學習和聚類算法[3]思想,就將這種算法命名為ACL(Active-Clustering Learning)算法。
比起前人算法,ACL算法有如下優勢:
(1)結合了主動學習算法和聚類思想,提高了篩選樣本的質量,減少了大量的冗余樣本和標簽代價。
(2)減少了不平衡數據分類中,樣本的選擇偏差問題。
筆者將提出的算法應用在具有挑戰性的目標檢測[4]和動作識別數據上。實驗證明,與前人的方法比較而言,這套方法的性價比較高。在部分類別上,精度超越了前人最優算法。在目標檢測和動作識別等多個公開數據庫上,該算法已經證明了其優越性。

圖1 算法總體流程圖
ACL算法總體流程:
輸入:n,v(2n>v);完備數據集Dconf和不完備數據集
輸出:有標注數據庫DΔ和候選數據庫Dbatch,DΔ< 方法: Step 1.令Dconf為初始訓練樣本,訓練出一個初始化模型:M0。 Repeat Step 2.從Dimp中選擇出數據Dbatch,根據公式(1)給出當前分類器的分類結果Ft。 Step 3.確定一個批次數據庫的規模: 1.通過上下界選擇出部分不確定樣本。 2.從不確定數據集Duncertain中的各個聚類中一共選擇v個樣本,即Ddivers。 3.根據當前選擇的樣本初始化上下界。 4.重復第3步直至DΔ的數量達到定值。 Step 4.人工修正DΔ中沒有正確標注的樣本。 Step 5.重新訓練Ft,每輪都加入DΔ中的新樣本,Dimp中的樣本在持續減少。 訓練直到達到收斂或者Dimp中樣本耗盡。 (1)目標檢測數據庫上的實驗結果: 本環節的實驗主要是為了驗證該算法在目標檢測公開庫上的實驗效果和精度。實驗主要從檢測平均精度(mAP)和節省的樣本比例兩個維度來證明該算法的杰出性能。同時還會給出不同類別的物體在不同算法上的精度差異。 實驗數據庫:PASCAL VOC 2012數據集中包含了20類,訓練集中一共包含了5717張圖片,測試用到了5823張圖片。 為了盡量減少誤差,每個實驗都做了五次以求中間結果。所有的實驗都從相同的baseline目標檢測器作為初始化模型,從無標簽數據集中選擇出來500張圖片進行訓練。此后,每個主動學習算法執行15輪。每一輪中,算法選擇出置信度接近于0.5的200張圖片,并把這些圖片加入到已有訓練集中,訓練出一個新的模型,如此一直循環下去。 本文中的實驗對比方法分別是隨機采樣,不確定性采樣,TCAL[5]和本算法。 圖2 不同算法在PASCAL數據庫上的檢測精度 圖3 不同算法在PASCAL數據庫上節約的樣本比例 在數據庫所包含的20個物體類別中,有些樣本使用ACL算法提升明顯,有些樣本則不升反降,屬于困難樣例。 表1 20類物體在不同方法下的檢測精度 表1展示的是每種方法在PASCAL VOC 2012數據集上的平均精度(有標簽訓練集的數量是1100)。每種方法的結果是五輪訓練結果的平均值。每列加粗的字體是最好的結果,下標劃橫線的是第二好的結果。精度低于被動學習40%的樣本算作是困難樣例,已經用星號標了出來,這類樣本在主動學習中提升的效果比較有限。 圖4困難樣例TCAL算法和本算法性能差異 圖4 顯示的是在PASCAL VOC 2012數據庫中,不同類別樣本在TCAL和本文算法的精度差異。通過圖表可以觀察出:本算法在部分類別上的精確度超過了state-of-the-art,在所有20個類別上則是平均超過了大約1%。總體上說,本算法的性能還是比較優越的。 本算法在9個類別上超過了TCAL算法,具有較為優越的性能。 (2)動作識別數據庫上的實驗結果: 在本環節,將方法在有挑戰性的動作分類Willow actions數據庫上進行了實驗。該數據庫包含了7類人體動作,分別是使用電腦、攝影、使用樂器、騎自行車、騎馬、跑步以及步行,數據庫比較具有挑戰性。數據庫中每類中至少包括108張圖片,其中40張用于訓練,30張用于驗證,剩余的圖片用于測試。 對比方法分別是隨機采樣,不確定性采樣,TCAL和本算法。 表2 七類動作在不同方法下的檢測精度 表2展示的是在這個數據庫上不同方法的效果圖。最高的檢測率已經加粗,本文的算法是基于Faster R-CNN,將運用主動學習算法,結合部分數據的Faster R-CNN算法和使用了全部數據的Faster R-CNN算法進行對比。其中,“使用樂器”類達到了最好的效果。而本文的算法通過多輪迭代,達到了性價比較高的結果,在“使用樂器”,“攝影”和“使用計算機”類上達到了最好的結果。原因是這類動作中人和物體間的聯系較為緊密,使用全部數據可能會造成部分困難樣例,對分類器造成干擾。同時,在其他多數類別上,本文算法都能達到不錯的性能,雖然沒能實現最高檢測精度,但是能節省部分樣本,可以實現高性價比,即用較少的樣本達到較高的精度。 本文中提出了一個基于聚類思想,對樣本進行精篩的主動學習算法,并且在圖像分類和目標檢測領域的有挑戰公開庫上證明了其有效性。 首先,實驗證明了使用主動學習方法的性能表現接近于使用100%的有標簽數據集。其次,實驗證明了將聚類思想融入到主動學習算法以后,能夠進一步將樣本精篩,提高選擇樣本的效率。在部分特定類別物體上的檢測效率,超過了使用整個數據集的方法。2 實驗結果





3 結語