一、面向應用:層層分解、抓住要點
我們學習數字圖像處理的最終目的還是應用,不管是用它來研制產品還是研發項目抑或是研究課題,都要用數字圖像處理的理論、方法和技術來解決實際問題。在此過程中,提高效率是非常重要的,因此,我們在實際應用過程中要面向需求,結合實際;將問題層層分解,理清解決思路;抓住其要害,集中力量進行突破,切忌眉毛胡子一把抓。
下面就結合筆者所研究過的一個課題進行詳細說明。
任務要求:一臺智能移動機器人上配備有單目可見光視覺傳感器,要求通過該視覺傳感器采集的視頻序列圖像,實現在復雜環境下實現對紋理清晰的特定目標的實時跟蹤。
(注:該問題的解決應從硬件和軟件兩個方面進行考慮,對硬件的選擇、設計和搭建超出了本文所討論的內容,因此,本文僅從數字圖像處理方法的角度進行分析)
分析討論:
(1)任務分解:通過對任務要求進行分析可知,該任務的核心是“目標識別跟蹤”;在此基礎上有兩個約束條件:“復雜環境下”和“實時性”;方法實現的平臺是“移動機器人”。任務的核心——“目標識別跟蹤”是我們所需要解決的難點和重點;約束條件1“復雜環境下”則要求我們對所采集的圖像進行去噪預處理;約束條件2“實時性”也是需要解決的問題,這就要求我們盡可能地降低各種算法的運算復雜度;由于實現平臺“移動機器人”在行進過程中采集的視頻圖像存在抖動現象,因此,在對采集的圖像進行去噪后需要對其進行增穩處理。通過初步分解,我們就得到了任務中所要解決的問題以及大致流程(如圖1所示)。
??
圖1? 任務分解及流程
(2)難點分解:本任務的難點是“目標識別跟蹤”。之所以稱其為難點,是對目標的識別和跟蹤過程中,存在視覺傳感器與目標物體的相對運動,因而,目標在圖像中存在著尺度變化、旋轉變化、視角變化、照度變化以及局部遮擋,這給目標識別和跟蹤帶來了挑戰。我們常用的目標識別與跟蹤算法有:基于幀間差分的目標識別與跟蹤法、基于光流的目標識別與跟蹤法、基于模板匹配的目標識別與跟蹤法、基于顏色的目標識別與跟蹤法、基于特征點的目標識別與跟蹤法。考慮到每種方法的特點以及待跟蹤目標具有清晰的紋理,我們可以采用基于特征點的目標識別與跟蹤法,更進一步地說,我們應采用尺度不變特征點(SIFT)作為識別與跟蹤的特征,因為尺度不變特征點對尺度變化、旋轉變換、視角變化、照度變化和局部遮擋具有魯棒性。同時,我們希望目標識別和跟蹤算法具有良好的實時性,因而,可以考慮PCA-SIFT和SURF特征點作為目標特征。此外,由于視頻序列相鄰圖像之間存在相關性,目標在相鄰幀之間不會有劇烈的變換,因而,可采用隔幀搜索法對目標進行檢測并用Kalman濾波或粒子濾波對目標的軌跡進行預測。難點分解的過程如圖2所示。
?
圖2? 難點分解過程
(3)算法分解:經過任務分解和難點分解后,我們已經對任務的實現步驟和每個步驟所需的算法有了一個清晰的了解。在此之后,我們還需對每一個具體的算法進行分解,形成實現步驟,以便于后續的研究以及模塊化分工實現。
?
二、面向學習:追根溯源、比較總結
在數字圖像處理中,很多算法是一脈相承或有著密切聯系的,搞清楚這些來龍去脈以及相互聯系,有利于我們加強對算法的理解以及改進創新。
那么,如何把握這些聯系呢?我認為,首先得清楚每種算法的提出背景,也就是“這種算法為什么會被提出”或是“這種算法是針對什么問題而提出的”。就拿數字圖像變換中的內容為例,我們是從圖像的空間變換講起的,但是空間變換無法反映圖像的頻率分布信息,隨著傅里葉變換的誕生,這一問題得到了解決,傅里葉變換也被研究者譽為是“圖像處理的第二種語言”。正在人們為之歡心鼓舞之時,研究者有發現傅里葉變換也存在著不足,它在空域上無任何分辨,不能作局部分析。針對于此,D.Gabor 于1946年提出了加窗傅里葉變換,也就是著名的Gabor變換,它通過引入一個時間局部化“窗函數”改進了傅里葉變換的不足,但其窗口大小和形狀都是固定的,沒有從根本上彌補傅里葉變換的缺陷。小波變換的提出從根本上解決了這一難題,它有一個靈活可變的時間—頻率窗,能有效地從信號中提取信息,通過伸縮和平移等運算功能對函數或信號進行多尺度細化分析,“數學顯微鏡”的美譽也因此得來。如果我們能夠把這些聯系梳理清楚,那么,我們在學習小波變換時就會豁然開朗,游刃有余。難道小波變換就那么完美嗎?答案當然是否定的,當前有很多算法就如何提高小波變換的效能提出了改進。按照上述的“聯系”方式,就不難建立起完備的知識體系。
?
圖3? 圖像分析聯系示意圖
談過了“追根溯源”,我們再來聊聊“比較總結”。我們以圖像的邊緣檢測為例來進行說明。每一種方法都能實現邊緣檢測,但對于同一幅圖像,每一種邊緣檢測方法的效果又不盡相同。這是為什么呢?原來,每一種邊緣檢測的方法都有自己優點和不足,都有自己特定的應用背景。我們不妨對其進行列表比較(如表1所示)。
表1? 邊緣檢測算子比較
名? 稱 | 特??? 點 |
基于一階微分算子檢測邊緣 | 運算簡單,但對噪聲敏感 |
基于LOG算子檢測邊緣 | 邊緣保留較為完整、定位準確、抗干擾能力強 |
基于 Canny算子檢測邊緣 | 抗干擾能力強,邊緣連續性好 |
基于SUSAN算子檢測邊緣 | 抗噪聲能力好、運算量小,速度快 |
對各種邊緣檢測算子進行比較后,它們各自的特點便一目了然,在何種情況下運用哪種邊緣檢測算子效果最佳便做到了心中有數。
在比較完各種邊緣檢測算子的“個性”之后,我們不妨再來總結一下它們的“共性”。盡管邊緣檢測的方法林林總總,但各種方法的共同目的就是要檢測出圖像灰度變化劇烈的區域。從數學的角度來看,就是對數字圖像進行差分;從信號處理角度看,就是用高通濾波器來保留高頻信號。
學習的過程講究循序漸進,溫故知新,當然,對數字圖像處理技術的學習也不例外。但是,數字圖像處理技術又有自身的特點:理論深、角度廣、更新快,因此,良好的學習方法可以使數字圖像處理的學習事半功倍。在學習數字圖像處理技術時,讀者不妨嘗試著去追根溯源、比較總結,相信定會受益匪淺。
本文轉自:http://xiaozu.renren.com/xiaozu/252226/335693784