/yad2k

FIX SEVERAL BUGS IN PYTHON2

Primary LanguagePythonOtherNOASSERTION

Thanks To allanzelener`s repo[1].

This REPO Solve the problem of python2.7,

Thus ,this paper is Called YAD2KForPython2,Only for learning

Thanks to allanzelener,this paper is under Python2.7

You only look once, but you reimplement neural nets over and over again.

YAD2K is a 90% Keras/10% Tensorflow implementation of YOLO_v2.

Original paper: YOLO9000: Better, Faster, Stronger by Joseph Redmond and Ali Farhadi[1].


Requirements

Installation

git clone https://github.com/cableyang/yad2k.git
cd yad2k

# [Option 1] To replicate the conda environment:
conda env create -f environment.yml
source activate yad2k
# [Option 2] Install everything globaly.
pip install numpy h5py pillow
pip install tensorflow-gpu  # CPU-only: conda install -c conda-forge tensorflow
pip install keras # Possibly older release: conda install keras

Quick Start

  • Download Darknet model cfg and weights from the official YOLO website.
  • Convert the Darknet YOLO_v2 model to a Keras model.
  • Test the converted model on the small test set in images/.
#get the yolo weights from yolo website,is not possible ,
#u can also download from baidu yun,the url is:   https://pan.baidu.com/s/1smRMvBv
wget http://pjreddie.com/media/files/yolo.weights
wget https://raw.githubusercontent.com/pjreddie/darknet/master/cfg/yolo.cfg
###create .h5 files for kearas framework,
##here is my yolo.h5:  https://pan.baidu.com/s/1kVVgj5d
./yad2k.py yolo.cfg yolo.weights model_data/yolo.h5
### use test_yolo and .h5 weights to predict images from ./images/*.jpg,resulsts are stored on ./images/out/* 
./test_yolo.py model_data/yolo.h5  # output in images/out/

See ./yad2k.py --help and ./test_yolo.py --help for more options.


More Details

The YAD2K converter currently only supports YOLO_v2 style models, this include the following configurations: darknet19_448, tiny-yolo-voc, yolo-voc, and yolo.

yad2k.py -p will produce a plot of the generated Keras model. For example see yolo.png.

YAD2K assumes the Keras backend is Tensorflow. In particular for YOLO_v2 models with a passthrough layer, YAD2K uses tf.space_to_depth to implement the passthrough layer. The evaluation script also directly uses Tensorflow tensors and uses tf.non_max_suppression for the final output.

voc_conversion_scripts contains two scripts for converting the Pascal VOC image dataset with XML annotations to either HDF5 or TFRecords format for easier training with Keras or Tensorflow.

yad2k/models contains reference implementations of Darknet-19 and YOLO_v2.

train_overfit is a sample training script that overfits a YOLO_v2 model to a single image from the Pascal VOC dataset.

Known Issues and TODOs

  • Expand sample training script to train YOLO_v2 reference model on full dataset.
  • Support for additional Darknet layer types.
  • Tuck away the Tensorflow dependencies with Keras wrappers where possible.
  • YOLO_v2 model does not support fully convolutional mode. Current implementation assumes 1:1 aspect ratio images.

Reference

[1]https://github.com/allanzelener/YAD2K