Comments (20)
似乎找到问题了 我先开了个mr 方便交流
TLNR:目前来看,长方形输入的性能符合预期了
具体分析:
实验结果图:
(注:1120的实验显示问题,是因为在150epoch后又跑了150个epoch)
从实验来看,长方形输入的性能符合预期,且在前期明显高于相应的正方形
在实验后期,长方形输入的性能略低于相应的正方形,可能和数据集分布,数据策略有关,这个我继续做研究。
数据分布:
from rt-detr.
在后处理加个参数 bbox_decode_type:'pad'
试一下, ( ppdet里pad操作不改变inputs['im_shape']
导致其和im.shape
不一致, 会导致在后处理里默认得到的原图尺寸origin_shape
不太对
from rt-detr.
- mosaic在coco上我们有试验过 效果不怎么好
- 长方形推理的 在你训练的时候也要和测试的时候逻辑一致吧?
from rt-detr.
- mosaic在coco上我们有试验过 效果不怎么好
确实,虽然简单的数据增强,取得了较好的效果很惊人,但复杂的数据增强反而效果差,很奇怪
detr仓库里也有人问这个问题facebookresearch/detr#42- 长方形推理的 在你训练的时候也要和测试的时候逻辑一致吧?
对的,长方形的一致训练与测试,但效果会差很多
from rt-detr.
- mosaic在coco上我们有试验过 效果不怎么好
确实,虽然简单的数据增强,取得了较好的效果很惊人,但复杂的数据增强反而效果差,很奇怪
detr仓库里也有人问这个问题Any plan about data augmentation facebookresearch/detr#42- 长方形推理的 在你训练的时候也要和测试的时候逻辑一致吧?
对的,长方形的一致训练与测试,但效果会差很多
- detr系列的backbone一般都是有预训练的 可能这块不太适合强数据增强;yolo系列的一般都是from scratch训练 可能用Mosaic效果更好一些
- 你reader怎么配置的, 会有一些padding嘛?
from rt-detr.
- mosaic在coco上我们有试验过 效果不怎么好
确实,虽然简单的数据增强,取得了较好的效果很惊人,但复杂的数据增强反而效果差,很奇怪
detr仓库里也有人问这个问题Any plan about data augmentation facebookresearch/detr#42- 长方形推理的 在你训练的时候也要和测试的时候逻辑一致吧?
对的,长方形的一致训练与测试,但效果会差很多
- detr系列的backbone一般都是有预训练的 可能这块不太适合强数据增强;yolo系列的一般都是from scratch训练 可能用Mosaic效果更好一些
- 你reader怎么配置的, 会有一些padding嘛?
- 学习了
- 直接resize (- BatchRandomResize: {target_size: [[1088, 1920],], random_size: True, random_interp: True, keep_ratio: False})和padResize(train: PadResize: {target_size: 1280} @sample_transformstest, test: - Resize: {target_size: [1280, 1280], keep_ratio: True, interp: 1}
- Pad: {size: [1280, 1280], fill_value: [114., 114., 114.]})都试过,效果都不佳,尤其padResize几乎没有性能,
from rt-detr.
在后处理加个参数
bbox_decode_type:'pad'
试一下, ( ppdet里pad操作不改变inputs['im_shape']
导致其和im.shape
不一致, 会导致在后处理里默认得到的原图尺寸origin_shape
不太对
- 在padResize中,使用了这个操作,确实取得了正常的结果,直接Resize的结果不受影响
- 但是不管pad(keepRatio)与否,矩形resize的结果,仍然明显低于正方形resize(比如800960的结果,比800800和960960的结果都明显差,数据集原始是10801920的图片,讲道理keep_ratio resize或者尽量大分辨率应该会更好),这个结果还是比较奇怪
(我打算实验下是不是和position embeding有关系,因为我发现同正方形跨尺寸还是有一定性能的,但是变成长方形就完全没有性能。您还有别的建议嘛)
配置如:
epoch: 150
snapshot_epoch: 5
TrainReader:
sample_transforms:
- Decode: {}
- RandomDistort: {prob: 0.8}
# - RandomExpand: {fill_value: [123.675, 116.28, 103.53]}
- RandomCrop: {prob: 0.8}
- RandomFlip: {}
batch_transforms:
- BatchRandomResize: {target_size: [[800, 960]], random_size: True, random_interp: True, keep_ratio: False}
- NormalizeImage: {mean: [0., 0., 0.], std: [1., 1., 1.], norm_type: none}
- NormalizeBox: {}
- BboxXYXY2XYWH: {}
- Permute: {}
batch_size: 4
shuffle: true
drop_last: true
collate_batch: false
use_shared_memory: true
weights: output/model_final
find_unused_parameters: True
log_iter: 200
pretrain_weights: https://paddledet.bj.bcebos.com/models/pretrained/ResNet18_vd_pretrained.pdparams
ResNet:
depth: 18
variant: d
return_idx: [1, 2, 3]
freeze_at: -1
freeze_norm: false
norm_decay: 0.
HybridEncoder:
hidden_dim: 256
use_encoder_idx: [2]
num_encoder_layers: 1
encoder_layer:
name: TransformerLayer
d_model: 256
nhead: 8
dim_feedforward: 1024
dropout: 0.
activation: 'gelu'
expansion: 0.5
depth_mult: 1.0
RTDETRTransformer:
eval_idx: -1
num_decoder_layers: 3
eval_size: [800, 960]
EvalReader:
sample_transforms:
- Decode: {}
- Resize: {target_size: [800, 960], keep_ratio: False, interp: 2}
- NormalizeImage: {mean: [0., 0., 0.], std: [1., 1., 1.], norm_type: none}
- Permute: {}
batch_size: 4
shuffle: false
drop_last: false
TestReader:
inputs_def: # used for export
image_shape: [3, 800, 960]
sample_transforms:
- Decode: {}
- Resize: {target_size: [800, 960], keep_ratio: False, interp: 2}
- NormalizeImage: {mean: [0., 0., 0.], std: [1., 1., 1.], norm_type: none}
- Permute: {}
batch_size: 1
shuffle: false
drop_last: false
DETRPostProcess:
bbox_decode_type: 'pad'
from rt-detr.
你上边贴的配置也是跑不出来?
from rt-detr.
你上边贴的配置也是跑不出来?
是的 长方形性能显著低于正方形
from rt-detr.
我感觉还是后处理的问题 你可以再确定一下那个逻辑有问题没
from rt-detr.
我感觉还是后处理的问题 你可以再确定一下那个逻辑有问题没
ok我确定下
似乎没问题,从结果上看,检测框也分布在图片各处(抱歉公司不让放图)
性能图(960*800的实验跑完了,但是因为缩小了log step,所以图中显得指标还行,但是拉平来看,结果还是低)
from rt-detr.
歪一下楼: 你训练自己的数据时候 没有用用coco上的预训练嘛 比如修改pretrain_weights
from rt-detr.
歪一下楼: 你训练自己的数据时候 没有用用coco上的预训练嘛 比如修改pretrain_weights
确实,之前只用了应该是imagenet pretrain(https://paddledet.bj.bcebos.com/models/pretrained/ResNet18_vd_pretrained.pdparams)
我试试coco pretrain
from rt-detr.
看了下对应的pr,这种bug真的哭笑不得😂
from rt-detr.
看了下对应的pr,这种bug真的哭笑不得😂
没有细查的话,其实也正常。甚至有可能是copilot自己生成的😂
from rt-detr.
你好!
我按照你的代码进行了矩形训练,但准确度明显低于正方形训练。为了排除可能性,我尝试调整了 w 和 h 后重新训练,但结果并没有显著改变。
- 高准确度代码的唯一更改是 [h,w] 吗?
- 对于输入的矩形(800x960),重新训练的结果是否与960x960的结果相似甚至更好?您进行了相同尺寸的比较吗?
如果可能的话,我能从您这里获得一些答案吗?如果您能提供帮助,我将不胜感激。
from rt-detr.
你好! 我按照你的代码进行了矩形训练,但准确度明显低于正方形训练。为了排除可能性,我尝试调整了 w 和 h 后重新训练,但结果并没有显著改变。
- 高准确度代码的唯一更改是 [h,w] 吗?
- 对于输入的矩形(800x960),重新训练的结果是否与960x960的结果相似甚至更好?您进行了相同尺寸的比较吗?
如果可能的话,我能从您这里获得一些答案吗?如果您能提供帮助,我将不胜感激。
可以参考下我的配置,我就是按照那个配置跑的
from rt-detr.
BTW,形状输入和数据分布是有关系的,而且resize成较小的矩形,比长边为准的正方形,目标是要变小,性能可能要变低的。需要确认下你的输入是否适合矩形
你好! 我按照你的代码进行了矩形训练,但准确度明显低于正方形训练。为了排除可能性,我尝试调整了 w 和 h 后重新训练,但结果并没有显著改变。
- 高准确度代码的唯一更改是 [h,w] 吗?
- 对于输入的矩形(800x960),重新训练的结果是否与960x960的结果相似甚至更好?您进行了相同尺寸的比较吗?
如果可能的话,我能从您这里获得一些答案吗?如果您能提供帮助,我将不胜感激。
BTW,形状输入和数据分布是有关系的,而且resize成较小的矩形,比长边为准的正方形,目标是要变小,性能可能要变低的。需要确认下你的输入是否适合矩形
from rt-detr.
BTW,形状输入和数据分布是有关系的,而且resize成较小的矩形,比长边为准的正方形,目标是要变小,性能可能要变低的。需要确认下你的输入是否适合矩形
你好! 我按照你的代码进行了矩形训练,但准确度明显低于正方形训练。为了排除可能性,我尝试调整了 w 和 h 后重新训练,但结果并没有显著改变。
- 高准确度代码的唯一更改是 [h,w] 吗?
- 对于输入的矩形(800x960),重新训练的结果是否与960x960的结果相似甚至更好?您进行了相同尺寸的比较吗?
如果可能的话,我能从您这里获得一些答案吗?如果您能提供帮助,我将不胜感激。
BTW,形状输入和数据分布是有关系的,而且resize成较小的矩形,比长边为准的正方形,目标是要变小,性能可能要变低的。需要确认下你的输入是否适合矩形
非常感谢您的回复
我的数据集图像尺寸为1280x720,已将其调整为608x352,使用的主干是resnet50(经过90个epochs的训练,性能始终较低)。您的配置和我的唯一区别在于 'bbox_decode_type: 'pad'',我尝试过包括这个配置进行重新训练,但仍无法获得类似正方形的性能。原因不确定,但在我的情况下,改变w和h的顺序并没有带来任何区别。
根据您的建议,可能是目标变小导致的。如果您有其他的建议,我将非常期待听取!
from rt-detr.
BTW,形状输入和数据分布是有关系的,而且resize成较小的矩形,比长边为准的正方形,目标是要变小,性能可能要变低的。需要确认下你的输入是否适合矩形
你好! 我按照你的代码进行了矩形训练,但准确度明显低于正方形训练。为了排除可能性,我尝试调整了 w 和 h 后重新训练,但结果并没有显著改变。
- 高准确度代码的唯一更改是 [h,w] 吗?
- 对于输入的矩形(800x960),重新训练的结果是否与960x960的结果相似甚至更好?您进行了相同尺寸的比较吗?
如果可能的话,我能从您这里获得一些答案吗?如果您能提供帮助,我将不胜感激。
BTW,形状输入和数据分布是有关系的,而且resize成较小的矩形,比长边为准的正方形,目标是要变小,性能可能要变低的。需要确认下你的输入是否适合矩形
我使用了960x800的尺寸进行训练,结果表现出比正方形输入略微更好的性能
正如您所建议的,对象的大小问题似乎确实存在
from rt-detr.
Related Issues (20)
- About validation of pytorch HOT 1
- 关于pytorch版本的DT-DETR在评估时的FPS HOT 1
- 用RT-DETR训练AI-TOD HOT 6
- TensorRT / ONNX output only one box
- 关于IoU-aware Query Selection的效果 HOT 1
- 静态图训练 HOT 1
- 如何在RT-DETR上输出热力图 HOT 4
- 可视化分类和IOU 的散点图是如何做到的? HOT 3
- 请问转换权重的脚本 HOT 2
- FileNotFoundError: [Errno 2] No such file or directory: '../dataset/coco/train/_annotations.coco.json' HOT 1
- 迁移RT-DETR至其它 HOT 1
- How does fine-tuning work? HOT 1
- onnx convert to engine failed HOT 2
- pytorch版本的flops怎么计算? HOT 1
- 实例分割? HOT 1
- Are there any plans to study the few shot aspect? HOT 2
- Memory of gpu & cpu keep increasing during training (pytorch) HOT 6
- mmdetection HOT 1
- Any experiments for Mixup or Mosaic augmentation? HOT 2
- 旋转框预测该如何修改 HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from rt-detr.