Yu Zhong yuz871@eng.ucsd.edu
Shiming Luo shl666@ucsd.edu
Python 3.6
Tensorflow
download (original SSD300 network check point)[https://drive.google.com/a/eng.ucsd.edu/file/d/1znGTqsAa0M9gN1EDCqP9Pw667kjAsgwj/view?usp=sharing]
download (SSD300 added block3 check point)[https://drive.google.com/a/eng.ucsd.edu/file/d/12NkA9rBi_4_x32Vbcbftc1SUxXPcO4Ut/view?usp=sharing]
This is a SSD300 based small object detection model. We add the 3rd block of the orignal SSD model and apply the method called Cropping Prediction.
The architecture of modified SSD300 model:
The flow chart of Cropping Prediction.
The SSD Notebook contains a demo of our work.
Here are two examples of successful detection outputs:
To run the notebook you first have to unzip the checkpoint files in ./checkpoint
unzip original_model.zip
unzip add_block3.zip
and then start a jupyter notebook with
jupyter notebook notebooks/ssd_notebook.ipynb
VOC 2007
VOC 2012
WIDER FACE
The way to convert VOC 2007 and VOC 2012 plz see balancap/SSD-Tensorflow
The way to convert WIDER FACE plz see yeephycho/widerface-to-tfrecord
The script train_ssd_network.py
is in charged of training the network.
For instance, one can fine a model starting from the former as following:
DATASET_DIR=./tfrecords/WF/train
TRAIN_DIR=./log/WF_original
python train_ssd_network.py \
--train_dir=${TRAIN_DIR} \
--dataset_dir=${DATASET_DIR} \
--dataset_name=WiderFace \
--dataset_split_name=train \
--model_name=ssd_300_vgg \
--num_classes=2 \
--save_summaries_secs=60 \
--save_interval_secs=600 \
--weight_decay=0.0005 \
--optimizer=adam \
--learning_rate=0.001 \
--learning_rate_decay_factor=0.94 \
--batch_size=32
A number of pre-trained weights of popular deep architectures can be found on TF-Slim models page.
Inspired by:
-kuangliu/pytorch-ssd
-yeephycho/widerface-to-tfrecord
-balancap/SSD-Tensorflow