Skip to main content

關於『數位影像分析之智慧型監視系統』的Q&A - Part 3

作者:Mr. Lai Tai-Yu, Averill, 赖岱佑, 賴岱佑
標題:關於『數位影像分析之智慧型監視系統』的Q&A - Part 3


由於有讀者對於數位影像分析之智慧型監視系統一書有疑問,因此整理如下:
P.S. 整理得很粗糙,不好意思,凡是來信有帳號名稱、人名、稱謂、單位名稱或地名,都不包含在內。小弟儘量仔細檢查,將可以放上來的問題公佈出來,以供其他讀者參考。但若您認為不方便將問題公開,煩請來信告知,有冒犯之處,還請多多見諒。我會儘速處理,謝謝各位,靜祝各位萬事如意、鴻圖大展、健康快樂、心想事成。感謝。
P.S. 小弟的回答,僅供參考,還需要各位先進指導,謝謝。

Q1: 真是抱歉,最近都忙於課業太久沒回信,聽了前輩的一段名言:『學習』有一件事情很重要,就是要接近成功的人。你越常接近成功的人,自然而然你也會慢慢成功。讓我更加的了解成功是經由日積月壘的學習而成,我會對C語言多加油的,也希望能與賴前輩多加學習。
A1: 『學習』有一件事情很重要,就是要接近成功的人。你越常接近成功的人,自然而然你也會慢慢成功。這麼做其實還有一個理由,就是『效率』。如果您今天要準備考試,有兩位學長已經參加過考試,一位學長只考一次就過關,另外一位學長考了十次過關。您要去請教如何準備考試的方法,會選哪一位呢?如果是我的話,會選考一次就過關的學長,因為他知道正確的方向(最短路徑)。另外一位學長雖然身經百戰,但他累積了九次錯誤的方向。第一次就考過的學長,聽他的經驗,就是考試成功的方法。是最有『效率』的建議。另一位學長的經驗,可能參雜了許多失敗的方法,您必須一一分析,哪些是有幫助的,哪些是無益的。『效率』就比較差。當然,如果想成功的失敗,那就得參考另外一位學長的建議,因為他知道最多失敗的方法。世界上最缺乏的資源是甚麼?石油?天然氣?氧氣?臭氧層?北極冰山?金錢?土地?水源?其實都不對,是『時間』。每個人無論再怎麼有權有勢,一天都只有24小時。事實上,經過研究,由於地球暖化造成地球自轉加速,到了2200年,每天將縮短 0.12 毫秒。
因此,『效率』就顯得重要了。
以上供您參考,是我的拙見。

Q2:循序差分影像與背景差分影像不都是移動偵測其中的方法嗎?循序差分影像不是用來偵測連續影兩張frame的差異嗎?但是若物體移動緩慢、沒有移動或來回移動,不是就偵測不出來,因為所得到的畫面差異不大,就會形成非常破碎的物體,增加偵測上的難度。而背景差分影像難度在於背景的建立,但是所獲得的物體完整度較高,也可偵測出靜態前景物體。在這裡我不懂的是已經好不容易透過背景差分影像獲得了較完整的物體,為什麼卻還要跟循序差分影像所得到的破碎影像做and,這樣的結果不是很遭嗎?而且本來可以偵測靜態前景物體的,但是在and循序差分影像所得到的破碎影像後,就無法偵測靜態前景物體了,這樣不是很奇怪嗎?是不是有什麼部份遺漏了?請賴大哥指點一下學生。
 A2: 循序差分和背景差分都是移動偵測的方法,不過用途不同。循序差分比較適合用在參考資料或是事件觸發之用;而背景差分比較適合用在物體確認上。
循序差分不是用兩張Frame的差異來偵測,是用三張Frame,這點您有遺漏。是透過三張影像的差及交集,取得第二張影像的物件,其效率之高,可以在30FPS影片中抓取快速移動的物件。Shape1 = |T1 – T2|, Shape2 = |T2 – T3|, Mask = Shape1 and Shape2,Object = T2 and Mask,有看到T3嗎?這就是第三張影像。
您說的沒錯,循序差分遇到差異不大,就會形成破碎物體,但卻可以當作參考資料。知道有動量就代表有移動物體。我了解您所說的破碎,但您若有時間的話,可以實現快速循序差分的方法,額外加上一點,先將T1, T2, T3 作平均濾波,Shape1 = |T1 – T2|、Shape2 =| T2 – T3|之後做Erosion,Mask = Shape1 and Shape2 之後做Dilation,利用Mask與 T2 原始影像作 AND,取出來的資料可讀性就會比較高 ,參考價值也比較好。您可以將背景差分與循序差分作聯集,這樣可以互補。背景差分難度在建立背景是沒錯,因此可以使用時間背景法或者是漸進式背景法加以輔助。單就背景差分來說,缺乏的是移動資訊,感覺上獲得比較完整,但數據來看還是有所欠缺。循序差分影像和背景差分影像沒有要取交集,請您再仔細核對一下。而且您說的循序差分,是兩張Frame做處理。我說的是用三張作處理,我想我們的差異點就在這裡。要取交集的是 Shape1 和 Shape2 , Mask 和 T2。

Q3.在Dilation和Erosion的部份,是用比較大的遮罩來做一次,還是用比較小的遮罩做多次,那一個方法會比較好?
 A3: 通常是用小遮罩作多次,這樣才能微調。大遮罩不僅耗時,也無法微調。我們會需要用到Dilation和Erosion的目的是甚麼呢?就是為了取得一個完整的物件,或者分離黏在一起的物件。所以才有Open跟Close,但型態學的方法只能獲得粗略的大概,細節部分還是需要一個一個像素去處理微調,這時候就得參考其他資料,例如邊緣資訊等等。

Q4.若在滯留偵測中,使用object tracking ,滯留時間設為30秒才發出警報,FPS為15,且     物體進入畫面中即呈現靜止狀況,因為feedback的關係,約17秒之後(255/15), 靜     態前景物即被feedback為背景,此時已無前景物,如此不就無法進行滯留偵測了?這是     學生問是否能偵測出靜態前景物的原因?
 A4:  問的好,所以當發現物體出現後,就必須讓那一塊區域禁止更新,直到使用者(保全人員)確認後,才可以繼續更新。
目前產品都是圈選出滯留物後,就停止更新那一區塊,直到使用者取消區塊後,區塊才可以更新。
當然,區塊是會跟著物體移動而改變位置的。所以無論是靜止或者有移動,都可以偵測出來。而不會被Feedback去除。

Q5.學生知道邊緣偵測,邊緣偵測後不是一張二值化(0或1)的影像嗎?但是學生不懂的是此處    的Edgo=P-B+g(x,y)這部份,g(x,y)是做完sobel後的值嗎(值為0或1)?而P-B是取絕對值    再經threshold的二值影像嗎?若都是的話,那Edgo不就是0~2的值?還需要再做什麼運    算嗎?還是都不是上述的值,若不是的話,您可否用個簡單例子做說明,學生不明所以    才有此一問。
 A5: 邊緣偵測後怎麼會是一張二值化影像呢?應該還是0~255 階的影像,做完Sobel後怎麼會是二值化影像呢?由Sobel Filter公式來用紙筆計算,也都不會變成二值化。
Edge是邊緣的值是0~255,不是0~2的值。
簡單例子是當畫面減去背景,所遺留下來的是物體差異,但有破損,在加上灰階邊緣予以補足。

Q6.您說在上個階段獲得,是先取得前景[(P-B)取absolute再透過threshold],再利用邊緣將
    相同物件的區塊連在一起,是如此的做法嗎? 
   A6: 是的,我是用這種方法取得完整物件區域,但這是我舊的方法,這篇論文發表已經有一段時間了。
問題是,在人來人往的情境下,您怎麼知道取到的邊緣是正確的呢?所以這篇論文只能適用於靜態環境。不適合用在動態情境。
   

Q7.畢業論文名稱:遺留物及持有人自動偵測並具關鍵影像提供能力之視訊監控系統。    這篇論文也是在移動偵測後,才濾除雜訊點,有些是用斷開或chessboard設threshold    去除雜訊。業界都是在移動偵測前就先做去除雜訊的動作嗎?是用什麼方法去除雜訊?  是用低頻濾波或中值濾波嗎?若使用低頻濾波不是會因為一個像素雜訊而影響到周圍像    素嗎?而且會模糊掉邊緣? 
 A7: 原來您的雜訊和我的雜訊定義不同。我所說的雜訊是輸入畫面的雜訊,您所說的雜訊是處理後的雜訊。
一般影像都是要經過前處理(preprocessing),原因很簡單,先做個實驗,拍攝一張白紙,約一秒鐘,在拍攝一張黑紙,約一秒鐘。這一秒裡面黑不是黑(純黑),白不是白(純白)。有首歌也是這樣唱的,黑不是黑、白不是白。這就是輸入畫面的雜訊,透過平均濾波是目前最快的方法,但會侵蝕到細節。用中值濾波是較好的方法,可以保留細節,但所耗的時間較長。而您提到的雜點是型態學後的雜點,那就要用型態學的方式去除。而非低頻濾波或是中值濾波。

Q8學生目前是使用MATLAB模擬,教授說之後要轉成C,可能的話再轉成硬體,因為學生   對一個frame取邊緣的時候,就快要2秒了,所以才擔心是否使用了過多的時間與記憶體   ,不曉得您是如何做到圈選30個物件還可以得到15FPS?是使用語言的差異嗎?每個物  件是否都要做filled的動作呢?如果不做的話,如何得到物件的遮罩在frame中取出物件?
 A8: 硬體方面我已經很久沒有接觸了,我無法提供任何硬體方面正確的建議。抱歉了。
請問您所處理的解析度如何呢?是D1 Size嗎?假設是D1 Size的話,作Sobel Filter 垂直與水平,取最大值,使用Matlab也不會到兩秒這麼久。
硬體配備可能會有影響,我是2.4GHz 雙核心 Notebook,不知道您是用甚麼等級的機器呢?
目前使用C語言就已經夠快了,但還有比C處理更快的方法。不過用C在目前就足夠了。
如果您不想每個物件都Filled的話,就用輪廓偵測的方法,就可以取出物件了。Filled要自己寫的話就必須參考電腦圖學。

Q9.您說場景和背景一樣都需要更新,更新來源也是時間資訊,但是學生沒有看到更新的式子,在Q5的部份,您說當時間背景法的背景處於穩定狀態時,就將該畫面更新為場  景資訊,如何得知時間背景法的背景處於穩定狀態?學生所看的paper,他們大多數是  針對非前景的部份才進行背景的更新,您所使用的更新方式為何?
A9: 如何得知背景是否穩定,最簡單的方法就是差異。當差異到達一門檻值之後,就定為不穩定。
其實差異法並不準確,比較準確的方法是利用快速循序差分法,也就是利用三張影像的差異來做為偵測值。
這可以避免光源不穩定的情形、或是色差改變的問題。
當您確定有物件出現後,就要避免更新到物件,因為物件是前景,而非背景。而追蹤物件的方法有長條圖、形狀鍊碼、等等。

Q10.您說場景和背景一樣都需要更新,否則就會發生每過一段時間場景差異就達到門檻值,  而重新更新,場景差異不是透過這個式子
計算的嗎?  那不是只要更新B就好了,是如此的做法嗎?
A10: 因為我把場景和背景分開來儲存,因為場景跟背景有更新的時間差,因此您可以看成是雙層的感覺,某一像素出現差異,若是在場景及背景的範圍內時,就必須要多檢測,才能確定是否是雜訊。
如果場景跟背景沒有時間差,那就像您所說的,只需要更新背景就好了。
但是您認為所建立的背景是萬無一失的嗎?我認為很難,因此就有需要參考更早之前的資料了。也就是場景了。

Q11.您說在沒有移動資訊的時候,才會計算出遺失遺留的物體位置,請問您這是如何計算的?都沒有移動的資訊,是利用場景與目前frame來做比對嗎?
A11: 利用Motion Detection來偵測。無論利用場景或背景都是使用差異法來計算。

Q12.監控系統還要能克服雨天、陰天、豔陽天,這是目前的基本要求嗎?這三種情況目前都有paper探討嗎?如果您有資料,可否寄給學生,時間背景法不足以克服雨天、陰天、豔陽天的情形嗎?越是與您討論,越覺得研究IVS所需的知識博大精深。
 A12: 這關係到您所用的設備,D1 Size被天氣的影響較小,但還是有。而Megapixel被天氣影響較嚴重。雨天、陰天、艷陽天都有論文研究,還有霧氣嚴重的時候,也都也論文研究。甚至下雪的時候也有。而且除了之前研究的論文,最近一兩個月的IEEE Transactions On Image Processing 也有發表。我找到論文就會寄給您。時間背景法並不是萬能,我目前設計過最能夠適應的背景法,是時間背景法加上漸進式背景法(IBM提出),這兩種的合體。細分的話,時間背景法和漸進式背景法又有許多變體的版本。其實數位影像處理越是研究,就越覺得自己懂得不多。看到別人的研究發表,就越覺得自己很無知。還有讓夜間漆黑視訊的畫面 ( 真的很漆黑,是伸手不見五指的黑 ),變成白天一樣的彩色場景,這種都有人發表出來。但真正業界商品化的目前只有下雪過濾、與天過濾、陰天及豔陽天過濾。
霧氣的部分只是增強影像,看得更清楚而已。學術界的研究還是比較先進。

Q13.學生的問題是指在偵測遺失物這方面,在開始偵測前,是否需先儲存一張想要偵測區域  的frame?有別於時間背景法中的背景,例如偵測畫廊中牆上的畫是否遺失,然後將這張  frame隨著時間更新牆上的畫的亮度,以免在光線的改變下,但是卻無遺失的情形,因而    產生誤偵測。
A13: 就我所知,國內市面上的產品,在遺失物偵測部分有設計先要圈選遺失物的範圍。例如:牆上的畫作。然後做差異判斷,可是這樣太簡單且不實用,對不對?用減法加上絕對值就好了。因此我才會提出場景及背景的兩種參考方法,這樣會比較實用。但只適合用在室內。由於視訊受到外界影響非常大,因此在高速公路上有從車上掉出物品的時候,此時又有一陣烏雲擋住陽光,那該怎麼辦呢?很傷腦筋吧~。採用漸進式背景法加上時間背景法就可以解決這方面的問題,您可以試試看。所謂漸進式背景(progressive background)就是逐一自動的建立出背景,但是直接更新背景又太武斷,無法適應突然來的變化,因此加上時間背景法,可以緩和症狀。您可以試著採用以像素0代表未更新,因為正常情況下很難拍攝出純黑的畫面的。目前國外有的產品,幾乎是做全景偵測,只要東西有遺留,就會發出警告。我個人認為這樣比較實用,而場景情境就如同在人來人往的捷運站,有人遺留東西。而被偵測出來,這樣的才能達到使用智慧型監視系統的目的。

Q14.是計算物件的最下面位置離frame最下面位置的垂直距離來決定物件的遠近嗎?    若是的話,學生還是不懂要如何判斷物件是否越過圍籬?例如火車站月台前的黃線,要如何判斷人是否有越過黃線而發出警報?
 A14: 是用物件最下方到畫面底端的垂直距來決定物件的遠近。這是2D遊戲的作法。曾有一個展示說,人經過門口不會觸發警告,但進入門口就會觸發警告。聽起來很神奇,電腦怎麼知道人進入門口呢?因為用了虛擬圍籬,圈選在門口處,當人經過時當然距離不會超過圍籬最底端,而人進入門口就會超過圍籬底端,自然就觸發警告。而您提到的問題,只要知道怎麼計算下圖相交,就可以了。最簡單的就是用加減法,但是不實用。假設藍色的線是您的警報線,紅色的線是人物移動的軌跡。另外一種作法就是用遮罩,彈性較大,但程式碼會增加。

Q15.在監控環境中,像模糊偵測、遮蔽偵測、場景偵測是不是都要做?是屬於基本功能?
 A15: 是不是屬於基本功能各家廠商所定的不一樣,有些廠商是單獨販售這樣的功能。但我認為這是很基本的,由其像場景偵測,這只需要花一點點的時間去偵測,卻能夠避免攝影機被移動位置時產生的誤偵測,這是很划算的一件事情。

模糊偵測
Q16.您說先過濾掉移動區域,以及做好場景偵測,這個意思是指需先做完場景偵測,確    定攝影機沒有移動,然後再將這個frame中的移動區域濾掉後,才使用您的方法來做    模糊偵測嗎?
A16: 這樣做是有原因的,因為當您在對焦的時候,必須要有一個固定的參考畫面。倘若對焦的畫面是移動且混亂,那您就沒有基準了。而一般監視系統通常是固定式,所以可以透過場景偵測及動量偵測來排除這些問題。

Q17.在文中,您說使用比值來代替統計最大灰階值是您的方法,但是之後就沒看到您所    提出的做法?可否告訴學生您是如何做的?
A17: 比值不重要,因為基準可以自己設定。
最重要及關鍵的一點,就是會發生『假對焦』的數值產生,『假對焦』是我自己取的。其狀況是當統計整張畫面的灰階值,在某一個程度時,細小的邊緣灰度值會造成數值大幅提升。所以解決方式,就是只統計最大值,通常是255。這樣的數據是準確的。而除起來的比值越大,就代表對焦越準。

Q18.若模糊的情形產生,發出警報後,是否還須繼續做移動偵測、物件追蹤?
 A18: 我個人是認為當您已經知道畫面模糊了,就不應該繼續作移動偵測或物件追蹤,因為會有誤偵測的問題,或者偵測不到物體(當門檻值設定較高時)。

遮蔽偵測
Q19.在5-11的遮蔽偵測,您提出為了解決部份遮蔽、半遮蔽的情形,因而以區塊的畫分來做偵    測,您說定時去比較每個區塊所記錄的邊緣個數。
A19: 您可以為每個區塊去設定時間,固定時間去檢查。以及利用時間軸來判定甚麼是穩定沒遮蔽的邊緣數。

Q20.那大概多久比一次比較好?這些記錄是什麼樣的frame來決定的?是一般frame or 背景frame or 場景frame?
A20: 時間設定觀看您的情境來決定。
為什麼會用到背景或場景呢?遮蔽是當下的畫面被遮蔽,所以您必須使用正常當下的畫面才能比較出差異點。被遮蔽的當下畫面 與 正常的畫面記錄值 作比較,差異才會大,不是嗎?

Q21.需要將這個frame中的移動區域濾掉後,才做遮蔽偵測?
A21: 遮蔽本來就是有物體移動到攝影機鏡頭前,所以如果將移動區域濾掉後,那剩下可用的資料不是很少。

Q22.怎麼決定每個區塊是否有遮蔽?是用threshold?若是的話,這個threshold怎麼決定?因為每個區塊中的邊緣個數不一。
A22: 因為每個區塊的邊緣個數不一,所以才要用時間資訊記錄穩定的情況。就可以決定門檻值了。建立一個時間陣列,以及像素陣列,將穩定的像素跟時間更新至其中。再來決定門檻值。

Q23.若遮蔽處剛好位於4個區塊的中間,要如何判斷是否遮蔽?
A23: 若要判斷的遮蔽情形比較細微,把區塊數分割多一點就可以了。
您說的四個區塊中間,那一定是個大區塊,把區塊切細一點,就不會有這種情形。

Q24.若是比較素面的物體移動,邊緣的數量不多,是否就會造成判斷的困難?有什麼辦法可以解決?
A24: 您的思緒真的很細膩。不過這是有可能發生誤判的,不過監視畫面來看是較少發生。我想有可能的情況就是有人拿著素面海報紙經過,這就會產生您所說的誤判情形。當一種資訊不足以判斷時,就必須使用其他資訊來輔助,例如:顏色、灰度值、紋理,這些都是解決方法。

Q25.您所提出的辦法可否使用在室外的環境?若光線因天黑變暗的情況下,邊緣因而喪失,不就造成誤偵測的情形?可有解決的辦法?
A25: 這是可以用在室外環境,天色變暗有影像增強,以及時間資訊要變更目前最穩定的邊緣數。因為有時間資訊不斷的記錄最穩定的邊緣數,所以可以適用於漸漸改變的光影變化。

Q26.每個區塊中所記錄的邊緣個數是否需隨著時間不斷的更新?
A26: 要更新最穩定的邊緣數,您可以設定一某個範圍值在某段時間是穩定,再做更新。

Q27.若遮蔽情形產生,發出警報後,是否還須繼續做移動偵測、物件追蹤?
 A27: 被遮蔽之後,我想應該看不到物件在移動吧~。還是我所設定的情境與您不同呢?當有物體或手擋在鏡頭前,為什麼還要作移動偵測及物件追蹤,應該要發出警告,排除遮蔽物。

場景偵測
Q28.在5-12的場景偵測,您所提出的場景偵測方法,在正規化的部份,您是以什麼做基準而做到正規化?好神奇喔
A28: 用整張影像為基準,而後透過波形相似的公式就可以做到正規化。P=A/(sqrt(B*C))。

Q29.若場景變換的情形產生,發出警報後,是否還須繼續做移動偵測、物件追蹤?
A29: 場景變換之後,要等穩定,才作移動偵測及物件追蹤。這是預設攝影機是固定。若是PTZ的Camera,則不適合使用場景偵測。

Q30:越研究越有更多的問題,麻煩您了
 A30:歡迎提問,這是共同研究以及精進的好方法。

Popular posts from this blog

Python 日期與時間的處理

Visual Basic 6.0 (VB6) 程式語言案例學習 (10. 條碼列印程式)

寫作:波蘭文學習之旅:1-1. 波蘭文字母與發音(注音版)

Python 日期與時間的處理

Image

Visual Basic 6.0 (VB6) 程式語言案例學習 (10. 條碼列印程式)

Image

寫作:波蘭文學習之旅:1-1. 波蘭文字母與發音(注音版)

Image

數位影像處理:最佳化處理策略之快速消除扭曲演算法

Image

Visual Basic 6.0 (VB6) 程式語言案例學習 (04. 人事考勤管理系統)

Image

用10種程式語言做影像二值化(Image binarization)

Visual Basic 6.0 (VB6) 程式語言案例學習 (07. 收據列印程式)

Image

Visual Basic .Net (VB.Net) 程式語言案例學習 (03. 場地預約系統)

Image

Visual Basic 6.0 (VB6) 程式語言案例學習 (11. 生產線拍照程式)

Image

Visual Basic .Net (VB.Net) 程式語言案例學習 (06. 題庫測驗系統)

Image