大小僅1MB,超輕量級通用人臉檢測模型登上GitHub趨勢榜

近日,用戶 Linzaer 在 Github 上推出了一款適用於邊緣計算設備、移動端設備以及 PC 的超輕量級通用人臉檢測模型,該模型文件大小僅 1MB,320x240 輸入下計算量僅 90MFlops。項目推出不久即引發了你們的關注,登上了今天的 Github trending。git

機器之心報道,項目做者:Linzaer。
github

項目地址:github.com/Linzaer/Ult…app

如下是做者對此項目的介紹:

該模型設計是針對邊緣計算設備或低算力設備 (如用 ARM 推理) 設計的一款實時超輕量級通用人臉檢測模型,旨在能在低算力設備中如用 ARM 進行實時的通用場景的人臉檢測推理,一樣適用於移動端環境(Android & IOS)、PC 環境(CPU & GPU )。有以下幾個特色:
  • 在模型大小方面,默認 FP32 精度下(.pth)文件大小爲 1.1MB,推理框架 int8 量化後大小爲 300KB 左右。框架

  • 在模型計算量方面,320x240 的輸入分辨率下僅 90~109 MFlops 左右,足夠輕量。ide

  • 模型設計有兩個版本,version-slim(主幹精簡速度略快),version-RFB(加入了修改後的 RFB 模塊,精度更高)。測試

  • 提供了 320x240、640x480 不一樣輸入分辨率下使用 widerface 訓練的預訓練模型,更好的工做於不一樣的應用場景。ui

  • 無特殊算子,支持 onnx 導出,便於移植推理。url

測試過正常的運行環境
  • Ubuntu16.0四、Ubuntu18.0四、Windows 10spa

  • Python3.6設計

  • Pytorch1.2

  • CUDA10.0 + CUDNN7.6

精度、速度、場景測試、模型大小比較

訓練集是使用 Retinaface 提供的清理過的 widerface 標籤配合 widerface 數據集生成 VOC 訓練集(PS:如下測試結果均爲本人測試,結果可能有部分出入)。

Widerface 測試

在 WIDER FACE test 集測試精度(單尺度輸入分辨率:320*240)

在 WIDER FACE test 集測試精度(單尺度輸入分辨率:VGA 640*480)

終端設備推理速度

樹莓派 4B MNN 推理測試耗時 (單位:ms)(ARM/A72x4/1.5GHz/輸入分辨率 : 320x240 /int8 量化)


場景測試

若干不一樣場景視頻大體有效人臉檢出數量測試(單位:個)(分辨率:VGA 640*480,閾值 0.6):


模型大小比較

若干主流開源輕量級人臉檢測模型大小比較 :

此外,若是讀者但願復現這些測試,或者親自試試訓練效果,那麼能夠直接下載 widerface 官網數據集或者下載做者提供的訓練集。這些數據集都須要放到./data 文件夾,且須要過濾掉 10×10 像素如下的人臉。若是從官網下載的數據集,那麼還須要運行一個腳本過濾過小的人臉,所以最好的方法就是直接下載做者提供已過濾的數據集。
  • 下載地址:https://pan.baidu.com/share/init?surl=m600pp-AsNot6XgIiqDlOw

  • 提取碼:x5gt

在移除了 10*10 像素如下的極小人臉後,這個超輕量人臉檢測模型能識別該圖中的335張人臉。

至此 VOC 訓練集準備完畢,項目根目錄下分別有 train_mb_tiny_fd.sh 和 train_mb_tiny_RFB_fd.sh 兩個腳本,前者用於訓練 slim 版本模型,後者用於訓練 RFB 版本模型,默認參數已設置好,參數如需微調請參考 ./train.py 中關於各訓練超參數的說明。

相關文章
相關標籤/搜索