2008年12月13日 星期六

[問題] Find Face

現在先把影片切成shot,然後在shot中找face

理論上只要把每個frame丟進去做face detection,然後將得到的結果

利用相鄰frame中同一face的中心距離不會太遠的特性,來判斷是不是同一個face

然後在看這個face出現的frame占整個shot的長度(目前是設50%,我覺得可以再調降?)

來判斷這些face是否可代表這個shot(誤判為face的出現次數應該不多)


可是,這樣會變成,"側臉或face detection無法detect出來的臉"被忽略掉

之前的想法是,只要影片中detect到一張face,就往前後範圍去比對,然後找到這張臉出現的片段

(這個片段其實在大部分的情況就是一個shot,例外情況是攝影機移動,造成這張臉消失在鏡頭內)

可是要是detect到的不是face,然後往前後找,不管用什麼方式(histogram、取下面可能是衣服的部分、或trace等方法),一樣會找到一整段錯誤的片段

(ex:將某段背景區塊誤判為face,但該區塊變動度很小,不管用上面哪個方法我覺得最後都會抓到整段shot,可是事實上這不是face)


[簡單總結]:

一張或多張臉可以清楚被detect(即使在shot中有移動或稍微側面) => 可以被找出來,並代表這段shot

偶爾出現的false positive => 可以被忽略掉,不會被當成這段shot中出現的臉

整段shot都側臉,偶爾才被detect到的face => 有問題= =a

2 則留言:

DeathSimon 提到...

目前採用的方法是只看中心點間的距離

可是如果range用變動的,會有問題
(scale大的face中心點移動不會這麼大;scale小的face中心點很容易移出scale)

range用固定的,有可能因為shot不同而誤差(只能盡量調準)


再不然就是不能只用中心點,還要把face的scale加入比較...

再想想~"~

DeathSimon 提到...

解決,是之前的寫法有問題

修正之後,把range設成臉的scale可正常判斷