0

我對如何實現我的目標有一些懷疑。我有一個正在錄製人物的外部相機,我想爲每個人畫一個橢圓。在OpenCV上使用期望最大化的人畫橢圓

現在我要做的就是從框架得到了人們的特徵點(我讓他們使用掩模只對人的特徵點),設置了EM算法和我的樣本訓練它(特徵點提取)。簇的數量是圖像中人數的兩倍(我在使用其他方法(例如使用碼本進行像素計算)啓動EM算法之前得到它)。

我的問題是

  • (一)我必須只訓練它僅在第一幀,然後用下面的幀預測?或者,(b)在每一幀中使用具有特徵點的列車?

現在我正在做選項b)(我不使用預測),因爲我真的不知道如何使用預測。

如果我做了a),你能幫我一下嗎?之後如何繪製橢圓?如果我做b),你能幫我爲每個人畫一個橢圓嗎?因爲我知道我使用cov,mean等爲同一個人得到了不同的橢圓(例如,一個用於手臂)。

我想實現的是本文采用高斯模型:http://ieeexplore.ieee.org/xpl/login.jsp?tp=&arnumber=5580105&tag=1&url=http%3A%2F%2Fieeexplore.ieee.org%2Fxpls%2Fabs_all.jsp%3Farnumber%3D5580105%26tag%3D1

+2

如果要繪製邊界框而不是橢圓,可以使用函數groupRectanlges進行合併不同的邊界框。 但是,更重要的是 - 爲什麼不使用openCV的人體探測器(基於HOG)或潛在的svm探測器與人體模型? – GilLevi

+0

感謝您的回覆。我真的不知道這些條款是什麼,但我肯定會研究它。使用我在上面解釋的一點是因爲我會在非常人羣環境中(例如購物中心,時代廣場等)檢測人,並且在獲得特徵點之後,我將繪製通過這些特徵點的垂直橢圓。我會回來,如果我不明白你說的,謝謝 –

+0

好吧,所以我會正確回答我的意見。 – GilLevi

回答

1

如果你想畫邊界框,而不是省略號,你可以使用函數groupRectanlges合併不同的邊框。

但是,更重要的是 - 對於人員檢測,您可以簡單地將openCV的人員檢測器(基於HOG)或潛在的svm檢測器與人員模型一起使用。

0

無論如何,你應該做b),否則你會嘗試將關鍵點與第一幀中的簇(人員)相匹配。幾秒鐘後,這將不相關。

假設從幀到幀的變化不會是壓倒性的,因此重用幀N-1上的訓練結果是在幀N上訓練的好種子,可能會更快地收斂EM在每個框架上從頭開始。

爲了吸引你可以從高斯例子的混合物在Python綁定利用省略號:

https://github.com/opencv/opencv/blob/master/samples/python/gaussian_mix.py

注意,如果您使用的是對角線協方差矩陣,你的橢圓將要對準「直線「,它們自己的軸線與框架的X軸和Y軸對齊,您可以跳過橢圓角度的計算