1. 【技術綜述】多標簽圖像分類綜述
圖像分類作為計算機視覺領域的基礎任務,經過大量的研究與試驗,已經取得了傲人的成績。然而,現有的分類任務大多是以單標簽分類展開研究的。當圖片中有多個標簽時,又該如何進行分類呢?本篇綜述將帶領大家了解多標簽圖像分類這一方向,了解更具難度的圖像分類。
作者 | 郭冰洋
編輯 | 言有三
隨著科學技術的進步與發展,圖像作為信息傳播的重要媒介,在通信、無人駕駛、醫學影像分析、航天、遙感等多個領域得到了廣泛的研究,並在國民社會、經濟生活中承擔著更加重要的角色。人們對圖像研究的愈發重視,也促使計算機視覺領域迎來了蓬勃發展的黃金時代。
作為計算機視覺領域的基礎性任務,圖像分類是目標檢測、語義分割的重要支撐,其目標是將不同的圖像劃分到不同的類別,並實現最小的分類誤差。經過近30年的研究,圖像分類已經成功應用至社會生活的方方面面。如今,在我們的生活中隨處可見——智能手機的相冊自動分類、產品缺陷識別、無人駕駛等等。
根據分類任務的目標不同,可以將圖像分類任務劃分成兩部分:(1)單標簽圖像分類;(2)多標簽圖像分類。
單標簽圖像分類是指每張圖片對應一個類別標簽,根據物體類別的數量,又可以將單標簽圖像分類劃分成二分類、多類別分類。如下圖所示,可以將該圖的標簽記為海洋,通過單標簽圖像分類我們可以判定該圖像中是否含有海洋。
然而,現實生活中的圖片中往往包含多個類別的物體,這也更加符合人的認知習慣。我們再來觀察下圖,可以發現圖中不僅包含海洋,還包括了海豚。多標簽圖像分類可以告知我們圖像中是否同時包含這些內容,這也能夠更好地解決實際生活中的問題。
機器學習演算法主要包括兩個解決思路:
(1) 問題遷移,即將多標簽分類問題轉化為單標簽分類問題,如將標簽轉化為向量、訓練多個分類器等;
(2) 根據多標簽特點,提出新的適應性演算法,包括ML-KNN、Ranking SVM、Multi-label Decision Tree等。現對其中具有代表性的演算法進行總結。
2.1 問題遷移
問題遷移方法的主要思想是先將多標簽數據集用某種方式轉換成單標簽數據集,然後運用單標簽分類方法進行分類。該方法有可以包括基於標簽轉換和基於樣本實例轉換。
2.1.1 基於標簽轉換
針對每個標簽,將屬於這個標簽的所有實例分為一類,不屬於的分為另一類,將所有數據轉換為多個單標簽分類問題(如下圖)。典型演算法主要有Binary Relevance和Classifier Chain兩種。
2.1.2 基於樣本實例轉換
這種方法是將多標簽實例分解成多個單標簽實例。如下圖所示。實例E3對應標簽y3和y4,則通過分解多標簽方法法將E3分解成單獨選中標簽y3和y4的實例,然後對每一個標簽作單獨預測。
2.2 適應性方法
如上文所述,新的適應性演算法是根據多標簽分類的特殊性,改進現有的單標簽分類演算法,主要包括以下三種:
2.2.1 ML-KNN
ML-KNN由傳統的KNN演算法發展而來。首先通過KNN演算法得到樣本最接近的K個鄰近樣本,然後根據K個鄰近樣本的標簽,統計屬於某一標簽的鄰近樣本個數,最後利用最大後驗概率原則(MAP)決定測試樣本含有的標簽集合。
2.2.2 Rank SVM
Rank SVM是在SVM的基礎上,加入Ranking Loss損失函數和相應的邊際函數作為約束條件,並擴展目標函數而提出的一種多標簽學習演算法。該演算法的簡要思路是:首先定義函數s(x)是樣本x的標簽集的規模大小,然後定義rk(x)=wkTx+bk,如果求得的rk(x)值在最大的s(x)個元素(r1(x),...rQ(x))之間,則認為該樣本x選中該標簽k,否則就沒被選中。在求解過程中定義新的排序函數rk(x)-rl(x)≥1,其中k表示被樣本x選中的標簽,l表示沒有被選中的標簽,並基於這個新的排序函來大間隔分類器,同時最小化Ranking Loss,從而推導出適合多標簽分類的目標函數和限制條件。
2.2.3 Multi-label Decision Tree
該演算法採用決策樹技術處理多標簽數據,利用基於多標簽熵的信息增益准則遞歸地構建決策樹。樹形結構包括非葉結點、分支、葉節點。決策樹模型用於分類時,特徵屬性用非葉節點表示,特徵屬性在某個值域上的輸出用非葉節點之間的分支表示,而類別則用葉節點存放。
計算思想如下:首先計算每個特徵的信息增益,挑選增益最大的特徵來劃分樣本為左右子集,遞歸下去,直到滿足停止條件,完成決策樹的構建。對新的測試樣本,沿根節點遍歷一條路徑到葉子節點,計算葉子節點樣本子集中每個標簽為0和1的概率,概率超過0.5則表示含有該標簽。當遍歷所有路徑到底不同的葉節點之後,則可判斷涵蓋的所有標簽信息。
除了上述三類主要演算法外,還包括諸多以單標簽分類進行改進的演算法,在此不再贅述。
深度學習的發展帶動了圖像分類精度的大幅提升,神經網路強大的非線性表徵能力可以在大規模數據中學習到更加有效的特徵。近年來,多標簽圖像分類也開始使用深度學習的思想展開研究。
魏雲超等在程明明教授提出的BING理論基礎上,提出了Hypotheses-CNN-Pooling。首先對每張圖片提取含有標簽信息的候選區域(如上圖中的Hypotheses Extraction過程),然後將每個候選區域送入CNN進行分類訓練,最後利用cross-hypothesis max-pooling融合所有候選區域的分類結果,從而得到多個標簽信息完整的圖片。
CNN具有強大的語義信息提取能力,而RNN則可以建立信息之間的關聯。根據這一理論觀點,Jiang Wang等提出了CNN-RNN聯合的網路結構。首先利用CNN對輸入圖像進行訓練,得到相應的特徵,然後將圖片對應的特徵投影到與標簽一致的空間中,在該空間利用RNN進行單詞的搜索訓練。該演算法充分考慮了類別之間的相關性,可以有效對圖像中具有一定關系的標簽進行識別。
在CNN-RNN結構的基礎上,後續文章又加入Regional LSTM模塊。該模塊可以對CNN的特徵進行導向處理,從而獲取特徵的位置信息,並計算位置信息和標簽之間的相關性。在上文的結果上進一步考慮了特徵、位置和標簽之間潛在的依賴關系,可以有效計算圖片中多個標簽同時存在的可能性,並進行圖片的分類。
最近,諸多基於image-level進行弱監督分割研究的文章,充分利用了多標簽分類網路的信息。其主要思想是將標簽統一處理為向量形式,為每幅圖片構建一個維度為1xN的矩陣標簽(如[0,0,0,1,1,0]形式),並採用專門的損失函數(Hanming loss、Ranking loss等)進行訓練。這一方法成功地將多標簽的復雜問題,轉化為單標簽問題,從而可以利用傳統的分類網路進行訓練。
多標簽圖像分類的相關演算法仍然層出不窮,但不論是基於機器學習還是基於深度學習的演算法,都有其優勢和不足,如何根據實際應用需求選用合適的演算法,才是我們應當關注的重點內容。
單標簽分類中通常採用准確率(Precision),召回率(Recall)、F值(F-measure)和AUC曲線對分類結果進行評價。然而,在多標簽分類中一個圖片與多個標簽同時關聯,其復雜程度遠遠高於單標簽分類。因此,在繼承單標簽分類評價指標的基礎上,許多關於多標簽分類的評價指標也被提出。在這里只介紹多標簽分類常用的指標,有關單標簽分類的指標不再贅述。
4.1 平均准確率(AP)和平均准確率均值(mAP)
同單標簽分類一樣,當一張圖片中的所有標記均預測正確時,准確率才可以置1,否則置零。每個類別下的標簽分別進行計算後,取其平均值即可獲得平均准確率,對所有平均准確率取均值即可獲得平均准確率均值。平均准確率可以衡量模型在每個類別的好壞程度,而平均准確率均值則衡量的是在所有類別的好壞程度。
4.2 漢明距離
將預測的標簽集合與實際的標簽集合進行對比,按照漢明距離的相似度來衡量。漢明距離的相似度越高,即漢明損失函數越小,則模型的准確率越高。
4.3 1-錯誤率
1-錯誤率用來計算預測結果中排序第一的標簽不屬於實際標簽集中的概率。其思想相當於單標簽分類問題中的錯誤率評價指標。1-錯誤率越小,說明預測結果越接近實際標簽,模型的預測結果也就越好。
4.4 覆蓋率
覆蓋率用來度量「排序好的標簽列表」平均需要移動多少步數,才能覆蓋真實的相關標簽集合。對預測集合Y中的所有標簽{y1,y2,… yi … yn}進行排序,並返回標簽yi在排序表中的排名,排名越高,則相關性越差,反之,相關性越高。
4.5 排序損失
排序損失計算的是不相關標簽比相關標簽的相關性還要大的概率。
高質量的數據集是圖像分類的基礎,更是關鍵所在。隨著人們對數據質量的重視程度越來越高,如今已有諸多完備的多標簽圖像分類數據集。
5.1 Pascal VOC
Pascal VOC數據集的主要任務是在真實場景中識別來自多個類別的目標。該數據集共有近兩萬張圖片,共有20個類別組成。Pascal VOC官方對每張圖片都進行了詳細的信息標注,包括類別信息、邊界框信息和語義信息,均保存在相應的xml格式文件中。通過讀取xml文件中的項,我們可以獲取到單張圖片中包含的多個物體類別信息,從而構建多標簽信息集合並進行分類訓練。
5.2 COCO
COCO(Common Objects in Context)數據集由微軟公司贊助搭建。該數據集包含了91個類別,三十餘萬張圖片以及近二百五十萬個標簽。與Pascal VOC相類似,COCO數據的標注信息均保存在圖片對應的json格式文件中。通過讀取json文件中的annotation欄位,可以獲取其中的category_id項,從而獲取圖片中的類別信息。同一json文件中包含多個category_id項,可以幫助我們構建多標簽信息。COCO數據集的類別雖然遠遠大於Pascal VOC,而且每一類包含的圖像更多,這也更有利於特定場景下的特徵學習。
除了上述兩個個主流數據集之外,比較常用的還包括ImageNet數據集、NUS-WIDE數據集。近年來,諸多公司、科研機構也提出了諸多全新的數據集,如ML-Images等。這些標注完善的數據,為多標簽圖像分類的研究提供了有力的支持,同樣也為圖像處理領域的發展做出了巨大貢獻。
(1)多標簽圖像分類的可能性隨著圖片中標簽類別的增加呈指數級增長,在現有的硬體基礎上會加劇訓練的負擔和時間成本,如何有效的降低信息維度是面臨的最大挑戰。
(2) 多標簽分類往往沒有考慮類別之間的相關性,如房子大概率不會出現老虎、海洋上不太可能出現汽車。對於人類來說,這些均是常識性的問題,但對於計算機卻是非常復雜的過程,如何找到類別之間的相關性也能夠更好的降低多標簽圖像分類的難度。
古語有雲:「紙上得來終覺淺,絕知此事要躬行」,理論知識的學習必須通過實踐才能進一步強化,完成了綜述內容的書寫,後續將基於Pytorch框架以Pascal VOC2012增強數據集進行多標簽圖像分類實戰,敬請期待哦!
如果想加入我們,後台留言吧
技術交流請移步知識星球
更多請關注知乎專欄《有三AI學院》和公眾號《有三AI》
2. 鏁版嵁闆1000寮犳槸涓嶆槸灝戜簡
涓嶅皯銆傛暟鎹闆嗚鍒嗕負浜斾釜璁緇冩壒嬈″拰涓涓嫻嬭瘯鎵規°傛祴璇曟壒嬈℃瘡涓綾婚兘鍑嗙『鍦板寘鍚浜1000寮犻殢鏈烘寫閫夌殑鍥劇墖錛屾墍浠ユ暟鎹闆1000寮犱笉灝戙傛暟鎹闆嗭紝鍙堢О涓鴻祫鏂欓泦銆佹暟鎹闆嗗悎鎴栬祫鏂欓泦鍚堬紝鏄涓縐嶇敱鏁版嵁鎵緇勬垚鐨勯泦鍚堛
3. 深度學習10張圖片能出模型嗎
不能出模型。
深度學習模型往往在大型監督型數據集上訓練。所謂監督型數據集,即每條數據都有一個對應的標簽。比如流行的ImageNet數據集,有一百萬張人為標記的圖像。一共有1000個類,每個類有1000張圖像。創建這樣的數據集需要花費大量的精力,同時也需要很多的時間。現在想像創建一個有1M個類的數據集。試想一下,對有100M數據幀的視頻數據集的每一幀進行分類。該任務量簡直不可估量。
無監督學習的目標是兼容小數據集進行訓練的通用系統,即便是很少的數據。比較主流的無監督模型有:聚類學習、自動編碼器、生成模型、PredNet。