Tensorflow+SSD初步接触,测试+训练

本文详细介绍如何使用SSD-TensorFlow进行目标检测模型的测试与训练,包括环境配置、模型下载、数据集格式转换及训练流程。针对可能出现的问题提供了解决方案。

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

环境:

Ubuntu16.04+CUDA8.0+Cudnn8.0v6.0+python3.5+tensorflow1.4

测试官方的模型:

1.  下载SSD-Tensorflow源码,下载模型ssd_300_vgg,(其实源码里有带的)存放在SSD-Tensorflow-master/checkpoints/目录下,并解压。

2.   在目录 ../SSD-Tensorflow-master/notebooks/ 打开终端,运行jupyter notebook   , 然后会进入服务器,打开ssd_notebook.ipynb,修改第6个cell的ckpt_filename = '../checkpoints/ssd_300_vgg.ckpt'--此处写自己想测试的模型路径及名字;修改第8个cell,path = '../demo/'--此处改成自己测试图片的文件夹路径,下面的[  ]中写测试的那张图片在文件夹中下标。点上面的  run  运行每一个小cell,到第8个就能看到结果了。如下图(1 2 3)

 

                     图(1)

   

                     图(2)

                       图(3)

   有可能的错误:有可能报错缺少 matplotlib 等依赖包,sudo pip install matplotlib安装即可。运行到第四个cell有可能报错,把from notebooks import       visualization 改成 importnotebooks  就好。
3.    数据集格式转换:
        自己做成 voc 数据集格式。


       转换tfrecords格式数据集时好像只用到标注信息 Annotations 和图片 imageSets,并不需要其它的东西,test中同样也只有这两个文件,生成测试数据集时用。
voc 格式的数据集做好以后,需要把数据集转换成tfrecords格式的能被 tensorflow 识别的类型,然后就需要修改一下源码,datasets \ pascalvoc_common.py,把它原有的20类修改成自 己数据集里的类别就好啦。如下图所示:
然后还需要修改  datasets \ pascalvoc_to_tfrecords.py 中的
image_data = tf.gfile.FastGFile(filename, 'r').read()      ‘r’  改成  ‘rb’   不然会报错:UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte
然后在../SSD-Tensorflow-master目录下运行
DATASET_DIR=./VOC2007/
OUTPUT_DIR=./tfrecords/
python tf_convert_data.py \
    --dataset_name=pascalvoc \
    --dataset_dir=${DATASET_DIR} \
    --output_name=voc_2007_train \
    --output_dir=${OUTPUT_DIR}
提前建文件夹 /tfrecords ,转换成的 训练数据就生成在里面了。
DATASET_DIR=./VOC2007/test/
OUTPUT_DIR=./tfrecords/
python tf_convert_data.py \
    --dataset_name=pascalvoc \
    --dataset_dir=${DATASET_DIR} \
    --output_name=voc_2007_test \
    --output_dir=${OUTPUT_DIR}
生成 测试数据,注意这两个命令的两处不同哦。。。(第一行和倒数第二行)
4.    训练自己的数据集
        训练中不收敛,等有好的结果再过来写吧。。抓狂
        
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值