开源软件名称:MobileNetv2-YOLOV3
开源软件地址:https://gitee.com/dog-qiuqiu/MobileNetv2-YOLOV3
开源软件介绍:
*添加基于ncnn的106关键点 C sample:https://github.com/dog-qiuqiu/MobileNet-Yolo/tree/master/sample/ncnn ***Darknet Group convolution is not well supported on some GPUs such as NVIDIA PASCAL!!!针对某些Pascal显卡例如1080ti在darknet上 训练失败/训练异常缓慢/推理速度异常 的可以采用Pytorch版yolo3框架 训练/推理MobileNetV2-YOLOv3-Lite&Nano DarknetMobile inference frameworks benchmark (4*ARM_CPU)- Support mobile inference frameworks such as NCNN&MNN
- The mnn benchmark only includes the forward inference time
- The ncnn benchmark is the forward inference time + post-processing time(NMS...) of the convolution feature map.
- Darknet Train Configuration: CUDA-version: 10010 (10020), cuDNN: 7.6.4,OpenCV version: 4 GPU:RTX2080ti
MobileNetV2-YOLOv3-Lite-COCO Test resultsMobileNetV2-YOLO-FastestNetwork | Resolution | VOC mAP(0.5) | Inference time (DarkNet/i7-6700) | Inference time (NCNN/Kirin 990) | Inference time (MNN arm82/Kirin 990) | FLOPS | Weight size |
---|
MobileNetV2-YOLOv3-Fastest | 320 | 46.55 | 26 ms | 8.2 ms | 2.4 ms | 0.13BFlops | 700KB | MobileNetV2-YOLOv3-Fastest-v2 | 320 | 50.13 | 27 ms | & ms | & ms | 0.14BFlops | 820KB |
- 都2.4ms了,要啥mAP
- V2 does not support MNN temporarily
- Suitable for hardware with extremely tight computing resources
- The mnn benchmark only includes the forward inference time
- The ncnn benchmark is the forward inference time + post-processing time(NMS...) of the convolution feature map.
- This model is recommended to do some simple single object detection suitable for simple application scenarios
MobileNetV2-YOLO-Fastest Test resultsApplicationUltralight-SimplePoseYoloFace-500k: 500kb yolo-Face-DetectionNetwork | Resolution | Inference time (NCNN/Kirin 990) | Inference time (MNN arm82/Kirin 990) | FLOPS | Weight size |
---|
UltraFace-version-RFB | 320x240 | &ms | 3.36ms | 0.1BFlops | 1.3MB | UltraFace-version-Slim | 320x240 | &ms | 3.06ms | 0.1BFlops | 1.2MB | yoloface-500k | 320x256 | 5.5ms | 2.4ms | 0.1BFlops | 0.52MB | yoloface-500k-v2 | 352x288 | 4.7ms | &ms | 0.1BFlops | 0.42MB |
- 都500k了,要啥mAP
- Inference time (DarkNet/i7-6700):13ms
- The mnn benchmark only includes the forward inference time
- The ncnn benchmark is the forward inference time + post-processing time(NMS...) of the convolution feature map.
Wider Face ValModel | Easy Set | Medium Set | Hard Set |
---|
libfacedetection v1(caffe) | 0.65 | 0.5 | 0.233 | libfacedetection v2(caffe) | 0.714 | 0.585 | 0.306 | Retinaface-Mobilenet-0.25 (Mxnet) | 0.745 | 0.553 | 0.232 | version-slim-320 | 0.77 | 0.671 | 0.395 | version-RFB-320 | 0.787 | 0.698 | 0.438 | yoloface-500k-320 | 0.728 | 0.682 | 0.431 | yoloface-500k-352-v2 | 0.768 | 0.729 | 0.490 |
- yoloface-500k-v2:The SE&CSP module is added
- V2 does not support MNN temporarily
- wider_face_val(ap05): yoloface-500k: 53.75 yoloface-500k-v2: 56.69
YoloFace-500k Test results(thresh 0.7)YoloFace-500k-v2 Test results(thresh 0.7)YoloFace-50k: Sub-millisecond face detection modelNetwork | Resolution | Inference time (NCNN/Kirin 990) | Inference time (MNN arm82/Kirin 990) | Inference time (DarkNet/R3-3100) | FLOPS | Weight size |
---|
yoloface-50k | 56x56 | 0.27ms | 0.31ms | 0.5 ms | 0.001BFlops | 46kb |
- For the close-range face detection model in a specific scene, the recommended detection distance is 1.5m
YoloFace-50k Test results(thresh 0.7)YoloFace50k-landmark106(Ultra lightweight 106 point face-landmark model)Network | Resolution | Inference time (NCNN/Kirin 990) | Inference time (MNN arm82/Kirin 990) | Weight size |
---|
landmark106 | 112x112 | 0.6ms | 0.5ms | 1.4MB |
- Face detection: yoloface-50k Landmark: landmark106
YoloFace50k-landmark106 Test resultsReference&Framework instructions&How to Train- https://github.com/AlexeyAB/darknet
- You must use a pre-trained model to train your own data set. You can make a pre-trained model based on the weights of COCO training in this project to initialize the network parameters
- 交流qq群:1062122604
About model selection- MobileNetV2-YOLOv3-SPP: Nvidia Jeston, Intel Movidius, TensorRT,NPU,OPENVINO...High-performance embedded side
- MobileNetV2-YOLOv3-Lite: High Performance ARM-CPU,Qualcomm Adreno GPU, ARM82...High-performance mobile
- MobileNetV2-YOLOv3-NANO: ARM-CPU...Computing resources are limited
- MobileNetV2-YOLOv3-Fastest: ....... Can you do personal face detection???It’s better than nothing
NCNN conversion tutorialNCNN C++ SampleNCNN Android SampleDarkNet2Caffe tutorialEnvironmental requirements- Python2.7
- python-opencv
- Caffe(add upsample layer https://github.com/dog-qiuqiu/caffe)
- You have to compile cpu version of caffe!!!
cd darknet2caffe/ python darknet2caffe.py MobileNetV2-YOLOv3-Nano-voc.cfg MobileNetV2-YOLOv3-Nano-voc.weights MobileNetV2-YOLOv3-Nano-voc.prototxt MobileNetV2-YOLOv3-Nano-voc.caffemodel cp MobileNetV2-YOLOv3-Nano-voc.prototxt sample cp MobileNetV2-YOLOv3-Nano-voc.caffemodel sample cd sample python detector.py
MNN conversion tutorial- Benchmark:https://www.yuque.com/mnn/cn/tool_benchmark
- Convert darknet model to caffemodel through darknet2caffe
- Manually replace the upsample layer in prototxt with the interp layer
- Take the modification of MobileNetV2-YOLOv3-Nano-voc.prototxt as an example
#layer { # bottom: "layer71-route" # top: "layer72-upsample" # name: "layer72-upsample" # type: "Upsample" # upsample_param { # scale: 2 # } #} layer { bottom: "layer71-route" top: "layer72-upsample" name: "layer72-upsample" type: "Interp" interp_param { height:20 #upsample h size width:20 #upsample w size } } Thanks |
请发表评论