EfficientDet(tensorflow2 API)训练步骤

本文提供了一套完整的基于TensorFlow 2.x的EfficientDet目标检测模型训练流程,包括数据准备、配置修改、模型训练及导出等关键步骤。
部署运行你感兴趣的模型镜像

EfficientDet(tensorflow2 API)

regulation loss 贡献大,由BN产生
1.环境tensorflow2.2
2.py介绍:

xml_to_csv.py:转换xml到csv %可以不用
generate_tfrecord.py 将图片和csv文件打包成训练输入 %可以不用
create_pascal_tf_record.py 得出record值
model_main_tf2.py 可训练,可验证
exporter_main_v2.py 模型导出成为可以使用的frozen graph模型,得到 pth
3.生成record
将数据集分成训练集,验证集9:1
先新建一个pascal_label_map.pbtxt文件
train: %val同理
create_pascal_tf_record.py
python create_pascal_tf_record.py
–label_map_path pascal_label_map.pbtxt
–data_dir Vocvkit2007/
–year
–set train
–output_path pascal_train.record
代码:

flags.DEFINE_string('data_dir', './object_detection/datasets/VOC2007/', 'Root directory to raw PASCAL VOC dataset.')
flags.DEFINE_string('set', 'train', 'Convert training set, validation set or '
                    'merged set.')
flags.DEFINE_string('annotations_dir', './object_detection/datasets/VOC2007/Annotations/',
                    '(Relative) path to annotations directory.')
flags.DEFINE_string('year', '2007', 'Desired challenge year.')
flags.DEFINE_string('output_path', './object_detection/datasets/train.tfrecords', 'Path to output TFRecord')
flags.DEFINE_string('label_map_path', './object_detection/datasets/label_map.pbtxt',
                    'Path to label map proto')
flags.DEFINE_boolean('ignore_difficult_instances', False, 'Whether to ignore '
                     'difficult instances')

examples_path = '/object_detection/datasets/VOC2007/ImageSets/Main/train.txt'
 annotations_dir = os.path.join(data_dir, year, FLAGS.annotations_dir)
annotations_dir = '/object_detection/datasets/VOC2007/Annotations/'

4.修改pipeline.config 管道(6处)
4.1 修改类别数 num_class
4.2 fine_tune_checkpoint: /ckpt-0 #下载预训练好的模型
fine_tune_checkpoint_type: “detection”
3.3 batch_size
4.4 train:
label_map_path: .bptxt
input_map_path: train.record
4.5 val:
label_map_path: .bptxt
input_map_path: val.record
4.6 学习率也可以改下 %可以不改
修改optimizer中的learning_rate,学习率是损失函数loss收敛快慢的重要参数,若loss无比巨大,来回变化,减小学习率。
loss减小慢,增大学习率,训练过程中,调整lr,有助于减小loss,刚开始lr要小点。

5.数据格式
Vocdevkit2007
–VOC2007
–Annotations
–ImageSets
–JPEGImages
有个版本:
object objection
–me
–data
–Vocdevkit2007
–VOC2007
–Annotations
–ImageSets
–JPEGImages
–ssd_mobilenet
–eval_logs %评估生成log
–events.out.tfevents
–logs
train_txt
–output %用来保存训练好的模型
–ssd.mobilenet %预训练模型
–graph.pbtxt
–frozen_infeencer_graph.pb
–model.ckpt.data-0000-0001
–model.ckpt.index
–model.ckpt.meta
–train_logs %训练生成log
–checkpoint
–model0-1
–model.ckpt.index
–model.ckpt.meta
–eval.sh %脚本,命令行输入 sh ./eval.sh
–train.sh
–ssd.mobilenet.v1_coco.config %修改管道
6.开始训练:
改model_dir pipline-config num_steps
train:
python object_detection/model_main_tf2.py
–pipeline_config_path object_detection/configs/tf2/ssd_efficientdet_d0_512x512_coco17_tpu-8.config
–model_dir object_detection/model_training/my_model/train
–alsologtostderr

eval:
python object_detection/model_main_tf2.py
–pipeline_config_path object_detection/configs/tf2/ssd_efficientdet_d0_512x512_coco17_tpu-8.config*
–model_dir object_detection/model_training/my_model/eval
–checkpoint_dir object_detection/model_training/my_model/train/
–alsologtostderr
7.得到pth:exporter_main_v2.py 改下路径
8.可视化
tensorboard --logdir=./train
9.测试
online_detection.py

您可能感兴趣的与本文相关的镜像

TensorFlow-v2.15

TensorFlow-v2.15

TensorFlow

TensorFlow 是由Google Brain 团队开发的开源机器学习框架,广泛应用于深度学习研究和生产环境。 它提供了一个灵活的平台,用于构建和训练各种机器学习模型

安装 EfficientDet-d2 模型涉及多个步骤,包括配置开发环境、下载模型权重文件、设置推理或训练流程等。以下是详细的安装和配置指南: ### 1. 环境准备 EfficientDet 的实现通常基于 TensorFlow 框架,因此需要确保以下依赖项已安装: - **Python**(建议使用 3.6 - 3.9) - **TensorFlow**(推荐版本为 2.x,具体可参考官方文档) - **COCO API**(用于评估目标检测任务的性能) - **PyYAML**(用于解析 `.yaml` 配置文件) - **NumPy**, **OpenCV**, **Matplotlib**(用于图像处理和可视化) 可以使用以下命令安装基本依赖: ```bash pip install tensorflow opencv-python matplotlib numpy pyyaml pycocotools ``` ### 2. 获取 EfficientDet 实现代码 EfficientDet 的官方实现通常托管在 GitHub 上。克隆仓库并切换到对应的目录中: ```bash git clone https://github.com/google/automl.git cd automl/efficientdet ``` 该仓库包含了训练、评估和导出模型的所有必要工具。 ### 3. 下载预训练EfficientDet-d2 模型权重 EfficientDet 提供了多种预训练模型(如 d0 至 d7)。对于 `efficientdet-d2`,可以从官方提供的链接下载预训练检查点文件(ckpt 文件)。 访问 [Google AutoML 官方模型页面](https://github.com/google/automl/tree/master/efficientdet) 并下载 `efficientdet-d2.tar.gz` 压缩包。解压后会得到如下文件: - `model.ckpt.data-00000-of-00001` - `model.ckpt.index` - `model.ckpt.meta` 将这些文件保存至指定路径,例如 `./tmp/efficientdet-d2/`。 ### 4. 配置模型参数 EfficientDet 使用 `.yaml` 文件来定义模型结构和超参数。可以创建一个自定义的配置文件,例如 `configs/efficientdet-d2-config.yaml`,内容如下: ```yaml name: efficientdet-d2 phi: 2 compound_scale: 2 num_classes: 90 input_size: 512 aspp: false ``` 此配置文件定义了模型的基本参数,包括输入分辨率、类别数量和复合缩放因子等。 ### 5. 加载模型并进行推理 使用 Python 脚本加载模型并执行推理任务。以下是一个简单的示例代码: ```python import tensorflow as tf from model import efficientdet # 加载模型配置 config = 'configs/efficientdet-d2-config.yaml' # 构建模型 model = efficientdet.EfficientDetModel(config=config) model.build((None, 512, 512, 3)) # 加载预训练权重 ckpt_path = './tmp/efficientdet-d2/model.ckpt' model.load_weights(ckpt_path).expect_partial() # 图像预处理 import cv2 import numpy as np image = cv2.imread('test.jpg') image = cv2.resize(image, (512, 512)) image = image / 255.0 # 归一化 image = np.expand_dims(image, axis=0).astype(np.float32) # 执行推理 outputs = model.predict(image) print(outputs) ``` ### 6. 导出为 SavedModel 或 TFLite 格式(可选) 如果需要将模型部署到移动端或其他平台,可以将其导出为 SavedModel 或 TFLite 格式。使用以下命令导出: ```bash python model_inspect.py \ --runmode=saved_model \ --model_name=efficientdet-d2 \ --ckpt_path=./tmp/efficientdet-d2 \ --saved_model_dir=./tmp/saved_model/efficientdet-d2 \ --tflite_path=efficientdet-d2.tflite ``` 这将生成一个 `.tflite` 文件,适用于移动设备上的高效推理[^2]。 ### 7. 训练自定义数据集(可选) 若需对模型进行微调,可以使用 COCO 格式的标注数据,并修改相应的配置文件以适配自定义类别。训练过程涉及更复杂的设置,包括损失函数、优化器选择等。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

欢天喜地小姐姐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值