提交 466a10dc 编写于 作者: J jerrywgz

refine code, test=develop

上级 9eb2d7b3
...@@ -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");
} }
......
...@@ -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
......
...@@ -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, normalized): 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 + (normalized == 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 + (normalized == 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 + (normalized == 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.
先完成此消息的编辑!
想要评论请 注册