1. 程式人生 > >目標識別

目標識別

1.研究意義

眾所周知,當前是資訊時代,資訊的獲得、加工、處理以及應用都有了飛躍發展。人們認識世界的重要知識來源就是影象資訊,在很多場合,影象所傳送的資訊比其他形式的資訊更豐富、真切和具體。人眼與大腦的協作使得人們可以獲取、處理以及理解視覺資訊,人類利用視覺感知外界環境資訊的效率很高。事實上,據一些國外學者所做的統計,人類所獲得外界資訊有80%左右是來自眼睛攝取的影象。由此可見,視覺作為人類獲取外界資訊的主要載體,計算機要實現智慧化,就必須能夠處理影象資訊。尤其是近年來,以圖形、影象、視訊等大容量為特徵的影象資料處理廣泛應用於醫學、交通、工業自動化等領域。

自然界的一切影象都是連續變化的模擬影象,在日常生活中,這些影象中的運動目標往往是我們比較關心的,如:行人、行駛的交通工具以及其他的物體。目標檢測和識別是計算機視覺和數字影象處理的一個熱門方向,廣泛應用於機器人導航、智慧視訊監控、工業檢測、航空航天等諸多領域。因此,目標識別也就成為了近年來理論和應用的研究熱點,它是影象處理和計算機視覺學科的重要分支,也是智慧監控系統的核心部分。它的目的就是如何快速、準確地檢測出監控視訊中的目標,即從序列影象中將目標提取出來。

隨著社會經濟的不斷髮展,城市化步伐的不斷加速,城市的工作、生活秩序顯得越來越紊亂,實時的人數統計有著重要意義。如:可以通過統計等候電梯的人數來優化排程電梯,以此提高電梯的利用率,減少使用者的等待時間。可以通過統計經過十字路口、丁字路口人群流動繁忙的交通場合的人數,可以合理安排交通警察或保安人員的工作時間和工作額度。


 

2.研究現狀

目標識別是指用計算機實現人的視覺功能,它的研究目標就是使計算機具有從一幅或多幅影象或者是視訊中認知周圍環境的能力(包括對客觀世界三維環境的感知、識別與理解)。目標識別作為視覺技術的一個分支,就是對視場內的物體進行識別,如人或交通工具,先進行檢測,檢測完後進行識別,然後分析他們的行為。目前,國際上許多高校和研究所,如麻省理工學學院、牛津大學等都專門設立了針對目標檢測和識別的研究組或者研究實驗室。美英等國家已經研究了大量的相關專案。一些著名公司和研究機構,如IBM、Microsoft、麻省理工學院等近幾年來投入了大量的人力物力來進行智慧監控系統的研究,部分成果已經轉化為產品投入了市場。

目前在國內的研究機構中,中國科學院自動化研究所下屬的模式識別國家重點實驗室視覺監控研究處於領先地位。自動化所在交通場景視覺監控、人的運動視覺監控和行為模式識別方面進行了深入研究。另外他們也總結了英國雷丁大學VIEWS的車輛交通監控原型系統的研究經驗,在之前的理論研究的基礎上,自行設計並初步實現了一個擁有完全自主智慧財產權的交通監控原型系統vstart(Visual surveillance star)。國內其他高校如上海交通大學、北京航空航天大學也對這方面進行了研究。


 

3.目標識別

3.1目標識別的任務

識別出影象中有什麼物體,並報告出這個物體在影象表示的場景中的位置和方向。對一個給定的圖片進行目標識別,首先要判斷目標有沒有,如果目標沒有,則檢測和識別結束,如果有目標,就要進一步判斷有幾個目標,目標分別所在的位置,然後對目標進行分割,判斷哪些畫素點屬於該目標。

3.2目標識別的過程

3.2.1目標的識別大體框架:

 

目標識別往包含以下幾個階段:預處理,特徵提取,特徵選擇,建模,匹配,定位。目前物體識別方法可以歸為兩類:一類是基於模型的或者基於上下文識別的方法,另一類是二維物體識別或者三維物體識別方法。對於物體識別方法的評價標準,Grimson總結出了大多數研究者主要認可的4個標準:健壯性(robustness)、正確性(correctness)、效率(efficiency)和範圍(scope)

3.2.2訓練分類器所需訓練樣本的建立

訓練樣本包括正樣本和負樣本;其中正例樣本是指待檢目標樣本(例如人臉或汽車等),負樣本指其它不包含目標的任意圖片(如背景等),所有的樣本圖片都被歸一化為同樣的尺寸大小(例如,20x20)。

3.2.4預處理

       預處理是儘可能在不改變影象承載的本質資訊的前提下,使得每張影象的表觀特性(如顏色分佈,整體明暗,尺寸大小等)儘可能的一致,以便於之後的處理過程。預處理有生物學的對應。瞳孔,虹膜和視網膜上的一些細胞的行為類似於某些預處理步驟,如自適應調節入射光的動態區域等等。預處理和特徵提取之間的界線不完全分明。有時兩者交叉在一起。它主要完成模式的採集、模數轉換、濾波、消除模糊、減少噪聲、糾正幾何失真等預處理操作。因此也要求相應的裝置來實現。

預處理經常與具體的取樣裝置和所處理的問題有關。例如,從圖象中將汽車車牌的號碼識別出來,就需要先將車牌從影象中找出來,再對車牌進行劃分,將每個數字分別劃分開。做到這一步以後,才能對每個數字進行識別。以上工作都應該在預處理階段完成。

從理論上說,像預處理這種先驗式的操作是不應該有的。因為它並不為任何目的服務,所以完全可以隨意為之而沒有“應該怎麼做”的標準,大部分情況下預處理是看著實驗結果說話。這是因為計算機視覺目前沒有一個整體的理論框架,無法從全域性的高度來指導每一個步驟應該如何進行。在物體識別中所用到的典型的預處理方法不外乎直方圖均衡及濾波幾種。像高斯模糊可以用來使得之後的梯度計算更為準確;而直方圖均衡可以克服一定程度的光照影響。值得注意的是,有些特徵本身已經帶有預處理的屬性,因此不需要再進行預處理操作。

預處理通常包括五種基本運算:

    (1)編碼:實現模式的有效描述,適合計算機運算。

    (2)閥值或者濾波運算:按需要選出某些函式,抑制另一些。

    (3)模式改善:排除或修正模式中的錯誤,或不必要的函式值。

    (4)正規化:使某些引數值適應標準值,或標準值域。

    (5)離散模式運算:離散模式處理中的特殊運算。

3.2.5特徵提取

由影象或波形所獲得的資料量是相當大的。例如,一個文字影象可以有幾千個資料,一個心電圖波形也可能有幾千個資料。為了有效地實現分類識別,就要對原始資料進行變換,得到最能反映分類本質的特徵。這就是特徵選擇和提取的過程。一般我們把原始資料組成的空間叫測量空間,把分類識別賴以進行的空間叫做特徵空間,通過變換,可把在維數較高的測量空間中表示的模式變為在維數較低的特徵空間中表示的模式。特徵提取是物體識別的第一步,也是識別方法的一個重要組成部分,好的影象特徵使得不同的物體物件在高維特徵空間中有著較好的分離性,從而能夠有效地減輕識別演算法後續步驟的負擔,達到事半功倍的效果,下面是對一些常用的特徵提取方法:

(1)顏色特徵。顏色特徵描述了影象或影象區域所對應的景物的表面性質,常用的顏色特徵有影象片特徵、顏色通道直方圖特徵等。

(2)紋理特徵。紋理通常定義為影象的某種區域性性質,或是對區域性區域中畫素之間關係的一種度量。紋理特徵提取的一種有效方法是以灰度級的空間相關矩陣即共生矩陣為基礎的,其他方法還有基於影象友度差值直方圖的特徵提取和基於影象灰度共生矩陣的特徵提取。

(3)形狀特徵。形狀是刻畫物體的基本特徵之一,用形狀特徵區別物體非常直觀,利用形狀特徵檢索影象可以提高檢索的準確性和效率,形狀特徵分析在模式識別和視覺檢測中具有重要的作用。通常情況下,形狀特徵有兩類表示方法,一類是形狀輪廓特徵描述,另一類是形狀區域特徵。形狀輪廓特徵主要有:直線段描述、樣條擬合曲線、博立葉描述子、內角直方圖以及高斯引數曲線等等,形狀區域特徵主要有:形狀的無關矩、區域的面積、形狀的縱橫比等。

(4)空間特徵。空間特徵是指影象中分割出來的多個目標之間的相互的空間位置或者相對方向關係,有相對位置資訊,比如上下左右,也有絕對位置資訊,常用的提取空間特徵的方法的基本思想為對影象進行分割後,提取出特徵後,對這些特徵建立索引。

目標比較盛行的有:Haar特徵、LBP特徵、HOG特徵和Shif特徵等;他們各有千秋,得視你要檢測的目標情況而定。

 

3.2.6特徵選擇

再好的機器學習演算法,沒有良好的特徵都是不行的;然而有了特徵之後,機器學習演算法便開始發揮自己的優勢。在提取了所要的特徵之後,接下來的一個可選步驟是特徵選擇。特別是在特徵種類很多或者物體類別很多,需要找到各自的最適應特徵的場合。嚴格地來說,任何能夠在被選出特徵集上工作正常的模型都能在原特徵集上工作正常,反過來進行了特徵選擇則可能會丟掉一些有用的特徵;不過由於計算上的巨大開銷,在把特徵放進模型裡訓練之前進行特徵選擇仍然是相當重要的。

3.2.7建模

一般物體識別系統賴以成功的關鍵基礎在於,屬於同一類的物體總是有一些地方是相同的。而給定特徵集合,提取相同點,分辨不同點就成了模型要解決的問題。因此可以說模型是整個識別系統的成敗之所在。對於物體識別這個特定課題,模型主要建模的物件是特徵與特徵之間的空間結構關係;主要的選擇準則,一是模型的假設是否適用於當前問題;二是模型所需的計算複雜度是否能夠承受,或者是否有儘可能高效精確或者近似的演算法。

       模型表示涉及到物體具有那些重要屬性或特徵以及這些特徵如何在模型庫中表示,有些物體模型定義為一系列區域性的統計特徵,即generative模型,有些是採用物體的特徵以及物體特徵之間的相互關係定義的,比如位置關係等,即discriminative模型,或者是二者的混合模型。對於大多數物體來說,幾何特徵描述是可以很有效的;但對於另外一些物體,可能需要更一般的特徵或函式來表示。物體的表示應該包含所有相關資訊,但沒用任何冗餘資訊,並且將這些資訊以某種方式組織起來,使得物體識別系統的不同組元能夠容易訪問這些資訊。

3.2.8用訓練樣本來訓練分類器

這得先明白分類器是什麼?百度百科的解釋是:“使待分物件被劃歸某一類而使用的分類裝置或數學模型。”可以這樣理解,舉個例子:人腦本身也算一個分類器,只是它強大到超乎想象而已,人對事物的識別本身也是一個分類的過程。人在成長或者學習過程中,會通過觀察A類事物的多個具體事例來得到對A類事物性質和特點的認識,然後以後遇到一個新的物體時,人腦會根據這個事物的特徵是否符合A類事物性質和特點,而將其分類為A類或者非A類。(這裡只是用簡單的二分類問題來說明)。那麼訓練分類器可以理解為分類器(大腦)通過對正樣本和負樣本的觀察(學習),使其具有對該目標的檢測能力(未來遇到該目標能認出來)。

分類器按特徵型別分為數值型分類器和符號型兩大類。數值型分類器包括統計分類器(統計理論為基礎)、模糊分類器(模糊集理論為基礎)、人工神經元網路(模擬生物神經系統的電子系統,也可以用軟體在計算機上實現)、人工智慧分類器(基於邏輯推理或專家系統結構)。符號型分類器包括句法分類器(基於句法分析和自動機理論)、人工智慧分類器(基於邏輯推理或專家系統結構)。 其中符號型分類器具有更大的靈活性,所以能處理較為複雜的模式分類問題。但是目前對符號型分類器的研究遠沒有數值型分類器成熟。為了使分類檢測準確率較好,訓練樣本一般都是成千上萬的,然後每個樣本又提取出了很多個特徵,這樣就產生了很多的的訓練資料,所以訓練的過程一般都很耗時的。

目標比較盛行的分類器有:SVM支援向量機、AdaBoost演算法等;其中檢測行人的一般是HOG特徵+SVM,OpenCV中檢測人臉的一般是Haar+AdaBoost,OpenCV中檢測拳頭一般是LBP+ AdaBoost。隨著深度學習的興起,現在深度學習在物體識別上取得了相當好的成果。

3.2.9匹配

在得到訓練結果之後(在描述、生成或者區分模型中常表現為一簇引數的取值,在其它模型中表現為一組特徵的獲得與儲存),接下來的任務是運用目前的模型去識別新的影象屬於哪一類物體,並且有可能的話,給出邊界,將物體與影象的其它部分分割開。一般當模型取定後,匹配演算法也就自然而然地出現。在描述模型中,通常是對每類物體建模,然後使用極大似然或是貝葉斯推理得到類別資訊;生成模型大致與此相同,只是通常要先估出隱變數的值,或者將隱變數積分,這一步往往導致極大的計算負荷;區分模型則更為簡單,將特徵取值代入分類器即得結果。

一般匹配過程是這樣的:用一個掃描子視窗在待檢測的影象中不斷的移位滑動,子視窗每到一個位置,就會計算出該區域的特徵,然後用我們訓練好的分類器對該特徵進行篩選,判定該區域是否為目標。然後因為目標在影象的大小可能和你訓練分類器時使用的樣本圖片大小不一樣,所以就需要對這個掃描的子視窗變大或者變小(或者將影象變小),再在影象中滑動,再匹配一遍。

3.2.10目標識別方法

       物體識別方法就是使用各種匹配演算法,根據從影象已提取出的特徵,尋找出與物體模型庫中最佳的匹配,它的輸入為影象與要識別物體的模型庫,輸出為物體的名稱、姿態、位置等等。大多數情況下,為了能夠識別出影象中的一個物體,物體識別方法一般由5個步驟組成:特徵提取;知覺組織;索引;匹配;驗證

       經典的物體識別方法:

1)         Bag ofwords(BoW)方法。BoW 方法主要是採用分類方法來識別物體,BoW 方法是來自於自然語言處理,在自然語言處理中是用來表示一篇文件是有一袋子詞語組成的,在計算機視覺的物體識別方法中,將影象比作文件,將從影象中提取的特徵比作詞語,即一幅影象是有一袋子特徵組成的,如圖1 所示。BoW 方法首先需要一個特徵庫,特徵庫中的特徵之間是相互獨立的,然後影象可以表示為特徵庫中所有特徵的一個直方圖,最後採用一些生成性(generative)方法的學習與識別來識別物體。

2)         Partsand structure 方法。BoW 方法的一個主要缺點為特徵之間是相互獨立的,丟失了位置資訊,Parts and structure 方法採用了特徵之間的關係,比如位置資訊和底層的影象特徵,將提取出的特徵聯絡起來。 Pictorial Structure(PS)提出的彈簧模型,物體部件之間的關係用伸縮的彈簧表示,對於特徵之間的關係的模型表示,還有星型結構、層次結構、樹狀結構等。

3)         生成性(generative)方法與鑑別性(Discriminative)方法。生成性方法檢查在給定物體類別的條件下,影象中出現物體的可能性,並以此判定作為檢測結果的得分,鑑別性方法檢查影象中包含某個類別出現的可能性與其他類的可能性之比,從而將物體歸為某一類。

3.2.11分割

       一旦在影象中潛在目標的位置找到了,就要從背景中儘可能準確的將目標提取出來,即將目標從背景中分割出來。當存在噪聲和雜波干擾時,信噪比可能很低,這是將會給分割造成困難。

       目標的分割演算法有很多。每個分割演算法都要解決兩個問題:分割準則和執行方法。

(1)MeanShift聚類

Meanshift聚類也可以用在邊緣檢測、影象規則化、跟蹤等方面。基於meanshift的分割需要精密的引數調整以得到較好的分割效果,如顏色和空間核頻寬的選擇,區域尺寸最小值的閾值設定。

(2)Graph-cut

影象分割可以建模為graph-cut問題。圖G的頂點V由影象畫素點構成;通過剪除加權的邊分割為N個不相連的子圖。兩個子圖間被剪除的邊的權和稱為cut。權值由顏色、光照、紋理等因素計算得到。通常應用在跟蹤目標輪廓上;與MeanShift相比,它所需要引數較少,但計算開銷和記憶體開銷較大。

(3)主動輪廓

主動輪廓曲線將一個閉合輪廓曲線推演為目標邊界,從而實現影象分割。這個過程由輪廓的能量函式來操縱。這個問題需要解決三個方面問題:一是能量函式的確定,二是輪廓曲線的初始化,三是輪廓表達方式的選擇。


 

4.存在問題

雖然目標識別已經被廣泛研究了很多年,研究出大量的技術和演算法,識別方法的健壯性、正確性、效率以及範圍得到了很大的提升,但在目標檢測和識別這方面仍然存在著許多不足,體現在一下幾個方面。

(1)目標之間互遮擋和人體自遮擋問題,尤其是在擁擠狀態下,多人的檢測更是難處理。 

(2)獲取物體的觀測資料時會受到多方面的影響。在不同的視角對同一物體也會得到不同的影象,物體所處的場景的背景以及物體會被遮擋,背景雜物一直是影響物體識別效能的重要因素,場景中的諸多因素,如光源、表面顏色、攝像機等也會影響到影象的畫素灰度,要確定各種因素對畫素灰度的作用大小是很困難的,這些使得影象本身在很多時候並不能提供足夠的資訊來恢復景物。

(3)同樣的影象在不同的知識導引下,會產生不同的識別結果,知識庫的建立不僅要使用物體的自身知識,如顏色、紋理、形狀等,也需要物體間關係的知識,知識庫的有效性與準備性直接影響了物體識別的準確性。

(4)物體本身是一個高維資訊的載體,但是影象中的物體只是物體的一個二維呈現,並且在人類目前對自己如何識別物體尚未了解清楚,也就無法給物體識別的研究提供直接的指導。

(5)目前人們所建立的各種視覺系統絕大多數是隻適用於某一特定環境或應用場合的專用系統,而要建立一個可與人的視覺系統相比的通用視覺系統是非常困難的,雖然存在著很多困難。

(6)目標之間互遮擋,尤其是在擁擠狀態下,目標檢測很不穩定,檢測結果也很不理想,這個問題還需要進一步的研究解決。


 

5.未來研究思路

         目標檢測和識別仍然存在著諸多的問題,以後目標識別可以從以下幾個方面改進:

(1)形狀特徵的研究。目前大部分的形狀特徵仍然是基於有向梯度,這是否是足夠的,形狀是否應該有更高一層的抽象表示,還值得進一步的研究。

(2)物體的表示與描述。如何描述物體,物體不應該是獨立的,物體與物體之間的互動應該考慮進來。物體不應該是一組獨立的特徵的集合,物體識別應該放在一個更大的上下文環境中來重新考察。