From a1ef7df8655acff75d416608aeb8595be0a89b17 Mon Sep 17 00:00:00 2001 From: jerrywgz Date: Tue, 5 Mar 2019 06:23:37 +0000 Subject: [PATCH] refine code, test=develop --- paddle/fluid/API.spec | 2 +- .../detection/box_decoder_and_assign_op.cc | 19 ++++++++++++------- python/paddle/fluid/layers/detection.py | 19 ++++++++++--------- 3 files changed, 23 insertions(+), 17 deletions(-) diff --git a/paddle/fluid/API.spec b/paddle/fluid/API.spec index 55e9f95b2..5fd84cfa4 100644 --- a/paddle/fluid/API.spec +++ b/paddle/fluid/API.spec @@ -328,7 +328,7 @@ paddle.fluid.layers.polygon_box_transform (ArgSpec(args=['input', 'name'], varar paddle.fluid.layers.yolov3_loss (ArgSpec(args=['x', 'gtbox', 'gtlabel', 'anchors', 'anchor_mask', 'class_num', 'ignore_thresh', 'downsample_ratio', 'name'], varargs=None, keywords=None, defaults=(None,)), ('document', '991e934c3e09abf0edec7c9c978b4691')) paddle.fluid.layers.box_clip (ArgSpec(args=['input', 'im_info', 'name'], varargs=None, keywords=None, defaults=(None,)), ('document', '397e9e02b451d99c56e20f268fa03f2e')) paddle.fluid.layers.multiclass_nms (ArgSpec(args=['bboxes', 'scores', 'score_threshold', 'nms_top_k', 'keep_top_k', 'nms_threshold', 'normalized', 'nms_eta', 'background_label', 'name'], varargs=None, keywords=None, defaults=(0.3, True, 1.0, 0, None)), ('document', 'ca7d1107b6c5d2d6d8221039a220fde0')) -paddle.fluid.layers.box_decoder_and_assign (ArgSpec(args=['prior_box', 'prior_box_var', 'target_box', 'box_score', 'box_clip'], varargs=None, keywords=None, defaults=None), ('document', '74cd80dc1bc4e0d92021babd7852d0e5')) +paddle.fluid.layers.box_decoder_and_assign (ArgSpec(args=['prior_box', 'prior_box_var', 'target_box', 'box_score', 'box_clip'], varargs=None, keywords=None, defaults=None), ('document', 'e6daa972b52c6050d95bfaaee7b5289e')) paddle.fluid.layers.accuracy (ArgSpec(args=['input', 'label', 'k', 'correct', 'total'], varargs=None, keywords=None, defaults=(1, None, None)), ('document', '9808534c12c5e739a10f73ebb0b4eafd')) paddle.fluid.layers.auc (ArgSpec(args=['input', 'label', 'curve', 'num_thresholds', 'topk', 'slide_steps'], varargs=None, keywords=None, defaults=('ROC', 4095, 1, 1)), ('document', 'e0e95334fce92d16c2d9db6e7caffc47')) paddle.fluid.layers.exponential_decay (ArgSpec(args=['learning_rate', 'decay_steps', 'decay_rate', 'staircase'], varargs=None, keywords=None, defaults=(False,)), ('document', '98a5050bee8522fcea81aa795adaba51')) diff --git a/paddle/fluid/operators/detection/box_decoder_and_assign_op.cc b/paddle/fluid/operators/detection/box_decoder_and_assign_op.cc index 4fb4a4c66..bda2680f4 100644 --- a/paddle/fluid/operators/detection/box_decoder_and_assign_op.cc +++ b/paddle/fluid/operators/detection/box_decoder_and_assign_op.cc @@ -134,13 +134,18 @@ Decode the target bounding box with the priorbox information. The Decoding schema described below: - ox = (pw * pxv * tx * + px) - tw / 2 - - oy = (ph * pyv * ty * + py) - th / 2 - - ow = exp(pwv * tw) * pw + tw / 2 - - oh = exp(phv * th) * ph + th / 2 + $$ + oy = (ph \\times pyv \\times ty + py) - \\frac{th}{2} + $$ + $$ + oy = (ph \\times pyv \\times ty + py) - \\frac{th}{2} + $$ + $$ + ow = \\exp (pwv \\times tw) \\times pw + \\frac{tw}{2} + $$ + $$ + oh = \\exp (phv \\times th) \\times ph + \\frac{th}{2} + $$ where `tx`, `ty`, `tw`, `th` denote the target box's center coordinates, width and height respectively. Similarly, `px`, `py`, `pw`, `ph` denote the diff --git a/python/paddle/fluid/layers/detection.py b/python/paddle/fluid/layers/detection.py index 4ee92cd5c..2fe01bb69 100644 --- a/python/paddle/fluid/layers/detection.py +++ b/python/paddle/fluid/layers/detection.py @@ -2240,15 +2240,16 @@ def box_decoder_and_assign(prior_box, prior_box_var, target_box, box_score, Examples: .. code-block:: python - pb = fluid.layers.data(name='prior_box', shape=[20, 4], - dtype='float32') - pbv = fluid.layers.data(name='prior_box_var', shape=[1, 4], - dtype='float32') - loc = fluid.layers.data(name='target_box', shape=[20, 4*81], - dtype='float32') - scores = fluid.layers.data(name='scores', shape=[20, 81], - dtype='float32') - output_box, output_assign_box = fluid.layers.box_decoder_and_assign(pb, pbv, loc, scores, 4.135) + pb = fluid.layers.data( + name='prior_box', shape=[20, 4], dtype='float32') + pbv = fluid.layers.data( + name='prior_box_var', shape=[1, 4], dtype='float32') + loc = fluid.layers.data( + name='target_box', shape=[20, 4*81], dtype='float32') + scores = fluid.layers.data( + name='scores', shape=[20, 81], dtype='float32') + output_box, assign_box = fluid.layers.box_decoder_and_assign( + pb, pbv, loc, scores, 4.135) """ helper = LayerHelper("box_decoder_and_assign", **locals()) -- GitLab