Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
S
seminar-breakout
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Shashank Suhas
seminar-breakout
Commits
c7158c84
Commit
c7158c84
authored
Nov 19, 2018
by
Yuxin Wu
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[MaskRCNN] bugfix in RPN.CROWD_OVERLAP_THRESH
parent
4b25b6fa
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
9 additions
and
13 deletions
+9
-13
examples/FasterRCNN/data.py
examples/FasterRCNN/data.py
+1
-1
examples/FasterRCNN/model_fpn.py
examples/FasterRCNN/model_fpn.py
+5
-10
examples/FasterRCNN/train.py
examples/FasterRCNN/train.py
+3
-2
No files found.
examples/FasterRCNN/data.py
View file @
c7158c84
...
@@ -160,7 +160,7 @@ def get_anchor_labels(anchors, gt_boxes, crowd_boxes):
...
@@ -160,7 +160,7 @@ def get_anchor_labels(anchors, gt_boxes, crowd_boxes):
cand_inds
=
np
.
where
(
anchor_labels
>=
0
)[
0
]
cand_inds
=
np
.
where
(
anchor_labels
>=
0
)[
0
]
cand_anchors
=
anchors
[
cand_inds
]
cand_anchors
=
anchors
[
cand_inds
]
ioas
=
np_ioa
(
crowd_boxes
,
cand_anchors
)
ioas
=
np_ioa
(
crowd_boxes
,
cand_anchors
)
overlap_with_crowd
=
cand_inds
[
ioas
.
max
(
axis
=
0
)
>
cfg
.
RPN
.
CROWD_OVERLAP_THRES
]
overlap_with_crowd
=
cand_inds
[
ioas
.
max
(
axis
=
0
)
>
cfg
.
RPN
.
CROWD_OVERLAP_THRES
H
]
anchor_labels
[
overlap_with_crowd
]
=
-
1
anchor_labels
[
overlap_with_crowd
]
=
-
1
# Subsample fg labels: ignore some fg if fg is too many
# Subsample fg labels: ignore some fg if fg is too many
...
...
examples/FasterRCNN/model_fpn.py
View file @
c7158c84
...
@@ -165,22 +165,19 @@ def multilevel_rpn_losses(
...
@@ -165,22 +165,19 @@ def multilevel_rpn_losses(
@
under_name_scope
()
@
under_name_scope
()
def
generate_fpn_proposals
(
def
generate_fpn_proposals
(
multilevel_anchors
,
multilevel_label_logits
,
multilevel_pred_boxes
,
multilevel_label_logits
,
image_shape2d
):
multilevel_box_logits
,
image_shape2d
):
"""
"""
Args:
Args:
multilevel_
anchors: #lvl RPNAnchor
s
multilevel_
pred_boxes: #lvl HxWxAx4 boxe
s
multilevel_label_logits: #lvl tensors of shape HxWxA
multilevel_label_logits: #lvl tensors of shape HxWxA
multilevel_box_logits: #lvl tensors of shape HxWxAx4
Returns:
Returns:
boxes: kx4 float
boxes: kx4 float
scores: k logits
scores: k logits
"""
"""
num_lvl
=
len
(
cfg
.
FPN
.
ANCHOR_STRIDES
)
num_lvl
=
len
(
cfg
.
FPN
.
ANCHOR_STRIDES
)
assert
len
(
multilevel_
anchor
s
)
==
num_lvl
assert
len
(
multilevel_
pred_boxe
s
)
==
num_lvl
assert
len
(
multilevel_label_logits
)
==
num_lvl
assert
len
(
multilevel_label_logits
)
==
num_lvl
assert
len
(
multilevel_box_logits
)
==
num_lvl
ctx
=
get_current_tower_context
()
ctx
=
get_current_tower_context
()
all_boxes
=
[]
all_boxes
=
[]
...
@@ -189,8 +186,7 @@ def generate_fpn_proposals(
...
@@ -189,8 +186,7 @@ def generate_fpn_proposals(
fpn_nms_topk
=
cfg
.
RPN
.
TRAIN_PER_LEVEL_NMS_TOPK
if
ctx
.
is_training
else
cfg
.
RPN
.
TEST_PER_LEVEL_NMS_TOPK
fpn_nms_topk
=
cfg
.
RPN
.
TRAIN_PER_LEVEL_NMS_TOPK
if
ctx
.
is_training
else
cfg
.
RPN
.
TEST_PER_LEVEL_NMS_TOPK
for
lvl
in
range
(
num_lvl
):
for
lvl
in
range
(
num_lvl
):
with
tf
.
name_scope
(
'Lvl{}'
.
format
(
lvl
+
2
)):
with
tf
.
name_scope
(
'Lvl{}'
.
format
(
lvl
+
2
)):
anchors
=
multilevel_anchors
[
lvl
]
pred_boxes_decoded
=
multilevel_pred_boxes
[
lvl
]
pred_boxes_decoded
=
anchors
.
decode_logits
(
multilevel_box_logits
[
lvl
])
proposal_boxes
,
proposal_scores
=
generate_rpn_proposals
(
proposal_boxes
,
proposal_scores
=
generate_rpn_proposals
(
tf
.
reshape
(
pred_boxes_decoded
,
[
-
1
,
4
]),
tf
.
reshape
(
pred_boxes_decoded
,
[
-
1
,
4
]),
...
@@ -207,8 +203,7 @@ def generate_fpn_proposals(
...
@@ -207,8 +203,7 @@ def generate_fpn_proposals(
else
:
else
:
for
lvl
in
range
(
num_lvl
):
for
lvl
in
range
(
num_lvl
):
with
tf
.
name_scope
(
'Lvl{}'
.
format
(
lvl
+
2
)):
with
tf
.
name_scope
(
'Lvl{}'
.
format
(
lvl
+
2
)):
anchors
=
multilevel_anchors
[
lvl
]
pred_boxes_decoded
=
multilevel_pred_boxes
[
lvl
]
pred_boxes_decoded
=
anchors
.
decode_logits
(
multilevel_box_logits
[
lvl
])
all_boxes
.
append
(
tf
.
reshape
(
pred_boxes_decoded
,
[
-
1
,
4
]))
all_boxes
.
append
(
tf
.
reshape
(
pred_boxes_decoded
,
[
-
1
,
4
]))
all_scores
.
append
(
tf
.
reshape
(
multilevel_label_logits
[
lvl
],
[
-
1
]))
all_scores
.
append
(
tf
.
reshape
(
multilevel_label_logits
[
lvl
],
[
-
1
]))
all_boxes
=
tf
.
concat
(
all_boxes
,
axis
=
0
)
all_boxes
=
tf
.
concat
(
all_boxes
,
axis
=
0
)
...
...
examples/FasterRCNN/train.py
View file @
c7158c84
...
@@ -249,10 +249,11 @@ class ResNetFPNModel(DetectionModel):
...
@@ -249,10 +249,11 @@ class ResNetFPNModel(DetectionModel):
for
pi
in
p23456
]
for
pi
in
p23456
]
multilevel_label_logits
=
[
k
[
0
]
for
k
in
rpn_outputs
]
multilevel_label_logits
=
[
k
[
0
]
for
k
in
rpn_outputs
]
multilevel_box_logits
=
[
k
[
1
]
for
k
in
rpn_outputs
]
multilevel_box_logits
=
[
k
[
1
]
for
k
in
rpn_outputs
]
multilevel_pred_boxes
=
[
anchor
.
decode_logits
(
logits
)
for
anchor
,
logits
in
zip
(
multilevel_anchors
,
multilevel_box_logits
)]
proposal_boxes
,
proposal_scores
=
generate_fpn_proposals
(
proposal_boxes
,
proposal_scores
=
generate_fpn_proposals
(
multilevel_anchors
,
multilevel_label_logits
,
multilevel_pred_boxes
,
multilevel_label_logits
,
image_shape2d
)
multilevel_box_logits
,
image_shape2d
)
gt_boxes
,
gt_labels
=
inputs
[
'gt_boxes'
],
inputs
[
'gt_labels'
]
gt_boxes
,
gt_labels
=
inputs
[
'gt_boxes'
],
inputs
[
'gt_labels'
]
if
is_training
:
if
is_training
:
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment