在前兩篇文章中我們分別介紹了如何使用RZ/A2M和它獨有的DRP技術(shù)實現(xiàn)工業(yè)自動化中的目標物體檢測與追蹤以及如何實現(xiàn)二維碼編碼類型的快速檢測。現(xiàn)在讓我們看一下RZ/A2M的DRP與嵌入式AI結(jié)合實現(xiàn)口罩人臉檢測。
在示例中我們通過MIPI接口連接Sony IMX219 CMOS傳感器,輸入一個1280x720分辨率的圖像,通過RZ/A2M的DRP對輸入圖像做Simple ISP處理,圖像縮放處理,然后運行一個輕量級且高效的口罩,人臉檢測模型。它能夠?qū)崿F(xiàn)在人臉檢測模式下30FPS的檢測速度,在區(qū)分是否戴口罩的模式下實現(xiàn)20FPS的檢測速度。下面讓我們看一下它是如何實現(xiàn)的。
下圖是他的數(shù)據(jù)處理流程:
藍色部分的處理由DRP硬件加速實現(xiàn),其中Simple ISP庫將CMOS傳感器的Bayer格式數(shù)據(jù)轉(zhuǎn)換為灰階數(shù)據(jù),并統(tǒng)計一幀圖像中三個預(yù)設(shè)區(qū)域的平均亮度用于調(diào)整自動曝光參數(shù)。
第二個DRP庫實現(xiàn)圖像的縮放處理,將1280x720分辨率的灰階圖像壓縮成640x360大小的圖像,它將大大提高人臉的檢測速度。
圖中綠色部分是由Cortex A9處理器運行的輕量級口罩及人臉檢測模型,用于標定出當前幀是否有人臉,是否帶有口罩。
在此示例中我們將不依賴外部RAM,只使用RZ/A2M的4MB片上高速RAM。
步驟1
由于人臉檢測只需要使用灰階圖像,我們需要將CMOS傳感器的Bayer格式圖像轉(zhuǎn)換成灰度圖,此時我們載入一個simple_isp_2_tiles的DRP庫,這個DRP庫需要具有以下特性:
占用2個Tile的DRP硬件資源
實現(xiàn)Bayer轉(zhuǎn)灰階
對3個獨立的區(qū)域中所有像素的亮度值進行累加
支持多Tile并行處理
由于這個庫具有多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倍。
由于DRP庫提供了非常便捷的API接口,實現(xiàn)以上功能只需要簡單的編程操作即可實現(xiàn)。
請根據(jù)DRP庫的應(yīng)用文檔中關(guān)于 Number of tiles和Segmented Processing屬性來決定如何加載DRP庫
Number of tiles: 表示DRP庫需要占用幾個硬件Tile
Segmented processing:表示DRP任務(wù)十分可以拆分到多個tile中并行執(zhí)行
DRP庫在Tile中的擺放方式共有11種,可根據(jù)DRP的Number of tiles 和 Segmented屬性靈活選擇使用哪種加載方式,舉例如下:
步驟2
在得到一幀灰階圖像后,我們載入一個resize_bilinear_fixed的DRP庫將這一幀圖像進行縮放。這個DRP庫具有以下特性:
輸入8bpp灰階圖像
支持 ? ? ? 1x 2x 4x 8x 16x 固定縮放比例
水平和垂直縮放比例單獨控制
輸入寬度范圍128~1280,輸入高度范圍8~960
占用4 tiles硬件資源,不支持segmented
經(jīng)過步驟2的處理,我們將灰階圖像從Video RAM1讀入,寬和高均縮小為原來的?,并將圖像寫入到Video RAM2,用于下一步的人臉檢測。
這兩步的執(zhí)行時間約為4.6ms和8.2ms,采用并行化處理和小于1ms的DRP庫加載速度極大優(yōu)化了人臉識別之前圖像預(yù)處理的執(zhí)行速度。
步驟3
我們移植了一個輕量級的開源人臉識別算法https://github.com/nenadmarkus/pico
在此基礎(chǔ)上添加了口罩人臉的數(shù)據(jù)集,并對新數(shù)據(jù)集進行了訓(xùn)練,經(jīng)過測試其識別速度和識別精度均比較理想。
首先需要準備數(shù)據(jù)集,可以直接通過我們示例包中的數(shù)據(jù)集訓(xùn)練或從網(wǎng)絡(luò)下載。
此數(shù)據(jù)集包含7092張人臉圖片及4283張口罩人臉圖片,并對圖片中的人臉關(guān)鍵特征進行了標定。
AI模型并非普遍采用的神經(jīng)元網(wǎng)絡(luò)模型,而是使用了決策樹模型,其具有執(zhí)行速度快的特點,而且其模型大小只有幾十KB到2百多KB,
以下是AI領(lǐng)域比較常用的算法:
決策樹是一種非參數(shù)化的監(jiān)督學(xué)習(xí)模型,它能夠讓你跟隨樹狀的決策分支結(jié)果一步一步從根節(jié)點到達頂端葉節(jié)點,從而根據(jù)頂端葉節(jié)點的結(jié)果來預(yù)測目標值,常用于目標分類(classification)和回歸(regression)
在人臉檢測過程中,我們使用一個滑動窗口一步一步的掃描步驟2生成的圖像,先使用最小滑動窗口,然后逐步增大窗口的大小。使用決策樹模型檢測每一個滑動窗口內(nèi)是否存在人臉。
如下是一些關(guān)鍵參數(shù)的配置,我們可以通過參數(shù)調(diào)整在檢測精度和性能之間進行平衡。
以下為1280x720分辨率輸入,分別針對畫面中1張人臉,3張人臉和7張人臉進行檢測,在口罩人臉模式下可實現(xiàn)
如下視頻是針對快速切換的圖像進行人臉檢測的測試結(jié)果,可以看到RZ/A2M在經(jīng)過了DRP加速及和運行輕量級高效AI算法后,能夠?qū)崟r捕獲到圖像中的人臉。
審核編輯:郭婷
-
傳感器
+關(guān)注
關(guān)注
2552文章
51288瀏覽量
755136 -
嵌入式
+關(guān)注
關(guān)注
5087文章
19153瀏覽量
306416 -
AI
+關(guān)注
關(guān)注
87文章
31262瀏覽量
269623
發(fā)布評論請先 登錄
相關(guān)推薦
評論