All Projects → ruiminshen → Yolo Tf

ruiminshen / Yolo Tf

Licence: lgpl-3.0
TensorFlow implementation of the YOLO (You Only Look Once)

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Yolo Tf

Mxnet Yolo
YOLO: You only look once real-time object detector
Stars: ✭ 240 (+20%)
Mutual labels:  object-detection, yolo, yolo2
Satellite Image Object Detection
YOLO/YOLOv2 inspired deep network for object detection on satellite images (Tensorflow, Numpy, Pandas).
Stars: ✭ 115 (-42.5%)
Mutual labels:  object-detection, yolo, yolo2
Alturos.yolo
C# Yolo Darknet Wrapper (real-time object detection)
Stars: ✭ 308 (+54%)
Mutual labels:  object-detection, yolo, yolo2
Tracking With Darkflow
Real-time people Multitracker using YOLO v2 and deep_sort with tensorflow
Stars: ✭ 515 (+157.5%)
Mutual labels:  object-detection, yolo, yolo2
Pytorch cpp
Deep Learning sample programs using PyTorch in C++
Stars: ✭ 114 (-43%)
Mutual labels:  object-detection, yolo
Viseron
Self-hosted NVR with object detection
Stars: ✭ 192 (-4%)
Mutual labels:  object-detection, yolo
Yolov3 Tf2
YoloV3 Implemented in Tensorflow 2.0
Stars: ✭ 2,327 (+1063.5%)
Mutual labels:  object-detection, yolo
Yolo V3 Iou
YOLO3 动漫人脸检测 (Based on keras and tensorflow) 2019-1-19
Stars: ✭ 116 (-42%)
Mutual labels:  object-detection, yolo
Yolo label
GUI for marking bounded boxes of objects in images for training neural network Yolo v3 and v2 https://github.com/AlexeyAB/darknet, https://github.com/pjreddie/darknet
Stars: ✭ 128 (-36%)
Mutual labels:  object-detection, yolo
Tf2 Yolov4
A TensorFlow 2.0 implementation of YOLOv4: Optimal Speed and Accuracy of Object Detection
Stars: ✭ 133 (-33.5%)
Mutual labels:  object-detection, yolo
Map
mean Average Precision - This code evaluates the performance of your neural net for object recognition.
Stars: ✭ 2,324 (+1062%)
Mutual labels:  object-detection, yolo
Mobilenet Yolo
MobileNetV2-YoloV3-Nano: 0.5BFlops 3MB HUAWEI P40: 6ms/img, YoloFace-500k:0.1Bflops 420KB🔥🔥🔥
Stars: ✭ 1,566 (+683%)
Mutual labels:  object-detection, yolo
Yolov5
YOLOv5 🚀 in PyTorch > ONNX > CoreML > TFLite
Stars: ✭ 19,914 (+9857%)
Mutual labels:  object-detection, yolo
Yolo mark
GUI for marking bounded boxes of objects in images for training neural network Yolo v3 and v2
Stars: ✭ 1,624 (+712%)
Mutual labels:  object-detection, yolo
Keras Yolo3
Training and Detecting Objects with YOLO3
Stars: ✭ 1,532 (+666%)
Mutual labels:  object-detection, yolo
Yolo2 Pytorch
YOLOv2 in PyTorch
Stars: ✭ 1,393 (+596.5%)
Mutual labels:  yolo, yolo2
Simrdwn
Rapid satellite imagery object detection
Stars: ✭ 159 (-20.5%)
Mutual labels:  object-detection, yolo
Deepstream Yolo
NVIDIA DeepStream SDK 5.1 configuration for YOLO models
Stars: ✭ 166 (-17%)
Mutual labels:  object-detection, yolo
Yolo v3 tutorial from scratch
Accompanying code for Paperspace tutorial series "How to Implement YOLO v3 Object Detector from Scratch"
Stars: ✭ 2,192 (+996%)
Mutual labels:  object-detection, yolo
Easy Yolo
Yolo (Real time object detection) model training tutorial with deep learning neural networks
Stars: ✭ 98 (-51%)
Mutual labels:  object-detection, yolo

This project is deprecated. Please see yolo2-pytorch

TensorFlow implementation of the YOLO (You Only Look Once) and YOLOv2

Dependencies

Configuration

Configurations are mainly defined in the "config.ini" file. Such as the detection model (config/model), base directory (config/basedir, which identifies the cache files (.tfrecord), the model data files (.ckpt), and summary data for TensorBoard), and the inference function ([model]/inference). Notability the configurations can be extended using the "-c" command-line argument.

Basic Usage

  • Download the PASCAL VOC 2007 (training, validation and test) and 2012 (training and validation) dataset. Extract these tars into one directory (such as "~/Documents/Database/").

  • Download the COCO 2014 (training, validation, and test) dataset. Extract these zip files into one directory (such as "~/Documents/Database/coco/").

  • Run "cache.py" to create the cache file for the training program. A verify command-line argument "-v" is strongly recommended to check the training data and drop the corrupted examples, such as the image "COCO_val2014_000000320612.jpg" in the COCO dataset.

  • Run "train.py" to start the training process (the model data saved previously will be loaded if it exists). Multiple command-line arguments can be defined to control the training process. Such as the batch size, the learning rate, the optimization algorithm and the maximum number of steps.

  • Run "detect.py" to detect objects in an image. Run "export CUDA_VISIBLE_DEVICES=" to avoid out of GPU memory error while the training process is running.

Examples

Training a 20 classes Darknet YOLOv2 model from a pretrained 80 classes model

  • Cache the 20 classes data using the customized config file argument. Cache files (.tfrecord) in "~/Documents/Database/yolo-tf/cache/20" will be created.
python3 cache.py -c config.ini config/yolo2/darknet-20.ini -v
  • Download a 80 classes Darknet YOLOv2 model (the original file name is "yolo.weights", a version from Darkflow is recommanded). In this tutorial I put it in "~/Downloads/yolo.weights".

  • Parse the 80 classes Darknet YOLOv2 model into Tensorflow format (~/Documents/Database/yolo-tf/yolo2/darknet/80/model.ckpt). A warning like "xxx bytes remaining" indicates the file "yolo.weights" is not compatiable with the original Darknet YOLOv2 model (defined in the function model.yolo2.inference.darknet). Make sure the 80 classes data is cached before parsing.

python3 parse_darknet_yolo2.py ~/Downloads/yolo.weights -c config.ini config/yolo2/darknet-80.ini -d
  • Transferring the 80 classes Darknet YOLOv2 model into a 20 classes model (~/Documents/Database/yolo-tf/yolo2/darknet/20) except the final convolutional layer. Be ware the "-d" command-line argument will delete the model files and should be used only once when initializing the model.
python3 train.py -c config.ini config/yolo2/darknet-20.ini -t ~/Documents/Database/yolo-tf/yolo2/darknet/80/model.ckpt -e yolo2_darknet/conv -d
  • Using the following command in another terminal and opening the address "localhost:6006" in a web browser to monitor the training process.
tensorboard --logdir ~/Documents/Database/yolo-tf/yolo2/darknet/20
  • If you think your model is stabilized, press Ctrl+C to cancel and restart the training with a greater batch size.
python3 train.py -c config.ini config/yolo2/darknet-20.ini -b 16
  • Detect objects from an image file.
python3 detect.py $IMAGE_FILE -c config.ini config/yolo2/darknet-20.ini
  • Detect objects with a camera.
python3 detect_camera.py -c config.ini config/yolo2/darknet-20.ini

Checklist

  • [x] Batch normalization
  • [x] Passthrough layer
  • [ ] Multi-scale training
  • [ ] Dimension cluster
  • [x] Extendable configuration (via "-c" command-line argument)
  • [x] PASCAL VOC dataset supporting
  • [x] MS COCO dataset supporting
  • [x] Data augmentation: random crop
  • [x] Data augmentation: random flip horizontally
  • [x] Multi-thread data batch queue
  • [x] Darknet model file (.weights) parser
  • [x] Partial model transferring before training
  • [x] Detection from image
  • [x] Detection from camera
  • [ ] Multi-GPU supporting
  • [ ] Faster NMS using C/C++ or GPU
  • [ ] Performance evaluation

License

This project is released as the open source software with the GNU Lesser General Public License version 3 (LGPL v3).

Acknowledgements

This project is mainly inspired by the following projects:

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].