这是网上一个经典的SSD_TF版本项目,我对于训练过程给出了较为详细的注释,另外援引了其他人的模型应用于自己的数据的脚本,记录一下对这个开源项目的学习。
『TensorFlow』SSD源码学习_其一:项目介绍导读
『TensorFlow』SSD源码学习_其二:基于VGG的SSD网络前向架构
『TensorFlow』SSD源码学习_其三:锚框生成
『TensorFlow』SSD源码学习_其四:数据介绍及TFR文件生成
『TensorFlow』SSD源码学习_其五:TFR数据读取&数据预处理
『TensorFlow』SSD源码学习_其六:标注格式整理
『TensorFlow』SSD源码学习_其七:损失函数
『TensorFlow』SSD源码学习_其八:网络训练
个人复现的SSD,相比本项目精简了代码结构:
SSD_Realization_TensorFlow
SSD_Realization_MXNet
还有Mask_RCNN的注释版:
Mask_RCNN
数据下载:VOC2012
注意目录./VOC2012/
里面就是VOC2012数据解压出来的五个文件夹下面命令才能运行
DATASET_DIR=./VOC2012/
OUTPUT_DIR=./tfrecords
python tf_convert_data.py \
--dataset_name=pascalvoc \ # 数据集名称,实际作者就实现了这一个数据集的预处理方法
--dataset_dir=${DATASET_DIR} \
--output_name=voc_2012_train # tfr文件名,为了兼容后面的程序,命名格式较为固定
--output_dir=${OUTPUT_DIR}
DATASET_DIR=./tfrecords
TRAIN_DIR=./logs/
CHECKPOINT_PATH=./checkpoints/ssd_300_vgg.ckpt
python train_ssd_network.py \
--train_dir=${TRAIN_DIR} \
--dataset_dir=${DATASET_DIR} \
--dataset_name=pascalvoc_2012 \
--dataset_split_name=train \
--model_name=ssd_300_vgg \
--checkpoint_path=${CHECKPOINT_PATH} \
--save_summaries_secs=60 \
--save_interval_secs=600 \
--weight_decay=0.0005 \
--optimizer=adam \
--learning_rate=0.001 \
--batch_size=32