新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 瑞薩AI視覺識別方案應用筆記3

        瑞薩AI視覺識別方案應用筆記3

        —— 輕松實現高效口罩人臉檢測
        作者:劉剛 瑞薩電子中國MPU產品部 高級經理 時間:2021-09-03 來源:電子產品世界 收藏

        我們基于瑞薩RZ/A2M和它獨有的DRP技術,構建了多款解決方案,包括工業自動化中的目標物體檢測與追蹤、二維碼編碼類型的快速檢測等。這次,我們就來拆解如何使用RZ/A2M的DRP與嵌入式結合實現口罩人臉檢測。

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

        在示例中我們通過MIPI接口連接Sony IMX219 CMOS傳感器,輸入一個1280x720分辨率的圖像,通過RZ/A2M的DRP對輸入圖像做Simple ISP處理,圖像縮放處理,然后運行一個輕量級且高效的口罩,人臉檢測模型。它能夠實現在人臉檢測模式下30FPS的檢測速度,在區分是否戴口罩的模式下實現20FPS的檢測速度。下面讓我們看一下它是如何實現的。

        1630639691912788.png

        下圖是他的數據處理流程:

        藍色部分的處理由DRP硬件加速實現,其中Simple ISP庫將CMOS傳感器的Bayer格式數據轉換為灰階數據,并統計一幀圖像中三個預設區域的平均亮度用于調整自動曝光參數。

        第二個DRP庫實現圖像的縮放處理,將1280x720分辨率的灰階圖像壓縮成640x360大小的圖像,它將大大提高人臉的檢測速度。

        圖中綠色部分是由Cortex A9處理器運行的輕量級口罩及人臉檢測模型,用于標定出當前幀是否有人臉,是否帶有口罩。

        1630639644752869.png

        在此示例中我們將不依賴外部RAM,只使用RZ/A2M的4MB片上高速RAM。

        步驟1

        由于人臉檢測只需要使用灰階圖像,我們需要將CMOS傳感器的Bayer格式圖像轉換成灰度圖,此時我們載入一個simple_isp_2_tiles的DRP庫,這個DRP庫需要具有以下特性:

        √   占用2個Tile的DRP硬件資源

        √   實現Bayer轉灰階

        √   對3個獨立的區域中所有像素的亮度值進行累加

        √   支持多Tile并行處理

        image.png

        由于這個庫具有多Tile并行化(segmented)的處理特性,我們可以把它載入到3組DRP 的tile中。其中Tile0和1的simple_isp_2_tiles庫處理頂部1/3的圖像,Tile2和3的simple_isp_2_tiles庫處理中間1/3的圖像,Tile4和5的simple_isp_2_tiles庫處理底部1/3的圖像。且這三部分圖像是同時并行化處理的,這讓處理速度又增加了3倍

        1630639678911608.png

        由于DRP庫提供了非常便捷的API接口,實現以上功能只需要簡單的編程操作即可實現。

        1630639782633976.png

        請根據DRP庫的應用文檔中關于 Number of tiles和Segmented Processing屬性來決定如何加載DRP庫

        image.png

        ●   Number of tiles: 表示DRP庫需要占用幾個硬件Tile

        ●   Segmented processing:表示DRP任務十分可以拆分到多個tile中并行執行

        DRP庫在Tile中的擺放方式共有11種,可根據DRP的Number of tiles 和 Segmented屬性靈活選擇使用哪種加載方式,舉例如下:

        1630639937889141.png

        步驟2

        在得到一幀灰階圖像后,我們載入一個resize_bilinear_fixed的DRP庫將這一幀圖像進行縮放。這個DRP庫具有以下特性:

        ●   輸入8bpp灰階圖像

        ●   支持 ? ? ? 1x 2x 4x 8x 16x 固定縮放比例

        ●   水平和垂直縮放比例單獨控制

        ●   輸入寬度范圍128~1280,輸入高度范圍8~960

        ●   占用4 tiles硬件資源,不支持segmented

        經過步驟2的處理,我們將灰階圖像從Video RAM1讀入,寬和高均縮小為原來的?,并將圖像寫入到Video RAM2,用于下一步的人臉檢測。

        image.png

        這兩步的執行時間約為4.6ms8.2ms,采用并行化處理和小于1ms的DRP庫加載速度極大優化了人臉識別之前圖像預處理的執行速度。

        image.png

        步驟3

        我們移植了一個輕量級的開源人臉識別算法

        在此基礎上添加了口罩人臉的數據集,并對新數據集進行了訓練,經過測試其識別速度和識別精度均比較理想。

        首先需要準備數據集,可以直接通過我們示例包中的數據集訓練或從網絡下載

        1630639976544667.png

        此數據集包含7092張人臉圖片及4283張口罩人臉圖片,并對圖片中的人臉關鍵特征進行了標定。

        image.png


        模型并非普遍采用的神經元網絡模型,而是使用了決策樹模型,其具有執行速度快的特點,而且其模型大小只有幾十KB到2百多KB,

        以下是領域比較常用的算法:

        1630640003654155.png

        決策樹是一種非參數化的監督學習模型,它能夠讓你跟隨樹狀的決策分支結果一步一步從根節點到達頂端葉節點,從而根據頂端葉節點的結果來預測目標值,常用于目標分類(classification)和回歸(regression)

        image.png

        在人臉檢測過程中,我們使用一個滑動窗口一步一步的掃描步驟2生成的圖像,先使用最小滑動窗口,然后逐步增大窗口的大小。使用決策樹模型檢測每一個滑動窗口內是否存在人臉。

        1630640028186746.png

        如下是一些關鍵參數的配置,我們可以通過參數調整在檢測精度和性能之間進行平衡。

        1630640062569763.png

        以下為1280x720分辨率輸入,分別針對畫面中1張人臉,3張人臉和7張人臉進行檢測,在口罩人臉模式下可實現約15fps以上的檢測速度。

        1630640082495317.png

        如下視頻是針對快速切換的圖像進行人臉檢測的測試結果,可以看到RZ/A2M在經過了DRP加速及和運行輕量級高效AI算法后,能夠實時捕獲到圖像中的人臉。

        1631172132109786.png



        關鍵詞: AI 視覺

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 稷山县| 禄丰县| 江山市| 娱乐| 镇坪县| 兖州市| 温宿县| 富阳市| 衡南县| 军事| 香港 | 白河县| 银川市| 博爱县| 蒙山县| 永仁县| 贵港市| 聊城市| 濮阳县| 宜兴市| 大安市| 西青区| 凯里市| 高要市| 句容市| 威海市| 葫芦岛市| 安顺市| 界首市| 曲沃县| 永德县| 牙克石市| 安吉县| 平顶山市| 黄山市| 招远市| 卓尼县| 怀柔区| 镇赉县| 胶南市| 龙州县|