3模型大小_Github推荐一个国内牛人开发的超轻量级通用人脸检测模型
Ultra-Light-Fast-Generic-Face-Detector-1MB
1MB輕量級通用人臉檢測模型
作者表示該模型設(shè)計(jì)是為了邊緣計(jì)算設(shè)備以及低功耗設(shè)備(如arm)設(shè)計(jì)的實(shí)時(shí)超輕量級通用人臉檢測模型。它可以用于arm等低功耗計(jì)算設(shè)備,實(shí)現(xiàn)實(shí)時(shí)的通用場景人臉。
檢測推理同樣適用于移動終端或pc機(jī)。
作者加入widerface測試代碼,完善部分測試數(shù)據(jù)及添加MNN、NCNN C++推理代碼等。
- 從模型大小來看,默認(rèn)的fp32精度(.pth)文件大小為1.04~1.1MB,推理幀int8約為300KB。
- 在模型計(jì)算中,320x240的輸入分辨率約為90~109mflops。
- 該模型有兩個(gè)版本,版本slim(簡化速度稍快)、版本rfb(帶有修改后的rfb模塊,精度更高)。
- 提供使用320x240和640x480不同輸入分辨率的Widerface培訓(xùn)的預(yù)培訓(xùn)模型,以便更好地在不同的應(yīng)用場景中工作。
- 支持onxx導(dǎo)出,易于移植推理。
作者測試過PC運(yùn)行環(huán)境
- Ubuntu16.04、Ubuntu18.04、Windows 10(inference)
- Python3.6
- Pytorch1.2
- CUDA10.0 + CUDNN7.6
我們來看下速度、精度和模型大小對比數(shù)據(jù)
訓(xùn)練集是使用Retinaface提供的清潔過的Wideface標(biāo)記以及Wideface數(shù)據(jù)集生成的,以生成VOC訓(xùn)練集(PS:以下測試結(jié)果由我本人測試,結(jié)果可能有所不同)。
Widerface測試情況
寬面測試集中的測試精度(單標(biāo)度輸入分辨率:320*240)
模型Easy SetMedium SetHard Setlibfacedetection v1(caffe)0.650.50.233libfacedetection v2(caffe)0.7140.5850.306官方 Retinaface-Mobilenet-0.25 (Mxnet)0.7450.5530.232version-slim0.7650.6620.385version-RFB0.7840.6880.418
寬面測試集中的測試精度(單刻度輸入分辨率:VGA 640*480)
模型Easy SetMedium SetHard Setlibfacedetection v1(caffe)0.7410.6830.421libfacedetection v2(caffe)0.7730.7180.485官方 Retinaface-Mobilenet-0.25 (Mxnet)0.8790.8070.481version-slim0.7570.7210.511version-RFB0.8510.810.541
看看在樹莓派推理速度
樹莓pi 4b mnn推理測試時(shí)間(ms)(arm/a72x4/1.5ghz/輸入分辨率:320x240/int8量化)
模型1核2核3核4核libfacedetection v12816129.7官方 Retinaface-Mobilenet-0.25 (Mxnet)462518.515version-slim2916129.5version-RFB3519.614.811
我們來看看模型大小數(shù)據(jù)比較
幾種主流開源輕量級人臉檢測模型的大小比較:
模型模型文件大小(MB)libfacedetection v1(caffe)2.58libfacedetection v2(caffe)3.34官方 Retinaface-Mobilenet-0.25 (Mxnet)1.68version-slim1.04version-RFB1.11
生成voc格式的訓(xùn)練數(shù)據(jù)集和訓(xùn)練流程
一、下載wideface官方網(wǎng)站數(shù)據(jù)集或下載我提供的培訓(xùn)集并將其提取到./data文件夾:
(1)過濾掉10px*10px面后干凈的wideface數(shù)據(jù)壓縮包
(2)完整的未過濾小面寬面數(shù)據(jù)壓縮包
(注:如果下載上述(1)中的過濾包,則無需執(zhí)行此步驟)
二、由于寬空間中有許多小而不清晰的面,不利于有效模型的收斂,因此需要進(jìn)行過濾。訓(xùn)練時(shí),默認(rèn)值是過濾10像素x 10像素的臉大小。
運(yùn)行./data/wide_face_2_voc_add_landmark.py
python3 ./data/wider_face_2_voc_add_landmark.py程序運(yùn)行并完成后,將在./data目錄中生成更寬的
“u face_add_lm_10_10”文件夾。解壓后文件夾數(shù)據(jù)和數(shù)據(jù)包(1)相同。完整的目錄結(jié)構(gòu)如下:
data/retinaface_labels/test/train/val/wider_face/WIDER_test/WIDER_train/WIDER_val/wider_face_add_lm_10_10/Annotations/ImageSets/JPEGImages/wider_face_2_voc_add_landmark.py三、VOC訓(xùn)練集已準(zhǔn)備就緒,在項(xiàng)目的根目錄中有兩個(gè)腳本
train_mb_tiny_fd.sh和train_mb_tiny_rfb_fd.sh。
四、前者用于訓(xùn)練slim版本模型,后者用于訓(xùn)練rfb版本模型。已設(shè)置默認(rèn)參數(shù)。有關(guān)微調(diào),請參閱./train.py中每個(gè)訓(xùn)練超參數(shù)的說明。
運(yùn)行train_mb_tiny_fd.sh和train_mb_tiny_rfb_fd.sh
sh train_mb_tiny_fd.sh 或者 sh train_mb_tiny_RFB_fd.sh我們來看看幾張分辨率為640*480的人臉檢測效果圖:
- 如果實(shí)際的生產(chǎn)場景是中距離、大面和小面,建議使用輸入尺寸輸入尺寸:320(320x240)分辨率訓(xùn)練,并使用320x240圖像尺寸輸入進(jìn)行預(yù)測推理,例如使用提供的預(yù)訓(xùn)練模型。用于推理的mb_tiny_rfb_fd_train_320.pth輸入。
- 如果實(shí)際的生產(chǎn)場景是中長距離、小面和大量面,建議:
- (1)最優(yōu):輸入大小輸入大小:640(640x480)分辨率訓(xùn)練,并使用相同或更大的輸入大小進(jìn)行預(yù)測推理,如使用提供的訓(xùn)練前模型mb_tiny_rfb_fd_train_640.pth進(jìn)行推理,誤報(bào)率更低。
- (2)次優(yōu):輸入大小輸入大小:320(320x240)分辨率訓(xùn)練,并使用480x360或640x480大小輸入進(jìn)行預(yù)測推理,對小臉更敏感,誤報(bào)會增加。
- 每個(gè)場景的最佳結(jié)果都需要調(diào)整輸入分辨率,以便在速度和精度之間取得平衡。
- 過大的輸入分辨率會提高小人臉的召回率,但也會增加大、近距離人臉的誤報(bào)率,推理速度會成倍增加。
- 輸入分辨率過小會顯著加快推理速度,但會大大降低小人臉的召回率。
- 制作場景的輸入分辨率應(yīng)盡量與模型訓(xùn)練的輸入分辨率一致,上下浮動不宜過大。
相關(guān)數(shù)據(jù)集及代碼大家可以在Github上找得到。
總結(jié)
以上是生活随笔為你收集整理的3模型大小_Github推荐一个国内牛人开发的超轻量级通用人脸检测模型的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 两个数相乘积一定比每个因数都大_人教版五
- 下一篇: 怎么查杀电脑系统病毒(怎样给电脑查杀病毒