Tuesday, July 7, 2020

Yoloface-500k:ultra-light real-time face detection model, 500kb

Join GitHub today

GitHub is home to over 50 million developers working together to host and review code, manage projects, and build software together.

Sign up

Files

Permalink

Failed to load latest commit information.

Type

Name

Latest commit message

Commit time

待办

MobileNetv2-YOLOv3-SPP Darknet

A darknet implementation of MobileNetv2-YOLOv3-SPP detection network

*emmmm...这个懒得训练,mAP就凑合这样吧

Darknet Group convolution is not well supported on some GPUs such as NVIDIA PASCAL!!! The MobileNetV2-YOLOv3-SPP inference time is 100ms at GTX1080ti, but RTX2080 inference time is 5ms!!!

MobileNetV2-YOLOv3-Lite&Nano Darknet

Mobile inference frameworks benchmark (4*ARM_CPU)

Network VOC mAP(0.5) COCO mAP(0.5) Resolution Inference time (NCNN/Kirin 990) Inference time (MNN arm82/Kirin 990) FLOPS Weight size
MobileNetV2-YOLOv3-Lite 72.61 36.57 320 31.58 ms 18 ms 1.8BFlops 8.0MB
MobileNetV2-YOLOv3-Nano 65.27 30.13 320 13 ms 5 ms 0.5BFlops 3.0MB
YOLOv3-Tiny-Prn & 33.1 416 36.6 ms & ms 3.5BFlops 18.8MB
YOLO-Nano 69.1 & 416 & ms & ms 4.57BFlops 4.0MB
  • 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 results

image

MobileNetV2-YOLO-Fastest

Network 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
  • 都2.4ms了,要啥mAP😎
  • 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 results

image

500kb的yolo-Face-Detection

Network 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.5MB
  • 都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 Val

Model 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 Test results

image

Reference&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

DarkNet2Caffe tutorial

Environmental requirements

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
            }
        }

NCNN conversion tutorial

NCNN Android Sample

Thanks

About

MobileNetV2-YoloV3-Nano: 0.5BFlops 3MB HUAWEI P40: 6ms/img, YoloFace-500k:0.1Bflops500KB🔥🔥🔥

Topics

Resources

License

You can’t perform that action at this time.

You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.


from Hacker News https://ift.tt/2ZPt9mq

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.