图像识别——通过tensorflow利用自己的图片数据训练模型——Fine-tuning a model from an existing checkpoint

本文是基于windows系统,并主要参考:https://github.com/tensorflow/models/tree/master/research/slim

要完成自己图片的识别必须使用整个slim文件夹

slim下载链接,先需要下载整个模型包,然后在里面找到slim文件夹:

一、对于官方提供的flower数据集进行图像识别

以下所有程序都在slim文件夹下进行

1. 首先用官方提供的代码下载flower数据集并生成tfrecord格式文件和label文件:

在windows下编写批处理文件(.bat后缀结尾的文本文档):download_and_convert_flower.bat

python download_and_convert_data.py ^  
--dataset_name=flowers ^  
--dataset_dir="C:\Users\lab2_Zhemin\Yeally\6my_slim\my_data\flower_tfrecord" 

打开Anaconda Prompt执行:

后文不再说明如何执行windows批处理文件(.bat文件)

执行后的目录结果如下,一共有10个tfrecord文件和一个label文件:

2.创建数据集描述符:Creating a TF-Slim Dataset Descriptor.

对于flower的tfrecord格式数据,官方已提供好数据集描述符:

如下选中的flower.py文件:

3.  使用train_image_classifier.py(这个脚本在slim文件夹下)训练数据

python train_image_classifier.py ^  
--train_dir=C:/Users/lab2_Zhemin/Yeally/6my_slim/train_official_flower/train_log ^  
--dataset_name=flowers ^  
--dataset_split_name=train ^  
--dataset_dir=C:/Users/lab2_Zhemin/Yeally/6my_slim/train_official_flower/dataset/flowers ^  
--model_name=inception_v3 ^  
--checkpoint_path=C:/Users/lab2_Zhemin/Yeally/6my_slim/checkpoint/inception_v3/inception_v3.ckpt ^  
--checkpoint_exclude_scopes=InceptionV3/Logits,InceptionV3/AuxLogits ^  
--trainable_scopes=InceptionV3/Logits,InceptionV3/AuxLogits ^  
--max_number_of_steps=3000 

训练完成的结果:

训练后生成的文件(存的路径:train_dir):

4 评估模型

python eval_image_classifier.py ^  
--checkpoint_path=C:\Users\lab2_Zhemin\Yeally\6my_slim\train_official_flower\train_log ^  
--eval_dir=C:\Users\lab2_Zhemin\Yeally\6my_slim\train_official_flower\eva_log ^  
--dataset_name=flowers ^  
--dataset_split_name=validation ^  
--dataset_dir=C:\Users\lab2_Zhemin\Yeally\6my_slim\train_official_flower\dataset\flowers ^  
--model_name=inception_v3 

执行结果:

最后一行的eval/Accuracy【0.915】表示样本数据的正确率(top1)

生成的文件:

6.生成模型图:

python export_inference_graph.py ^  
--alsologtostderr ^  
--model_name=inception_v3 ^  
--output_file=C:\Users\lab2_Zhemin\Yeally\6my_slim\train_official_flower\output_graph\inception_v3_graph.pb ^  
-dataset_name flowers  

目录下生成的文件:

7.上一步中生成的图只是一个结构框架,不包含参数信息,要生成包含参数信息的图需执行如下批处理文件(冻结图):

python freeze_graph.py ^  
--input_graph=C:\Users\lab2_Zhemin\Yeally\6my_slim\train_official_flower\output_graph\inception_v3_graph.pb ^  
--input_checkpoint=C:\Users\lab2_Zhemin\Yeally\6my_slim\train_official_flower\train_log\model.ckpt-3000 ^  
--input_binary=true ^  
--output_graph=C:\Users\lab2_Zhemin\Yeally\6my_slim\train_official_flower\frozen_graph\frozen_inception_v3_flowers.pb ^  
--output_node_names=InceptionV3/Predictions/Reshape_1  

 生成的文件:

8、对生成的模型通过输入图片进行测试:

要在hub master下载 hub master,并在这个目录下找到lab_image.py文件,复制到slim文件夹下。

在网上随手下在如下图片(命名为0.jpg):

python label_image.py ^  
-image=C:\Users\lab2_Zhemin\Yeally\6my_slim\test\0.jpg ^  
--input_layer=input ^  
--output_layer=InceptionV3/Predictions/Reshape_1 ^ 

 输出结果:

分类正确 

二、对自己的图片数据进行图像识别

后续更新。。。

  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值