目标检测-TSD

# TSD(目标检测/Pytorch) ## 1. 概述 此模型基于[Revisiting the Sibling Head in Object Detector](https://arxiv.org/abs/2003.07540 "Revisiting the Sibling Head in Object Detector")中提出的模型结构实现,该算法会载入在COCO上的预训练模型,在用户数据集上做迁移学习。我们提供了训练代码和可用于训练的模型,用于实际场景的微调训练。训练后生成的模型可直接在ModelArts平台部署成在线服务。 目标检测的评估手段一般使用AP指标,详细说明请参考原论文。 本算法的其他信息如下表所示: | 项目 | 说明 | | :------------: | :------------: | | 参考论文 | Revisiting the Sibling Head in Object Detector | | 使用框架 | Pytorch-1.4.0 | | 训练集 | COCO2017中的训练集 | | 训练总epoch数 | 35 | | 训练batch_size | 使用8张V100训练,每张卡TRAIN_BATCH_SIZE = 2,相当于总batch_size为16 | | 训练硬件及耗时 | 8*V100,约100小时 | | 测试集 | COCO2017中的test_dev | | 推理硬件及速度 | V100,1.9s/pic | | 原论文准确率 | AP=49.4 | | 本算法准确率 | AP=49.4 | ## 2. 训练 ### 2.1. 算法基本信息 - 任务类型:目标检测 - 支持的框架引擎:PyTorch-1.4.0-python3.6 - 算法输入: - 存储在OBS上的数据集,必须按照COCO数据集的格式进行存储,详情请查看下文第4节案例指导 - COCO预训练模型,在COCO test_dev上的AP是49.4 - 算法输出: - 用于Pytorch推理的pth模型 - - 代码结构 ``` |-src # 算法源码根目录 |-pre-trained_weights # ImageNet上的预训练参数文件 |-trained_model # 已训练好的、可复现论文精度的模型 |-model |-config.json |-customize_service.py |-epoch_35_mAP_49.4_tsd1.pth # 训练好的模型 |-... |-train.py # 算法启动文件 |-evaluation.py # 模型评估脚本 |-... ``` ### 2.2. 训练参数说明 | 名称 | 默认值 | 类型 | 是否必填 | 是否可修改 | 描述 | | :------------: | :------------: | :------------: | :------------: | :------------: | :------------: | | gpu_num | 1 | int | 否 | 是 | 使用GPU的数目,默认是1块GPU | | imgs_per_gpu | 2 | int | 否 | 是 | 每块GPU能同时处理的图像数目 | | lr | 0.02 | float | 否 | 是 | 训练的学习率 | | epoch | 1 | int | 否 | 是 | 训练多少代 | | lr_step | 24,33 | str | 否 | 是 | 在训练至多少代时进行进行学习率衰减 | | deterministic | 1 | int | 否 | 是 | 算法是否是确定性的,即是否设定种子 | | validate | 1 | int | 否 | 是 | 训练时是否进行在验证集上检验 | | multi_train | 1 | int | 否 | 是 | 在训练时是否采用多尺度图像增强 | | multi_test | 0 | int | 否 | 是 | 在验证和测试时是否采用多尺度图像增强 | | test_ann_file | annotations/image_info_test-dev2017.json | str | 否 | 是 | 测试时采用的图像标注json文件。支持输入本算法源码目录的相对路径;也支持输入可变的OBS路径,用户可指定OBS上的一个模型文件路径。 | | test_img_prefix | test2017 | str | 否 | 是 | 测试时图像所在的文件夹目录 | | format_only | 0 | int | 否 | 是 | 是否只输出预测结果文件,不输出准确率等指标。当测试没有ground truth时,必须把format_only设为1 | | load_weight | --- | str | 否 | 是 | 是否加载已训练好的模型权重 | | eval | 0 | int | 否 | 是 | 是否进行测试。1表示测试;0表示训练 | 具体介绍一下load_weight参数: 1. 默认情况:默认加载已训练好的模型,即源码目录中的trained_model/model/ epoch_35_mAP_49.4_tsd1.pth,加载成功会打印日志。 2. 格式规范:支持输入本算法源码目录的相对路径;也支持输入可变的OBS路径,用户可指定OBS上的一个模型文件路径。 3. 使用方法:在训练阶段,可以加载ImageNet预训练Resnet101权重来train from scratch(需要把load_weight参数删除掉),也可以指定加载的模型路径,在此基础上继续训练;若为eval阶段,参数为空时默认加载本算法训练好的weight,不为空时加载用户指定weight进行测试。 4. 其他说明:算法加载模型成功后会打印日志。 ### 2.3. 训练输出文件 训练完成后的输出文件如下: ``` |- model |- model.pth # 训练好的模型文件 |- config.json |- customize_service.py |- ... # 部署所需的其他文件 |- xxxx.log |- xxxx.log.json ``` 如果设置eval为True,输出文件如下: ``` |- test_res |- test_result.pkl # 预测结果的.pkl文件 |- tsd_test_results.bbox.json # 预测结果的.json文件 ``` ## 3. GPU/CPU推理 元模型来源 选择 从训练中选择,选择训练作业及版本。 注意:推理配置文件model/config.json中的runtime字段为pytorch1.4-python3.6,表示该模型可同时在CPU或GPU运行。 ## 4. 案例指导 本算法的详细使用方法,请查看[《ModelArts AI Gallery算法TSD使用指导》](https://marketplace.huaweicloud.com/markets/aihub/article/detail/?content_id=77fca5fc-eaf7-4b84-9e2f-9c0e69e7a162)。
TSD(目标检测/Pytorch)
1. 概述
此模型基于Revisiting the Sibling Head in Object Detector中提出的模型结构实现,该算法会载入在COCO上的预训练模型,在用户数据集上做迁移学习。我们提供了训练代码和可用于训练的模型,用于实际场景的微调训练。训练后生成的模型可直接在ModelArts平台部署成在线服务。
目标检测的评估手段一般使用AP指标,详细说明请参考原论文。
本算法的其他信息如下表所示:
项目 | 说明 |
---|---|
参考论文 | Revisiting the Sibling Head in Object Detector |
使用框架 | Pytorch-1.4.0 |
训练集 | COCO2017中的训练集 |
训练总epoch数 | 35 |
训练batch_size | 使用8张V100训练,每张卡TRAIN_BATCH_SIZE = 2,相当于总batch_size为16 |
训练硬件及耗时 | 8*V100,约100小时 |
测试集 | COCO2017中的test_dev |
推理硬件及速度 | V100,1.9s/pic |
原论文准确率 | AP=49.4 |
本算法准确率 | AP=49.4 |
2. 训练
2.1. 算法基本信息
- 任务类型:目标检测
- 支持的框架引擎:PyTorch-1.4.0-python3.6
- 算法输入:
- 存储在OBS上的数据集,必须按照COCO数据集的格式进行存储,详情请查看下文第4节案例指导
- COCO预训练模型,在COCO test_dev上的AP是49.4
- 算法输出:
- 用于Pytorch推理的pth模型
- 代码结构
|-src # 算法源码根目录
|-pre-trained_weights # ImageNet上的预训练参数文件
|-trained_model # 已训练好的、可复现论文精度的模型
|-model
|-config.json
|-customize_service.py
|-epoch_35_mAP_49.4_tsd1.pth # 训练好的模型
|-...
|-train.py # 算法启动文件
|-evaluation.py # 模型评估脚本
|-...
2.2. 训练参数说明
名称 | 默认值 | 类型 | 是否必填 | 是否可修改 | 描述 |
---|---|---|---|---|---|
gpu_num | 1 | int | 否 | 是 | 使用GPU的数目,默认是1块GPU |
imgs_per_gpu | 2 | int | 否 | 是 | 每块GPU能同时处理的图像数目 |
lr | 0.02 | float | 否 | 是 | 训练的学习率 |
epoch | 1 | int | 否 | 是 | 训练多少代 |
lr_step | 24,33 | str | 否 | 是 | 在训练至多少代时进行进行学习率衰减 |
deterministic | 1 | int | 否 | 是 | 算法是否是确定性的,即是否设定种子 |
validate | 1 | int | 否 | 是 | 训练时是否进行在验证集上检验 |
multi_train | 1 | int | 否 | 是 | 在训练时是否采用多尺度图像增强 |
multi_test | 0 | int | 否 | 是 | 在验证和测试时是否采用多尺度图像增强 |
test_ann_file | annotations/image_info_test-dev2017.json | str | 否 | 是 | 测试时采用的图像标注json文件。支持输入本算法源码目录的相对路径;也支持输入可变的OBS路径,用户可指定OBS上的一个模型文件路径。 |
test_img_prefix | test2017 | str | 否 | 是 | 测试时图像所在的文件夹目录 |
format_only | 0 | int | 否 | 是 | 是否只输出预测结果文件,不输出准确率等指标。当测试没有ground truth时,必须把format_only设为1 |
load_weight | — | str | 否 | 是 | 是否加载已训练好的模型权重 |
eval | 0 | int | 否 | 是 | 是否进行测试。1表示测试;0表示训练 |
具体介绍一下load_weight参数:
-
默认情况:默认加载已训练好的模型,即源码目录中的trained_model/model/ epoch_35_mAP_49.4_tsd1.pth,加载成功会打印日志。
-
格式规范:支持输入本算法源码目录的相对路径;也支持输入可变的OBS路径,用户可指定OBS上的一个模型文件路径。
-
使用方法:在训练阶段,可以加载ImageNet预训练Resnet101权重来train from scratch(需要把load_weight参数删除掉),也可以指定加载的模型路径,在此基础上继续训练;若为eval阶段,参数为空时默认加载本算法训练好的weight,不为空时加载用户指定weight进行测试。
-
其他说明:算法加载模型成功后会打印日志。
2.3. 训练输出文件
训练完成后的输出文件如下:
|- model
|- model.pth # 训练好的模型文件
|- config.json
|- customize_service.py
|- ... # 部署所需的其他文件
|- xxxx.log
|- xxxx.log.json
如果设置eval为True,输出文件如下:
|- test_res
|- test_result.pkl # 预测结果的.pkl文件
|- tsd_test_results.bbox.json # 预测结果的.json文件
3. GPU/CPU推理
元模型来源 选择 从训练中选择,选择训练作业及版本。
注意:推理配置文件model/config.json中的runtime字段为pytorch1.4-python3.6,表示该模型可同时在CPU或GPU运行。
4. 案例指导
本算法的详细使用方法,请查看《ModelArts AI Gallery算法TSD使用指导》。
TSD(目标检测/Pytorch)
1. 概述
此模型基于Revisiting the Sibling Head in Object Detector中提出的模型结构实现,该算法会载入在COCO上的预训练模型,在用户数据集上做迁移学习。我们提供了训练代码和可用于训练的模型,用于实际场景的微调训练。训练后生成的模型可直接在ModelArts平台部署成在线服务。
目标检测的评估手段一般使用AP指标,详细说明请参考原论文。
本算法的其他信息如下表所示:
项目 | 说明 |
---|---|
参考论文 | Revisiting the Sibling Head in Object Detector |
使用框架 | Pytorch-1.4.0 |
训练集 | COCO2017中的训练集 |
训练总epoch数 | 35 |
训练batch_size | 使用8张V100训练,每张卡TRAIN_BATCH_SIZE = 2,相当于总batch_size为16 |
训练硬件及耗时 | 8*V100,约100小时 |
测试集 | COCO2017中的test_dev |
推理硬件及速度 | V100,1.9s/pic |
原论文准确率 | AP=49.4 |
本算法准确率 | AP=49.4 |
2. 训练
2.1. 算法基本信息
- 任务类型:目标检测
- 支持的框架引擎:PyTorch-1.4.0-python3.6
- 算法输入:
- 存储在OBS上的数据集,必须按照COCO数据集的格式进行存储,详情请查看下文第4节案例指导
- COCO预训练模型,在COCO test_dev上的AP是49.4
- 算法输出:
- 用于Pytorch推理的pth模型
- 代码结构
|-src # 算法源码根目录
|-pre-trained_weights # ImageNet上的预训练参数文件
|-trained_model # 已训练好的、可复现论文精度的模型
|-model
|-config.json
|-customize_service.py
|-epoch_35_mAP_49.4_tsd1.pth # 训练好的模型
|-...
|-train.py # 算法启动文件
|-evaluation.py # 模型评估脚本
|-...
2.2. 训练参数说明
名称 | 默认值 | 类型 | 是否必填 | 是否可修改 | 描述 |
---|---|---|---|---|---|
gpu_num | 1 | int | 否 | 是 | 使用GPU的数目,默认是1块GPU |
imgs_per_gpu | 2 | int | 否 | 是 | 每块GPU能同时处理的图像数目 |
lr | 0.02 | float | 否 | 是 | 训练的学习率 |
epoch | 1 | int | 否 | 是 | 训练多少代 |
lr_step | 24,33 | str | 否 | 是 | 在训练至多少代时进行进行学习率衰减 |
deterministic | 1 | int | 否 | 是 | 算法是否是确定性的,即是否设定种子 |
validate | 1 | int | 否 | 是 | 训练时是否进行在验证集上检验 |
multi_train | 1 | int | 否 | 是 | 在训练时是否采用多尺度图像增强 |
multi_test | 0 | int | 否 | 是 | 在验证和测试时是否采用多尺度图像增强 |
test_ann_file | annotations/image_info_test-dev2017.json | str | 否 | 是 | 测试时采用的图像标注json文件。支持输入本算法源码目录的相对路径;也支持输入可变的OBS路径,用户可指定OBS上的一个模型文件路径。 |
test_img_prefix | test2017 | str | 否 | 是 | 测试时图像所在的文件夹目录 |
format_only | 0 | int | 否 | 是 | 是否只输出预测结果文件,不输出准确率等指标。当测试没有ground truth时,必须把format_only设为1 |
load_weight | — | str | 否 | 是 | 是否加载已训练好的模型权重 |
eval | 0 | int | 否 | 是 | 是否进行测试。1表示测试;0表示训练 |
具体介绍一下load_weight参数:
-
默认情况:默认加载已训练好的模型,即源码目录中的trained_model/model/ epoch_35_mAP_49.4_tsd1.pth,加载成功会打印日志。
-
格式规范:支持输入本算法源码目录的相对路径;也支持输入可变的OBS路径,用户可指定OBS上的一个模型文件路径。
-
使用方法:在训练阶段,可以加载ImageNet预训练Resnet101权重来train from scratch(需要把load_weight参数删除掉),也可以指定加载的模型路径,在此基础上继续训练;若为eval阶段,参数为空时默认加载本算法训练好的weight,不为空时加载用户指定weight进行测试。
-
其他说明:算法加载模型成功后会打印日志。
2.3. 训练输出文件
训练完成后的输出文件如下:
|- model
|- model.pth # 训练好的模型文件
|- config.json
|- customize_service.py
|- ... # 部署所需的其他文件
|- xxxx.log
|- xxxx.log.json
如果设置eval为True,输出文件如下:
|- test_res
|- test_result.pkl # 预测结果的.pkl文件
|- tsd_test_results.bbox.json # 预测结果的.json文件
3. GPU/CPU推理
元模型来源 选择 从训练中选择,选择训练作业及版本。
注意:推理配置文件model/config.json中的runtime字段为pytorch1.4-python3.6,表示该模型可同时在CPU或GPU运行。
4. 案例指导
本算法的详细使用方法,请查看《ModelArts AI Gallery算法TSD使用指导》。