SSD_Tensorflow 训练 VOC2007
-
准备数据集
SSD框架: https://github.com/balancap/SSD-Tensorflow
VOC2007:
- 官网:http://host.robots.ox.ac.uk/pascal/VOC/voc2007/
- 其他:http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtrainval_06-Nov-2007.tar
http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtest_06-Nov-2007.tar
下载 pascalvoc_2007 数据集,并将其重命名为 VOC2007
Annotations:所有数据信息(训练,测试,交叉验证)以.xml文件存储
ImageSets:main文件下有这四个文件
-train.txt、trainval.txt、val.txt、test.txt分别表示:
训练文件的文件名,训练和交叉验证的文件名,交叉验证的文件名,测试文件的文件名
JPEGImage:存放所有的图片数据
SegmentationObject:对象分割
SegmentationClass:对象分割(按类别细分) -
生成训练数据
-
在SSD在解压出来的主目录下依次创建
tfrecords_、train_model
文件夹 -
将数据和标签文件序列化为tfrecord
-
修改SSD框架datasets/pascalvoc_to_tfrecords.py中187行(将voc改为voc_2007):
-
在datasets/pascalvoc_to_tfrecords.py最后添加:
(注意目录中的反斜杠\需要加上\进行转义,如果是’F:\JH_project\'会报错)
if __name__ == '__main__': #你数据集的位置 dataset = 'F:\\JH_Project\\python\\tensorflow\\VOCdevkit\\VOC2007\\' #你输出的位置 output = '../tfrecords_/' run(dataset, output)
-
tensorflow2.0会遇到的向下不兼容问题:
-
没有tensorflow.contrib.slim包。Tensorflow2.0版本修改之后有了很大的变动,其中 tf.contrib被完全弃用了是2.0的一个重大的变化,但import tensorflow.contrib.slim as slim slim 作为一个高级封装,已经在很多之前的版本中广泛使用。Tf-slim有一个独立于tensorflow的镜像可以以tf.compat.v1兼容模式下使用,安装该包即可。
!pip install tf_slim import tf_slim as slim
-
没有’gfile’属性。在当前的版本中,gfile已经定义在io包的file_io.py中。
if not tf.gfile.Exists(DATA_DIRECTORY): tf.gfile.Makedirs(DATA_DIRECTORY)
改为
if not tf.io.gfile.exists(DATA_DIRECTORY): tf.io.gfile.makedirs(DATA_DIRECTORY)
-
-
-