Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
PaddleDetection
提交
466a10dc
P
PaddleDetection
项目概览
PaddlePaddle
/
PaddleDetection
大约 1 年 前同步成功
通知
695
Star
11112
Fork
2696
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
184
列表
看板
标记
里程碑
合并请求
40
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
PaddleDetection
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
184
Issue
184
列表
看板
标记
里程碑
合并请求
40
合并请求
40
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
466a10dc
编写于
1月 25, 2019
作者:
J
jerrywgz
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
refine code, test=develop
上级
9eb2d7b3
变更
3
显示空白变更内容
内联
并排
Showing
3 changed file
with
16 addition
and
13 deletion
+16
-13
paddle/fluid/operators/detection/multiclass_nms_op.cc
paddle/fluid/operators/detection/multiclass_nms_op.cc
+1
-1
python/paddle/fluid/layers/detection.py
python/paddle/fluid/layers/detection.py
+8
-4
python/paddle/fluid/tests/unittests/test_multiclass_nms_op.py
...on/paddle/fluid/tests/unittests/test_multiclass_nms_op.py
+7
-8
未找到文件。
paddle/fluid/operators/detection/multiclass_nms_op.cc
浏览文件 @
466a10dc
...
@@ -520,7 +520,7 @@ independently for each class. The outputs is a 2-D LoDTenosr, for each
...
@@ -520,7 +520,7 @@ independently for each class. The outputs is a 2-D LoDTenosr, for each
image, the offsets in first dimension of LoDTensor are called LoD, the number
image, the offsets in first dimension of LoDTensor are called LoD, the number
of offset is N + 1, where N is the batch size. If LoD[i + 1] - LoD[i] == 0,
of offset is N + 1, where N is the batch size. If LoD[i + 1] - LoD[i] == 0,
means there is no detected bbox for this image. If there is no detected boxes
means there is no detected bbox for this image. If there is no detected boxes
for all images, all the elements in LoD are set to {
0,
1}, and the Out only
for all images, all the elements in LoD are set to {1}, and the Out only
contains one value which is -1.
contains one value which is -1.
)DOC"
);
)DOC"
);
}
}
...
...
python/paddle/fluid/layers/detection.py
浏览文件 @
466a10dc
...
@@ -263,8 +263,10 @@ def detection_output(loc,
...
@@ -263,8 +263,10 @@ def detection_output(loc,
number is N + 1, N is the batch size. The i-th image has
number is N + 1, N is the batch size. The i-th image has
`LoD[i + 1] - LoD[i]` detected results, if it is 0, the i-th image
`LoD[i + 1] - LoD[i]` detected results, if it is 0, the i-th image
has no detected results. If all images have not detected results,
has no detected results. If all images have not detected results,
all the elements in LoD are 0
, and output tensor only contains one
LoD will be set to {1}
, and output tensor only contains one
value, which is -1.
value, which is -1.
(After version 1.3, when no boxes detected, the lod is changed
from {0} to {1}.)
Examples:
Examples:
.. code-block:: python
.. code-block:: python
...
@@ -1967,8 +1969,8 @@ def multiclass_nms(bboxes,
...
@@ -1967,8 +1969,8 @@ def multiclass_nms(bboxes,
scores
,
scores
,
score_threshold
,
score_threshold
,
nms_top_k
,
nms_top_k
,
nms_threshold
,
keep_top_k
,
keep_top_k
,
nms_threshold
=
0.3
,
normalized
=
True
,
normalized
=
True
,
nms_eta
=
1.
,
nms_eta
=
1.
,
background_label
=
0
,
background_label
=
0
,
...
@@ -2035,8 +2037,10 @@ def multiclass_nms(bboxes,
...
@@ -2035,8 +2037,10 @@ def multiclass_nms(bboxes,
Each row has 10 values:
Each row has 10 values:
[label, confidence, x1, y1, x2, y2, x3, y3, x4, y4]. No is the
[label, confidence, x1, y1, x2, y2, x3, y3, x4, y4]. No is the
total number of detections. If there is no detected boxes for all
total number of detections. If there is no detected boxes for all
images, lod will be set to {
0,
1} and Out only contains one value
images, lod will be set to {1} and Out only contains one value
which is -1.
which is -1.
(After version 1.3, when no boxes detected, the lod is changed
from {0} to {1})
Examples:
Examples:
.. code-block:: python
.. code-block:: python
...
...
python/paddle/fluid/tests/unittests/test_multiclass_nms_op.py
浏览文件 @
466a10dc
...
@@ -19,7 +19,7 @@ import copy
...
@@ -19,7 +19,7 @@ import copy
from
op_test
import
OpTest
from
op_test
import
OpTest
def
iou
(
box_a
,
box_b
,
norm
alized
):
def
iou
(
box_a
,
box_b
,
norm
):
"""Apply intersection-over-union overlap between box_a and box_b
"""Apply intersection-over-union overlap between box_a and box_b
"""
"""
xmin_a
=
min
(
box_a
[
0
],
box_a
[
2
])
xmin_a
=
min
(
box_a
[
0
],
box_a
[
2
])
...
@@ -32,10 +32,10 @@ def iou(box_a, box_b, normalized):
...
@@ -32,10 +32,10 @@ def iou(box_a, box_b, normalized):
xmax_b
=
max
(
box_b
[
0
],
box_b
[
2
])
xmax_b
=
max
(
box_b
[
0
],
box_b
[
2
])
ymax_b
=
max
(
box_b
[
1
],
box_b
[
3
])
ymax_b
=
max
(
box_b
[
1
],
box_b
[
3
])
area_a
=
(
ymax_a
-
ymin_a
+
(
norm
alized
==
False
))
*
\
area_a
=
(
ymax_a
-
ymin_a
+
(
norm
==
False
))
*
(
xmax_a
-
xmin_a
+
(
xmax_a
-
xmin_a
+
(
normalized
==
False
))
(
norm
==
False
))
area_b
=
(
ymax_b
-
ymin_b
+
(
norm
alized
==
False
))
*
\
area_b
=
(
ymax_b
-
ymin_b
+
(
norm
==
False
))
*
(
xmax_b
-
xmin_b
+
(
xmax_b
-
xmin_b
+
(
normalized
==
False
))
(
norm
==
False
))
if
area_a
<=
0
and
area_b
<=
0
:
if
area_a
<=
0
and
area_b
<=
0
:
return
0.0
return
0.0
...
@@ -44,8 +44,8 @@ def iou(box_a, box_b, normalized):
...
@@ -44,8 +44,8 @@ def iou(box_a, box_b, normalized):
xb
=
min
(
xmax_a
,
xmax_b
)
xb
=
min
(
xmax_a
,
xmax_b
)
yb
=
min
(
ymax_a
,
ymax_b
)
yb
=
min
(
ymax_a
,
ymax_b
)
inter_area
=
max
(
xb
-
xa
+
(
norm
alized
==
False
),
0.0
)
*
\
inter_area
=
max
(
xb
-
xa
+
(
norm
==
False
),
max
(
yb
-
ya
+
(
normalized
==
False
),
0.0
)
0.0
)
*
max
(
yb
-
ya
+
(
norm
==
False
),
0.0
)
iou_ratio
=
inter_area
/
(
area_a
+
area_b
-
inter_area
)
iou_ratio
=
inter_area
/
(
area_a
+
area_b
-
inter_area
)
...
@@ -210,7 +210,6 @@ def batched_multiclass_nms(boxes,
...
@@ -210,7 +210,6 @@ def batched_multiclass_nms(boxes,
normalized
,
normalized
,
shared
=
True
)
shared
=
True
)
if
nmsed_num
==
0
:
if
nmsed_num
==
0
:
# lod.append(1)
continue
continue
lod
.
append
(
nmsed_num
)
lod
.
append
(
nmsed_num
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录