2014-11-01 50 views
5

我目前正在檢測CCTV圖像中的頭像。我使用的是HOG檢測器+ SVM,我使用滑動窗口技術來檢測頭部。當然,當我縮放圖像時,我有多個相同頭部的檢測/邊界框。我知道我必須使用非最大值抑制來選擇其中最好的一個,並且我試圖遵循以下鏈接: http://quantombone.blogspot.com/2011/08/blazing-fast-nmsm-from-exemplar-svm.html檢測到的窗口非最大抑制MATLAB

但是,我無法理解如何獲得每個滑動窗口的分數。有人可以向我解釋嗎? 換句話說,我有邊界框,我知道我必須設置0.5的重疊,但我沒有每個邊界框的分數。

+1

它是由分類器給出的預測分數,我想。對於SVM,如果使用LibSVM,那麼得分可能是它輸出的概率估計值。得分是對象(如汽車)包含在該框中的概率。 – 2014-11-01 22:16:31

+0

誰在檢測Windows MATLAB,爲什麼它被壓制,和Linux MATLAB或Mac MATLAB有什麼不同? (看起來像「MATLAB」這個詞在你的標題中很不合適) – 2014-11-02 00:03:04

+0

@ ParagS.Chandakkar是在做了一些很好的研究之後,我同意你的觀點,事實上我使用參數'b 1'來輸出概率。但是,當在控制檯上輸出概率時,我注意到對於每個預測,2個概率都被給出而不是1個。我可以將它與您清除嗎?非常感謝 – user2541516 2014-11-02 15:36:48

回答

4

實際上,對於非最大抑制,您不需要與每個邊界框關聯的分數。您可以使用Viola和Jones(簡單的特點提振級聯)的知名NMS方法:有相互重疊的大於0.5

  • 每個集羣

    • 集羣中的所有邊界框計算平均值邊界並輸出它(即計算所有右上角和所有右下角之間的平均點)

    而且你有非最大抑制。

    如果您仍想使用其他需要輸出分數的例程,則只需爲每個邊界框分配相同的分數即可。

  • +0

    我會嘗試你告訴我的方式,並讓你知道結果@dynamic – user2541516 2014-11-02 15:37:32

    +1

    我試圖用這個鏈接中顯示的nms:http://quantombone.blogspot.com/2011/08/blazing-fast-nmsm -from-exemplar-svm.html通過給每個邊界框賦予相同的得分1,但是與小的相比,所得到的框變得非常大,因此不是捕獲頭部,而是每個框捕獲頭部+許多其他事物與它...任何反饋? – user2541516 2014-11-03 16:20:33

    +0

    @dynamic你可以定義什麼重疊意味着如何進行聚類? – warmspringwinds 2015-07-07 18:39:29

    2

    您應該能夠從SVM中得分。例如,如果您在統計工具箱中使用ClassificationECOC類來訓練SVM,則其predict方法可以返回分數。

    然後,您可以使用計算機視覺系統工具箱中的selectStrongestBbox功能來執行非最大值抑制。

    +0

    偉大的@Dima但是我試圖從以下鏈接使用nms:http://quantombone.blogspot.com/2011/08/blazing-fast-nmsm-from-exemplar-svm.html – user2541516 2014-11-03 15:31:46

    +0

    我也使用HOG MATLAB上的libSVM的功能..我試圖通過使用上面的註釋鏈接中顯示的nms來抑制不想要的bboxes – user2541516 2014-11-03 16:24:23

    +1

    @ user2541516此功能似乎按照您的意願進行。那麼你是否想自己實施NMS,如果是的話,那就繼續吧。否則,我認爲'selectStrongestBox'就是你想要的。 – 2014-11-03 21:12:23