Exemplar-SVMs for Object Detection and Beyond—Details(二)

Reference:

[1] Ensemble of Exemplar-SVMs for Object Detection and Beyond,ICCV 2011Carnegie Mellon University

[2] Exemplar-based Representations for Object Detection, Association and Beyond PHD thesis,2011

[3] Probabilistic outputs for support vector machines and comparisons to regularized likelihood methods 1999

[4] Image Retrieval and Classification Using Local Distance Functions NIPS 2007UC Berkeley

[5] Recognition by Association via Learning Per-exemplar Distances CVPR 08Carnegie Mellon University

[6]The proactive brain: using analogies and associations to generate predictions

Codehttp://people.csail.mit.edu/tomasz/

HOG:Opencv HOG行人檢測 源碼分析(一)

DPM:  DPM(Deformable Parts Model)原理

Feature

選用快速簡單的HOG特徵,採用了DMP中HOG策略,31維,sbin=8。

不同的地方在於,作者不是先把bounding box 截取,wrap (統一到HOG模板的寬高比)之後再計算HOG,而是直接計算原始圖像的HOG,再提取標記區域的HOG,當然這樣就不能保證提取的區域和BB完全重合。

Examplar 模板的表示上,而且作者還儘量使得Cell數目在100個左右,並且還要約束高和寬不能超過12個cell,即

要實現這個目標,當然就得在HOG金字塔空間搜索了,作者使用了啓發式搜索

至於爲什麼要控制exemplar 的高寬不能超過12,這是爲後面的加速做準備。

Trian

(1)Exemplar –SVM的優化函數

其中,損失函數

解釋下爲什麼,首先你最好看看pluskid對於超調的講解

一般的SVM優化的函數爲

        

可見所有樣本的重要性等同,即正負樣本犯錯的懲罰力度是一樣的。但是本文卻不行。因爲,只有一個正樣本,正樣本和負樣本數目極端的不平衡,如果線性/非線性可分,那倒沒關係,如果根本找不出一個分界面的情況下,那我們必須引入鬆弛變量,使得樣本的function distance 可以即允許樣本犯錯。優化的結果是使得錯誤總量最小,那肯定是會犧牲掉少部分人的利益,於是數量佔絕對劣勢的正樣本只能被劃入負樣本的陣營,沒辦法啊,人家單挑一羣。本文,正樣本只有唯一一個,你還把它給劃分錯誤,這個分類器肯定就不夠準確。解決方法就是縮寫樣本的恢復平衡,比如,正樣本一個頂一百個。

圖 3

例如,圖 3中如果沒有左邊兩個黑圈的紅點那麼實線會是個很好的分界面,如果我們令Exemplar –SVM的優化函數的,那麼分界面可能會取虛線,而令則可能取實線爲分界線。總之, 強調了正樣本絕不容許犯錯,負但是負樣本犯錯要寬容。

(2)樣本集

訓練集中的每一個正樣本都需要單獨拿出來和負樣本訓練。對於負樣本的選取作者很謹慎,它完全是取不包含任何正樣本的類作爲負樣本,比如訓練人的時候拿豬做負樣本。因爲作者認爲,我們不知道訓練集中哪些樣本和當前訓練的樣本是視覺上不相似的,但可以肯定的是其它類別的樣本肯定是不相似的。

(3)優化

本文和DPM算法一樣使用隨機梯度下降+hard negative exemplar ming,每一代最多使用2500個負樣本

Calibration/概率SVM

同一個SVM的分類得分直接可以比較大小,但是不同的SVM分類器的得分直接不能直接比較,這就好比每個人對美女的評價一樣,校正的目的就是使得不同的SVM分類器直接可以直接比較,即兼容,方法是使用擬合的sigmoid函數將分類器得分統一到[0,1]之間,即對應概率,概率是可以比較的。參考文獻[3],概率SVM,經典的貝葉斯理論。

Sigmoid(,神經網絡中用來產生非線性輸出)映射函數如下(來源下面細說):

 

參數估計

使用經典的最大似然估計,注意不是SVM的偏移。

其中:正樣本標記,,負樣本標記,

校正效果

縮放分類器Score,又是一個偏移,相當於平移分界面。

近似的情況下可以直接使用輸出距離作爲概率,即圖中的綠色。

粉紅色表示,驗證集中距離分佈普遍大於,藍色表示

高斯分佈

上圖是正負樣本的原始概率分佈,看起來像高斯分佈,於是《classification by pairwise coupling》就使用高斯分佈來擬合對正負樣本分佈,然後用經典的貝葉斯計算下後驗概率

注意到最後一點,算出的後驗概率不是單調的,因爲求導後有零點,這不符合常理,於是文獻[3]採用了指數分佈擬合。

指數分佈

只考慮的部分,看起來像指數分佈,所以人家就用指數分佈了。其實,可以說是高斯的簡化,即直接去掉二次項,即滿足單調性了。

Detection

Object Location

目標定位。即在圖像中找到目標的位置,本文采用憨厚的滑動窗口目標搜索策略,不過我喜歡基於分割區域的搜索策略,有興趣的可以看看一篇經典論文Segmentation as selective search for object recognition ICCV 2011。滑動窗口很耗時,但是作者做了很多Speed Up工作,值得一看

(1) Convolution

卷積很簡單就是用examplar HOG模板在圖像上平移,然後用平移後的目標區域HOG特徵和examplar HOG模板作內積。DMP的步長真心不記得了,應該是1個像素,那一堆程序全忘了……,這裏的步長是一個Cell的大小在原圖上就是8個pixel。

作者的PHD論文裏面說如果圖像的大小是,模板 那這張圖就得卷積次,我覺得應該是次啊,我哪裏錯了???

好了,總之,直接卷積太耗時間了,一張的圖片如果採用 的模板卷積次數高達,這只是一個examplar SVM,作者有上千個examplar SVM,這個數量級就有點恐怖了。

(2) Single matrix multiplication

上面說到內積次數太恐怖了,所以作者就將多次內積,化爲一次矩陣相乘,以空間換時間。但是各個examplar SVM模板高寬都不一樣啊,怎麼能統一運算呢?還記得前面提到的將模板的高寬限制在12以內嗎?這樣的話,我們就能將所有的模板全部統一到,對於多出了的區域補0,反正又不影響內積的結果。如此一來我們就只要提取出HOG金字塔中所有的的模板就可以了。

首先將所有的候選區域全部提取出來組成一個矩陣其維度爲,爲候選目標的個數。

上面統一了候選區域到,現在統一examplar SVM模板到,的維度爲,爲examplar SVM模板的總數。

最後只需要做一次矩陣運算

顯然一次矩相乘算比多次卷積運算的時間是少,但這不一定,論文說只有當examplar SVM模板的數目超過50的時候速度才能超過卷積。因爲,一次相乘雖然速度快,而且當examplar SVM模板數目增加時,矩陣相乘運算的時間基本上增加不了多少,但是爲每個模板補零需要時間,模板擴展到之後維數增高,內積時間也會久一點,而且存儲超大型矩陣的內存需求急速膨脹,這麼大的內存空間分配管理也需要時間。

所以作者在 mining negative 階段就用卷積,在檢測階段用一次矩陣相乘。

(3) Applying Distance Functions via Two Convolutions

這部分是岔開來的話題,是基於相似性,即距離函數的分類。

樣本與examplar SVM的距離:

其中爲各維度的距離權重,是一個對角矩陣,有意思的是這完全可以化爲兩次內積運算,從而可以用卷積計算,卷積可太方便了,而且還能並行運算。

其中, 與無關,可以預先算好。

,也可以只算一次。

即將的元素平方。

這樣一來,就可以化爲兩次內積運算然後求一次和。雖然複雜程度並沒有降低多少,但是,這兩次內積運算可以分開求即可以對原HOG圖和平方後的HOG圖卷積。

NMS(non-maxima-suppression)

滑動窗口搜索是一種過搜索策略,會導致冗餘檢測區域,一般的對策是NMS。

NMS是一種貪心算法,它先將所有的候選目標區域依據其Score從大到小排序,然後,依次選擇得分最高的區域保留下來,同時將與其重合面積的候選目標區域刪掉

Exemplar Co-occurrence Matrices

本文這樣做也是可以直接NMS,但是這樣浪費了重要的互信息

Examplar Co-occurrence Matrices 即上下文信息。舉個例子,小風小莎是一對好基友,所以它們經常在一塊(吃飯,睡覺……),有一天小明在街上看到一個小屁孩特像小風,但是不能肯定,只有50%的把握,再看旁邊,那廝特像小莎,於是小明覺得那小屁孩80%是小風(這個例子還是有些出入)。本文互信息肯定很有價值,因爲不同的example SVM屬於同一類目標,肯定有相似的地方。

本文同樣也是NMS但是不同點在於,沒有直接使用Exapler分類器的Score,而是先綜合各個example SVM的Score以及互信息之後得到新的Score,再NMS。

比如說,對於 ,其與同時出現的概率爲,那對於檢測到的區域其新的Score不是,而是:

不過呢,是需要找的,那找了一個最特殊的

對於檢測到的目標區域,其 與的上下文特徵 :檢測到的目標區域中與面積 IoU大於 0.5 的目標區域中 Score最高的一個。

是直接統計訓練集得到的,作者只是說同時檢測正確的概率。我覺得應該是這樣的,比如先得到NMS之後的檢測區域,然後對檢測到的bounding box,統計其與檢測到的目標區域對應同一個標記bounding box的比例即概率。

 

Futher

這篇論文本質上可以說是基於相似性的模式識別和基於統計的模式識別的結合(依我之見)。這篇會議論文體現不出作者的理論高度,建議看作者的PHD論文,從哲學,認知科學開始切入,看看啥才叫博士論文。

如上圖基於相似性能構成相似性網絡,所有的概念都是一個子網,體現了萬物具有普遍聯繫的特點,類似於互聯網,但目前我們只用互聯網來存儲檢索信息,我甚至覺得互聯網模型可以用來思考問題……最後再給大家推薦一本書《similarity-based pattern analysis and recogntion》Spring 2013,擴展下思路,屬於 advances in computer and pattern recognition 系列,該系列其它的書也不錯。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章