Tensorflow Object Detection API使用

本文详细介绍了如何使用Tensorflow Object Detection API进行对象检测。首先讲解了Tensorflow及Object Detection API的安装步骤,接着利用Oxford-IIIT Pet数据集进行测试,包括数据集的处理、预训练模型的下载和配置管道。最后,文章阐述了如何运行训练和测试程序,以及模型的使用和导出。

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

一、安装 Tensorflow 及 Object Detection API

1.安装Tensorflow

TensorFlow中文社区文档:Tensorflow安装

2.安装Object Detection API

参考Github上,TensorFlow models/research/object_detection里的安装教程

添加库的路径到PYTHONPATH,使用编辑器如gedit打开~/.bashrc 文件,将以下命令添加到一个新行。其中pwd 代表models/research 的路径,可去掉`符号,然后在终端bash一下。

# From tensorflow/models/research/
export PYTHONPATH=$PYTHONPATH:`pwd`:`pwd`/slim

注:pip install 如果是用sudo,则安装系统默认python下的包,如果TensorFlow是安装在其他python下(如miniconda),则不加sudo。


二、使用 Oxford-IIIT Pet 数据集进行测试

1.下载解压数据集,并将其转换为TFRecords

参考Github上,TensorFlow models/research/object_detection里的说明文档

Pet数据集里有部分图片损毁,应该删除掉,否则会在运行eval.py时报以下错误:Corrupt JPEG data: 240 extraneous bytes before marker 0xd9 。参考文档可知,egyptian_mau_14, 139, 145, 156, 167, 177, 186, 191; abyssinian_5, 34; chihuahua_121; beagle_116 为损坏的文件,应删去对应的.jpg; .xmls; 以及list.txt、test.txt、trainval.txt 里对应的行。

2.下载用于迁移学习的预训练模型

Tensorflow Detection Model Zoo里下载 COCO-pretrained SSD with MobileNet model,存放在models/research文件夹中,并解压。

tar -xvf ssd_mobilenet_v1_coco_2017_11_17.tar.gz

3.配置对象检测管道

参考文档

在 Tensorflow object detection API 里,配置文件定义了模型参数、训练参数等参数,文件为 object_detection/protos/pipeline.proto 。在此实验中,采用一些预定义模板,选择在 object_detection/samples/configs 文件夹中的模板,此处采用 ssd_mobilenet_v1_pets.config作为而配置管道的起点。如果不采用预定义模板配置管道,参考Configuring the Object Detection Training Pipeline

ssd_mobilenet_v1_pets.config 文件中,修改 fine_tune_checkpointinput_pathlabel_map_path 路径。fine_tune_checkpoint 应该提供一个已存在的checkpoint路 ,在下载的预训练模型的文件中包含有 model.ckpt.data-00000-of-00001, model.ckpt.index, model.ckpt.meta ,比如fine_tune_checkpoint 的路径可设置为/home/cyj/Project/models/research/ssd_mobilenet_v1_coco_2017_11_17/model.ckpt

4.运行

运行训练程序

# From the tensorflow/models/research/ directory
python object_detection/train.py \
    --logtostderr \
    --pipeline_config_path=${PATH_TO_YOUR_PIPELINE_CONFIG} \
    --train_dir=${PATH_TO_TRAIN_DIR} \

${PATH_TO_YOUR_PIPELINE_CONFIG}指向管道训练文件,如/home/cyj/Project/models/research/object_detection/samples/configs/ssd_mobilenet_v1_pets.config${PATH_TO_TRAIN_DIR} 定义训练事件写入路径,先新建相关train 文件夹,如/home/cyj/Project/models/research/trainoutput_inference_graph.pb 为导出的训练的模型。

这里写图片描述

TensorFlow 模型保存参考文档

运行测试程序

# From the tensorflow/models/research/ directory
python object_detection/eval.py \
    --logtostderr \
    --pipeline_config_path=${PATH_TO_YOUR_PIPELINE_CONFIG} \
    --checkpoint_dir=${PATH_TO_TRAIN_DIR} \
    --eval_dir=${PATH_TO_EVAL_DIR}

${PATH_TO_EVAL_DIR} 定义测试事件写入路径,先新建相关 eval 文件夹,如 /home/cyj/Project/models/research/eval

运行Tensorboard
模型训练和测试的过程可通过Tensorboard进行查看,使用以下命令运行Tensorboard:

tensorboard --logdir=${PATH_TO_MODEL_DIRECTORY}

其中${PATH_TO_MODEL_DIRECTORY} 指向包含traineval 的目录。例如 ~$ tensorboard --logdir=/home/cyj/Project/models/research

这里写图片描述

输出训练的模型
模型训练后,将其导出为TensorFlow Graph样式。一个checkpoint由以下三个部分组成:

model.ckpt-${CHECKPOINT_NUMBER}.data-00000-of-00001,
model.ckpt-${CHECKPOINT_NUMBER}.index
model.ckpt-${CHECKPOINT_NUMBER}.meta

当要把已有的checkpoint转化为graph,执行以下代码即可得到名为output_inference_graph.pb
的graph。

# From tensorflow/models/research/
python object_detection/export_inference_graph.py \
    --input_type image_tensor \
    --pipeline_config_path ${PIPELINE_CONFIG_PATH} \
    --trained_checkpoint_prefix ${TRAIN_PATH} \
    --output_directory output_inference_graph.pb

三、使用模型进行检测

参考代码 Github: Video_Object_Detection, 此实验中可通过模型,进行照片和视频中的目标检测。

TensorFlow Object Detection API 是一个开源项目,它提供了一系列基于 TensorFlow 的工具和库,用于实现目标检测任务。对于 macOS 系统,我们可以通过以下步骤来使用 TensorFlow Object Detection API: 1. 安装 TensorFlow:在 macOS 上安装 TensorFlow使用 TensorFlow Object Detection API 的前提。你可以通过 pip 命令进行安装,例如在终端中执行 `pip install tensorflow`。 2. 下载 TensorFlow Object Detection API:打开终端并导航到适合你的工作目录中,然后使用 git 命令来克隆 TensorFlow Object Detection API 的 GitHub 仓库,例如执行 `git clone https://github.com/tensorflow/models.git`。 3. 安装依赖项:进入克隆的模型目录中,找到 research 文件夹并进入。然后运行 `pip install -r object_detection/requirements.txt` 命令来安装所需的依赖项。 4. 下载预训练模型:在 TensorFlow Object Detection API 中,我们可以使用预训练的模型来进行目标检测。你可以从 TensorFlow Model Zoo 中下载适合你任务的模型,并将其解压到你的工作目录中。 5. 运行实例代码:在 research/object_detection 目录中,你可以找到一些示例代码,用于训练、评估和使用目标检测模型。可以通过阅读这些示例代码并根据自己的需求进行修改。例如,你可以使用 `python object_detection/builders/model_builder_tf2_test.py` 命令来运行一个模型的测试。 以上是在 macOS 上使用 TensorFlow Object Detection API 的基本步骤,你可以根据你的具体需求进行更多的深入研究和调整。希望这些信息能帮助到你!
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值