前言
本篇博文是關於如何自行將人臉偵測功能,實作在聯詠 NT9852x 晶片上。會尋找適合嵌入式的人臉偵測模型,並將其移植到聯詠晶片上運行。
相關博文:
-
聯詠晶片 + 商湯人臉 AI
-
如何將自己的模型,轉換成聯詠晶片可以用的格式 (目前已支援轉換 pytorch/tensorflow/caffe)
→ 傳送門: 以 Novatek AI Tool 轉換模型放至NT9852x, NT9856x, NT9832x上運行之說明
本文
- 使用的人臉偵測模型架構
- Retinaface: 可以偵測並框出人臉部分、標出五官位置 可以利用獲得的五官位置資訊,做為下一步人臉辨識的圖片前處理資訊
- 找尋合適模型並轉換
- 使用 github 上已訓練好的權重 https://github.com/biubug6/Pytorch_Retinaface。
我使用的是其中提供的以 mobilenet 為 backbone 的模型。 - pytorch → caffe → novatek nvt model
- 參考 https://github.com/xxradon/PytorchToCaffe 將 pytorch 轉換為 caffe。
(Novatek AI Tool 目前已可以轉換 pytorch/tensorflow/caffe 到 nvt model,可以不用先轉換成 caffe) - 使用 Novaic AI Tool 將 caffe 模型轉換為可以在晶片上運行的 nvt model。
- 參考 https://github.com/xxradon/PytorchToCaffe 將 pytorch 轉換為 caffe。
- 可以使用 Novaic AI Tool 提供的資訊,測試轉換後模型準確度是否符合期望。
- 使用 github 上已訓練好的權重 https://github.com/biubug6/Pytorch_Retinaface。
- 板端實際運行
- 時間/FPS: 0.057 秒 (FPS 17.5)
- 模型大小: 951KB
- MACC: 983,244,800
- AI 部分的效能
-
AI 相關引擎使用情況:
引擎 使用率 CNN1 24.36% CNN2 17.23% NUE1 0.96% NUE2 8.43% CPU 0.13% -
記憶體用量: 18MB (包含模型大小和運行模型需要的 buffer)
-
展示圖片
- 正臉側臉都可以偵測
- 以圖片測試
圖片來源: Photo by Anton Belitskiy from Pexels: https://www.pexels.com/photo/photography-of-people-having-fun-954623/
下一篇: 本篇結合人臉辨識 - 在 NT9852X 上實現人臉辨識
評論
mysticalwing
1 個月前