SSD-Tensorflow实验记录

这篇博客记录了使用Tensorflow实现SSD目标检测的过程,包括数据格式转换,使用预训练模型测试,以及训练过程。作者从GitHub下载项目,将VOC2007数据集转换为TensorflowRecords格式,并提供了转换和测试的脚本。测试阶段,作者展示了如何运行测试脚本查看结果。在训练阶段,调整训练参数并创建训练脚本以开始模型训练。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一 数据格式转换

1.从github上下载项目并解压

2.下载VOC2007数据集,并放在如下目录:

3.格式转换

    首先修改datasets / pascalvoc_to_tfrecords.py中83行, r ---> rb, 如下:

image_data = tf.gfile.FastGFile(filename, 'rb').read()

    在VOC2007下建立convert_train.sh脚本,内容如下:

#!/bin/bash

DATASET_DIR=./image/train/
OUTPUT_DIR=./tfrecords/train
python ../tf_convert_data.py \
    --dataset_name=pascalvoc \
    --dataset_dir=${DATASET_DIR} \
    --output_name=voc_2007_train \
    --output_dir=${OUTPUT_DIR}

    同样建立convert_test.sh脚本,内容如下:

#!/bin/bash

DATASET_DIR=./image/test/
OUTPUT_DIR=./tfrecords/test
python ../tf_convert_data.py \
    --dataset_name=pascalvoc \
    --dataset_dir=${DATASET_DIR} \
    --output_name=voc_2007_test \
    --output_dir=${OUTPUT_DIR}

    分别运行脚本进行数据格式转换

二 用训练好的模型测试

    下载训练好的模型, 按如下写好test.sh脚本, 改好自己的路径

#!/bin/bash

DATASET_DIR=./tfrecords/test
EVAL_DIR=./logs/test_logs/
CHECKPOINT_PATH=../checkpoints/ssd_300_vgg_120000/VGG_VOC0712_SSD_300x300_iter_120000.ckpt
python ../eval_ssd_network.py \
    --eval_dir=${EVAL_DIR} \
    --dataset_dir=${DATASET_DIR} \
    --dataset_name=pascalvoc_2007 \
    --dataset_split_name=test \
    --model_name=ssd_300_vgg \
    --checkpoint_path=${CHECKPOINT_PATH} \
    --batch_size=1

    测试输出结果:

2018-07-18 16:24:31.317474: I tensorflow/core/kernels/logging_ops.cc:79] AP_VOC07/mAP[0.59928033396046509]
2018-07-18 16:24:34.181961: I tensorflow/core/kernels/logging_ops.cc:79] AP_VOC12/mAP[0.60921422042100792]
INFO:tensorflow:Finished evaluation at 2018-07-18-08:24:34
Time spent : 522.992 seconds.
Time spent per BATCH: 0.106 seconds.

    之后在test_log文件夹下会生成两个文件, 在此目录下运行以下命令后,在浏览器打开127.0.0.1:6006即可看到各种数据,还有网络结构.

tensorboard --logdir ./

三 训练

    首先修改train_ssd_network.py的154行,None修改成你要迭代的次数,例如5000

    之后在VOC2007目录下创建train.sh脚本,并添加如下内容:

#!/bin/bash

DATASET_DIR=./tfrecords/train
TRAIN_DIR=./logs/train_from_ssd_300_vgg/
CHECKPOINT_PATH=../checkpoints/ssd_300_vgg/ssd_300_vgg.ckpt
python ../train_ssd_network.py \
    --train_dir=${TRAIN_DIR} \
    --dataset_dir=${DATASET_DIR} \
    --dataset_name=pascalvoc_2007 \
    --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=16

    运行脚本进行训练

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值