本文將手把手帶你實現實時人臉檢測,并將完整流程開源。打通從數據采集、模型訓練、量化轉換,到集成部署的每一個環節。我們已為你準備好了數據集、訓練代碼、轉換工具鏈與RT-Thread工程。只需跟隨步驟,即可體驗在1 GHz Arm Cortex-M85 MCU上部署AI模型。(公眾號后臺回復RA8P1,加入交流群)
目錄
應用效果預覽
流程圖
環境準備
訓練模型
ai模型轉換
ai模型部署
網盤資源及培訓視頻
1 應用效果預覽

2 流程圖
提示:可以上下滑動


3 環境準備
3.1 硬件清單
開發板:RA8P1開發板(Titan Board)。

或復制鏈接購買:https://item.taobao.com/item.htm?ft=t&id=987791181903
傳感器/外設:RGB565屏幕和攝像頭
3.2 軟件與?具
RT-Thread Studio
Python 3.9–3.11,pip包:pytorch等ai庫
Yolo-Fastest
3.3 RT-Thread Studio
在 RT-Thread Studio 中下載 Titan-Board SDK 及相關依賴(下載Titan-Board SDK 時,其他依賴會自動下載)。

網盤中提供了下載好的 Titan-Board SDK,可以通過導入的方式安裝 SDK。

選擇 SDK 壓縮包。

導入成功。

提示:如果在燒錄時檢測不到 DAP-Link,按下方鏈接中的步驟操作即可解決。
https://rt-thread-studio.github.io/sdk-bsp-ra8p1-titan-board/latest/faq/FAQ_page/README_zh.html
3.4. Python 環境
參考:https://github.com/AlexeyAB/darknet?tab=readme-ov-file#how-to-compile-on-windows-using-cmake
由于需要安裝vs 2022、cmake等工具,下載需要的時間過久,我這邊有編譯好的darknet.exe,可以使用cpu直接訓練模型,如果需要使用gpu訓練模型,可以按照darknet官方的安裝步驟重新編譯。
編譯前注意修改配置文件,根據自己的需求修改。
option(CMAKE_VERBOSE_MAKEFILE"Create verbose makefile"ON)option(CUDA_VERBOSE_BUILD"Create verbose CUDA build"OFF)option(BUILD_SHARED_LIBS"Create dark as a shared library"ON)option(BUILD_AS_CPP"Build Darknet using C++ compiler also for C files"OFF)option(BUILD_USELIB_TRACK"Build uselib_track"ON)option(MANUALLY_EXPORT_TRACK_OPTFLOW"Manually export the TRACK_OPTFLOW=1 define"OFF)option(ENABLE_OPENCV"Enable OpenCV integration"OFF)option(ENABLE_CUDA"Enable CUDA support"OFF)option(ENABLE_CUDNN"Enable CUDNN"OFF)option(ENABLE_CUDNN_HALF"Enable CUDNN Half precision"OFF)option(ENABLE_ZED_CAMERA"Enable ZED Camera support"OFF)option(ENABLE_VCPKG_INTEGRATION"Enable VCPKG integration"OFF)
3.5. Conda 安裝
雙擊安裝miniconda,注意這一步要選擇添加環境變量

3.6. 安裝 Python 環境
導入環境,convert用于將darknet模型轉為tflite模型并量化。
3.6.1. convert
下面是安裝方式,二選一
解壓(推薦)
將convert.zip解壓到anaconda安裝目錄的envs中。

安裝keras-YOLOv3-model-set環境。
condacreate-nconvertpython=3.8conda activateconvertcd keras-YOLOv3-model-setpip install Cythonpip install-r requirements.txt
3.6.2. ruhmi
安裝ruhmi環境, 用于將量化后的tflite模型轉為能在開發板上部署的模型。
condacreate -n ruhmi python=3.10condaactivate ruhmicdruhmi-framework-mcupipinstall"install\mera-2.4.0+pkg.179-cp310-cp310-win_amd64.whl"pipinstall onnx==1.17.0tflite==2.18.0
4 訓練模型
4.1 收集數據
使用labelimg創建數據集。

創建好的數據集可以使用Yolo-Fastest\scripts\xml2yolo.py來轉為yolo格式。同時會得到會得到train.txt和val.txt的生成路徑。
python scripts/xml2yolo.py
修改voc.names。
face
得到anchor。
darknet.exe detector calc_anchors datasets/voc.data -num_of_clusters9-width192-height192
得到的anchor如下,每個人每次生成都不一樣。
anchors= 3, 5, 6,10, 11,17, 14,30, 25,25, 25,52, 43,54, 58,90, 94,117
修改yolo-fastest.cfg。
width=192height=192channels=1
# 兩個yolo都要改[convolutional]size=1stride=1pad=1filters=18activation=linear
[yolo]mask=0,1,2anchors= 3, 5, 6,10, 11,17, 14,30, 25,25, 25,52, 43,54, 58,90, 94,117classes=1
我提取收集整理好了人臉識別數據,位于datasets中。

4.2 訓練
使用我編譯好的darknet.exe
cdYolo-fastestdarknet.exe detector train datasets/voc.data datasets/yolo-fastest.cfg -dont_show
大概訓練2小時才會有好一些的模型結果(GPU啟動訓練的情況下)。


5 AI部署轉換
訓練模型結束后,會在Yolo-fastest/backup中保存模型權重。我們選擇最后一輪的權重,用于轉換。

5.1 darknet->tflite
轉換代碼需要的參數如下。

我們需要復制訓練好的權重、cfg文件到keras-YOLOv3-model-set下,然后運行,這里需要稍等一會,需要大概6分鐘。
conda activate convertcd /path/to/keras-YOLOv3-model-setpython tools/model_converter/conver2tflite_and_int8.py--config_pathyolo-fastest.cfg--weights_pathyolo-fastest_last.weights--output_pathface.h5--int8_img_path../Yolo-Fastest/datasets/face/data_1/train/image/--save_tflite_pathface_int8.tflite-f
最終會得到face_int8.tflite模型。

5.2 tflite->ruhmi
將上?步得到的tflite文件復制到ruhmi-framework-mcu/models下,然后運行以下指令
conda activate ruhmicd /path/to/ruhmi-framework-mcu/scriptspython mcu_deploy.py--ethos--ref_data../models/ deploy_qtzed_ethos

6 AI部署模型
在 RT-Thread Studio 中創建示例工程。

創建 ai 示例工程。

tflite->ruhmi會在ruhmi-framework-mcu/scripts下生成可部署模型?件,路徑如下

接下來,刪除*_io_data.*和hal_entry.c,然后將剩下的文件拷貝到剛剛創建的示例工程的Titan_npu_ai_face_detection/src/models下。
編譯然后下載。


檢測效果如下

7 網盤資源及培訓視頻
網盤資源鏈接:https://pan.baidu.com/s/16OwyiITyhET6k-BtPnJokw?pwd=d983
培訓視頻鏈接:
https://www.bilibili.com/video/BV1nsUSBFE8U/?spm_id_from=333.1387.collection.video_card.click
-
mcu
+關注
關注
147文章
18669瀏覽量
388976 -
AI
+關注
關注
90文章
38414瀏覽量
297708 -
RT-Thread
+關注
關注
32文章
1551瀏覽量
44351
發布評論請先 登錄
RA8P1部署ai模型指南:從訓練模型到部署?|?本周六
如何在基于Arm架構的邊緣AI設備上部署飛槳模型
新唐科技推出高效AI MCU部署工具NuML Toolkit
ai_cube訓練模型最后部署失敗是什么原因?
Arm方案 基于Arm架構的邊緣側設備(樹莓派或 NVIDIA Jetson Nano)上部署PyTorch模型
地表最強M85內核芯片-RA8P1測評 | 技術集結
stm32N657上部署cubeAI生成代碼,編譯出錯的原因?怎么解決?
RAKsmart企業服務器上部署DeepSeek編寫運行代碼
基于stm32h743IIK在cubeai上部署keras模型,模型輸出結果都是同一組概率數組,為什么?
AI MCU# 瑞薩RA8T1搭載 Helium 和 TrustZone 的電機控制MCU 詳細介紹

1 GHz Arm? Cortex?-M85 MCU上部署AI模型
評論