人脸检测几种模型在RK3399上推理速度对比

引用:(9条消息) 树莓派上几种人脸检测模型对比_熊叫大雄的博客-CSDN博客https://blog.csdn.net/yz2zcx/article/details/105467106

首先在可以参考上述博客。

可知主流几款人脸检测模型MTCNN,CenterFace,RetinaFace,UltraFace-1MB,LFFD在树莓派上的运行时间。以下为结论:

测试图片:Selfie.jpg

分辨率:2048*1150,大小,417Kb

人脸检测几种模型在RK3399上推理速度对比_第1张图片

测试模型和地址:

模型	            地址
MTCNN	            https://github.com/ElegantGod/ncnn
CenterFace	        https://github.com/Star-Clouds/CenterFace 
                    https://github.com/MirrorYuChen/ncnn_example
RetinaFace	        https://github.com/deepinsight/insightface 
                    https://github.com/deepinsight/insightface/issues/669
UltraFace-1MB	    https://github.com/Linzaer/Ultra-Light-Fast-Generic-Face-Detector-1MB
LFFD	            https://github.com/SyGoing/LFFD-with-ncnn

运行推理框架:NCNN。

结论:

MTCNN

      设置了阈值参数:PNet、RNet、ONet三个模型的输出阈值设置了0.4、0.2、0.2,factor阈值设置了0.9,最后检测出了33张人脸,用了1081.62ms。

CenterFace
  尺寸:(512,256),阈值0.4,时间:511.463ms,人脸检测数量:46:

       尺寸:(1024,512),阈值0.4,时间:2903.19ms,人脸检测数量:193:

       尺寸:(2048,1150),阈值0.4,时间:11726.5ms,人脸检测数量:499: 

 RetinaFace

  RetinaFace的操作与CenterFace类似,它可以指定输入的尺寸,也可以修改阈值,所以我也设置了相同的尺寸:。
  尺寸:(512,256),阈值0.4,时间:170.906ms,人脸
检测数量:27:

       尺寸:(1024,512),阈值0.4,时间:649.532ms,人脸检测数量:149:

       尺寸:(2048,1150),阈值0.4,时间:3926.29ms,人脸检测数量:457: 

UltraFace-1MB

  UltraFace-1MB的操作也与CenterFace类似,它可以指定输入的尺寸,也可以修改阈值,所以我也同样设置了相同的尺寸:。
  尺寸:(512,256),阈值0.4,时间:257.864ms,人脸
检测数量:299:

       尺寸:(1024,512),阈值0.4,时间:1106.54ms,人脸检测数量:565:

       尺寸:(2048,1150),阈值0.4,时间:4515.47ms,人脸检测数量:695:

LFFD

  追加一个LFFD,效果也是挺好的,速度稍微慢一丢丢哈:。
  尺寸:(512,256),阈值0.4,时间:1094.84ms,人脸
检测数量:81:

       尺寸:(1024,512),阈值0.4,时间:4683.66ms,人脸检测数量:283:

       尺寸:(2048,1150),阈值0.4,时间:25551.5ms,人脸检测数量:578:

 ---------------------------------------------------------------

补充:在瑞芯微RK3399上的性能比较,安卓操作系统,tflite和ncnn。以下仅为模型中的推理时间,不含数据前处理。一般而言图像前处理resize和convert大概需要20ms-50ms不等。可以先对图片resize,然后convert时间开销可降低至20ms。

yolox-s 在RK3399上使用tflite约为1000ms。

mobile-ssd 在RK3399上使用tflite约为200ms。输入尺寸:320*320

retinaface 在RK3399上使用ncnn约为200ms。输入尺寸:640*640

ultraface 在RK3399上使用ncnn约为50ms-60ms,int8量化后约为40ms-50ms。输入尺寸:320*240。在x86,i5 10400cpu上约为20ms。优点:模型小(1.2mb,量化后仅有280kb),速度快。缺点:精度低,没有关键点检测。

       ultraface 使用Global进行结构化剪枝,amount = 0.2,测试多张图像。速度提高(1.76s-1.70s)/1.76s=3.4%。

裁减前:
Found 142 faces. The output image is ./detect_imgs_results
Inference time:  0.001718
Found 2 faces. The output image is ./detect_imgs_results
736
total: time: 1.7611794471740723
裁减后:
Found 114 faces. The output image is ./detect_imgs_results
Inference time:  0.00176
Found 2 faces. The output image is ./detect_imgs_results
655
total: time: 1.7013559341430664

DB-face  在x86,i5 10400cpu上约为1000ms。优点:模型小(1.3mb),精度高。缺点:时间慢。

树莓派的时间开销和RK3399的对比可参考,参考文章和本文章的ultraface模型性能比较。

x86上的时间开销可参考,两篇文章在DBFace模型性能比较。 参考文章DBFace在树莓派上开销为5s-6s。

你可能感兴趣的:(模型部署,人工智能,深度学习)