Download VOC2007 (smaller in size) and then run 'create_pascal_tf_record' to generate TFRecords
cd /tf_files/SSD-Tensorflow
wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtrainval_06-Nov-2007.tar
tar xvf VOCtrainval_06-Nov-2007.tar
cd /tensorflow_models/models/object_detection
python create_pascal_tf_record.py --data_dir=/tf_files/SSD-Tensorflow/VOCdevkit \
--year=VOC2007 --set=train --output_path=/tmp/pascal_voc2007_train.record
python create_pascal_tf_record.py --data_dir=/tf_files/SSD-Tensorflow/VOCdevkit \
--year=VOC2007 --set=val --output_path=/tmp/pascal_voc2007_val.record
# I customized create_tf_record.py and dataset_util.py to work on my custom dataset
# This is needed to cutomize any folder tag, ignore difficult tag, provide a new label_map_path etc..
# Manual process: Create a new label_map_path pertaining to the new classification labels
#
# cp /tf_files/SSD-Tensorflow/MYDEVKIT_2/VOC2007/mydevkit_label_map.pbtxt /tensorflow_models/models/research/object_detection/data/mydevkit_label_map.pbtxt
python create_pascal_tf_record.py \
--data_dir=/tf_files/SSD-Tensorflow/MYDEVKIT_2 \
--year=VOC2007 \
--set=train \
--output_path=/tmp/mydev_train.record \
--label_map_path=/tensorflow_models/models/research/object_detection/data/mydevkit_label_map.pbtxt \
--folder_tag=VOC2007 \
--ignore_difficult_tags=True
python create_pascal_tf_record.py \
--data_dir=/tf_files/SSD-Tensorflow/MYDEVKIT_2 \
--year=VOC2007 \
--set=val \
--output_path=/tmp/mydev_val.record \
--label_map_path=/tensorflow_models/models/research/object_detection/data/mydevkit_label_map.pbtxt \
--folder_tag=VOC2007 \
--ignore_difficult_tags=True
Arrange the directory structure, create EXPORT variables
cd /tensorflow_models/models
protoc object_detection/protos/*.proto --python_out=.
export PYTHONPATH=$PYTHONPATH:`pwd`:`pwd`/slim
PATH_TO_EVAL_DIR=/tensorflow_models/models/research/object_detection/models/model/eval
PATH_TO_TRAIN_DIR=/tensorflow_models/models/research/object_detection/models/model/train
PATH_TO_YOUR_PIPELINE_CONFIG=/tensorflow_models/models/research/object_detection/samples/configs/ssd_mobilenet_v1_voc2007.config
PATH_TO_MODEL_DIRECTORY=/tensorflow_models/models/research/object_detection/models/model
xyz
Note: PATH_TO_MODEL_DIRECTORY is actually where the checkpoints will get generated.
Shall we change the name to PATH_TO_GENERATED_CHECKPOINT?
Generate TF records
# I customized create_tf_record.py and dataset_util.py to work on my custom dataset
# This is needed to cutomize any folder tag, ignore difficult tag, provide a new label_map_path etc..
# Manual process: Create a new label_map_path pertaining to the new classification labels
#
# cp /tf_files/SSD-Tensorflow/MYDEVKIT_2/VOC2007/mydevkit_label_map.pbtxt /tensorflow_models/models/object_detection/data/mydevkit_label_map.pbtxt
python create_pascal_tf_record.py \
--data_dir=/tf_files/SSD-Tensorflow/MYDEVKIT_2 \
--year=VOC2007 \
--set=train \
--output_path=/tmp/mydev_train.record \
--label_map_path=/tensorflow_models/models/research/object_detection/data/mydevkit_label_map.pbtxt \
--folder_tag=VOC2007 \
--ignore_difficult_tags=True
python create_pascal_tf_record.py \
--data_dir=/tf_files/SSD-Tensorflow/MYDEVKIT_2 \
--year=VOC2007 \
--set=val \
--output_path=/tmp/mydev_val.record \
--label_map_path=/tensorflow_models/models/research/object_detection/data/mydevkit_label_map.pbtxt \
--folder_tag=VOC2007 \
--ignore_difficult_tags=True
Run training
# From the tensorflow/models/ directory
python object_detection/train.py \
--logtostderr \
--pipeline_config_path=${PATH_TO_YOUR_PIPELINE_CONFIG} \
--train_dir=${PATH_TO_TRAIN_DIR}
Run eval
# From the tensorflow/models/ directory
python object_detection/eval.py \
--logtostderr \
--pipeline_config_path=${PATH_TO_YOUR_PIPELINE_CONFIG} \
--checkpoint_dir=${PATH_TO_TRAIN_DIR} \
--eval_dir=${PATH_TO_EVAL_DIR}
# After exporting your checkpoint as a graph,
# cd into deep_learning_repo/object_detection
# place your test image inside test_images directory (For example: pic1.jpg)
python inference.py --path_to_ckpt=models/model/train/output_inference_graph.pb