關於『數位影像分析之智慧型監視系統』的Q&A - Part 1
作者:Mr. Lai Tai-Yu, Averill, 赖岱佑, 賴岱佑
標題:關於『數位影像分析之智慧型監視系統』的Q&A - Part 1
由於有讀者對於數位影像分析之智慧型監視系統一書有疑問,因此整理如下:
P.S. 整理得很粗糙,不好意思,凡是來信有帳號名稱、人名、稱謂、單位名稱或地名,都不包含在內。小弟儘量仔細檢查,將可以放上來的問題公佈出來,以供其他讀者參考。但若您認為不方便將問題公開,煩請來信告知,有冒犯之處,還請多多見諒。我會儘速處理,謝謝各位,靜祝各位2009新年快樂、萬事如意、鴻圖大展、健康快樂、心想事成。感謝。
P.S. 小弟的回答,僅供參考,還需要各位先進指導,謝謝。
Q:當我們在使用一台監視器時.ㄧ開機使用.就會先經過演算法產生一個場景資訊.接著當監視器在移動時.就會因為畫面的改變而變更場景資訊?如果我們是一直固定監視器而不移動它.則在開始時所建立的場景資訊就不會改變?永遠都為同一個背景資訊?
A:做視訊演算法的話絕對離不開時間軸,所以不可能像靜態影像一樣,維持不變,資訊是一直在變化的。我們只能說變化很小而已,或說小到可以控制的範圍。基礎概念是當第一張影像進來時,背景是空白的,您有兩種選擇,第一種是直接將第一張影像做背景,第二種選擇就是使用時間背景法建構背景。這篇論文選第一種,這樣初始化比較快。而場景就是當背景畫面與當下畫面差異極大時,我們的背景就沒有意義了,此時就必須更新背景。概念是當有人遮蔽或移動攝影機時,那先前背景就無效了,必須更新,所以才需要場景偵測。這樣演算法才能繼續自動使用,若沒有場景偵測,遮蔽或移動就會產生誤偵測。那就不實用了。您可以拍攝一個靜態的畫面,然後兩張相鄰的畫面做絕對值相減,您會發現就算場景不變,每一毫秒所近來的畫面都不相同,絕對有差異,差異有時大有時小。
Q:然後就是當監視器移動到某個定點時停住.演算法便會判斷場景已經沒有一直在變換.所以把場景資訊存入時間背景資訊裡.而如果要判斷場景資訊是否有再次改變.則依據前一次儲存的時間背景資訊和當下畫面比較.如果差異達到一定的比例時.就會判定回場景改變.因而改變場景資訊.所以我們一開始使用監視器的第一步驟.演算法就會先建立一個場景資訊.藉由和時間背景資訊的相互運算來求得改變的場景資訊和時間背景資訊?而時間背景資訊表所指的變動的背景資訊.而不是真的需要建立一個表格?
A:場景資訊沒有存到時間背景資訊的必要,都是時間背景資訊存到場景資訊中,所以正好相反。要判斷場景是否有改變用減法就可以了,差異很大就可以判斷場景改變。一開始使用的第一個步驟是建立背景資訊,而非場景資訊。時間背景法就是更新背景資訊,而場景資訊是當背景穩定或自行設定更新。所以背景會不斷更新,而場景是間隔更新。時間背景資訊表是概念的說法,雖然資料結構是灰階數值,但實際用途卻不是以影像概念去想,因此稱做表格。但從實務來說,您可以將背景和場景視為兩個類別,因此最好將這兩個類別的關聯性脫鉤。
Q:在適應性背景.的公式Scene=(累加)|Frame-B|的Scene指的就是時間背景資訊?而上標k是每個像素點做運算嗎?
A:
標題:關於『數位影像分析之智慧型監視系統』的Q&A - Part 1
由於有讀者對於數位影像分析之智慧型監視系統一書有疑問,因此整理如下:
P.S. 整理得很粗糙,不好意思,凡是來信有帳號名稱、人名、稱謂、單位名稱或地名,都不包含在內。小弟儘量仔細檢查,將可以放上來的問題公佈出來,以供其他讀者參考。但若您認為不方便將問題公開,煩請來信告知,有冒犯之處,還請多多見諒。我會儘速處理,謝謝各位,靜祝各位2009新年快樂、萬事如意、鴻圖大展、健康快樂、心想事成。感謝。
P.S. 小弟的回答,僅供參考,還需要各位先進指導,謝謝。
Q:當我們在使用一台監視器時.ㄧ開機使用.就會先經過演算法產生一個場景資訊.接著當監視器在移動時.就會因為畫面的改變而變更場景資訊?如果我們是一直固定監視器而不移動它.則在開始時所建立的場景資訊就不會改變?永遠都為同一個背景資訊?
A:做視訊演算法的話絕對離不開時間軸,所以不可能像靜態影像一樣,維持不變,資訊是一直在變化的。我們只能說變化很小而已,或說小到可以控制的範圍。基礎概念是當第一張影像進來時,背景是空白的,您有兩種選擇,第一種是直接將第一張影像做背景,第二種選擇就是使用時間背景法建構背景。這篇論文選第一種,這樣初始化比較快。而場景就是當背景畫面與當下畫面差異極大時,我們的背景就沒有意義了,此時就必須更新背景。概念是當有人遮蔽或移動攝影機時,那先前背景就無效了,必須更新,所以才需要場景偵測。這樣演算法才能繼續自動使用,若沒有場景偵測,遮蔽或移動就會產生誤偵測。那就不實用了。您可以拍攝一個靜態的畫面,然後兩張相鄰的畫面做絕對值相減,您會發現就算場景不變,每一毫秒所近來的畫面都不相同,絕對有差異,差異有時大有時小。
Q:然後就是當監視器移動到某個定點時停住.演算法便會判斷場景已經沒有一直在變換.所以把場景資訊存入時間背景資訊裡.而如果要判斷場景資訊是否有再次改變.則依據前一次儲存的時間背景資訊和當下畫面比較.如果差異達到一定的比例時.就會判定回場景改變.因而改變場景資訊.所以我們一開始使用監視器的第一步驟.演算法就會先建立一個場景資訊.藉由和時間背景資訊的相互運算來求得改變的場景資訊和時間背景資訊?而時間背景資訊表所指的變動的背景資訊.而不是真的需要建立一個表格?
A:場景資訊沒有存到時間背景資訊的必要,都是時間背景資訊存到場景資訊中,所以正好相反。要判斷場景是否有改變用減法就可以了,差異很大就可以判斷場景改變。一開始使用的第一個步驟是建立背景資訊,而非場景資訊。時間背景法就是更新背景資訊,而場景資訊是當背景穩定或自行設定更新。所以背景會不斷更新,而場景是間隔更新。時間背景資訊表是概念的說法,雖然資料結構是灰階數值,但實際用途卻不是以影像概念去想,因此稱做表格。但從實務來說,您可以將背景和場景視為兩個類別,因此最好將這兩個類別的關聯性脫鉤。
Q:在適應性背景.的公式Scene=(累加)|Frame-B|的Scene指的就是時間背景資訊?而上標k是每個像素點做運算嗎?
A:
這裡是說當下畫面與背景差異度的計算方式,標上k是畫面,Frame和B是指整張影像。
Q:再來談到移動偵測,diff=P-B/255,以及B=diff+B.這兩個公式.是不是一直在運算且不斷更新時間背景資訊.但是當時間背景資訊更新停止時便將當下的時間背景資訊存到場景資訊?
A:
,
對的,沒有錯。
Q:我有一個疑問是..要先把原本彩色的影像取y?.轉成灰階嗎?而我對於為何要要除以255還是太理解我知道灰階的表現是0~255這個和除以255有關係嗎?
A:
轉為灰階是為了降低運算量,除以255是因為灰階是0~255,沒有錯。還有一個原因就是除以255順便可以降低雜訊。因為雜訊也是0~255。您可以試著改乘除以其他數值,就可以發現除以255是最適當的。
Q:回饋的功能是?用來補償雜訊所造成的錯誤嗎?還是只是用做不斷更新時間背景資訊?
A:回饋可以達到趨近於當下畫面。有修正的效果。回饋是改良義大利論文的缺點。
Q:邊緣資訊.公式g(x,y)=f(x,y)*Wk裡,f(x,y)指的是像素的陣列位置嗎?是整張圖的點都要算.還是把用公式motion=|P-B|算出來有差異的?的位置才需要運算?何時是成上陣列W1,何時是乘上W2呢?我有點不太懂微分強化的原理.是什麼原因可以使的像素值呈上這個陣列便可以強化邊緣?
A:
f(x+2,y+2)就是像素陣列位置,加上2是跳著取,等於取四分之一的意思。是整張圖的像素都計算。加上Sobel Filter的意思就是強化邊緣資訊,因此才要
,其中+ g(x,y)就是加強邊緣資訊的意思。您可以想像,經由P-B之後,獲得的差異資訊是很破損的,透過邊緣資訊將破損的區域連接起來,有這樣的功用。這裡的f(x+2,y+2)*Wk是迴旋運算,並不是乘法,計算如下:
X= Aa + Bb + Cc + Dd + Ee + Ff + Gg + Hh +Ii
這就是說明X是結果像素,它經由A、B、C、D、E、F、G、H、I的原始像素,去乘以遮罩(濾波器)a、b、c、d、e、f、g、h、i。然後相加的結果就是X。 為何可以強化邊緣這是有原因的,微分就是計算斜率,產生斜率就會造成邊緣強化。您可以修改範例中的程式,變成其他角度的邊緣強化,這樣也許就會明瞭。
Q:再來式距離公式.假設的兩個點PA和PB有關聯嗎?還是任意定的?由原點到邊緣的距離,什麼是原點呢?而所指的最高距離是指某點有最高的距離?是不是把每個區塊有最高距離的點連接起來.就是ㄧ個物件的輪廓?
A:有兩個區域,彼此之間要做連結,如圖,在還沒有做距離計算的時候,都是灰階數值0~255,做了距離計算之後,就會變成如圖的數值,這樣我們就可以找到每個區域之間的最大值,在本範例中是3。把每個區塊的最高距離連接起來,就會成為物體的大致輪廓了。要修的漂亮還可以用邊緣偵測的方法,例如:
。所以Pa, Pb 是任意的意思。
形狀輪廓連接示意圖
Q:還有原本由義大利通訊實驗室所提出先用手繪的方式定物體輪廓?手會指的是用什麼方法呢?
A:他的第一張影像必須先用滑鼠圈選人物大致的範圍,所謂手繪就是透過滑鼠圈選範圍的意思。
Q:我們現在所抓的輪廓是每一個在前景中會動的物件嗎?還是在抓我們要鎖定的物品?
A:我們可以抓取移動中物體輪廓也可以抓取出現在畫面或遺留在畫面的物體輪廓,並沒有鎖定物體。
Q: 我不太懂不用手繪的方式(或者稱手動調整的作法)什麼?以及賴先生您所用的方法如何實行?我們是不是再抓輪廓時都要先選定一個小框格.還是可以整個畫面抓呢?還有我們真正要抓的輪廓是什麼東西的輪廓呢?這裡我很混淆.
A:這點您誤會了,我所指的手繪是指義大利論文方法,他是偵測頭部到肩部的範圍,偵測前先用手繪的方法大約圈住人形範圍。而後透過演算法,所圈選的範圍會漸漸趨近於人形,最後就可以將人形切割下來。我是不用先用手繪圈選人形,但又採用他的方法,因此就要設計一個方法取代手繪功能,那個方法就是
,這樣就可以替代手繪了。所以我們抓輪廓的時候就不用選一個小框格,用我的方法就可以讓演算法自動成形。所以他的方法我做了一點小改良。但他真的很神,能想出透過三張畫面就可切割物體的方法,他這篇論文很值得參考。不過很難懂就是了。這篇論文一開始就說分為兩個部分,第一個部分是物件切割,第二個部份是物品遺留或遺失。抓到輪廓可以分為兩種用途,可是我怕一說了,您就更糊塗了,所以我想先告訴您抓輪廓是指物品的輪廓。等清楚整個流程之後,在想說抓到的輪廓也可以過濾掉移動中的物體。現在只要想是物品的輪廓就好了。
Q:在第一部分複雜背景的物件追蹤所做的公式運算,都是以先把彩色畫面轉成灰階影像再做運算嗎?
A: 這篇論文所有的方法都採用灰階運算,節省效能,數位影像處理因為需要龐大運算效能,所以幾乎都採用灰階以節省時間,不過近年來由於CPU和GPU突飛猛進,慢慢開始有學者專家採用彩色運算。不過我並不建議直接採用彩色運算,原因是R紅色、G綠色、B藍色會造成三維空間,用灰階只要處理一維就夠頭痛了,直接學三維處理可能會昏倒。不過真有興趣的話,從mean shift來看彩色處理,可以成為入門彩色方法的課程。
Q:所謂的學習時間.指的是時間背景資訊表的每一次更新的時間嗎?
A:不是每一次更新的時間,而是每一段更新的時間。因為每次更新只有些微改變,而每段更新才有較大的修正。
Q:在遺物和失物的演算法裡.我們一開始是不是就要先用手動的方式圈選我們所要鎖定的幾個靜止的物體?
A:市面上遺失和遺留物體的演算法是要先圈選物體或範圍的,像是XX的演算法。而我所提出的演算法是不用鎖定物體或圈選範圍,直接做全景運算,因此比較實用,但難度增加。
Q:專題5-2所說到的時間背景法是否就是5-1所提到的時間背景資訊表?
A:時間背景法源自於智慧型交通監控論文,將其改良為時間背景資訊表,您可以透過公式做比較,就可以知道時間背景法與時間背景資訊表的些微差異。
Q: 5-2提到的方程式ㄧ:時間背景法的說到"更新的速度是一個像素"這是什麼意思呢?
A:
真正的時間背景法是以一個像素為單位在更新。
Q:是不是5-2和5-1所用的方法一樣都會一直變換場景值?
A:5-1所用的方法是改良後的快速分割及時間背景法,針對物件遺失遺留演算法所設計。而5-2是介紹原版的快速分割及時間背景法做法,提供比較。
Q:因為我的問題真的很多..而且我想很多東西是基礎的問題.但是我不太能確定我想的是不是您所說的作法.所以跟您確認一下
A:您很用功,真是好習慣,只要您來信我就回抽空回覆您的。最晚的話都是一星期回覆一次,請見諒,因為還要上班。
Q:另外還有遺物和失物的演算法..我想之後再慢慢詢問您好了...真的非常感謝!也要再一次麻煩您了!
A:請先瞭解有序抖色法之後再來看這一塊。這樣才能了解。
Q:那就是所謂的場景變換是因為監視器一直在移動的關係嗎?
A:很多研究都專注在一種情境下,例如東西遺失的演算法就專注在東西遺失,而不會注意到當攝影機移動或是被遮蔽的時候的問題,增加場景偵測目的就是為了當攝影機被移動或遮蔽的時候,就會重新建立背景。而不會產生誤偵測,主要目的就是處理意外事件。並不是監視器一直在移動的關係,這是實作後所發現的問題,因此加入場景偵測,若您覺得有困擾的話,可以先忽略,專注在物件遺失或遺留的問題上。
Q:而會一直不斷的變更場景以及背景,是為了藉由場景產生背景.然後才可以利用前景減背景求出物件嗎?
A:其實您可以發現,攝影機就算只拍攝靜態物體,每一張影像也都會不一樣,像素不斷的改變數值,那怎麼辦呢?就要利用時間背景法來更新背景,一般實驗室的研究都是採用純色的背景,先做研究主題。但實際環境是沒有這麼完美,因此透過不斷的更新,才能獲得較接近環境的背景。而後將像您說的用前景減去背景(記得加絕對值)就可以取出物件了。
Q:很抱歉因為我的基礎不是很好.而這個問題讓我混淆很久.不好意思喔.因為我有看那篇義大利的論文資料.可是有些寫的很簡約.
A:呵呵~那篇義大利的論文很難懂喔~除了有很多專有名詞之外,還有他自己發明的文字,初學就看那篇的話會搞到莫名其妙喔~。不過很多國內機器視覺的論文都採用那篇。
Q:我想了解您用的方法是時間背景法和畫面差異法都有同時使用嗎?(又打了ㄧ堆問題請您見諒)..感謝!
A:是的,時間背景法和畫面差異法都同時使用,原因就是要利用時間背景法趨近真實背景,再用畫面差異法取出物件。
Q:不過我還是有些問題想請教您:像是時間背景資訊表...這是什麼呢?
A:時間背景資訊表就是一個灰階的背景二維陣列,那直接叫背景就好了,為何要稱作時間背景資訊表呢?那是因為
這兩個方程式的緣故。隨著時間軸的移動,這個背景資訊表會過濾掉快速移動的物體,而會將停留在畫面內的物體漸漸的更新為背景。如果您直接採用靜態背景,那就要面臨雜訊的麻煩了,而時間背景資訊表可以容許較小的雜訊。
Q:還有就是失物及遺物的演算法是如何運算及實行的?..
A:首先要了解第04-07_有序抖色法,才能想像。要理解必須先知道時間背景資訊表的運算,否則很難想像。失物物體(Missing Object),就是本來存在的東西被移走了。場景資訊(東西還在)= 移動資訊(東西的範圍):就會變成物體遺失的事件。<===這不是數學式,是概念遺物物體(Unattended Object),就是本來沒有存在的東西出現了。場景資訊(沒有東西)≠ 當下畫面(東西出現):就會變成物體遺留的事件。<===這不是數學式,是概念您可以把概念都想成影像的二維陣列,先用加減法來想,會比較容易理解。例如:場景陣列-移動陣列=接近零,那就代表有東西被移走了。場景陣列-畫面陣列=差異大,就代表有東西遺留。這樣表達不知道有沒有比較容易理解,實際運算是要用統計的方法。
Q:以及場景跟背景兩個的差別是?
A:可以讀一讀第05-12_場景切換。您就會瞭解了。但在物件移位中,場景和背景是不一樣的,場景是靜態的影像,而在這裡的背景是可變動的。
Q:我有點搞混了...是不是要把每一張圖的前景和後景分開運算呢?
A:在影像處理中,通常是利用背景減去當下的影像,就可以獲得前景。
而在物件移位中,利用前景(移動資訊)再返回來跟場景做運算,就可以判斷是否有東西遺失。
Q:很抱歉因為前面幾張的部分還沒有閱讀完...剛好看到這一篇專題感到很有趣...
A:可以先嘗試做移動偵測,比較有成就感。
Q:只是想不到內容有很多都是我不了解的..先跟您說聲抱歉!再一次的麻煩您!
A:表達的不清楚的話,我會想辦法用圖示或其他方法說明。
Q:因為我正在看這一篇.有很多不太理解的地方想請教您!我想知道在算回饋時 B = diff + B(未標上下限)
A:
翻成白話文是這樣說的,下一張背景 = 正規化後的差異度 + 原始背景。由此可知為何要除以255。一般來說在數位影像處理中,有提到灰階影像,範圍都是 0 ~ 255,而B通常是指Background(背景的意思)。
Q:還有Motion =|P-B| 是用來做什麼的.
A:
若兩張灰階影像相減(前景跟背景),就可以取出差異範圍,但由於會有負數,因此取絕對值。而Motion就是代表前景物件的移動位置,這樣就可以知道移動位置在哪裡。在做實驗的時候,通常就是偵測人物走動,或者球的跳動。實際應用可以拿來計算有幾個人走過,或者有移動物體入侵緊戒區。
Q:還有邊緣萃取SOBEL FILTER那兩個陣列W1,W2. g(x,y)=f(x+2,y+2)*Wk Edgo=P-B+g(x,y)
A:可能您是跳著讀本書的,因此沒有注意到在 04-19_微分強化 有詳細解說。
Q:還有棋盤式距離的公式要是要求什麼?
A:距離測量的演算法,請看以下三種:
Euclidean norm:
City block:
Chessboard:
以上三種距離量測的演算法,分別是歐基里德距離、City Block、棋盤式距離,而棋盤式距離又可以分為四方向或者是八方向。何謂距離呢?距離有甚麼用處呢?簡單的說就是像素由原點到邊緣的距離。請看下圖所示。
Q:以及 Scene=|Frame -B|.這個公式等等....
A:當場景值到達一個門檻值的時候,就必須重新建立新的背景,因為可能攝影機被暫時的遮蔽了。
Q:最主要因為我不太懂複雜背景下的物件追蹤及分割這一部分是在求?
A:首先複雜背景就是場景物件或顏色很多,且都有可能移動。例如:人來人往的車站。簡單背景就是指人為背景,例如:白色的牆壁,素色的場景。由此看來,簡單背景要取出前景是相當容易的,通常移動物體都有與背景差異較大的像素,取其差異值就是前景範圍。相反的,複雜背景遇到的問題就相當多,光影顏色變化都是會影像,因此要特別處理,才能取出前景。
Q:是算每個在移動物體嗎?
A:接續前面問題,可以利用來計算每一個移動的物體。
Q:還有失物遺物演算法的架構圖是在說明?
A:這是在說明實作的時候,程式的流程,函式的功能。要對應文章來看。
Q:還有我們一開始是不是要先擷取一個畫面為基礎再做比較呢?
A:您所謂的截取一個畫面為基礎就等於先建立一個背景,可是您要怎麼分辨甚麼是前景甚麼是背景呢?因此透過漸進式背景建立法,可以協助您建立一個可靠的背景,有了一個可靠的背景就可以用來取出前景。如果您直接取一張影像作為背景,但影像會因為光影顏色變化影響,一下子就不可靠了,所以必須有一個動態、會自動調整的背景。
Q:有些關於影像方面的問題想請問您,我需要幫助一個身心障礙者設計一個輔具,患者頭部只能些微的擺動,以頭部擺動設計八個方位代表不同的注音符號,讓患者可以與人溝通。
A:就您所提供的訊息,我大約分析一下問題及作法。
問題:
頭部擺動有許多的角度問題。
CCD架設位置。
頭部擺動幅度。
病患頭部控制頻率。
現場光影變化。
溝通指令流程。
誤偵測處理。
病患外型,長髮披肩、爆炸頭、飛機頭…等等。
還有許多問題。
簡單的做法:
獲取背景
請病患躺上
偵測臉部丁字部位
垂直投影
水平投影
依照投影量判斷八方向
學術研究:
以臉部特徵判斷移動方向之研究。
頭部移動方向組合成為有意義的內容之研究。
以病患頭部動作識別其意義。(卡曼濾波器、類神經網路、Bayes、隱藏式馬可夫)
建議:
以頭部動作來判斷,你必須限制研究條件對象為正常頭形,若戴帽子或掛外物則排除在外。
建議已獲得人臉特徵為判斷依據,會來的準確。首先獲得頭部剪影,在頭部圓心定位,接著獲得人臉特徵,定位人臉特徵中心。最後兩個座標計算出往哪個方向移動。
若教授沒有要求用何種語言撰寫程式,用VB 6.0就夠了,簡單易懂。若有要求相信用VC++應該不會有問題。最主要是看教授接不接受。
建議您讀 Head gestures recognition 這篇論文,說不定可以激發您的一些想法。
Q:正在研究如果偵測目前化妝的所在部位,主要想要利用手的擺放位置來偵測目前是化妝哪個部位但是一值毫無頭緒!目前整個流程是人臉偵測→化妝部位偵測,但是在化妝時臉人會擺動而手也同時在動,造成一張影像會有兩個移動物件而在使用眉筆時由於手會跟人臉重疊,導致無法順利切割手的部位。老師目前不希望利用訓練或者人機互動的方法來達到效果,希望能夠使用純影像的方法來達到化妝部未偵測。
A:介紹快速的影像切割方式,很適合應用在不需背景建模的情形。這個方法應用在自走車的物體追蹤上也有相關案例。這是完全不需要建立背景而能取出前景動態物件的方法,所採用的方式是三張影像相減及取其交集,而獲得第二張影像的物件,由於會差別一張影像,獲得是第二張影像的物件,而非是當下的影像物件,這點必須注意。Fk-1是第三張畫面、Fk是第二張畫面、Fk+1是第一張畫面,Ik是當下畫面輸入給Fk+1,而Fk-1減去Fk之後取絕對值,Fk減去Fk+1之後取絕對值,再取這兩者的交集,就會獲得Fk的移動物件Rk。同樣所獲得Rk前景區域範圍之外,一樣會有許多雜訊,因此必須要有過濾雜訊的方法,而過濾雜訊的方法可以在前處理作,也可以在Rk裡面作。在前處理的話基本上都會採用平均值濾波或中間值濾波,平均值濾波會將所有細節都均化,而中間值濾波除了均化過濾雜訊之外,還可以保留細節。但平均值濾波比中間值濾波來的快速。若在Rk裡面作則需要採用型態學的方法,一般而言雜訊皆是範圍較小的獨立區域,因此可以先侵蝕後增長的方式,消除獨立區域。或者採用距離圖的方法,設定一門檻值,將小於門檻值的像素直接刪除掉,這樣也可達到目的。這個方法的優點就是無須建立背景,直接可取第二張畫面的移動物件。缺點是只能取得第二張物件,若FPS較小,則很容易察覺圈選位置不正確,反之FPS若較大,則因為人眼的視覺暫留現象,而造成圈選正確的錯覺。此外還有雜訊的產生較大,這點問題就必須再作一層的過濾。當然可以只顯示第二張畫面,如此一來圈選位置就會非常準確了。
Q:利用賴大哥提供的想法可明確看到手的Motion,
A:但缺點是必須要有移動,才會偵測出來。沒有移動就不會偵測出來。
Q:但後來看到的PAPER幾乎都是將移動邊緣來當作移動物的質心。
A:您也可以寄您有興趣的Paper給我看,一起研究。有一種時間背景法,或許可以滿足您的需求。時間背景法,方程式1所述。時間背景法可以參考圖5的流程,這是一個相當簡單有效率的方式,因為加上時間考量可以容納比較多的變化因素。這個方法可以讓背景承受略為會動的情形,像之前提到的被風吹動搖曳的樹葉,或是變化較小的光影。因為我們可以由方程式1得知,背景是一直在做調整,Ik是當下的影像,倘若比目前背景Bk還要大,就會更新到Bk+1,也就是下一張背景。但更新的速度是一個像素,由此可知這個背景建構的方式是漸進式的,它會逐步的慢慢建立起背景影像。實作後若覺得初始化背景太慢,其實也可以採取第一張畫面為預設背景,如此建構背景速度就會增快。這個方法對於停駐的前景有影響,因為當前景停住時間過久,像素就會慢慢更新到背景影像,如此前景影像就會變成背景影像,因此必須要有人為的調整,避免前景影像變成背景。時間背景法的優點在於能夠容納較小的變化,缺點在於停駐的前景物體會慢慢被更新為背景,而且更新必須有時間因素考量,無法馬上取得較準確的前景物體,因此無法應用在動態且即時的背景上,只適合應用在靜態且不需即時反應的情況,例如:交通運輸的車道監視,因為路面是不會有太大變化,而行走的車輛都是動態的,比較少有停駐的情形,所以當車輛經過時並不會變成背景,基於這樣的條件下,要取出準確的車輛物體就很容易了。
方程式 1 時間背景法方程式
圖 5 時間背景法流程圖
Q:目前的想法是想要利用人臉偵測後再將臉部區塊填黑,再切割手的部位(利用移動邊緣外圍範圍+膚色偵測)但是其他非手部的移動邊緣還是很多,假如利用型態學的方法可能會把手的移動邊緣外圍資訊消除,請問賴大哥如何利用移動邊緣的資訊來擷取整個手部區塊?
A:由於您的需求非常的確定,因此建議您這篇論文,在研究限制上要多下功夫,免得被無聊的人吐槽。例如:正臉拍攝、多少燭光、臉部大小、單人、解析度、FPS、等等。都要下定義。所以一開始就只會先拍攝人臉(偵測完人臉後),才開始做動作(手部動作),但是手部和臉部會重疊。因此建議您還是以偵測手部為主,有一種演算法可以計算相似度,如附件,請參照。除非您定義化妝的手部不得與臉部重疊,這樣偵測臉部才有意義。同樣的,偵測臉部也可用附件中的演算法。自行先用Excel模擬一下,想知道原理再來信,我會告訴您的。
Q:有嘗試利用橢圓偵測來將整個人臉範圍加大,以方便消除其他移動邊緣資訊但是效果不佳,常常會圈選到非人臉範圍。請問賴大哥是否有其他的想法來順利切割手的部位?假使利用我的想法來切割手部是否可行?煩請賴大哥指點一下後輩,謝謝!
A:橢圓偵測不適用有重疊時的情況。事實上使用這次建議的兩個方法:時間背景法跟波形相似法,再配合快速分割法,就可以切割手了。只不過不能照論文上的方法做,有些部分要微調喔~。因為三個方法結合起來,會有流程的問題要注意喔。
Q:這個問題跟XX討論很久,但最終還是沒有結論。以下陳述是XX的想法!
手跟臉部的膚色有稍微的差異想要自動將原本在臉部的膚色範圍排除在外,這樣就能夠順利切割手的膚色範圍而並不會把臉部跟膚色重疊在一起。
A:這個方法的前提就是要確保臉部膚色和手部膚色不一樣,或者說必須要有差異點,才能實現。這一點在實作部分會遇到環境的問題喔。
但也不是不能實現,若從學術的角度來看,介紹您一種演算法 mean shift,這對顏色處理會很有幫助,他有群聚的效果,可以幫助您把相關的顏色群聚起來。若手和臉的顏色有距離,自然就會被切割開來。
Q:利用此篇論文的方法將膚色偵測出來之後,再隨機取出幾的PIXEL的RGB值,再利用他們的值來調整原本的參數來找出原本臉部的膚色範圍加以剔除。也可以將原本在臉部判斷成錯誤的膚色矯正。
A:關於適應性膚色演算法是有論文提出,可是關於膚色問題,各家學者們討論這麼久,還是很難完整定義膚色範圍。實作部分有許多的環境問題。若您的研究允許跳過膚色這一段,而專研其他部分,採用膚色也是可以。而且在您化妝的過程中,臉部的顏色會逐漸改變,原先定義的臉部就會逐漸破損。所以採用膚色遇到的困難會比較多,建議用臉部特徵的方法來做,比較流行的有Haar-Like,或者用我的方法 波形相似,都可以達到定位臉部的目的。差別是我的方法簡單易實現。
Q:我的問題是在數位影像中很難找出膚色中些許的差異更何況在只有30萬畫素裡的攝影機。論文中的彩色模型是經過統計過後的,但是假使只憑當下的膚色範圍要建立起此張影像臉部膚色模型要怎樣建立?然而在取樣時,有時顏色仍會有些許的不一樣,造成每張影像必須要調整模型進而造成系統負擔。晚輩有看過自調適的膚色論文,但也只有討論單一影像。請問賴大哥的論點如何?
A:靜態影像與視訊影像本來就有極大的差異,端看視訊設備的功能,若具有自動白平衡的話,在某些情況下顏色會一直變換,色差很大,您要定義膚色的難度就會增高。但也不是不能這麼作,透過多種膚色定義的數學公式,逐步縮小範圍,這樣就可以達成目的。我的書籍內膚色偵測有留幾個公式,那幾個數學式的結果一定有範圍大小的差異,先用大範圍的偵測,然後在大範圍內採用其他數學式,逐一的縮小範圍,這是比較保險的做法。此外您確定只採用30萬畫素來做的話,最好要對前處理加工,否則效果會無法控制喔。影像前處理雖然會造成系統負擔,但卻能為之後的演算法提供較好的資訊,還是值得一試。當下要建立模型,可以用具有學習性的演算法來達成,或者用機率判別也可以。
Q:其實一開始對HARR LIKE的方法有跟XX提到,但是似乎後面都會有訓練的部份,我們XX比較不喜歡利用事先訓練或者是類神經的方法做,
A:嗯~~沒關係,方法百百種,總是有解答的。但無論用甚麼方法,都必須調整(訓練)電腦。只是分別為事前事後而已。
Q:所以目前只有想到利用三角形的比對方法,但如果有遭到遮蔽的話會偵測不出來。但是後來仔細想了一下目前事先用移動區塊來判別背景是否有移動物存在,接著再利用人臉偵測的方法來偵測移動物體是否為人臉之後再利用手部移動偵測來切割手部位置,接著在估測出手部位置在人臉的上半位置或者是下半位置來估測出目前的化妝部位(以眼睛跟嘴巴為主)。那是在人臉偵測後是可以利用膚色區塊來切割人臉的位置,膚色區塊長寬比大約是1.2倍。
A:所以一開始只能先出現人臉,而且是要會動的?這樣才能偵測出移動區塊。既然要這麼定義,不如直接使用靜態背景,與前景相減,直接取得人形剪影,再用橢圓法圈住頭部位置。然後再將人行剪影更新為背景,這時候手才進入畫面中,做化妝的動作。直接就可以取得手部的位置。無論上半部或下半部的位置都可以簡單的取得。如果是這樣的話,研究的貢獻就必須定義,要解決甚麼問題,因為碩士程度就是要能解決問題,所以必須與教授商討,並定義清楚。
Q:如果考慮化妝的人目前是戴眼鏡的話可能會造成膚色區塊的偏移,以帶粗框眼鏡最有影響。
A:基本上化妝是很少戴眼鏡ㄉ,我老婆化妝都不戴眼鏡,除非只畫口紅。關於眼鏡所造成的影響,可以用研究限制來定義,規定只能適用於沒戴眼鏡的情況。
Q:那是否意味著利用膚色區 塊來切割人臉位置是不是比較不妥當?
A:只用膚色真的很不準確,這個題目到現在都未解,請看拙作 膚色偵測 那一節。