All Projects → marvis → Pytorch Yolo2

marvis / Pytorch Yolo2

Licence: mit
Convert https://pjreddie.com/darknet/yolo/ into pytorch

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Pytorch Yolo2

Yolo 9000
YOLO9000: Better, Faster, Stronger - Real-Time Object Detection. 9000 classes!
Stars: ✭ 1,057 (+12.33%)
Mutual labels:  yolo, darknet, yolo2
Pytorch Caffe Darknet Convert
convert between pytorch, caffe prototxt/weights and darknet cfg/weights
Stars: ✭ 867 (-7.86%)
Mutual labels:  yolo, darknet, yolo2
VideoRecognition-realtime-autotrainer-alerts
State of the art object detection in real-time using YOLOV3 algorithm. Augmented with a process that allows easy training of the classifier as a plug & play solution . Provides alert if an item in an alert list is detected.
Stars: ✭ 36 (-96.17%)
Mutual labels:  yolo, darknet, yolo2
Yolov2.pytorch
YOLOv2 algorithm reimplementation with pytorch
Stars: ✭ 31 (-96.71%)
Mutual labels:  yolo, darknet, yolo2
Yolo2 Pytorch
YOLOv2 in PyTorch
Stars: ✭ 1,393 (+48.03%)
Mutual labels:  yolo, darknet, yolo2
Tracking-with-darkflow
Real-time people Multitracker using YOLO v2 and deep_sort with tensorflow
Stars: ✭ 522 (-44.53%)
Mutual labels:  yolo, darknet, yolo2
Tracking With Darkflow
Real-time people Multitracker using YOLO v2 and deep_sort with tensorflow
Stars: ✭ 515 (-45.27%)
Mutual labels:  yolo, darknet, yolo2
Openlabeling
Label images and video for Computer Vision applications
Stars: ✭ 706 (-24.97%)
Mutual labels:  yolo, darknet
darknet2caffe
Conversion of yolo from DarkNet to Caffe
Stars: ✭ 25 (-97.34%)
Mutual labels:  yolo, darknet
DarkMark
Marking up images for use with Darknet.
Stars: ✭ 62 (-93.41%)
Mutual labels:  yolo, darknet
Bmw Yolov4 Training Automation
This repository allows you to get started with training a state-of-the-art Deep Learning model with little to no configuration needed! You provide your labeled dataset or label your dataset using our BMW-LabelTool-Lite and you can start the training right away and monitor it in many different ways like TensorBoard or a custom REST API and GUI. NoCode training with YOLOv4 and YOLOV3 has never been so easy.
Stars: ✭ 533 (-43.36%)
Mutual labels:  yolo, darknet
darknet ros
Robotics Operating System Package for Yolo v3 based on darknet with optimized tracking using Kalman Filter and Optical Flow.
Stars: ✭ 51 (-94.58%)
Mutual labels:  yolo, darknet
object-tracking
Multiple Object Tracking System in Keras + (Detection Network - YOLO)
Stars: ✭ 89 (-90.54%)
Mutual labels:  yolo, darknet
live-cctv
To detect any reasonable change in a live cctv to avoid large storage of data. Once, we notice a change, our goal would be track that object or person causing it. We would be using Computer vision concepts. Our major focus will be on Deep Learning and will try to add as many features in the process.
Stars: ✭ 23 (-97.56%)
Mutual labels:  yolo, darknet
go-darknet
Go bindings for Darknet (YOLO v4 / v3)
Stars: ✭ 56 (-94.05%)
Mutual labels:  yolo, darknet
DarkHelp
C++ wrapper library for Darknet
Stars: ✭ 65 (-93.09%)
Mutual labels:  yolo, darknet
lightDenseYOLO
A real-time object detection app based on lightDenseYOLO Our lightDenseYOLO is the combination of two components: lightDenseNet as the CNN feature extractor and YOLO v2 as the detection module
Stars: ✭ 20 (-97.87%)
Mutual labels:  yolo, darknet
MXNet-YOLO
mxnet implementation of yolo and darknet2mxnet converter
Stars: ✭ 17 (-98.19%)
Mutual labels:  darknet, yolo2
Yolo annotation tool
Annotation tool for YOLO in opencv
Stars: ✭ 17 (-98.19%)
Mutual labels:  yolo, darknet
Node Yolo
Node bindings for YOLO/Darknet image recognition library
Stars: ✭ 364 (-61.32%)
Mutual labels:  yolo, darknet

pytorch-yolo2

Convert https://pjreddie.com/darknet/yolo/ into pytorch. This repository is trying to achieve the following goals.

  • [x] implement RegionLoss, MaxPoolStride1, Reorg, GolbalAvgPool2d
  • [x] implement route layer
  • [x] detect, partial, valid functions
  • [x] load darknet cfg
  • [x] load darknet saved weights
  • [x] save as darknet weights
  • [x] fast evaluation
  • [x] pascal voc validation
  • [x] train pascal voc
  • [x] LMDB data set
  • [x] Data augmentation
  • [x] load/save caffe prototxt and weights
  • [x] reproduce darknet's training results
  • [x] convert weight/cfg between pytorch caffe and darknet
  • [x] add focal loss

Detection Using A Pre-Trained Model

wget http://pjreddie.com/media/files/yolo.weights
python detect.py cfg/yolo.cfg yolo.weights data/dog.jpg

You will see some output like this:

layer     filters    size              input                output
    0 conv     32  3 x 3 / 1   416 x 416 x   3   ->   416 x 416 x  32
    1 max          2 x 2 / 2   416 x 416 x  32   ->   208 x 208 x  32
    ......
   30 conv    425  1 x 1 / 1    13 x  13 x1024   ->    13 x  13 x 425
   31 detection
Loading weights from yolo.weights... Done!
data/dog.jpg: Predicted in 0.014079 seconds.
truck: 0.934711
bicycle: 0.998013
dog: 0.990524

Real-Time Detection on a Webcam

python demo.py cfg/tiny-yolo-voc.cfg tiny-yolo-voc.weights

Training YOLO on VOC

Get The Pascal VOC Data
wget https://pjreddie.com/media/files/VOCtrainval_11-May-2012.tar
wget https://pjreddie.com/media/files/VOCtrainval_06-Nov-2007.tar
wget https://pjreddie.com/media/files/VOCtest_06-Nov-2007.tar
tar xf VOCtrainval_11-May-2012.tar
tar xf VOCtrainval_06-Nov-2007.tar
tar xf VOCtest_06-Nov-2007.tar
Generate Labels for VOC
wget http://pjreddie.com/media/files/voc_label.py
python voc_label.py
cat 2007_train.txt 2007_val.txt 2012_*.txt > voc_train.txt
Modify Cfg for Pascal Data

Change the cfg/voc.data config file

train  = train.txt
valid  = 2007_test.txt
names = data/voc.names
backup = backup
Download Pretrained Convolutional Weights

Download weights from the convolutional layers

wget http://pjreddie.com/media/files/darknet19_448.conv.23

or run the following command:

python partial.py cfg/darknet19_448.cfg darknet19_448.weights darknet19_448.conv.23 23
Train The Model
python train.py cfg/voc.data cfg/yolo-voc.cfg darknet19_448.conv.23
Evaluate The Model
python valid.py cfg/voc.data cfg/yolo-voc.cfg yolo-voc.weights
python scripts/voc_eval.py results/comp4_det_test_

mAP test on released models

yolo-voc.weights 544 0.7682 (paper: 78.6)
yolo-voc.weights 416 0.7513 (paper: 76.8)
tiny-yolo-voc.weights 416 0.5410 (paper: 57.1)


Focal Loss

A implementation of paper Focal Loss for Dense Object Detection

We get the results by using Focal Loss to replace CrossEntropyLoss in RegionLosss.

gama training set val set [email protected] [email protected] Notes
0 VOC2007+2012 VOC2007 73.05 74.69 std-Cross Entropy Loss
1 VOC2007+2012 VOC2007 73.63 75.26 Focal Loss
2 VOC2007+2012 VOC2007 74.08 75.49 Focal Loss
3 VOC2007+2012 VOC2007 73.73 75.20 Focal Loss
4 VOC2007+2012 VOC2007 73.53 74.95 Focal Loss

Problems

1. Running variance difference between darknet and pytorch

Change the code in normalize_cpu to make the same result

normalize_cpu:
x[index] = (x[index] - mean[f])/(sqrt(variance[f] + .00001f));

Training on your own data

  1. Padding your images into square size and produce the corresponding label files.
  2. Modify the resize strageties in listDataset. Currently the resize scales range from 320 ~ 608, and the resize intervals is 64, which should be equal to batch_size or several times of batch_size.
  3. Add warm up learning rate (scales=0.1,10,.1,.1)
  4. Train your model as VOC does.

License

MIT License (see LICENSE file).

Contribution

Thanks for the contributions from @iceflame89 for the image augmentation and @huaijin-chen for focal loss.

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].