本人作為多目标追蹤的初學者,經過相關文獻的閱讀和資料的查閱,發現多目标追蹤已經有了十幾年的發展曆程,這十幾年間逐漸形成了一套架構,即多目标追蹤由追蹤器(Tracking),探測器(Detection)和目标學習(Learning or Classification)等幾個基礎部件構成。發展過程中,主要是對Tracking和Detection的不同圖像特征的不斷更新,以及classification的不同方法進行更新,已達到快速和準确的目的。随着機器學習的不斷普及,多目标追蹤也由之前的offline向online逐漸演變,即從人工選取圖像列中感興趣目标向計算機根據前後圖像幀的關聯自動識别追蹤目标,例如人員或車輛在不同時間的出場與入場。但在這個過程中,也出現了一些新的問題,例如目标的被遮擋,倒影等問題,這會造成探測器的誤判,這些随即成為了新的熱點。作為第一篇學習筆記,主要是對多目辨別别的基礎部分進行學習,其他難點随後及進行讨論。
一. 什麼是目标?
目标(object)是我們在視訊影像或序列影像中的感興趣區域,可以是車輛,人員,車牌等。同樣對目标的表達也有很多形式,可以是:點,質點一般是目标的中心點或是角點目标的關鍵位置(a&b);原始幾何圖形,常用的有橢圓或者矩形等(c&d);邊沿線或是輪廓線(g&h&i),即勾畫出目标的邊緣線來表達目标位置變化,e是關節模型表達的結果,f是骨架圖。
對目标的識别一般大體分以下幾種方法:1.用目标出現的機率密度來估計目标的出現,方法可以是有參數的,也可以是無參數的,例如計算顔色和紋理的機率密度;2.模闆,標明一個目标出現的場景對目标進行标定,通過對目标特征的訓練,尋找其他圖像中目标出現的位置,但前提條件是目标不會出現形變,這在實際應用中出現的機率不大;3.主動顯示模型:實時的顯示目标位置,用一些特殊标記标記目标位置和輪廓;4.多畫面顯示模型:對目标進行多畫面标記,采用主成分分析或者獨立成分分析,對目标進行識别和表達。還有通過貝葉斯網絡或SVM進行等方法進行識别和跟蹤的。需要注意的是,目标的追蹤方式和目标的表達方式在一定程度上會有一點聯系的。
二. 圖形特征包括那些?
圖像特征一般包括顔色(RGB&HSV),邊界,光流法和紋理特征。首先要說顔色特征,最常用的是RGB通道,但是往往具有較高的相關性,對識别和訓練有很大的幹擾作用。是以可以将RGB空間轉換到HSV空間,即色度,飽和度和明度進行特征分析,但容易受到噪音的幹擾。顔色的表達方式會随着不同的環境進行變化,要注意選擇;邊界:目标邊界會在圖像中造成較大的圖像強度的起伏,邊界的主要屬性就是不會因為光照的改變而改變,一般較好的邊界提取算法有CANNY等一系列算法,目前實作起來較為簡單;光流法:光流是一個由位移向量構成的一個稠密空間,而位移向量是記錄了每一個pixel的位移。光流法的假設是在一個frame中每一個像素的亮度是常量,根據亮度變化和位移來計算得到此位移向量;紋理特征是指某一表面的強度變化,例如光滑或粗糙,描述紋理特征的量有Gray-Level Cooccurrence Matrices (GLCM’s),一個二維直方圖同時展現距離和方向的變化,Law’s texture measures,小波和圖像金字塔卷積等。紋理特征同樣受光照影響較小。
對特征的自動選擇主要有兩種限制條件:Filter和Wrapper。 Filter選擇主要是基于基本的條件限制,例如圖形特征不能相關。wrapper選擇方法主要是要将所有有效特征標明,實作使用效率最大化。一般主成分分析PCA可以幫助避免選到相關特征集,Adaboost算法一般可以通過不同權重的将不同的特征貢獻程度進行辨別。
今天的理論學習就先到這裡,我現在要去搭載一個opencv的平台,先對圖像進行簡單的程式設計編輯,以及嘗試對邊界提取算法進行使用,在第二篇的時候與大家共享。
最後,希望我的筆記對大家有用,請各位大神對錯誤進行批評指正,謝謝各位。