對於嵌入式實時面部檢測應用原理分析

   時間:2014-03-12 23:07:51
對於嵌入式實時面部檢測應用原理分析簡介
嵌入式計算機視覺系統與人類的視覺系統非常相似,對來自範圍廣泛的各種產品的視頻信息進行分析和提取,執行與人……
對於嵌入式實時面部檢測應用原理分析正文

  嵌入式計算機視覺系統與人類的視覺系統非常相似,對來自範圍廣泛的各種產品的視頻信息進行分析和提取,執行與人類視覺系統相同的視覺功能。在智能手機、數碼相機和攜帶型攝像機等嵌入式便攜產品中,必須在有限的尺寸、成本和功耗條件下提供較高的性能。新興的大容量嵌入式視覺產品市場包括汽車安全、監控和遊戲。計算機視覺演演算法識別場景中的物體,然後產生一個比其它圖像區域更重要的圖像區。例如,物體和面部檢測可用於增強視頻會議體驗、公共安全檔案管理,以及基於內容的檢索和其它許多方面。可以進行剪裁和尺寸調整,以便適當地將圖像放在面部中心。在本文中,我們提出了一種檢測數碼圖像中的面部、剪裁選定的主面部,並將調整尺寸到固定尺寸輸出圖像的應用(參見圖1)。這種應用可在單一圖像或在視頻流上使用,並且設計用於實時運行。只要人們關注移動產品上的實時面部檢測,為了實現實時吞吐量,就必須採取合適的執行步驟。本文提出了在可編程向量處理器上執行實時面部檢測應用的部署步驟,這些步驟可用於在任何移動產品上執行類似的計算機視覺演演算法,從這一點上說,它們是通用的。圖1:CEVA面部檢測應用雖然靜態圖像處理消耗少量的帶寬和分配內存,但是,視頻對於目前的存儲器系統的要求卻相當嚴苛。另一方面,由於檢測和區分物體需要更多的處理步驟,計算機視覺演演算法的存儲器系統設計極具挑戰性。考慮19x19像素大小的面部圖形縮略圖。對於這種小圖,可能的灰度值組合就有256361種,需要極高的三維空間。由於面部圖像的複雜性,明確描述面部特徵具有一定的難度;因此,建立了以統計模型為基礎的其它方法。這些方法將人臉區域視為一個圖形,通過瞄準許多「面部」和「非面部」樣品構建區分器,然後通過分析檢測區域的圖形來確定圖像是否包含人臉。面部檢測演演算法必須克服的其它挑戰是:姿態(正面,45度,側面,倒置)、存在或缺乏結構部分(鬍鬚、眼鏡)、面部表情、遮擋(部分面部可能被其它物體遮住)、圖像取向(在相機光軸不同的旋轉方向,面部外表直接變化)及成像條件(照明、相機特點、解析度)。雖然文獻中已經介紹了許多面部檢測演演算法,但是,只有少量演演算法能夠滿足移動產品的實時限制性。雖然據報道,許多面部檢測演演算法能夠產生高的檢測率,但是,由於手機等移動產品的計算和存儲器限制,很少有演演算法適合實時部署在這些移動產品上。通常,面部檢測演演算法的實時執行在具有相對強大的CPU和較大存儲器尺寸的PC電腦上進行。針對現有面部檢測產品的考察顯示,Viola和Jones在2001年推出的演演算法已經被廣泛採納。這是一項突破性的工作,允許採用基於外表的方法來實時運行,同時保持相同或更高的準確度。這種演演算法利用簡單特徵的增強級聯,並且可以分為三個主要部分:(1)積分圖 - 用於快速特徵評估的高效卷積;(2)使用用於特徵選擇的Adaboost,並按照重要性順序對它們進行篩選。每個特徵可作為一個簡單的(弱)區分器使用;(3)使用Adaboost來了解將最不可能包含面部的區域濾出的級聯區分器(弱區分器的集合)。圖2是區分器級聯的示意圖。在圖像中,大多數子圖像並不是面部實例。根據這種假設,我們可以利用更小的高效區分器在早期排除許多否定例,同時檢測出差不多所有的肯定例。在後期採用更複雜的區分器來審查疑難情況。例:24級級聯區分器一級2特徵區分器=> 排除60%非面部,同時檢測100%面部二級5特徵區分器=> 排除80%非面部,同時檢測100%面部3級、4級和5級20特徵區分器6級和7級50特徵區分器8級至12級100特徵區分器13級至24級200特徵區分器圖2:區分器的級聯在面部檢測演演算法的第一級,利用被稱為積分圖像的中間表示,可以快速計算矩形特徵。如圖3所示,點(x,y)的積分圖像值是上部和左部所有像素的總和。D內像素的總和可以計算為4+1-(2+3)。圖3:採用積分圖像對矩形特徵進行快速評估為了在嵌入式產品上執行實時面部檢測應用,需要將指令級并行性和和數據級并行性相結合的高級并行性。超長指令字(VLIW)架構能夠實現高級并行指令處理,提供擴展的并行性及低功耗。單指令多數據(SIMD)架構能夠在多數據元上運行單指令,從而縮短代碼長度並提高性能。使用向量處理器架構,可通過加法器/減法器并行數量因子,加速這些積分和的計算。如果向量寄存器可以載入16像素,而且這些像素可同時加到下一向量,加速因子是16.顯然,為處理器增加類似的向量處理單元可以使這一因子翻倍。在下一面部檢測階段,在多個位置及按多種尺度掃描圖像。採用Adaboost強大的區分器(以矩形特徵為基礎的區分器),以決定搜索窗口是否包含面部。再一次,向量處理器具有明顯的優勢 - 具有同時將多個位置數據與閾值進行對比的能力。假設在一個圖像中,大多數子圖像都不是面部例,可以提供的并行比較器越多,加速越快。例如,如果架構設計具有在1個循環中比較8個要素中的2個向量的能力,則排除16個位置的子圖像僅需1個循環。為了簡化數據載入,並且高效率地利用向量處理器載入/儲存,各個位置可以在空間上彼此接近。為了獲得高度并行的代碼,架構應支持指令預測。這樣可以使如果-則-否則(if-then-else)構造導致的分支用順序碼來代替,從而減少循環數和縮短代碼長度。允許條件執行,有能力綜合各種條件,在控制代碼中實現更高的效率。此外,非順序碼,如分支和迴路,經設計具有零循環損失,而不需要煩瑣的技術,如動態分支預測和增加RISC處理器功率損耗的推理執行。一個關鍵的應用挑戰是存儲器帶寬,該應用需要對每幀視頻流進行掃描,以執行面部檢測。由於其數據量較大,視頻流無法儲存在緊耦合存儲器(TCM)中。例如,一個YUV 4:2:0格式的高清幀佔用了3MB數據存儲器。這種高存儲器帶寬導致功率損耗更高,並需要更昂貴的DDR存儲器,從而使材料清單成本更高。一個完美的解決方案是採用數據分塊(data tiling)來儲存像素,其中2維數據塊在單次突發中由DDR存取,極大地改善了DDR的效率。直接存儲器存取(DMA)可以在外部存儲器和核心存儲器子系統之間傳輸數據。在最終面部檢測應用階段,包含檢測面部的子圖像尺寸重新調整到固定尺寸輸出窗口。當圖像在多個比例掃描時,還在檢測階段使用圖像尺寸調整過程。尺寸調整演演算法廣泛應用於圖像處理,用於視頻放大和縮小。面部檢測應用中執行的演演算法是雙三次演演算法。三次卷積插值根據離規定輸入坐標最近的16個像素的加權平均值來確定灰度值,並將該值分配給輸出坐標。首先,在一個方向(水平方向)上執行四個一維三次卷積,然後,在垂直方向執行更多個一維三次卷積。這意味著要執行一個二維三次卷積,而所需的是一個一維三次卷積。向量處理器內核具有強大的載入-儲存能力,能夠快速、有效地存取數據是此類應用的關鍵特徵,其中演演算法在數據塊上運行。可通過在單循環中從存儲器訪問2維存儲器塊來滿足尺寸調整演演算法優化。這一特點使處理器能夠有效地實現較高的存儲器帶寬,不需要載入不必要的數據或執行數據操作的負荷計算單元。此外,能夠在數據存取期間轉置數據且不存在任何循環損失,這使得轉置的數據塊能夠在單一循環中存取,對於執行水平過濾和垂直過濾非常切實可行。處理器的功率是其執行強大卷積能力的結果,可以在單一循環中執行并行的過濾器。這裡是一個有效解決方案的實例。在一個循環中載入4x8位元組塊,然後每個迭代利用4個像素,在垂直方向執行三次卷積。這4個像素預先安排在4個獨立的向量寄存器中,因此,我們能夠同時獲得8個結果。然後,同時對這些中間結果進行準確處理,但是,以轉置格式載入這些數據,從而完成水平過濾。為了保持結果準確度,需要用結果四捨五入值(rounding value)和后移(post-shift)初始化。過濾器配置應當在不要求專門指令的條件下實現這些特徵。總之,這種并行向量處理解決方案核心可在載入/儲存單元操作和處理單元之間實現平衡。一般說來,數據帶寬限制及就功耗和晶片面積而言的處理單元的成本限制了執行效率;不過,顯然,可以實現標量處理器架構的重要加速。多媒體器件的多用途可編程HD視頻和圖像平台CEVA-MM3000是可以集成到SoC中的可擴展的完全可編程多媒體平台,以全軟體形式提供1080p 60fps視頻解碼和編碼、ISP功能和視覺應用。該平台由兩個專用處理器,即流處理器和向量處理器組成,集成到一個完整的多核系統中,包括本地存儲器和共享存儲器、外設、DMA和與外部匯流排的標準橋接。這款全面的多內核平台專為滿足移動產品和其它消費者電子產品的低功耗要求而設計。向量處理器包括兩個獨立的向量處理單元(VPU)。VPU負責所有的向量計算,包括向量間運算(利用單指令多數據流)和向量內部運算。向量間指令可在16個8位(位元組)或8個16位(字)元上運行,可以使用向量寄存器對,形成32位(雙字)元。VPU具有在單循環中完成6個線路(taps)中8個并行濾波器(taps)的能力。雖然VPU是作為向量處理器的計算主力,但是,向量載入和儲存單元(VLSU)作為從數據存儲器子系統向向量處理器及從向量處理器向數據存儲器子系統傳輸數據的工具。VLSU具有適用於載入和儲存操作的256位帶寬,並支持不對齊(non-aligned)存取。VLSU備有在單循環中存取二維數據塊的能力,並支持不同的數據塊尺寸。圖4:載入4x4像素塊為了簡化VPU任務,在讀/寫向量寄存器時,VLSU可以靈活地操作數據結構。在數據存取期間,數據塊可以轉置,而不存在任何循環損失,能夠在單循環中實現轉置數據塊的存取。轉置功能可以動態設定或清除。採用這種方式,水平過濾器和垂直過濾器可以重複使用相同的功能,從而節省每個過濾器的開發和調試時間,同時縮小程序存儲器的佔位面積。結論對於採用CEVA-MM3000平台的消費產品來說,嵌入式視覺應用是有效地執行演演算法多樣性的一個實例,例如具備裁剪和尺寸調整功能的面部檢測。根據預測,將來類似的和更複雜的應用需求將會增長,所有這些應用都可以利用CEVA-MM3000架構的可編程性和可擴展性。

[對於嵌入式實時面部檢測應用原理分析],你可能也喜歡

  • 機械原理自鎖螺紋
  • 機械原理螺紋
  • 機械錶原理圖解
  • 機械增壓原理圖解
  • 圖解式機械原理概要
  • 無損音樂檢測
  • 數位rt檢測
  • 切削液濃度檢測
  • 金屬中心檢測實驗室
  • 不繡鋼材質檢測
  • 嵌入式書
  • 嵌入式無線感測設計
  • 嵌入式ic設計
  • 嵌入式硬體架構設計
  • 嵌入式硬體設計
Bookmark the permalink ,來源:
One thought on “對於嵌入式實時面部檢測應用原理分析