/YOLOv5_tensorflow

a tensorflow implementation of YOLOv5

Primary LanguagePython

Yolo5V

Tensorflow

  1. Install tensorflow, such as "sudo pip install tensorflow>=1.15 or tensorflow > 2.0" etc.

Introduction

A tensorflow implementation of YOLOv5 inspired by https://github.com/ultralytics/yolov5.

Neck: SPP[3], PAN[4];

Head: YOLOv5/YOLOv4(Mish), YOLOv3(Leaky_ReLU)[10];

Loss: DIOU CIOU[5], Focal_Loss[6]; Other: Label_Smoothing[7];

Environment

Python 3.6.8

Tensorflow 1.13.1 or Tensorflow 2.0 up

Quick Start

  1. Download YOLOv5 weights from yolov5.weights.

  2. Train Yolov5.

  3. Run Yolov5.

Train

In core/config.py add your own path.

usage: python train.py gpu_id net_type(yolov5)

python train.py 0 yolov5

Usage

Inference

python test.py
python demo.py

Reference

[1] Cross Stage Partial Network (CSPNet)

[2] A Self Regularized Non-Monotonic Neural Activation Function

[3] Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition

[4] Path Aggregation Network for Instance Segmentation

[5] Distance-IoU Loss: Faster and Better Learning for Bounding Box Regression

[6] Focal Loss for Dense Object Detection

[7] When Does Label Smoothing Help?

[8] Convolutional Block Attention Module

[9] YOLOv4: Optimal Speed and Accuracy of Object Detection

[10] YOLOv3: An Incremental Improvement

[11] Aggregated Residual Transformations for Deep Neural Networks

Acknowledgment

keras_yolov3 https://github.com/qqwweee/keras-yolo3.

keras_yolov4 https://github.com/Ma-Dan/keras-yolo4.