Tensorflow 迁移学习 识别中国军网、中国军视网Logo水印

简介: Tensorflow 目标检测项目图片logo水印识别。识别中国军网、中国军视网Logo水印。imageimageStep 0 下载项目git clone https://github.com/tensorflow/models/tree/master/research/object_detectionStep 1 在将项目目录添加到PYTHONPATH作者bourdakos1整合了tensorflow中的object-detection和slim两个子项目。

Tensorflow 目标检测项目

图片logo水印识别。识别中国军网、中国军视网Logo水印。

image

image

Step 0 下载项目

git clone https://github.com/tensorflow/models/tree/master/research/object_detection

Step 1 在将项目目录添加到PYTHONPATH

作者bourdakos1整合了tensorflow中的object-detection和slim两个子项目。
设置环境,把当前目录、slim、object_detection 三个目录加到环境变量PYTHONPYTHON。

export PYTHONPATH=/root/workspace/Custom-Object-Detection:/root/workspace/Custom-Object-Detection/slim:/root/workspace/Custom-Object-Detection/object_detection:$PYTHONPATH

Step 2 安装labelImg标注数据

#如果提示缺少组件,逐步安装
pip install labelImg
# 启动
labelImg

Step 3 标注数据

labelImg标注图片,生成xml文件。

  1. /images目录下保存图片文件。
  2. /annotations/label_map.pbtxt,logo标识配置文件:设置军网logo为pic1,军视网logo为pic2。
  3. /annotations/trainval.txt,训练图片列表
  4. /annotations/xmls,保存标注xml文件。

Step 4 转化训练的图片生成record文件

创建好标注文件后,运行下面的文件。

python object_detection/create_tf_record.py
# 运行上面的命令,在项目上生成train.record,val.record两个文件

Step 5 选择网络

作者给出里5种网络结构,本次选用faster_rcnn_reset101。网络性能特点如下表,

Model name Speed COCO mAP Outputs
ssd_mobilenet_v1_coco fast 21 Boxes
ssd_inception_v2_coco fast 24 Boxes
rfcn_resnet101_coco medium 30 Boxes
faster_rcnn_resnet101_coco medium 32 Boxes
faster_rcnn_inception_resnet_v2_atrous_coco slow 37 Boxes

Step 6 迁移学习

需要两个文件,(1)config文件和(2)model.ckpt文件。

  • config文件在路径object_detection/samples/configs/下,包含多种网络,config文件中描述了网络参数、训练参数等配置。

  • 下载model文件,解压后将model.ckpt开头的三个文件保存在项目根目录下。下载链接在上表中。

Step 7 训练模型

只需要指明config文件,默认加载根目录下的model.ckpt文件

python object_detection/train.py \
        --logtostderr \
        --train_dir=train \
        --pipeline_config_path=faster_rcnn_resnet101.config

在训练的过程中,会将模型参数保存到train目录下。

Step 8 生成模型,导出图

将train目录下生成的model.ckpt-数字三个文件拷贝到项目根目录,运行命令

python object_detection/export_inference_graph.py \
        --input_type image_tensor \
        --pipeline_config_path faster_rcnn_resnet101.config \
        --trained_checkpoint_prefix model.ckpt-数字 \
        --output_directory output_inference_graph

Step 9 测试

将测试文件放在test_images路径下,运行

python object_detection/object_detection_runner.py
# 结果保存在output文件夹下

Step 10 GPU训练

基于阿里云GN4型服务器1个NVIDIA M40 GPU,训练6000轮,最终得到了较好的识别效果。


image

Step 11 问题

深度神经网络识别Logo水印,方法简单,构建较小数据集,而且训练时间也不是很长。

但预测时间比较长,模型比较大,下一步改用mobilenet,希望能将预测时间降到0.1秒。

如果使用YOLO,模型算法上会比rcnn更快。

目录
相关文章
|
17天前
|
并行计算 TensorFlow 算法框架/工具
TensorFlow识别GPU难道就这么难吗?还是我的GPU有问题?
TensorFlow识别GPU难道就这么难吗?还是我的GPU有问题?
|
17天前
|
TensorFlow 算法框架/工具 异构计算
Windows部署TensorFlow后识别GPU失败,原因是啥?
Windows部署TensorFlow后识别GPU失败,原因是啥?
|
17天前
|
机器学习/深度学习 算法 TensorFlow
文本分类识别Python+卷积神经网络算法+TensorFlow模型训练+Django可视化界面
文本分类识别Python+卷积神经网络算法+TensorFlow模型训练+Django可视化界面
79 0
文本分类识别Python+卷积神经网络算法+TensorFlow模型训练+Django可视化界面
|
17天前
|
机器学习/深度学习 算法 TensorFlow
【Python深度学习】Tensorflow对半环形数据分类、手写数字识别、猫狗识别实战(附源码)
【Python深度学习】Tensorflow对半环形数据分类、手写数字识别、猫狗识别实战(附源码)
71 0
|
9月前
|
TensorFlow 算法框架/工具
tensorflow 入门学习
tensorflow 入门学习
27 0
|
17天前
|
机器学习/深度学习 TensorFlow 算法框架/工具
关于Tensorflow!目标检测预训练模型的迁移学习
这篇文章主要介绍了使用Tensorflow进行目标检测的迁移学习过程。关于使用Tensorflow进行目标检测模型训练的实战教程,涵盖了从数据准备到模型应用的全过程,特别适合对此领域感兴趣的开发者参考。
28 3
关于Tensorflow!目标检测预训练模型的迁移学习
|
17天前
|
机器学习/深度学习 数据采集 TensorFlow
TensorFlow与迁移学习:利用预训练模型
【4月更文挑战第17天】本文介绍了如何在TensorFlow中运用迁移学习,特别是利用预训练模型提升深度学习任务的性能和效率。迁移学习通过将源任务学到的知识应用于目标任务,减少数据需求、加速收敛并提高泛化能力。TensorFlow Hub提供预训练模型接口,可加载模型进行特征提取或微调。通过示例代码展示了如何加载InceptionV3模型、创建特征提取模型以及进行微调。在实践中,注意源任务与目标任务的相关性、数据预处理和模型调整。迁移学习是提升模型性能的有效方法,TensorFlow的工具使其变得更加便捷。
|
17天前
|
TensorFlow 算法框架/工具 Python
tensorflow从开发环境迁移到生产环境
tensorflow从开发环境迁移到生产环境
|
17天前
|
机器学习/深度学习 人工智能 算法
鱼类识别Python+深度学习人工智能+TensorFlow+卷积神经网络算法
鱼类识别Python+深度学习人工智能+TensorFlow+卷积神经网络算法
59 2
鱼类识别Python+深度学习人工智能+TensorFlow+卷积神经网络算法
|
7月前
|
机器学习/深度学习 TensorFlow API
学习 TensorFlow:构建和训练机器学习模型的利器
学习 TensorFlow:构建和训练机器学习模型的利器