2013-07-09 16 views
0

我是新來的GPU編程和我已經通過傳遞haarcascade_frontalface_alt.xml和視頻文件,這個編譯例子開始:用OpenCV使用GPU在視頻的所有4個方向中搜索人臉的最有效方法是什麼?

https://github.com/Itseez/opencv/blob/master/samples/gpu/cascadeclassifier.cpp

這似乎需要大約3秒加載視頻到GPU和然後再過2秒鐘搜尋臉部。這個效果很好,但是視頻可以在任何方向錄製,所以如果找不到臉部,我將視頻旋轉90度,然後重試。問題是這種方法至少需要20秒來確定是否在所有4個方向上都找到了任何臉部,從而確定了視頻的正確方向。

是否可以執行旋轉不變級聯分類器來確定視頻的方向?或者是否可以在GPU中轉換視頻而不必重新加載旋轉版本?或者可以應用級聯分類器的旋轉版本?如何在所有4個方向上搜索人臉,而無需將4個版本的視頻加載到GPU中?

回答

1

計算機視覺世界中有許多事情是可能的,但很少有健壯性/可靠性:)。旋轉不變性不是要走的路(因爲有效的旋轉不變性意味着旋轉信息以某種方式被丟棄)。

  1. 最簡單的辦法:在GPU上的圖像旋轉是相當快的,所以你可以嘗試已經上傳到設備後,每幅圖像旋轉,使用GPU ::旋轉。
  2. 更快的方法:典型的方法是學習四種不同的探測器並應用所有探測器。隨着一些最新進展,檢測器的數量在很大程度上取決於檢測器數量

但我仍然不確定你想達到什麼。如果你不想找到所有的面孔,而是估計視頻的方向(就像你的問題的一部分聽起來那樣),你只需要處理所有幀的子樣本並從中推斷(因爲頭部旋轉不傾向於做隨機分配:))

+0

我的目標是制定出視頻的方向並返回任何面孔的位置。無論如何,尋找面孔似乎是一個很好的方法,因爲我需要他們的位置。 我修改了這個例子,當它找到5並且返回他們的位置時,停止查找面,因爲這是我需要的足夠信息。我會嘗試旋轉GPU中的圖像開始,因爲這看起來更容易。最終,有4個獨立的級聯必須是前進的方向。你是否認爲可以同時在4個不同的級聯中搜索同一個GPU中的視頻? – SoftForge

相關問題