選擇性搜尋(二) 進入正題__電腦視覺

來源:互聯網
上載者:User
Selective Search for Object Recoginition
surgewong@gmail.com
http://blog.csdn.net/surgewong

      在前一段時間在看論文相關的工作,沒有時間整理對這篇論文的理解。在前面的一篇部落格【1】中有提到Selective Search【2】,其前期工作利用映像分割的方法得到一些原始地區(具體內容請查看【1】),然後使用一些合并策略將這些地區合并,得到一個層次化的地區結構,而這些結構就包含著可能需要的物體。       部落格【3】已經有對這篇論文的一些簡單介紹,寫這篇部落格不免有重複發明輪子之嫌,不想想太多,只想把自己的一些理解記錄下來,加深自己的理解。
      這篇論文是J.R.R. Uijlings發表在2012 IJCV上的一篇文章,主要介紹了選擇性搜尋(Selective Search)的方法。物體識別(Object Recognition),在映像中找到確定一個物體,並找出其為具體位置,經過長時間的發展已經有了不少成就。之前的做法主要是基於窮舉搜尋(Exhaustive Search),選擇一個視窗(window)掃描整張映像(image),改變視窗的大小,繼續掃描整張映像。顯然這種做法是比較“原始的”,改變視窗大小,掃描整張映像,直觀上就給人一種非常耗時,結果太雜的印象。作者能夠突破思維定式,從另一個角度給出一種簡單而又有效方法,油生敬意。我們不禁會想,為什麼這麼簡單的方法之前沒有想到呢。我想這個應該跟對映像認識的觀念有關係,在都不知道如何做物體識別(Object Recognition)的時候,較為“原始的”窮舉搜尋方法,給了大家一個方向,之後所有的人都沿著這個方向走,最後就忽略了對其他方向的認識。花費了這麼多年,才找到另一個方向,這個轉變實屬不易。扯遠了,總之,這種方法確實讓人耳目一新。
一、介紹(Introduction)       映像(Image)包含的資訊非常的豐富,其中的物體(Object)有不同的形狀(shape)、尺寸(scale)、顏色(color)、紋理(texture),要想從映像中識別出一個物體非常的難,還要找到物體在映像中的位置,這樣就更難了。下圖給出了四個例子,來說明物體識別(Object Recognition)的複雜性以及難度。(a)中的情境是一張桌子,桌子上面放了碗,瓶子,還有其他餐具等等。比如要識別“桌子”,我們可能只是指桌子本身,也可能包含其上面的其他物體。這裡顯示出了映像中不同物體之間是有一定的層次關係的。(b)中給出了兩隻貓,可以通過紋理(texture)來找到這兩隻貓,卻又需要通過顏色(color)來區分它們。(c)中變色龍和周邊顏色接近,可以通過紋理(texture)來區分。(d)中的車輛,我們很容易把車身和車輪看做一個整體,但它們兩者之間在紋理(texture)和顏色(color)方面差別都非常地大。
       上面簡單說明了一下在做物體識別(Object Recognition)過程中,不能通過單一的策略來區分不同的物體,需要充分考慮映像物體的多樣性(diversity)。另外,在映像中物體的布局有一定的層次(hierarchical)關係,考慮這種關係才能夠更好地對物體的類別(category)進行區分。         在深入介紹Selective Search之前,先說說其需要考慮的幾個問題:         1. 適應不同尺度(Capture All Scales):窮舉搜尋(Exhaustive Selective)通過改變視窗大小來適應物體的不同尺度,選擇搜尋(Selective Search)同樣無法避免這個問題。演算法採用了映像分割(Image Segmentation)以及使用一種層次演算法(Hierarchical Algorithm)有效地解決了這個問題。         2. 多樣化(Diversification):單一的策略無法應對多種類別的映像。使用顏色(color)、紋理(texture)、大小(size)等多種策略對(【1】中分割好的)地區(region)進行合并。         3. 速度快(Fast to Compute):演算法,就像功夫一樣,唯快不破。
二、地區合并演算法        這裡是基於地區的合并,地區包含的資訊比像素豐富,更能夠有效地代表物體的特徵。關於地區用於物體識別的的方法,請參考論文【4】,這裡不再多說,以後有空話,在部落格中寫點東西。首先原始地區的擷取方法,可以查看部落格【1】以及其相關的論文。地區的合并方式是有層次的(hierarchical),類似於哈夫曼樹的構造過程。
           輸入:彩色圖片(三通道)            輸出:物體位置的可能結果L
          1. 使用 Efficient Graph-Based Image Segmentation【1】的方法擷取原始分割地區R={r1,r2,…,rn}           2. 初始化相似性集合S=∅           3. 計算兩兩 相鄰地區之間的相似性(見第三部分),將其添加到相似性集合S中           4. 從相似性集合S中找出, 相似性最大的兩個地區 ri 和rj,將其合并成為一個地區 rt,從相似性集合中除去原先與ri和rj相鄰地區之間計算的相似性,計算rt與其相鄰地區(原先與ri或rj相鄰的地區)的相似性,將其結果添加的到相似性集合S中。同時將新地區 rt 添加到 地區集合R中。           5. 擷取每個地區的Bounding Boxes,這個結果就是物體位置的可能結果L 我的補充: ①step1~step4是個迴圈,結束條件是集合S為空白。集合S是相鄰地區相似性,最初是所有相鄰原始地區的相似性:S(r1,r2),S(r2,r3)...當有兩個地區合并後,就抹殺掉S中與這兩個地區相關的所有相似性,然後計算這兩個地區合并後地區與周邊所有地區的相似性,補充進S,這樣一來,S就少了一個元素(兩地區之間的相似性沒了)。迴圈下去,S就會越來越少,直到所有地區合并成一個地區。 ②另外,R則是越來越多,不會減少,因為無論是原始地區,還是合并產生的任何地區,都要添加進去。

三、多樣化策略          論文作者給出了兩個方面的多樣化策略:色彩空間多樣化,相似多樣化。           色彩空間多樣化          作者採用了8中不同的顏色方式,主要是為了考慮情境以及光照條件等。這個策略主要應用於【1】中映像分割演算法中原始地區的產生。主要使用的色彩空間有:(1)RGB,(2)灰階I,(3)Lab,(4)rgI(歸一化的rg通道加上灰階),(5)HSV,(6)rgb(歸一化的RGB),(7)C(具體請看論文【2】以及【5】),(8)H(HSV的H通道)
        對色彩空間瞭解不深,在此不便深入說明,等著以後慢慢深入電腦視覺領域。
         相似性計算多樣化         在地區合并的時候有說道計算地區之間的相似性,論文章介紹了四種相似性的計算方法。         1. 顏色(color)相似性         使用L1-norm歸一化擷取映像每個色彩通道的25 bins的長條圖,這樣每個地區都可以得到一個75維的向量,地區之間顏色相似性通過下面的公式計算:          在地區合并過程中使用需要對新的地區進行計算其長條圖,計算方法:
        2. 紋理(texture)相似性         這裡的紋理採用SIFT-Like特徵。具體做法是對每個色彩通道的8個不同方向計算方差σ=1的高斯微分(Gaussian Derivative),每個通道每個顏色擷取10 bins的長條圖(L1-norm歸一化),這樣就可以擷取到一個240維的向量,地區之間紋理相似性計算方式和顏色相似性計算方式類似,合并之後新地區的紋理特徵計算方式和顏色特徵計算相同:
        3. 大小(size)相似性         這裡的大小是指地區中包含像素點的個數。使用大小的相似性計算,主要是為了盡量讓小的地區先合并:
       4. 吻合(fit)相似性        這裡主要是為了衡量兩個地區是否更加“吻合”,其指標是合并後的地區的Bounding Box(能夠框住地區的最小矩形(沒有旋轉))越小,其吻合度越高。其計算方式:

       最後將上述相似性計算方式組合到一起,可以寫成如下,其中:

四、使用選擇搜尋(Selective Search)進行物體識別         通過前面的地區合并,可以得到一些列物體的位置假設L。接下來的任務就是如何從中找出物體的真正位置並確定物體的類別。 常用的物體識別特徵有HOG(Histograms of oriented gradients)和 bag-of-words 兩種特徵。在窮舉搜尋(Exhaustive Search)方法中,尋找合適的位置假設需要花費大量的時間,能選擇用於物體識別的特徵不能太複雜,只能使用一些耗時少的特徵。由於選擇搜尋(Selective Search)在得到物體的位置假設這一步效率較高,其可以採用諸如SIFT等運算量大,表示能力強的特徵。在分類過程中,系統採用的是SVM。
          特徵產生  系統在實現過程中,使用color-SIFT特徵【6】以及spatial pyramid divsion方法【7】。在一個尺度下σ=1.2下抽樣提取特徵。使用SIFT、Extended OpponentSIFT【8】、RGB-SIFT【6】特徵,在四層金字塔模型 1×1、2×2、3×3、4×4,提取特徵,可以得到一個維的特徵向量。(註:對SIFT特徵以及金字塔模型還不是很瞭解,講得不是很清楚)           訓練過程          訓練方法採用SVM。首先選擇包含真實結果(ground truth)的物體視窗作為 正樣本(positive examples),選擇與正樣本視窗重疊20%~50%的視窗作為 負樣本(negative examples)。在選擇樣本的過程中剔除彼此重疊70%的負樣本,這樣可以提供一個較好的初始化結果。在重複迭代過程中加入hard negative examples(得分很高的負樣本)【9】,由於訓練模型初始化結果較好,模型只需要迭代兩次就可以了。(樣本的篩選很重要。。)
  五、效能評價        很自然地,通過演算法計算得到的包含物體的Bounding Boxes與真實情況(ground truth)的視窗重疊越多,那麼演算法效能就越好。這是使用的指標是平均最高重疊率ABO(Average Best Overlap)。對於每個固定的類別 c,每個真實情況(ground truth)表示為 ,令計算得到的位置假設L中的每個值l,那麼 ABO的公式表達為:
        重疊率的計算方式:
        上面結果給出的是一個類別的ABO,對於所有類別下的效能評價,很自然就是使用所有類別的ABO的平均值MABO(Mean Average Best Overlap)來評價。


       上面基本上講了一下,這篇論文的架構,在【2】中可以下載得到該論文相對應的matlab代碼(也可以在【10】中下載)。通過該代碼,擷取得到映像中物體的位置假設L。之後我們可以利用這個結果進行更加深入的研究。由於原matlab代碼中部分代碼經過了加密,正在使用C++對其進行重寫,得到結果完善之後,會將其公開。由於入門不深,上面的理解不免有些錯誤,望各位指正,希望與大家多多交流~~
補充於: 2015-02-05        受各種雜事的影響,很久沒有更新部落格。現在在學機器學習相關的知識,映像分割相關的代碼沒有來得及整理,只好把之前的工程直接打包。其中不免有些錯誤或者不足,忘廣大博友們指正。C++代碼只是對相關的matlab代碼部分工程的重寫,沒有仔細比對兩者之間的效能,不過對雨瞭解其原理還是有很大協助的,希望對初學者有所協助。代碼下載連結【11】。


參考資料: 【1】CSDN:Efficient Graph-Based Image Segmentation 【2】Selective Search 【3】CSDN:Selective Search for Object Recognition 【4】Recognition Using Regions 【5】Color Invariance 【6】Evaluating color descriptors for object and scene recognition  【7】Spatial pyramid matching for recognizing natural scene categories 【8】Illumination-invariant descriptors for discrimative visual object categorization,Technical report, University of Amsterdam(沒有找到相關連結) 【9】Object detection with discriminatively trained part based models  【10】相關原始碼(matlab) 【11】C++簡版代碼
本文轉載自:http://blog.csdn.net/mao_kun/article/details/50576003

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.