GithubHelp home page GithubHelp logo

tchigher / yolo-fastest Goto Github PK

View Code? Open in Web Editor NEW

This project forked from dog-qiuqiu/yolo-fastest

0.0 0.0 0.0 26.27 MB

:zap: Yolo universal target detection model combined with EfficientNet-lite, the calculation amount is only 230Mflops(0.23Bflops), and the model size is 1.3MB

License: Other

CMake 1.36% Makefile 0.26% PowerShell 0.42% Shell 0.53% C# 0.14% Batchfile 0.58% Python 4.50% C 63.78% C++ 13.37% Cuda 15.04%

yolo-fastest's Introduction

image

Yolo-Fastest DOI

  • Simple, fast, compact, easy to transplant
  • A real-time target detection algorithm for all platforms
  • The fastest and smallest known universal target detection algorithm based on yolo
  • Optimized design for ARM mobile terminal, optimized to support NCNN reasoning framework
  • Based on NCNN deployed on RK3399 ,Raspberry Pi 4b... and other embedded devices to achieve full real-time 30fps+
  • The speed is 45% faster than mobilenetv2-yolov3-nano, and the parameter amount is reduced by 56%

Evaluating indicator/Benchmark

Network VOC mAP(0.5) COCO mAP(0.5) Resolution Run Time(Ncnn 1xCore) Run Time(Ncnn 4xCore) FLOPS Weight size
MobileNetV2-YOLOv3-Nano 65.27 30.13 320 11.36ms 5.48ms 0.55BFlops 3.0MB
Yolo-Fastest(our) 61.02 & 320 6.74ms 4.42ms 0.23BFlops 1.3MB
Yolo-Fastest-XL(our) 69.43 32.45 320 15.15ms 7.09ms 0.70BFlops 3.5MB
  • Test platform Kirin 990 CPU,Based on NCNN
  • Suitable for hardware with extremely tight computing resources
  • This model is recommended to do some simple single object detection suitable for simple application scenarios

Pascal VOC performance index comparison

Network Model Size mAP(VOC 2017) 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

Raspberrypi 3b Ncnn bf16s benchmark(4xA53 1.2Ghz)

loop_count = 4
num_threads = 4
powersave = 0
gpu_device = -1
cooling_down = 1
        yolo-fastest  min =   62.58  max =   62.76  avg =   62.70
      squeezenet_ssd  min =  380.98  max =  391.39  avg =  387.53
 squeezenet_ssd_int8  min =  458.05  max =  467.54  avg =  463.12
       mobilenet_ssd  min =  212.31  max =  223.34  avg =  218.93
  mobilenet_ssd_int8  min =  359.98  max =  374.03  avg =  365.17
      mobilenet_yolo  min =  619.65  max =  635.44  avg =  628.29
  mobilenetv2_yolov3  min =  294.92  max =  304.95  avg =  298.43
         yolov4-tiny  min =  855.50  max = 1074.92  avg =  962.78


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

  • GPU=1 to build with CUDA to accelerate by using GPU (CUDA should be in /usr/local/cuda)
  • CUDNN=1 to build with cuDNN v5-v7 to accelerate training by using GPU (cuDNN should be in /usr/local/cudnn)
  • CUDNN_HALF=1 to build for Tensor Cores (on Titan V / Tesla V100 / DGX-2 and later) speedup Detection 3x, Training 2x
  • OPENCV=1 to build with OpenCV 4.x/3.x/2.4.x - allows to detect on video files and video streams from network cameras or web-cams
  • Set the other options in the Makefile according to your need.

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

  ./darknet detector train voc.data yolo-fastest.cfg yolo-fastest.conv.109 

Deploy

NCNN

NCNN Conversion Tutorial

NCNN C++ Sample

NCNN Android Sample

MNN&TNN&MNN

ONNX&TensorRT

  • https://github.com/CaoWGG/TensorRT-YOLOv4
  • It is not efficient to run on Psacal and earlier GPU architectures. It is not recommended to deploy on such devices such as jeston nano(17ms/img), Tx1, Tx2, but there is no such problem in Turing GPU, such as jetson-Xavier-NX Can run efficiently

Thanks

yolo-fastest's People

Contributors

dog-qiuqiu avatar muhammadasadjaved avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.