11/20: face_info, face_desc, face_desc_reduce, cloth_desc, background_desc (done)
11/21: face_info, face_desc, face_desc_reduce, cloth_desc, background_desc (done)
11/27: 正在跑face_info(需要13 hrs)
12/01: face_info, face_desc, face_desc_reduce, cloth_desc, background_desc (done)
12/02: face_info, face_desc, face_desc_reduce, cloth_desc, background_desc (done)
12/03: face_info, face_desc, face_desc_reduce, cloth_desc, background_desc (done)
2008年12月31日 星期三
2008年12月29日 星期一
[進度] Clustering (Cont.)
以臉為單位
只分成"有1~2face"跟"沒有或太多face"兩群
對"有1~2face"這群做K_means
feature = shot + cloth
嘗試了k = 15~27
其中只有k = 20,25兩組結果不錯
其它都至少會有兩個以上cluster會有混雜的情形
然後大概看一下,很少有"兩個人的相同shot"被分在不同cluster的情形(還是有)
接著可能要把cloth feature換用face feature試試看?
2008的倒數第二天了...
只分成"有1~2face"跟"沒有或太多face"兩群
對"有1~2face"這群做K_means
feature = shot + cloth
嘗試了k = 15~27
其中只有k = 20,25兩組結果不錯
其它都至少會有兩個以上cluster會有混雜的情形
然後大概看一下,很少有"兩個人的相同shot"被分在不同cluster的情形(還是有)
接著可能要把cloth feature換用face feature試試看?
2008的倒數第二天了...
2008年12月28日 星期日
[進度] Clustering
目前由FindAllFace找出一集中所有shot的featrure(跑一次好像要13小時~"~)
以及找出每個shot中代表臉/最對稱臉的cloth feature
由於直接對所有shot做K means效果好像沒那麼好
所以採取"先分類再K means"的方式
並打算以cloth feature作為輔助
目前都先以12/01的<康熙來了>前500個shot做測試
第一種分類方式是由face的scale來分成三群(<25,>25,no face/too many faces)
但是結果並沒有很好,而且有可能造成相同鏡頭但是臉scale有差的被分到不同群
總之結果沒有想像中的好
第二種分類方式是由face的數量來分成三群(1,2,0/>3)
第一群的結果一直都沒有很好,僅僅在k=17~20之間會得到"還可以接受"的結果(至少都有兩cluster會發生錯誤),猜測是因為有很多只抓到一張臉的情況實際上都不只一張
第二群的結果還不錯,k=5,6,9,10都可以得到不錯的結果(一個左右的cluster錯誤),但k>=9會發生單個cluster內容是差不多shot沒錯,但可能出現有兩個cluster的shot其實是應該擺在一起的狀況
本來要用衣服做輔助,將衣服feature接在shot feature後面再跑K_means
但是在第一種分類方式,臉數不同會造成freature長度不相同,所以沒辦法
第二種分類方式仍不確定
昨天有想到個想法是說,把現在"以shot為單位"的做法
改成"以face為單位",就是feature = shot feature + face feature + cloth feature
然後有detect到的face全部去做K_means
相同shot的話shot feature會相同,所以理論上會被分在一起
但是相同shot中不同人,也會因face feature + cloth feature而有影響力
不知道可行度如何,待實驗
應該要再想想跟實驗看看吧...
還有要想跨年要去哪邊 :)
以及找出每個shot中代表臉/最對稱臉的cloth feature
由於直接對所有shot做K means效果好像沒那麼好
所以採取"先分類再K means"的方式
並打算以cloth feature作為輔助
目前都先以12/01的<康熙來了>前500個shot做測試
第一種分類方式是由face的scale來分成三群(<25,>25,no face/too many faces)
但是結果並沒有很好,而且有可能造成相同鏡頭但是臉scale有差的被分到不同群
總之結果沒有想像中的好
第二種分類方式是由face的數量來分成三群(1,2,0/>3)
第一群的結果一直都沒有很好,僅僅在k=17~20之間會得到"還可以接受"的結果(至少都有兩cluster會發生錯誤),猜測是因為有很多只抓到一張臉的情況實際上都不只一張
第二群的結果還不錯,k=5,6,9,10都可以得到不錯的結果(一個左右的cluster錯誤),但k>=9會發生單個cluster內容是差不多shot沒錯,但可能出現有兩個cluster的shot其實是應該擺在一起的狀況
本來要用衣服做輔助,將衣服feature接在shot feature後面再跑K_means
但是在第一種分類方式,臉數不同會造成freature長度不相同,所以沒辦法
第二種分類方式仍不確定
昨天有想到個想法是說,把現在"以shot為單位"的做法
改成"以face為單位",就是feature = shot feature + face feature + cloth feature
然後有detect到的face全部去做K_means
相同shot的話shot feature會相同,所以理論上會被分在一起
但是相同shot中不同人,也會因face feature + cloth feature而有影響力
不知道可行度如何,待實驗
應該要再想想跟實驗看看吧...
還有要想跨年要去哪邊 :)
2008年12月24日 星期三
[進度] K-means
Gina想到說用K-means來對shot做clustering
把相同攝影機/鏡頭角度的shot都找出來(相同角度找到的應該都會是同一個人)
http://www.mathworks.com/matlabcentral/fileexchange/19344
從這個網站找到別人寫好的matlab code,直接拿來用
嘗試把一整集每個shot取一張key frame的feature points(16 bin*3 colorspace*4 block)
丟進去做clustering
出來的結果(base on 我手邊幾個frame用觀察得到的ground truth,沒有全部)
在K = 30的時候其實已經算準了(btw,我容忍度頗高,看文字檔覺得差不多了,可是還是等看實際shot再說)
應該再配合上利用shot中face的scale先簡單做個分類
再拿來做clustering,會得到更加準確的結果
Merry Christmas :)
把相同攝影機/鏡頭角度的shot都找出來(相同角度找到的應該都會是同一個人)
http://www.mathworks.com/matlabcentral/fileexchange/19344
從這個網站找到別人寫好的matlab code,直接拿來用
嘗試把一整集每個shot取一張key frame的feature points(16 bin*3 colorspace*4 block)
丟進去做clustering
出來的結果(base on 我手邊幾個frame用觀察得到的ground truth,沒有全部)
在K = 30的時候其實已經算準了(btw,我容忍度頗高,看文字檔覺得差不多了,可是還是等看實際shot再說)
應該再配合上利用shot中face的scale先簡單做個分類
再拿來做clustering,會得到更加準確的結果
Merry Christmas :)
2008年12月17日 星期三
一個shot中代表的臉
找可以用來代表這個shot的臉
之前已經利用face detection找出各frame的臉,並利用臉中心的距離分辨出哪些是屬於同一個人的臉
把出現次數過少的當作是error排除,只留下出現次數多(超過一半frame數)的臉
接著要從這些臉中找出"一張"代表用的臉
既然是要代表用的,那應該找"盡量正面"的臉
正面=>臉的對稱性高
所以把detect到的face分為左右兩半做比較
嘗試了兩個做法:
一是比對左右臉的histogram,另一是把臉灰階化之後對稱的pixel相減
用在只有一個人臉部特寫,有臉部轉動的shot中
效果都不是很好~"~
想別的方法中
之前已經利用face detection找出各frame的臉,並利用臉中心的距離分辨出哪些是屬於同一個人的臉
把出現次數過少的當作是error排除,只留下出現次數多(超過一半frame數)的臉
接著要從這些臉中找出"一張"代表用的臉
既然是要代表用的,那應該找"盡量正面"的臉
正面=>臉的對稱性高
所以把detect到的face分為左右兩半做比較
嘗試了兩個做法:
一是比對左右臉的histogram,另一是把臉灰階化之後對稱的pixel相減
用在只有一個人臉部特寫,有臉部轉動的shot中
效果都不是很好~"~
想別的方法中
shot間的clustering
1.
在特寫一個人的鏡頭中,global histogram的變異仍然很大(0.4~1.03)
如果鏡頭中有兩個人,則global histogram的變異很小(0.33~0.55)
所以用global histogram來做shot間的clustering這個方法
可能只適用於遠一點的鏡頭
如果是特寫,就要把臉、衣服、背景都拿進來做加強
另外,特寫時臉的scale會很大
2.
a. 同一個人的特寫
b. 這個人與其他人一起入鏡的鏡頭
a.與b.用global histogram的效果也有限(0.62~1.04)
3.
沒有相同的人的效果不錯(0.99~1.27)
conclusion:
global histogram適用於
a. 把沒有相同的人出現的shots分開........................3.
b. 把有相同的人出現的遠shots放在一起................1.
global histogram不適用於
a. 同一個人出現的特寫..............................................1.
b. 同一個人的特寫以及與別人一起出現的鏡頭......2.
在特寫一個人的鏡頭中,global histogram的變異仍然很大(0.4~1.03)
如果鏡頭中有兩個人,則global histogram的變異很小(0.33~0.55)
所以用global histogram來做shot間的clustering這個方法
可能只適用於遠一點的鏡頭
如果是特寫,就要把臉、衣服、背景都拿進來做加強
另外,特寫時臉的scale會很大
2.
a. 同一個人的特寫
b. 這個人與其他人一起入鏡的鏡頭
a.與b.用global histogram的效果也有限(0.62~1.04)
3.
沒有相同的人的效果不錯(0.99~1.27)
conclusion:
global histogram適用於
a. 把沒有相同的人出現的shots分開........................3.
b. 把有相同的人出現的遠shots放在一起................1.
global histogram不適用於
a. 同一個人出現的特寫..............................................1.
b. 同一個人的特寫以及與別人一起出現的鏡頭......2.
2008年12月16日 星期二
schedule
12/14: shot => episode
1. 字幕拿掉
2. 用scale測試臉的中心點
3. 衣服的部份拿掉字幕
4. background要輸出, 直接扣掉臉, 不拿掉skin pixels
5. clustering: 分辨掌鏡模式
a. 不同shots間的比對用到的Features: global histogram, (face, cloth, background)
b. 不同clusters間的比對用到的Features: face, (cloth, background) (同一個人可能出現在兩種不同掌鏡模式)
6. 整理測資
12/21: episode => program
1. 每集之間的比對: 以close-ups鏡頭的cluster取出key-face, cloth以及background不再列入考量, 因此key-face要取的很好
2. (UI)
12/28: testing
1. (UI)
2. 蒐集不同節目有相同來賓的測資
1/4: final version
powerpoint, oral presentation, 最後測試
1. 字幕拿掉
2. 用scale測試臉的中心點
3. 衣服的部份拿掉字幕
4. background要輸出, 直接扣掉臉, 不拿掉skin pixels
5. clustering: 分辨掌鏡模式
a. 不同shots間的比對用到的Features: global histogram, (face, cloth, background)
b. 不同clusters間的比對用到的Features: face, (cloth, background) (同一個人可能出現在兩種不同掌鏡模式)
6. 整理測資
12/21: episode => program
1. 每集之間的比對: 以close-ups鏡頭的cluster取出key-face, cloth以及background不再列入考量, 因此key-face要取的很好
2. (UI)
12/28: testing
1. (UI)
2. 蒐集不同節目有相同來賓的測資
1/4: final version
powerpoint, oral presentation, 最後測試
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
理論上只要把每個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
2008年12月6日 星期六
[guess] 解析度對face的影響
目前準備拿來當training data的影片解析度有兩種,600*480跟32x*24x
在想有沒有可能會因為解析度而對結果產生影響
[原因]:
不論解析度如何,face detection都可以把face找出來
可是現在除了找face之外,還要丟出face的feature points(eyes * 4,nose*3,mouth*2)
如果是同一張臉,會不會因為在不同影片的解析度不同,取到的這9個points有差異(取在臉的不同位置上)
造成normalize後跟query image比較的時候,會有解析度高會被辨認出來,而解析度低的被當成是別人的情況
會這樣猜是主要還是用臉來辨認是不是同一個人
但我其實不確定會不會有上面講的影響,影響多大,不過如果加入衣服或背景當作輔助應該可以修正回來
總之是先做了之後再視結果調整
先把猜測記錄下來^^
在想有沒有可能會因為解析度而對結果產生影響
[原因]:
不論解析度如何,face detection都可以把face找出來
可是現在除了找face之外,還要丟出face的feature points(eyes * 4,nose*3,mouth*2)
如果是同一張臉,會不會因為在不同影片的解析度不同,取到的這9個points有差異(取在臉的不同位置上)
造成normalize後跟query image比較的時候,會有解析度高會被辨認出來,而解析度低的被當成是別人的情況
會這樣猜是主要還是用臉來辨認是不是同一個人
但我其實不確定會不會有上面講的影響,影響多大,不過如果加入衣服或背景當作輔助應該可以修正回來
總之是先做了之後再視結果調整
先把猜測記錄下來^^
2008年12月4日 星期四
2008年12月3日 星期三
[observation] 節目流程
通常"一集"的角色結構大概是:
主持人:會有一個主要負責每段開頭跟把講話機會交給其他人的人
主角A:會坐在中間,通常是時事名人,畫面也很多,講話有優先權(?)
配角群:左右各一組,講話的時候鏡頭容易被帶走去拍別人的反應
小咖群:通常被放在旁邊小舞台,會被排特定講話時間,一集出現個兩三次而已,出現時間集中
流程的話:
開場:主持人介紹各個來賓,每個人會有比較連續的鏡頭
<廣告>
段落一:主持人開場之後就會給大家討論今天主題
小咖一(?):給小咖講個話
單元劇一:特定主題單元劇,角色比較固定
<廣告>
段落二:同段落一
小咖二(?):同小咖一
單元劇二:跟單元劇一不同主題的單元劇
<廣告>
段落三:同段落一二
小咖三:同小咖一二
<廣告>
結尾:主持人會先講話,然後交給其中一個角色做結尾
相同單元劇出現的角色都相同,所以比較好辨識;
小咖出現段落比較集中,但偶爾還是會穿插拍其它人反應或互動;
難度最高的應該是斷落的討論中,因為一個人在講話,可能中間為了要拍其他人反應,而有很多跳來跳去的鏡頭
ex:(A speaking) A (10sec) -> B (3sec) -> C (3sec) -> A (5sec) -> C (3sec) -> D(3sec) ...
如果先切成shot的話可能會造成畫面變得很零碎,所以後來我們討論的結果是,以每段節目作為單位,看被query人物的出現頻率/時間,來決定是否將這段歸類到該角色有參與演出
(可以避免掉都沒有講話,只是出來陪笑的無意義畫面;可是其實我覺得這邊還有值得討論的地方)
另一個想法是提高開場那段的weight,因為會讓各角色自我介紹,"連續出現時間"理論上會比節目後面長,可以利用這點
大概就是這樣...
--
我絕對沒有很有研究ˊˋ
主持人:會有一個主要負責每段開頭跟把講話機會交給其他人的人
主角A:會坐在中間,通常是時事名人,畫面也很多,講話有優先權(?)
配角群:左右各一組,講話的時候鏡頭容易被帶走去拍別人的反應
小咖群:通常被放在旁邊小舞台,會被排特定講話時間,一集出現個兩三次而已,出現時間集中
流程的話:
開場:主持人介紹各個來賓,每個人會有比較連續的鏡頭
<廣告>
段落一:主持人開場之後就會給大家討論今天主題
小咖一(?):給小咖講個話
單元劇一:特定主題單元劇,角色比較固定
<廣告>
段落二:同段落一
小咖二(?):同小咖一
單元劇二:跟單元劇一不同主題的單元劇
<廣告>
段落三:同段落一二
小咖三:同小咖一二
<廣告>
結尾:主持人會先講話,然後交給其中一個角色做結尾
相同單元劇出現的角色都相同,所以比較好辨識;
小咖出現段落比較集中,但偶爾還是會穿插拍其它人反應或互動;
難度最高的應該是斷落的討論中,因為一個人在講話,可能中間為了要拍其他人反應,而有很多跳來跳去的鏡頭
ex:(A speaking) A (10sec) -> B (3sec) -> C (3sec) -> A (5sec) -> C (3sec) -> D(3sec) ...
如果先切成shot的話可能會造成畫面變得很零碎,所以後來我們討論的結果是,以每段節目作為單位,看被query人物的出現頻率/時間,來決定是否將這段歸類到該角色有參與演出
(可以避免掉都沒有講話,只是出來陪笑的無意義畫面;可是其實我覺得這邊還有值得討論的地方)
另一個想法是提高開場那段的weight,因為會讓各角色自我介紹,"連續出現時間"理論上會比節目後面長,可以利用這點
大概就是這樣...
--
我絕對沒有很有研究ˊˋ
流程
video
=> frames
=> cut by ads.
=> parts * about 15 mins *
=> face detection within a part * openCV *
(=> face tracking within a part * KLT * )
=> local feature extraction for each face * paper *
=> distance matrix * paper *
=> score = appearing time + visual similarity
=> output
=> frames
=> cut by ads.
=> parts * about 15 mins *
=> face detection within a part * openCV *
(=> face tracking within a part * KLT * )
=> local feature extraction for each face * paper *
=> distance matrix * paper *
=> score = appearing time + visual similarity
=> output
Observation
1. shot很短,很多shot只是在捕捉其他表演者的表情
=>不以shot為單位,以進入廣告時為切割點
2.通常會加上手勢、口頭禪、聲音特色等來加強模仿效果
3.模仿同一個人,通常衣服、髮型不會改變
=>可以拿來當判斷的依據,但是weight會比face的部分低
=>不以shot為單位,以進入廣告時為切割點
2.通常會加上手勢、口頭禪、聲音特色等來加強模仿效果
3.模仿同一個人,通常衣服、髮型不會改變
=>可以拿來當判斷的依據,但是weight會比face的部分低
2008年12月2日 星期二
Who am I ? - Actors in Impersonation Shows
There might be 2 parts in our final project.
part I.
input:
query image: 被模仿的對象
output:
把在同一集節目當中的模仿片段接成一段video
不同集的節目以不同的title標示出來,讓user可以選擇想看哪一段video
ex.
input: 陳菊

output: 白雲模仿的陳菊
(這裡先以image代替video)

part II.
input:
query image: 專門模仿別人的表演者
output:
針對這位表演者曾經模仿過的每一個對象分別找出shots來接成一段video
ex.
input: 郭子乾
output:被郭子乾模仿的人(這裡先以images代替videos)


2008年11月14日 星期五
[MMAI] Project Topic 補充
1.
user input: a image and a keyword
limitation: landmark
2.
把keyword放到flickr做搜尋之後會回傳大量的圖(可能是以tag作為搜尋的基礎)
接著根據input image來過濾照片
目的是要找出拍攝角度相似的照片
3.
在過濾之後
我們再把這些從相同角度拍出來的landmark根據以下兩個軸做分類
時間軸一: midnight(dawn), morning, afternoon, and evening
時間軸二:spring, summer, fall, and winter
用這兩個時間軸將所有得到的照片分成多個clusters
4.
利用不同的clusters中的照片的共同特性來編輯input image
這部分可能由學長來做
user input: a image and a keyword
limitation: landmark
2.
把keyword放到flickr做搜尋之後會回傳大量的圖(可能是以tag作為搜尋的基礎)
接著根據input image來過濾照片
目的是要找出拍攝角度相似的照片
3.
在過濾之後
我們再把這些從相同角度拍出來的landmark根據以下兩個軸做分類
時間軸一: midnight(dawn), morning, afternoon, and evening
時間軸二:spring, summer, fall, and winter
用這兩個時間軸將所有得到的照片分成多個clusters
4.
利用不同的clusters中的照片的共同特性來編輯input image
這部分可能由學長來做
[MMAI] 備用Idea
1.以文找圖
輸入tag,找到跟這個tag相關的圖片,以及如何增加準確度
2.以圖找文
輸入image,跟資料庫內的image做比對,選出相似的,以這些圖的tag作為query image的tag
3.實際應用
將上面兩項實際應用在網路拍賣上
4.背景分離
如何將一張"有主角/目標物"的圖片的背景分離,以減少query時背景造成的noise
5.產生face
隨機從資料庫中選圖讓使用者打分數,利用這些分數 找出資料庫中/產生出 使用者最尬意的臉
(不過要有這個資料庫是個大工程...~"~)
以上是討論中出現的其它idea
(有漏掉什麼還麻煩Gina補充一下)
輸入tag,找到跟這個tag相關的圖片,以及如何增加準確度
2.以圖找文
輸入image,跟資料庫內的image做比對,選出相似的,以這些圖的tag作為query image的tag
3.實際應用
將上面兩項實際應用在網路拍賣上
4.背景分離
如何將一張"有主角/目標物"的圖片的背景分離,以減少query時背景造成的noise
5.產生face
隨機從資料庫中選圖讓使用者打分數,利用這些分數 找出資料庫中/產生出 使用者最尬意的臉
(不過要有這個資料庫是個大工程...~"~)
以上是討論中出現的其它idea
(有漏掉什麼還麻煩Gina補充一下)
2008年11月13日 星期四
訂閱:
文章 (Atom)