?
概述
我們將在Hi3516DV300 SDK的基礎之上進行開發,分別為手部檢測+手勢識別實驗,垃圾分類實驗。手部檢測+手勢識別實驗以及垃圾分類實驗,主要基于訓練好的wk模型在板端進行部署,并充分發揮海思IVE、NNIE硬件加速能力,完成AI推理和業務處理。
?
目錄
ai_sample在Hi3516DV300 SDK基礎上進行開發,在利用媒體通路的基礎上,通過捕獲VPSS幀進行預處理操作,并送至NNIE進行推理,結合AI CPU算子最終得到AI Flag并進行相應業務處理,該AI sample集成了垃圾分類、手勢檢測識別兩個基礎場景,運用到媒體理論、多線程、IPC通信、IVE、NNIE等思想,實現了一個輕量級sample,方便開發者了解taurus Hi3516DV300的AI能力,ai_sample目錄結構如下:
//device/soc/hisilicon/hi3516dv300/sdk_linux/sample/taurus/ai_sample
│ BUILD.gn # 編譯ohos ai_sample需要的gn文件
├─ai_infer_process # AI前處理、推理、后處理相關接口
│ ├─ai_infer_process.c
│ └─ai_infer_process.h
├─dependency
│ ├─audio_test.c
│ └─audio_test.h
├─ext_util # 常用的基礎接口、可移植操作系統接口posix等
│ ├─base_inteRFace.c
│ ├─base_interface.h
│ ├─misc_util.c
│ ├─misc_util.h
│ ├─posix_help.c
│ └─posix_help.h
├─mpp_help # 封裝的媒體相關接口
│ ├─include
│ │ ├─ive_img.h
│ │ └─vgs_img.h
│ └─src
│ ├─ive_img.c
│ └─vgs_img.c
├─scenario
│ ├─cnn_trash_classify # 垃圾分類sample
│ │ ├─cnn_trash_classify.c
│ │ └─cnn_trash_classify.h
│ └─hand_classify # 手部檢測+手勢識別sample
│ ├─hand_classify.c
│ ├─hand_classify.h
│ ├─yolov2_hand_detect.c
│ └─yolov2_hand_detect.h
└─smp
├─sample_ai_main.cpp
├─sample_media_ai.c
└─sample_media_ai.h
?
拷貝第三方庫
步驟1:在源碼的根目錄下,分步執行下面的命令,拷貝第三方庫至ai sample中
mkdir device/soc/hisilicon/hi3516dv300/sdk_linux/sample/taurus/ai_sample/third_party/src/ -p
cp third_party/iniparser device/soc/hisilicon/hi3516dv300/sdk_linux/sample/taurus/ai_sample/third_party/src/ -rf

步驟2:使用IDE打開device/soc/hisilicon/hi3516dv300/sdk_linux/sample/taurus/ai_sample/third_party/src/iniparser/src/iniparser.c文件,把第15行的1024改成8192。

?
編譯
在編譯ai_sample之前,需確保OpenHarmony 小型系統的主干代碼已經整編通過,且已經按照《修改源碼及配置文件適配Taurus開發板》的內容進行修改。在單編ai_sample之前,需修改目錄下的一處依賴,進入//device/soc/hisilicon/hi3516dv300/sdk_linux目錄下,通過修改BUILD.gn,在deps下面新增target,"sample/taurus/ai_sample:hi3516dv300_ai_sample",如下圖所示:

點擊Deveco Device Tool工具的Build按鍵進行編譯,具體的編譯過程這里不再贅述,編譯成功后,如下圖所示:

編譯成功后,即可在out/hispark_taurus/ipcamera_hispark_taurus_linux/rootfs/bin目錄下,生成 ohos_camera_ai_demo可執行文件,如下圖所示:

?
拷貝可執行程序和依賴文件至開發板的mnt目錄下
方式一:使用SD卡進行資料文件的拷貝
首先需要自己準備一張SD卡:
步驟1:將編譯后生成的可執行文件拷貝到SD卡中。
步驟2:將devicesochisiliconhi3516dv300sdk_linuxoutlib目錄下的libvb_server.so和 libmpp_vbs.so拷貝至SD卡中
步驟3:將device/soc/hisilicon/hi3516dv300/sdk_linux/sample/taurus/目錄下的models文件夾和aac_file文件夾拷貝至SD卡中。(前提是按照《獲取sample依賴的資源文件到本地》文檔獲取了資源文件)

步驟4:可執行文件拷貝成功后,將內存卡插入開發板的SD卡槽中,可通過掛載的方式掛載到板端,可選擇SD卡 mount指令進行掛載。
mount -t vfat /dev/mmcblk1p1 /mnt
# 其中/dev/mmcblk1p1需要根據實際塊設備號修改
掛載成功后,如下圖所示:

方式二:使用NFS掛載的方式進行資料文件的拷貝
首先需要自己準備一根網線:
步驟1:參考博客鏈接中的內容,進行nfs的環境搭建;
步驟2:將編譯后生成的可執行文件拷貝到Windows的nfs共享路徑下;
步驟3:將devicesochisiliconhi3516dv300sdk_linuxoutlib目錄下的libvb_server.so和 libmpp_vbs.so拷貝至Windows的nfs共享路徑下;
步驟4:將device/soc/hisilicon/hi3516dv300/sdk_linux/sample/taurus/目錄下的models文件夾和aac_file文件夾拷貝至Windows的nfs共享路徑下(前提是按照《獲取sample依賴的資源文件到本地》文檔獲取了資源文件)。

步驟5:依賴文件拷貝至Windows的nfs共享路徑下后,執行下面的命令,將Windows的nfs共享路徑掛載至開發板的mnt目錄下
mount -o nolock,addr=192.168.200.1 -t nfs 192.168.200.1:/d/nfs /mnt
?
拷貝mnt目錄下的文件至正確的目錄下
執行下面的命令,拷貝mnt目錄下面的ohos_camera_ai_demo至userdata目錄,拷貝mnt目錄下面的libvb_server.so和 libmpp_vbs.so至/usr/lib/目錄下,再將models和aac_file文件夾拷貝至userdata目錄下
cp /mnt/ohos_camera_ai_demo /userdata/
cp /mnt/*.so /usr/lib/
cp /mnt/models /userdata/ -rf
cp /mnt/aac_file /userdata/ -rf

執行下面的命令,給ohos_camera_ai_demo文件可執行權限
chmod 777 /userdata/ohos_camera_ai_demo
審核編輯 :李倩
-
cpu
+關注
關注
68文章
11040瀏覽量
216042 -
手勢識別
+關注
關注
8文章
227瀏覽量
48161 -
圖像識別
+關注
關注
9文章
526瀏覽量
38910
原文標題:OpenHarmony AI圖像識別開發—基于潤和Hi3516開發套件
文章出處:【微信號:HarmonyOS_Community,微信公眾號:電子發燒友開源社區】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
DA14594 BLE Pro開發套件 開源 (原理圖+BOM+PCB)

Hi3516DV300產品介紹和開發手冊下載

SC171開發套件V3 技術資料
平臺介紹及基本使用(SC171開發套件V3)
潤和的Hi3861開發版如何連接華為云
新品 | 視美泰AIoT鴻蒙開發套件SC-3568HA正式上市,已成功適配OpenHarmony 5.0 Release版本

【正點原子STM32H7R3開發套件試用體驗】開發套件開箱報告
潤和軟件星閃派物聯網開發套件資料+答疑帖
潤和軟件啟動鯤鵬原生開發合作
中科創達旗下創通聯達Qualcomm RB3 Gen 2 Lite開發套件上市銷售
潤開鴻“龍芯+OpenHarmony”開發平臺DAYU431先鋒派新品發布

評論