Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
s920243400
PaddleDetection
提交
dafd365a
P
PaddleDetection
项目概览
s920243400
/
PaddleDetection
与 Fork 源项目一致
Fork自
PaddlePaddle / PaddleDetection
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
PaddleDetection
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
dafd365a
编写于
9月 08, 2022
作者:
W
Wenyu
提交者:
GitHub
9月 08, 2022
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add gt as proposals for cascade (#6901)
上级
bd87779f
变更
4
显示空白变更内容
内联
并排
Showing
4 changed file
with
24 addition
and
8 deletion
+24
-8
configs/vitdet/cascade_rcnn_vit_base_hrfpn_cae_1x_coco.yml
configs/vitdet/cascade_rcnn_vit_base_hrfpn_cae_1x_coco.yml
+2
-0
ppdet/modeling/heads/cascade_head.py
ppdet/modeling/heads/cascade_head.py
+16
-4
ppdet/modeling/proposal_generator/target.py
ppdet/modeling/proposal_generator/target.py
+3
-2
ppdet/modeling/proposal_generator/target_layer.py
ppdet/modeling/proposal_generator/target_layer.py
+3
-2
未找到文件。
configs/vitdet/cascade_rcnn_vit_base_hrfpn_cae_1x_coco.yml
浏览文件 @
dafd365a
...
...
@@ -98,6 +98,8 @@ CascadeHead:
reg_class_agnostic
:
False
stage_loss_weights
:
[
1
,
0.5
,
0.25
]
loss_normalize_pos
:
True
add_gt_as_proposals
:
[
True
,
True
,
True
]
BBoxAssigner
:
batch_size_per_im
:
512
...
...
ppdet/modeling/heads/cascade_head.py
浏览文件 @
dafd365a
...
...
@@ -163,7 +163,8 @@ class CascadeHead(BBoxHead):
bbox_loss
=
None
,
reg_class_agnostic
=
True
,
stage_loss_weights
=
None
,
loss_normalize_pos
=
False
):
loss_normalize_pos
=
False
,
add_gt_as_proposals
=
[
True
,
False
,
False
]):
nn
.
Layer
.
__init__
(
self
,
)
self
.
head
=
head
...
...
@@ -179,6 +180,8 @@ class CascadeHead(BBoxHead):
self
.
stage_loss_weights
=
[
1.
/
num_cascade_stages
for
_
in
range
(
num_cascade_stages
)
]
if
stage_loss_weights
is
None
else
stage_loss_weights
self
.
add_gt_as_proposals
=
add_gt_as_proposals
assert
len
(
self
.
stage_loss_weights
)
==
num_cascade_stages
,
f
'stage_loss_weights(
{
len
(
self
.
stage_loss_weights
)
}
) do not equal to num_cascade_stages(
{
num_cascade_stages
}
)'
...
...
@@ -221,7 +224,11 @@ class CascadeHead(BBoxHead):
"""
targets
=
[]
if
self
.
training
:
rois
,
rois_num
,
targets
=
self
.
bbox_assigner
(
rois
,
rois_num
,
inputs
)
rois
,
rois_num
,
targets
=
self
.
bbox_assigner
(
rois
,
rois_num
,
inputs
,
add_gt_as_proposals
=
self
.
add_gt_as_proposals
[
0
])
targets_list
=
[
targets
]
self
.
assigned_rois
=
(
rois
,
rois_num
)
self
.
assigned_targets
=
targets
...
...
@@ -234,7 +241,12 @@ class CascadeHead(BBoxHead):
inputs
[
'im_shape'
])
if
self
.
training
:
rois
,
rois_num
,
targets
=
self
.
bbox_assigner
(
rois
,
rois_num
,
inputs
,
i
,
is_cascade
=
True
)
rois
,
rois_num
,
inputs
,
i
,
is_cascade
=
True
,
add_gt_as_proposals
=
self
.
add_gt_as_proposals
[
i
])
targets_list
.
append
(
targets
)
rois_feat
=
self
.
roi_extractor
(
body_feats
,
rois
,
rois_num
)
...
...
ppdet/modeling/proposal_generator/target.py
浏览文件 @
dafd365a
...
...
@@ -186,7 +186,8 @@ def generate_proposal_target(rpn_rois,
use_random
=
True
,
is_cascade
=
False
,
cascade_iou
=
0.5
,
assign_on_cpu
=
False
):
assign_on_cpu
=
False
,
add_gt_as_proposals
=
True
):
rois_with_gt
=
[]
tgt_labels
=
[]
...
...
@@ -204,7 +205,7 @@ def generate_proposal_target(rpn_rois,
gt_class
=
paddle
.
squeeze
(
gt_classes
[
i
],
axis
=-
1
)
# Concat RoIs and gt boxes except cascade rcnn or none gt
if
not
is_cascade
and
gt_bbox
.
shape
[
0
]
>
0
:
if
add_gt_as_proposals
and
gt_bbox
.
shape
[
0
]
>
0
:
bbox
=
paddle
.
concat
([
rpn_roi
,
gt_bbox
])
else
:
bbox
=
rpn_roi
...
...
ppdet/modeling/proposal_generator/target_layer.py
浏览文件 @
dafd365a
...
...
@@ -156,7 +156,8 @@ class BBoxAssigner(object):
rpn_rois_num
,
inputs
,
stage
=
0
,
is_cascade
=
False
):
is_cascade
=
False
,
add_gt_as_proposals
=
True
):
gt_classes
=
inputs
[
'gt_class'
]
gt_boxes
=
inputs
[
'gt_bbox'
]
is_crowd
=
inputs
.
get
(
'is_crowd'
,
None
)
...
...
@@ -166,7 +167,7 @@ class BBoxAssigner(object):
rpn_rois
,
gt_classes
,
gt_boxes
,
self
.
batch_size_per_im
,
self
.
fg_fraction
,
self
.
fg_thresh
,
self
.
bg_thresh
,
self
.
num_classes
,
self
.
ignore_thresh
,
is_crowd
,
self
.
use_random
,
is_cascade
,
self
.
cascade_iou
[
stage
],
self
.
assign_on_cpu
)
self
.
cascade_iou
[
stage
],
self
.
assign_on_cpu
,
add_gt_as_proposals
)
rois
=
outs
[
0
]
rois_num
=
outs
[
-
1
]
# tgt_labels, tgt_bboxes, tgt_gt_inds
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录