新聞中心

        EEPW首頁 > 設計應用 > 基于S32V來實現人臉識別的應用

        基于S32V來實現人臉識別的應用

        作者: 時間:2019-11-20 來源:電子產品世界 收藏

        摘要:汽車行業ADAS功能需求日益增長,防疲勞駕駛是一個熱門方向,對于駕駛員狀態的檢測,人臉識別是基礎,只有快速準確地識別到人臉,才能對人臉狀態進行分析。本文將介紹基于S32V來實現人臉識別的應用。

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

        一、S32V視覺處理平臺

        NXP于2015開始推出S32V平臺,現在已經推出了第二代型號S32V234,第三代目前已經在樣品階段,該平臺定位為ADAS視覺處理,提供了視覺系統應用所需的性能和功能。

        對于圖像處理,S32V具有自己的特色,硬件方面:具有兩路CSI和兩路并口攝像頭接口,提供了可圖形化編程的ISP、APEX,以及3D渲染的GPU。其中可編程的ISP可以對通過CSI輸入的攝像頭圖像數據進行處理,支持HDR、顏色轉換、色調映射等。APEX提供了并行圖像處理的能力。還提供了H264硬件編解碼等,基本覆蓋了圖像處理所需要的硬件資源。

        軟件方面:提供了VSDK,包含S32V平臺的各個外設驅動,并配有相關例程。API方面提供了OpenCV、FFmpeg、OpenCL、OpenGL、EGL等常用圖像處理相關庫。

        image.png

        圖1 S32V內部框圖

        二、人臉識別方案介紹

        采用索尼的IMX224攝像頭作為圖像輸入,移植人臉識別庫,建立演示demo將檢測到的人臉實時用方框標記出來。

        1.   方案框圖

        image.png

        圖 2 人臉識別方案框圖

        2.   Demo搭建

        l          獲取攝像頭數據

        首先,基于VSDK實現iMX224攝像頭的數據獲取。通過NXP提供S32 Design Studio for Vision Version軟件建立iMX224的ISP處理流程,如下圖所示。

        image.png

        圖 3 ISP處理流程

        這里通過運行在IPUS0中的debayer_rgb_simple_interleaced,實現了攝像頭Debayer數據轉RGB,然后通過FDMA傳輸到DDR中供算法調用。如果對于圖像有特殊要求的,可以自己建立對應的IPUS核,對圖像數據進行相關處理。

        l          交叉編譯相關庫

        移植人臉識別算法庫,該庫基于NCNN神經網絡上搭建人臉識別系統,依賴的庫有OpenCV、NCNN以及Sqlit3。這些庫需要交叉編譯,其中OpenCV和Sqlit3的ARM版S32V已經提供不需要再進行編譯,編譯后的NCNN和人臉識別算法庫都是靜態庫,不需要拷貝到目標板上。

        l          人臉檢測demo

        通過Qt來實現界面顯示,首先在pro文件中添加VSDK中獲取攝像頭數據的相關庫,算法移植的相關庫,然后通過如下API接口獲取圖像數據。

        int getCImg(cv::Mat &cimg);

        再調用如下接口進行人臉檢測:

        void detectMaxFace(ncnn::Mat& img_, std::vector<Bbox>& finalBbox);

        3.   Demo效果

            最后將檢測結果通過Qt界面顯示出來,如下圖所示。

        image.png

        圖4 人臉檢測結果

        通過測試,人臉檢測耗時如下所示:

        算法庫
        耗時
        人臉檢測與定位
        21ms – 26ms


        關鍵詞:

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 奉化市| 萨迦县| 于都县| 长丰县| 句容市| 通许县| 垦利县| 丰台区| 自贡市| 神农架林区| 万山特区| 麻江县| 宁国市| 扶余县| 铜川市| 江陵县| 金塔县| 库车县| 辽阳市| 岑溪市| 图木舒克市| 聂拉木县| 郑州市| 攀枝花市| 林口县| 云安县| 平罗县| 厦门市| 兴文县| 景泰县| 历史| 抚顺县| 绥芬河市| 信阳市| 利辛县| 繁峙县| 赤峰市| 潞西市| 绵竹市| 翁牛特旗| 太湖县|