yolov2移植到android,MobileNetv2-Yolov3-Nano: MobileNetV2-YOLOv3-Nano的Darknet实现:移动终端设计的目标检测网络,计算量0.5BFlo...

2021.2.6 此项目不再更新,新项目地址: Yolo-Fastest: Faster and stronger https://github.com/dog-qiuqiu/Yolo-Fastest

此表中NCNN基准未更新最新ARM82数据,最新版本NCNN理论上ARM82会有一倍速度提升,待更新...

***Darknet Group convolution is not well supported on some GPUs such as NVIDIA PASCAL!!!

针对某些Pascal显卡例如1080ti在darknet上 训练失败/训练异常缓慢/推理速度异常 的可以采用Pytorch版yolo3框架 训练/推理

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

73.26

37.44

320

28.42 ms

18 ms

1.8BFlops

8.0MB

65.27

30.13

320

10.16 ms

5 ms

0.5BFlops

3.0MB

70.7

&

352

32.15 ms

& ms

2.44BFlops

14.4MB

72.7

&

300

26.37 ms

& ms

& BFlops

23.1MB

&

56.2

416

150.5 ms

& ms

13.2BFlops

28.1MB

&

33.1

416

36.6 ms

& ms

3.5BFlops

18.8MB

&

40.2

416

44.6 ms

& ms

6.9BFlops

23.1MB

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

Application

Ultralight-SimplePose

A ultra-lightweight human body posture key point prediction model designed for mobile devices, which can cooperate with MobileNetV2-YOLOv3-Nano to complete the human body posture estimation task

YoloFace-500k: 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

320x256

5.5ms

2.4ms

0.1BFlops

0.52MB

352x288

4.7ms

&ms

0.1BFlops

0.42MB

都500k了,要啥mAP

c3332e22bef74142decea209331c13ff.png

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

Network

Resolution

Inference time (NCNN/Kirin 990)

Inference time (MNN arm82/Kirin 990)

Inference time (DarkNet/R3-3100)

FLOPS

Weight size

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

112x112

0.6ms

0.5ms

1.4MB

Face detection: yoloface-50k Landmark: landmark106

YoloFace50k-landmark106 Test results

Reference&Framework instructions&How to Train

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 tutorial

NCNN C++ Sample

NCNN Android Sample

DarkNet2Caffe tutorial

Environmental requirements

Python2.7

python-opencv

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

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

你可能感兴趣的:(yolov2移植到android,MobileNetv2-Yolov3-Nano: MobileNetV2-YOLOv3-Nano的Darknet实现:移动终端设计的目标检测网络,计算量0.5BFlo...)