Commit 03c924bc authored by chenych's avatar chenych
Browse files

update

parent 1707011e
......@@ -4,14 +4,14 @@
## 模型结构
对于输入图像DETR使用传统的CNN backbone来学习2D特征, 并在将其传递到transformer encoder之前用positional encoding对其进行补充和平滑。然后transformer decoder将少量固定数量的学习到的positional embeddings(对象查询)作为输入额外关注encoder输出。将解码器的每个输出embedding传递到预测检测(类和边界框)或“无对象”类的共享前馈网络(FFN)。
对于输入图像, DETR使用传统的CNN backbone来学习2D特征, 并在将其传递到transformer encoder之前用positional encoding对其进行补充和平滑。然后, transformer decoder将少量固定数量的学习到的positional embeddings(对象查询)作为输入, 额外关注encoder输出。将解码器的每个输出embedding传递到预测检测(类和边界框)或“无对象”类的共享前馈网络(FFN)。
<div align=center>
<img src="./doc/models.png"/>
</div>
## 算法原理
DETR将目标检测看作一种set prediction问题并提出了一个十分简洁的目标检测pipeline即CNN提取基础特征送入Transformer做关系建模得到的输出通过二分图匹配算法与图片上的ground truth做匹配。
DETR将目标检测看作一种set prediction问题, 并提出了一个十分简洁的目标检测pipeline, 即CNN提取基础特征, 送入Transformer做关系建模, 得到的输出通过二分图匹配算法与图片上的ground truth做匹配。
<div align=center>
<img src="./doc/DETR.png"/>
......@@ -49,13 +49,13 @@ pip install -r requirements.txt
1、关于本项目DCU显卡所需的特殊深度学习库可从光合开发者社区下载安装: https://developer.hpccube.com/tool/
```
DTK软件栈dtk23.04.1
pythonpython3.8
torch1.13.1
torchvision0.14.1
DTK软件栈: dtk23.04.1
python: python3.8
torch: 1.13.1
torchvision: 0.14.1
```
Tips以上dtk软件栈、python、torch等DCU相关工具版本需要严格一一对应
Tips: 以上dtk软件栈、python、torch等DCU相关工具版本需要严格一一对应
2、其他非特殊库直接按照requirements.txt安装
......@@ -75,7 +75,7 @@ COCO2017
[标签数据](https://github.com/ultralytics/yolov5/releases/download/v1.0/coco2017labels.zip)
数据集的目录结构如下
数据集的目录结构如下:
```
├── COCO2017
......@@ -88,9 +88,9 @@ COCO2017
│ └── instances_val2017.json
```
训练/验证集数据准备
训练/验证集数据准备:
训练/验证集都是采用的COCO的数据格式如果使用自己的标注数据请先将标注数据转换成COCO的格式并按照上面的目录结构进行存放
训练/验证集都是采用的COCO的数据格式, 如果使用自己的标注数据, 请先将标注数据转换成COCO的格式, 并按照上面的目录结构进行存放
## 训练
......@@ -102,9 +102,9 @@ bash train.sh
## 推理
验证前需提前准备好预训练模型并将coco_path设置为当前环境中推理数据的对应地址数据应为COCO数据格式
验证前需提前准备好预训练模型, 可从 参考资料 中提供的模型下载, 并将coco_path设置为当前环境中推理数据的对应地址, 数据应为COCO数据格式
如果想要查看预测效果(预测结果输出到图片上)请执行(其余参数与训练模型参数需一致详情请根据训练参数配置):
如果想要查看预测效果(预测结果输出到图片上), 请执行(其余参数如backbone等需与训练模型参数需一致, 详情请根据训练参数配置):
```
python test.py --pre_trained_model <checkpoint path> --coco_path <coco path>
......@@ -118,19 +118,18 @@ bash val.sh
## result
<div align=center>
<img src="./doc/000000001503.jpg"/>
</div>
### 精度
在COCO2017的val数据集上进行单卡测试结果如下表所示:
在COCO2017的val数据集上进行R50 backbone的单卡测试, 结果如下表所示:
| name | backbone | schedule | inf_time | box AP |
| :------: | :------: | :------: | :------: |:------: |
| DETR(our) | R50 | 500 | xxx | xxx |
| [DETR](https://dl.fbaipublicfiles.com/detr/detr-r50-e632da11.pth) | R50 | 500 | 0.036 | 42.0 |
| name | backbone | schedule | box AP |
| :------: | :------: | :------: | :------: |
| DETR(our) | R50 | 500 | 39.8 |
| DETR | R50 | 500 | 42.0 |
## 应用场景
......
......@@ -7,7 +7,12 @@ export USE_MIOPEN_BATCHNORM=1
echo "Training start ..."
# coco_path是训练数据集地址,数据是coco format
python -m torch.distributed.launch --nproc_per_node=4 --use_env main.py --coco_path /path/to/coco
# python -m torch.distributed.launch --nproc_per_node=4 --use_env main.py --coco_path /home/datasets/COCO2017
# python -m torch.distributed.launch --nproc_per_node=4 --use_env main.py --coco_path /path/to/coco
# python -m torch.distributed.launch --nproc_per_node=4 --use_env main.py --coco_path /home/datasets/COCO2017 --epochs 300 > log_detr_2_4_dcu.20231205
python -m torch.distributed.launch --nproc_per_node=4 --use_env main.py \
--coco_path /home/datasets/COCO2017 \
--resume ./pretrained_model/detr-r50-e632da11.pth \
--lr 1e-6 \
--epochs 5 > log_detr_2_4_dcu.20231205
echo "Training finished."
......@@ -6,5 +6,7 @@ export USE_MIOPEN_BATCHNORM=1
# resume: 待测试模型地址
# coco_path: 训练数据集地址, 数据是coco format
python main.py --batch_size 2 --no_aux_loss --eval --resume /path/of/model --coco_path /path/of/coco_data
# python main.py --batch_size 2 --no_aux_loss --eval --resume https://dl.fbaipublicfiles.com/detr/detr-r50-e632da11.pth --coco_path /home/datasets/COCO2017
# dcu
# python main.py --batch_size 2 --no_aux_loss --eval --resume ./results/checkpoint.pth --coco_path /home/datasets/COCO2017
# ori
python main.py --batch_size 2 --no_aux_loss --eval --resume ./pretrained_model/detr-r50-e632da11.pth --coco_path /home/datasets/COCO2017
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment