dog-qiuqiu / Yolo-Fastest

:zap: Based on yolo's ultra-lightweight universal target detection algorithm, the calculation amount is only 250mflops, the ncnn model size is only 666kb, the Raspberry Pi 3b can run up to 15fps+, and the mobile terminal can run up to 178fps+
Other
1.97k stars 428 forks source link

:zap:Yolo-Fastest:zap:DOI

image

Evaluating indicator/Benchmark

Network COCO mAP(0.5) Resolution Run Time(Ncnn 4xCore) Run Time(Ncnn 1xCore) FLOPS Params Weight size
Yolo-Fastest-1.1 24.40 % 320X320 5.59 ms 7.52 ms 0.252BFlops 0.35M 1.4M
Yolo-Fastest-1.1-xl 34.33 % 320X320 9.27ms 15.72ms 0.725BFlops 0.925M 3.7M
Yolov3-Tiny-Prn 33.1% 416X416 %ms %ms 3.5BFlops 4.7M 18.8M
Yolov4-Tiny 40.2% 416X416 23.67ms 40.14ms 6.9 BFlops 5.77M 23.1M

Yolo-Fastest-1.1 Multi-platform benchmark

Equipment Computing backend System Framework Run time
Mi 11 Snapdragon 888 Android(arm64) ncnn 5.59ms
Mate 30 Kirin 990 Android(arm64) ncnn 6.12ms
Meizu 16 Snapdragon 845 Android(arm64) ncnn 7.72ms
Development board Snapdragon 835(Monkey version) Android(arm64) ncnn 20.52ms
Development board RK3399 Linux(arm64) ncnn 35.04ms
Raspberrypi 3B 4xCortex-A53 Linux(arm64) ncnn 62.31ms
Orangepi Zero Lts H2+ 4xCortex-A7 Linux(armv7) ncnn 550ms
Nvidia Gtx 1050ti Ubuntu(x64) darknet 4.73ms
Intel i7-8700 Ubuntu(x64) ncnn 5.78ms

Pascal VOC performance index comparison

Network Model Size mAP(VOC 2007) FLOPS
Tiny YOLOv2 60.5MB 57.1% 6.97BFlops
Tiny YOLOv3 33.4MB 58.4% 5.52BFlops
YOLO Nano 4.0MB 69.1% 4.51Bflops
MobileNetv2-SSD-Lite 13.8MB 68.6% &Bflops
MobileNetV2-YOLOv3 11.52MB 70.20% 2.02Bflos
Pelee-SSD 21.68MB 70.09% 2.40Bflos
Yolo Fastest 1.3MB 61.02% 0.23Bflops
Yolo Fastest-XL 3.5MB 69.43% 0.70Bflops
MobileNetv2-Yolo-Lite 8.0MB 73.26% 1.80Bflops

Yolo-Fastest-1.1 Pedestrian detection

Equipment System Framework Run time
Raspberrypi 3B Linux(arm64) ncnn 62ms

Demo

image image

Compile

How to compile on Linux

Just do make in the Yolo-Fastest-master directory. Before make, you can set such options in the Makefile: link

Test/Demo

*Run Yolo-Fastest , Yolo-Fastest-xl , Yolov3 or Yolov4 on image or video inputs

Demo on image input

*Note: change .data , .cfg , .weights and input image file in image_yolov3.sh for Yolo-Fastest-x1, Yolov3 and Yolov4

  sh image_yolov3.sh

Demo on video input

*Note: Use any input video and place in the data folder or use 0 in the video_yolov3.sh for webcam

*Note: change .data , .cfg , .weights and input video file in video_yolov3.sh for Yolo-Fastest-x1, Yolov3 and Yolov4

  sh video_yolov3.sh

Yolo-Fastest Test

image

Yolo-Fastest-xl Test

image

How to Train

Generate a pre-trained model for the initialization of the model backbone

  ./darknet partial yolo-fastest.cfg yolo-fastest.weights yolo-fastest.conv.109 109

Train

Cite as

dog-qiuqiu. (2021, July 24). dog-qiuqiu/Yolo-Fastest: yolo-fastest-v1.1.0 (Version v.1.1.0). Zenodo. http://doi.org/10.5281/zenodo.5131532