频道栏目
首页 > 网络 > 云计算 > 正文
利用TensorFlowObjectDetectionAPI训练自己的数据集
2017-06-23 09:34:00         来源:shz_0519的专栏  
收藏   我要投稿

今天终于通过Tensorflow Object Detection API中的faster_rcnn_inception_resnet_v2来训练自己的数据了。

简单记录如下:

这里,安装Tensorflow 和 Tensorflow Object Detection API就不说了.

为了保证训练过程中不修改原API源码目录结构,在其他地方新建了一个文件夹TF-OD-Test:如/home/shz/TF-OD-Test

1、训练数据集准备

在TF-OD-Test目录下新建文件夹data

由于数据集是PASCAL VOC2007格式的,并不符合API所需的TFRecord格式,需要转换,API已经为我们提供了代码. 但是这里我们需要做个简单的修改:

create_pascal_tf_record.py第160行 :

examples_path = os.path.join(data_dir, year, 'ImageSets', 'Main', 'aeroplane_' + FLAGS.set + '.txt')

改为:

examples_path = os.path.join(data_dir, year, 'ImageSets', 'Main', FLAGS.set + '.txt')

然后运行以下命令:

# From tensorflow/models/object_detection/

python create_pascal_tf_record.py --data_dir=`自己的数据集路径` \

--year=VOC2007 --set=train --output_path='TF-OD-Test/data/pascal_train.record'

python create_pascal_tf_record.py --data_dir=/home/user/VOCdevkit \

--year=VOC2007 --set=val --output_path='TF-OD-Test/data/pascal_val.record'

注意,文件data/pascal_label_map.pbtxt中的labels需要改为自己的。

执行后会在TF-OD-Test/data文件夹下生成pascal_train.record和pascal_val.record两个文件。

同时将修改后的pascal_label_map.pbtxt文件拷贝到TF-OD-Test/data目录下。

2、下载预训练模型

在TF-OD-Test目录下新建文件夹models

cd TF-OD-Test/models

wget https://storage.googleapis.com/download.tensorflow.org/models/object_detection/faster_rcnn_inception_resnet_v2_atrous_coco_11_06_2017.tar.gz

tar -xvf faster_rcnn_inception_resnet_v2_atrous_coco_11_06_2017.tar.gz

cp faster_rcnn_resnet101_coco_11_06_2017/model.ckpt.* TF-OD-Test/models

3、修改配置文件

将文件object_detection/samples/configs/faster_rcnn_inception_resnet_v2_atrous_pets.config复制到TF-OD-Test/models并打开做如下修改:

1)num_classes:修改为自己的classes num

2)将所有PATH_TO_BE_CONFIGURED的地方修改为自己之前设置的路径(共5处)

4、训练

终于可以训练了,进入object_detection目录,运行:

python train.py --train_dir='/home/shz/TF-OD-Test/train' --pipeline_config_path='/home/shz/TF-OD-Test/models/ssd_mobilenet/ssd_mobilenet_v1_pascal.config'

5、tensorboad:

输入命令:

tensorboard --logdir=/home/shz/TF-OD-Test/train

浏览器中输入https://0.0.0.0:6006,就能看到训练曲线了

点击复制链接 与好友分享!回本站首页
上一篇:Redis事务是原子性的吗
下一篇:hadoop常用命令
相关文章
图文推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站