新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 嵌入式實時面部檢測應用設計指南

        嵌入式實時面部檢測應用設計指南

        作者: 時間:2013-01-15 來源:網絡 收藏

        本文引用地址:http://www.104case.com/article/148138.htm

          單指令多數據(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備有在單循環中存取二維數據塊的能力,并支持不同的數據塊尺寸。

        加載4x4像素塊

          圖4:加載4x4像素塊

          為了簡化VPU任務,在讀/寫向量寄存器時,VLSU可以靈活地操作數據結構。在數據存取期間,數據塊可以轉置,而不存在任何循環損失,能夠在單循環中實現轉置數據塊的存取。轉置功能可以動態設定或清除。采用這種方式,水平過濾器和垂直過濾器可以重復使用相同的功能,從而節省每個過濾器的開發和調試時間,同時縮小程序存儲器的占位面積。

          結論

          對于采用CEVA-MM3000平臺的消費產品來說,視覺應用是有效地執行算法多樣性的一個實例,例如具備裁剪和尺寸調整功能的面部檢測。根據預測,將來類似的和更復雜的應用需求將會增長,所有這些應用都可以利用CEVA-MM3000架構的可編程性和可擴展性。

        linux操作系統文章專題:linux操作系統詳解(linux不再難懂)
        光電開關相關文章:光電開關原理

        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 南投县| 霍城县| 晋中市| 南召县| 西安市| 陕西省| 郸城县| 资溪县| 潢川县| 通辽市| 佛教| 旬阳县| 大渡口区| 高邮市| 仙游县| 拜泉县| 北京市| 乐平市| 疏勒县| 乐陵市| 九江市| 凤庆县| 星座| 无锡市| 湄潭县| 阳泉市| 泉州市| 仪陇县| 青海省| 深水埗区| 临沂市| 福安市| 含山县| 隆回县| 富锦市| 徐水县| 靖州| 三穗县| 温州市| 玉田县| 新宁县|