Python object_detection.box_coders.square_box_coder.SquareBoxCoder() Examples

The following are 30 code examples of object_detection.box_coders.square_box_coder.SquareBoxCoder(). You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may also want to check out all available functions/classes of the module object_detection.box_coders.square_box_coder , or try the search function .
Example #1
Source File: box_coder_builder_test.py    From yolo_v2 with Apache License 2.0 5 votes vote down vote up
def test_build_square_box_coder_with_non_default_parameters(self):
    box_coder_text_proto = """
      square_box_coder {
        y_scale: 6.0
        x_scale: 3.0
        length_scale: 7.0
      }
    """
    box_coder_proto = box_coder_pb2.BoxCoder()
    text_format.Merge(box_coder_text_proto, box_coder_proto)
    box_coder_object = box_coder_builder.build(box_coder_proto)
    self.assertTrue(
        isinstance(box_coder_object, square_box_coder.SquareBoxCoder))
    self.assertEqual(box_coder_object._scale_factors, [6.0, 3.0, 7.0]) 
Example #2
Source File: box_coder_builder.py    From tensorflow with BSD 2-Clause "Simplified" License 5 votes vote down vote up
def build(box_coder_config):
  """Builds a box coder object based on the box coder config.

  Args:
    box_coder_config: A box_coder.proto object containing the config for the
      desired box coder.

  Returns:
    BoxCoder based on the config.

  Raises:
    ValueError: On empty box coder proto.
  """
  if not isinstance(box_coder_config, box_coder_pb2.BoxCoder):
    raise ValueError('box_coder_config not of type box_coder_pb2.BoxCoder.')

  if box_coder_config.WhichOneof('box_coder_oneof') == 'faster_rcnn_box_coder':
    return faster_rcnn_box_coder.FasterRcnnBoxCoder(scale_factors=[
        box_coder_config.faster_rcnn_box_coder.y_scale,
        box_coder_config.faster_rcnn_box_coder.x_scale,
        box_coder_config.faster_rcnn_box_coder.height_scale,
        box_coder_config.faster_rcnn_box_coder.width_scale
    ])
  if (box_coder_config.WhichOneof('box_coder_oneof') ==
      'mean_stddev_box_coder'):
    return mean_stddev_box_coder.MeanStddevBoxCoder()
  if box_coder_config.WhichOneof('box_coder_oneof') == 'square_box_coder':
    return square_box_coder.SquareBoxCoder(scale_factors=[
        box_coder_config.square_box_coder.y_scale,
        box_coder_config.square_box_coder.x_scale,
        box_coder_config.square_box_coder.length_scale
    ])
  raise ValueError('Empty box coder.') 
Example #3
Source File: square_box_coder_test.py    From tensorflow with BSD 2-Clause "Simplified" License 5 votes vote down vote up
def test_correct_relative_codes_with_default_scale(self):
    boxes = [[10.0, 10.0, 20.0, 15.0], [0.2, 0.1, 0.5, 0.4]]
    anchors = [[15.0, 12.0, 30.0, 18.0], [0.1, 0.0, 0.7, 0.9]]
    scale_factors = None
    expected_rel_codes = [[-0.790569, -0.263523, -0.293893],
                          [-0.068041, -0.272166, -0.89588]]

    boxes = box_list.BoxList(tf.constant(boxes))
    anchors = box_list.BoxList(tf.constant(anchors))
    coder = square_box_coder.SquareBoxCoder(scale_factors=scale_factors)
    rel_codes = coder.encode(boxes, anchors)
    with self.test_session() as sess:
      (rel_codes_out,) = sess.run([rel_codes])
      self.assertAllClose(rel_codes_out, expected_rel_codes) 
Example #4
Source File: square_box_coder_test.py    From Gun-Detector with Apache License 2.0 5 votes vote down vote up
def test_correct_relative_codes_with_non_default_scale(self):
    boxes = [[10.0, 10.0, 20.0, 15.0], [0.2, 0.1, 0.5, 0.4]]
    anchors = [[15.0, 12.0, 30.0, 18.0], [0.1, 0.0, 0.7, 0.9]]
    scale_factors = [2, 3, 4]
    expected_rel_codes = [[-1.581139, -0.790569, -1.175573],
                          [-0.136083, -0.816497, -3.583519]]
    boxes = box_list.BoxList(tf.constant(boxes))
    anchors = box_list.BoxList(tf.constant(anchors))
    coder = square_box_coder.SquareBoxCoder(scale_factors=scale_factors)
    rel_codes = coder.encode(boxes, anchors)
    with self.test_session() as sess:
      (rel_codes_out,) = sess.run([rel_codes])
      self.assertAllClose(rel_codes_out, expected_rel_codes) 
Example #5
Source File: square_box_coder_test.py    From Gun-Detector with Apache License 2.0 5 votes vote down vote up
def test_correct_relative_codes_with_small_width(self):
    boxes = [[10.0, 10.0, 10.0000001, 20.0]]
    anchors = [[15.0, 12.0, 30.0, 18.0]]
    scale_factors = None
    expected_rel_codes = [[-1.317616, 0., -20.670586]]
    boxes = box_list.BoxList(tf.constant(boxes))
    anchors = box_list.BoxList(tf.constant(anchors))
    coder = square_box_coder.SquareBoxCoder(scale_factors=scale_factors)
    rel_codes = coder.encode(boxes, anchors)
    with self.test_session() as sess:
      (rel_codes_out,) = sess.run([rel_codes])
      self.assertAllClose(rel_codes_out, expected_rel_codes) 
Example #6
Source File: square_box_coder_test.py    From Gun-Detector with Apache License 2.0 5 votes vote down vote up
def test_correct_relative_codes_with_default_scale(self):
    boxes = [[10.0, 10.0, 20.0, 15.0], [0.2, 0.1, 0.5, 0.4]]
    anchors = [[15.0, 12.0, 30.0, 18.0], [0.1, 0.0, 0.7, 0.9]]
    scale_factors = None
    expected_rel_codes = [[-0.790569, -0.263523, -0.293893],
                          [-0.068041, -0.272166, -0.89588]]

    boxes = box_list.BoxList(tf.constant(boxes))
    anchors = box_list.BoxList(tf.constant(anchors))
    coder = square_box_coder.SquareBoxCoder(scale_factors=scale_factors)
    rel_codes = coder.encode(boxes, anchors)
    with self.test_session() as sess:
      (rel_codes_out,) = sess.run([rel_codes])
      self.assertAllClose(rel_codes_out, expected_rel_codes) 
Example #7
Source File: square_box_coder_test.py    From tensorflow with BSD 2-Clause "Simplified" License 5 votes vote down vote up
def test_correct_boxes_with_non_default_scale(self):
    anchors = [[15.0, 12.0, 30.0, 18.0], [0.1, 0.0, 0.7, 0.9]]
    rel_codes = [[-1., -1.25, -1.62186], [-0.166667, -0.666667, -2.772588]]
    scale_factors = [2, 3, 4]
    expected_boxes = [[14.594306, 7.884875, 20.918861, 14.209432],
                      [0.155051, 0.102989, 0.522474, 0.470412]]
    anchors = box_list.BoxList(tf.constant(anchors))
    coder = square_box_coder.SquareBoxCoder(scale_factors=scale_factors)
    boxes = coder.decode(rel_codes, anchors)
    with self.test_session() as sess:
      (boxes_out,) = sess.run([boxes.get()])
      self.assertAllClose(boxes_out, expected_boxes) 
Example #8
Source File: square_box_coder_test.py    From tensorflow with BSD 2-Clause "Simplified" License 5 votes vote down vote up
def test_correct_boxes_with_default_scale(self):
    anchors = [[15.0, 12.0, 30.0, 18.0], [0.1, 0.0, 0.7, 0.9]]
    rel_codes = [[-0.5, -0.416666, -0.405465],
                 [-0.083333, -0.222222, -0.693147]]
    scale_factors = None
    expected_boxes = [[14.594306, 7.884875, 20.918861, 14.209432],
                      [0.155051, 0.102989, 0.522474, 0.470412]]
    anchors = box_list.BoxList(tf.constant(anchors))
    coder = square_box_coder.SquareBoxCoder(scale_factors=scale_factors)
    boxes = coder.decode(rel_codes, anchors)
    with self.test_session() as sess:
      (boxes_out,) = sess.run([boxes.get()])
      self.assertAllClose(boxes_out, expected_boxes) 
Example #9
Source File: square_box_coder_test.py    From tensorflow with BSD 2-Clause "Simplified" License 5 votes vote down vote up
def test_correct_relative_codes_with_small_width(self):
    boxes = [[10.0, 10.0, 10.0000001, 20.0]]
    anchors = [[15.0, 12.0, 30.0, 18.0]]
    scale_factors = None
    expected_rel_codes = [[-1.317616, 0., -20.670586]]
    boxes = box_list.BoxList(tf.constant(boxes))
    anchors = box_list.BoxList(tf.constant(anchors))
    coder = square_box_coder.SquareBoxCoder(scale_factors=scale_factors)
    rel_codes = coder.encode(boxes, anchors)
    with self.test_session() as sess:
      (rel_codes_out,) = sess.run([rel_codes])
      self.assertAllClose(rel_codes_out, expected_rel_codes) 
Example #10
Source File: square_box_coder_test.py    From tensorflow with BSD 2-Clause "Simplified" License 5 votes vote down vote up
def test_correct_relative_codes_with_non_default_scale(self):
    boxes = [[10.0, 10.0, 20.0, 15.0], [0.2, 0.1, 0.5, 0.4]]
    anchors = [[15.0, 12.0, 30.0, 18.0], [0.1, 0.0, 0.7, 0.9]]
    scale_factors = [2, 3, 4]
    expected_rel_codes = [[-1.581139, -0.790569, -1.175573],
                          [-0.136083, -0.816497, -3.583519]]
    boxes = box_list.BoxList(tf.constant(boxes))
    anchors = box_list.BoxList(tf.constant(anchors))
    coder = square_box_coder.SquareBoxCoder(scale_factors=scale_factors)
    rel_codes = coder.encode(boxes, anchors)
    with self.test_session() as sess:
      (rel_codes_out,) = sess.run([rel_codes])
      self.assertAllClose(rel_codes_out, expected_rel_codes) 
Example #11
Source File: box_coder_builder_test.py    From tensorflow with BSD 2-Clause "Simplified" License 5 votes vote down vote up
def test_build_square_box_coder_with_non_default_parameters(self):
    box_coder_text_proto = """
      square_box_coder {
        y_scale: 6.0
        x_scale: 3.0
        length_scale: 7.0
      }
    """
    box_coder_proto = box_coder_pb2.BoxCoder()
    text_format.Merge(box_coder_text_proto, box_coder_proto)
    box_coder_object = box_coder_builder.build(box_coder_proto)
    self.assertTrue(
        isinstance(box_coder_object, square_box_coder.SquareBoxCoder))
    self.assertEqual(box_coder_object._scale_factors, [6.0, 3.0, 7.0]) 
Example #12
Source File: square_box_coder_test.py    From Traffic-Rule-Violation-Detection-System with MIT License 5 votes vote down vote up
def test_correct_boxes_with_default_scale(self):
    anchors = [[15.0, 12.0, 30.0, 18.0], [0.1, 0.0, 0.7, 0.9]]
    rel_codes = [[-0.5, -0.416666, -0.405465],
                 [-0.083333, -0.222222, -0.693147]]
    scale_factors = None
    expected_boxes = [[14.594306, 7.884875, 20.918861, 14.209432],
                      [0.155051, 0.102989, 0.522474, 0.470412]]
    anchors = box_list.BoxList(tf.constant(anchors))
    coder = square_box_coder.SquareBoxCoder(scale_factors=scale_factors)
    boxes = coder.decode(rel_codes, anchors)
    with self.test_session() as sess:
      (boxes_out,) = sess.run([boxes.get()])
      self.assertAllClose(boxes_out, expected_boxes) 
Example #13
Source File: square_box_coder_test.py    From Traffic-Rule-Violation-Detection-System with MIT License 5 votes vote down vote up
def test_correct_relative_codes_with_small_width(self):
    boxes = [[10.0, 10.0, 10.0000001, 20.0]]
    anchors = [[15.0, 12.0, 30.0, 18.0]]
    scale_factors = None
    expected_rel_codes = [[-1.317616, 0., -20.670586]]
    boxes = box_list.BoxList(tf.constant(boxes))
    anchors = box_list.BoxList(tf.constant(anchors))
    coder = square_box_coder.SquareBoxCoder(scale_factors=scale_factors)
    rel_codes = coder.encode(boxes, anchors)
    with self.test_session() as sess:
      (rel_codes_out,) = sess.run([rel_codes])
      self.assertAllClose(rel_codes_out, expected_rel_codes) 
Example #14
Source File: square_box_coder_test.py    From Traffic-Rule-Violation-Detection-System with MIT License 5 votes vote down vote up
def test_correct_relative_codes_with_non_default_scale(self):
    boxes = [[10.0, 10.0, 20.0, 15.0], [0.2, 0.1, 0.5, 0.4]]
    anchors = [[15.0, 12.0, 30.0, 18.0], [0.1, 0.0, 0.7, 0.9]]
    scale_factors = [2, 3, 4]
    expected_rel_codes = [[-1.581139, -0.790569, -1.175573],
                          [-0.136083, -0.816497, -3.583519]]
    boxes = box_list.BoxList(tf.constant(boxes))
    anchors = box_list.BoxList(tf.constant(anchors))
    coder = square_box_coder.SquareBoxCoder(scale_factors=scale_factors)
    rel_codes = coder.encode(boxes, anchors)
    with self.test_session() as sess:
      (rel_codes_out,) = sess.run([rel_codes])
      self.assertAllClose(rel_codes_out, expected_rel_codes) 
Example #15
Source File: square_box_coder_test.py    From Traffic-Rule-Violation-Detection-System with MIT License 5 votes vote down vote up
def test_correct_relative_codes_with_default_scale(self):
    boxes = [[10.0, 10.0, 20.0, 15.0], [0.2, 0.1, 0.5, 0.4]]
    anchors = [[15.0, 12.0, 30.0, 18.0], [0.1, 0.0, 0.7, 0.9]]
    scale_factors = None
    expected_rel_codes = [[-0.790569, -0.263523, -0.293893],
                          [-0.068041, -0.272166, -0.89588]]

    boxes = box_list.BoxList(tf.constant(boxes))
    anchors = box_list.BoxList(tf.constant(anchors))
    coder = square_box_coder.SquareBoxCoder(scale_factors=scale_factors)
    rel_codes = coder.encode(boxes, anchors)
    with self.test_session() as sess:
      (rel_codes_out,) = sess.run([rel_codes])
      self.assertAllClose(rel_codes_out, expected_rel_codes) 
Example #16
Source File: square_box_coder_test.py    From Traffic-Rule-Violation-Detection-System with MIT License 5 votes vote down vote up
def test_correct_boxes_with_non_default_scale(self):
    anchors = [[15.0, 12.0, 30.0, 18.0], [0.1, 0.0, 0.7, 0.9]]
    rel_codes = [[-1., -1.25, -1.62186], [-0.166667, -0.666667, -2.772588]]
    scale_factors = [2, 3, 4]
    expected_boxes = [[14.594306, 7.884875, 20.918861, 14.209432],
                      [0.155051, 0.102989, 0.522474, 0.470412]]
    anchors = box_list.BoxList(tf.constant(anchors))
    coder = square_box_coder.SquareBoxCoder(scale_factors=scale_factors)
    boxes = coder.decode(rel_codes, anchors)
    with self.test_session() as sess:
      (boxes_out,) = sess.run([boxes.get()])
      self.assertAllClose(boxes_out, expected_boxes) 
Example #17
Source File: square_box_coder_test.py    From yolo_v2 with Apache License 2.0 5 votes vote down vote up
def test_correct_boxes_with_non_default_scale(self):
    anchors = [[15.0, 12.0, 30.0, 18.0], [0.1, 0.0, 0.7, 0.9]]
    rel_codes = [[-1., -1.25, -1.62186], [-0.166667, -0.666667, -2.772588]]
    scale_factors = [2, 3, 4]
    expected_boxes = [[14.594306, 7.884875, 20.918861, 14.209432],
                      [0.155051, 0.102989, 0.522474, 0.470412]]
    anchors = box_list.BoxList(tf.constant(anchors))
    coder = square_box_coder.SquareBoxCoder(scale_factors=scale_factors)
    boxes = coder.decode(rel_codes, anchors)
    with self.test_session() as sess:
      (boxes_out,) = sess.run([boxes.get()])
      self.assertAllClose(boxes_out, expected_boxes) 
Example #18
Source File: square_box_coder_test.py    From yolo_v2 with Apache License 2.0 5 votes vote down vote up
def test_correct_boxes_with_default_scale(self):
    anchors = [[15.0, 12.0, 30.0, 18.0], [0.1, 0.0, 0.7, 0.9]]
    rel_codes = [[-0.5, -0.416666, -0.405465],
                 [-0.083333, -0.222222, -0.693147]]
    scale_factors = None
    expected_boxes = [[14.594306, 7.884875, 20.918861, 14.209432],
                      [0.155051, 0.102989, 0.522474, 0.470412]]
    anchors = box_list.BoxList(tf.constant(anchors))
    coder = square_box_coder.SquareBoxCoder(scale_factors=scale_factors)
    boxes = coder.decode(rel_codes, anchors)
    with self.test_session() as sess:
      (boxes_out,) = sess.run([boxes.get()])
      self.assertAllClose(boxes_out, expected_boxes) 
Example #19
Source File: square_box_coder_test.py    From yolo_v2 with Apache License 2.0 5 votes vote down vote up
def test_correct_relative_codes_with_small_width(self):
    boxes = [[10.0, 10.0, 10.0000001, 20.0]]
    anchors = [[15.0, 12.0, 30.0, 18.0]]
    scale_factors = None
    expected_rel_codes = [[-1.317616, 0., -20.670586]]
    boxes = box_list.BoxList(tf.constant(boxes))
    anchors = box_list.BoxList(tf.constant(anchors))
    coder = square_box_coder.SquareBoxCoder(scale_factors=scale_factors)
    rel_codes = coder.encode(boxes, anchors)
    with self.test_session() as sess:
      (rel_codes_out,) = sess.run([rel_codes])
      self.assertAllClose(rel_codes_out, expected_rel_codes) 
Example #20
Source File: square_box_coder_test.py    From yolo_v2 with Apache License 2.0 5 votes vote down vote up
def test_correct_relative_codes_with_non_default_scale(self):
    boxes = [[10.0, 10.0, 20.0, 15.0], [0.2, 0.1, 0.5, 0.4]]
    anchors = [[15.0, 12.0, 30.0, 18.0], [0.1, 0.0, 0.7, 0.9]]
    scale_factors = [2, 3, 4]
    expected_rel_codes = [[-1.581139, -0.790569, -1.175573],
                          [-0.136083, -0.816497, -3.583519]]
    boxes = box_list.BoxList(tf.constant(boxes))
    anchors = box_list.BoxList(tf.constant(anchors))
    coder = square_box_coder.SquareBoxCoder(scale_factors=scale_factors)
    rel_codes = coder.encode(boxes, anchors)
    with self.test_session() as sess:
      (rel_codes_out,) = sess.run([rel_codes])
      self.assertAllClose(rel_codes_out, expected_rel_codes) 
Example #21
Source File: square_box_coder_test.py    From yolo_v2 with Apache License 2.0 5 votes vote down vote up
def test_correct_relative_codes_with_default_scale(self):
    boxes = [[10.0, 10.0, 20.0, 15.0], [0.2, 0.1, 0.5, 0.4]]
    anchors = [[15.0, 12.0, 30.0, 18.0], [0.1, 0.0, 0.7, 0.9]]
    scale_factors = None
    expected_rel_codes = [[-0.790569, -0.263523, -0.293893],
                          [-0.068041, -0.272166, -0.89588]]

    boxes = box_list.BoxList(tf.constant(boxes))
    anchors = box_list.BoxList(tf.constant(anchors))
    coder = square_box_coder.SquareBoxCoder(scale_factors=scale_factors)
    rel_codes = coder.encode(boxes, anchors)
    with self.test_session() as sess:
      (rel_codes_out,) = sess.run([rel_codes])
      self.assertAllClose(rel_codes_out, expected_rel_codes) 
Example #22
Source File: box_coder_builder.py    From HereIsWally with MIT License 5 votes vote down vote up
def build(box_coder_config):
  """Builds a box coder object based on the box coder config.

  Args:
    box_coder_config: A box_coder.proto object containing the config for the
      desired box coder.

  Returns:
    BoxCoder based on the config.

  Raises:
    ValueError: On empty box coder proto.
  """
  if not isinstance(box_coder_config, box_coder_pb2.BoxCoder):
    raise ValueError('box_coder_config not of type box_coder_pb2.BoxCoder.')

  if box_coder_config.WhichOneof('box_coder_oneof') == 'faster_rcnn_box_coder':
    return faster_rcnn_box_coder.FasterRcnnBoxCoder(scale_factors=[
        box_coder_config.faster_rcnn_box_coder.y_scale,
        box_coder_config.faster_rcnn_box_coder.x_scale,
        box_coder_config.faster_rcnn_box_coder.height_scale,
        box_coder_config.faster_rcnn_box_coder.width_scale
    ])
  if (box_coder_config.WhichOneof('box_coder_oneof') ==
      'mean_stddev_box_coder'):
    return mean_stddev_box_coder.MeanStddevBoxCoder()
  if box_coder_config.WhichOneof('box_coder_oneof') == 'square_box_coder':
    return square_box_coder.SquareBoxCoder(scale_factors=[
        box_coder_config.square_box_coder.y_scale,
        box_coder_config.square_box_coder.x_scale,
        box_coder_config.square_box_coder.length_scale
    ])
  raise ValueError('Empty box coder.') 
Example #23
Source File: box_coder_builder_test.py    From HereIsWally with MIT License 5 votes vote down vote up
def test_build_square_box_coder_with_non_default_parameters(self):
    box_coder_text_proto = """
      square_box_coder {
        y_scale: 6.0
        x_scale: 3.0
        length_scale: 7.0
      }
    """
    box_coder_proto = box_coder_pb2.BoxCoder()
    text_format.Merge(box_coder_text_proto, box_coder_proto)
    box_coder_object = box_coder_builder.build(box_coder_proto)
    self.assertTrue(
        isinstance(box_coder_object, square_box_coder.SquareBoxCoder))
    self.assertEqual(box_coder_object._scale_factors, [6.0, 3.0, 7.0]) 
Example #24
Source File: square_box_coder_test.py    From HereIsWally with MIT License 5 votes vote down vote up
def test_correct_boxes_with_non_default_scale(self):
    anchors = [[15.0, 12.0, 30.0, 18.0], [0.1, 0.0, 0.7, 0.9]]
    rel_codes = [[-1., -1.25, -1.62186], [-0.166667, -0.666667, -2.772588]]
    scale_factors = [2, 3, 4]
    expected_boxes = [[14.594306, 7.884875, 20.918861, 14.209432],
                      [0.155051, 0.102989, 0.522474, 0.470412]]
    anchors = box_list.BoxList(tf.constant(anchors))
    coder = square_box_coder.SquareBoxCoder(scale_factors=scale_factors)
    boxes = coder.decode(rel_codes, anchors)
    with self.test_session() as sess:
      (boxes_out,) = sess.run([boxes.get()])
      self.assertAllClose(boxes_out, expected_boxes) 
Example #25
Source File: square_box_coder_test.py    From HereIsWally with MIT License 5 votes vote down vote up
def test_correct_boxes_with_default_scale(self):
    anchors = [[15.0, 12.0, 30.0, 18.0], [0.1, 0.0, 0.7, 0.9]]
    rel_codes = [[-0.5, -0.416666, -0.405465],
                 [-0.083333, -0.222222, -0.693147]]
    scale_factors = None
    expected_boxes = [[14.594306, 7.884875, 20.918861, 14.209432],
                      [0.155051, 0.102989, 0.522474, 0.470412]]
    anchors = box_list.BoxList(tf.constant(anchors))
    coder = square_box_coder.SquareBoxCoder(scale_factors=scale_factors)
    boxes = coder.decode(rel_codes, anchors)
    with self.test_session() as sess:
      (boxes_out,) = sess.run([boxes.get()])
      self.assertAllClose(boxes_out, expected_boxes) 
Example #26
Source File: square_box_coder_test.py    From HereIsWally with MIT License 5 votes vote down vote up
def test_correct_relative_codes_with_small_width(self):
    boxes = [[10.0, 10.0, 10.0000001, 20.0]]
    anchors = [[15.0, 12.0, 30.0, 18.0]]
    scale_factors = None
    expected_rel_codes = [[-1.317616, 0., -20.670586]]
    boxes = box_list.BoxList(tf.constant(boxes))
    anchors = box_list.BoxList(tf.constant(anchors))
    coder = square_box_coder.SquareBoxCoder(scale_factors=scale_factors)
    rel_codes = coder.encode(boxes, anchors)
    with self.test_session() as sess:
      (rel_codes_out,) = sess.run([rel_codes])
      self.assertAllClose(rel_codes_out, expected_rel_codes) 
Example #27
Source File: square_box_coder_test.py    From HereIsWally with MIT License 5 votes vote down vote up
def test_correct_relative_codes_with_non_default_scale(self):
    boxes = [[10.0, 10.0, 20.0, 15.0], [0.2, 0.1, 0.5, 0.4]]
    anchors = [[15.0, 12.0, 30.0, 18.0], [0.1, 0.0, 0.7, 0.9]]
    scale_factors = [2, 3, 4]
    expected_rel_codes = [[-1.581139, -0.790569, -1.175573],
                          [-0.136083, -0.816497, -3.583519]]
    boxes = box_list.BoxList(tf.constant(boxes))
    anchors = box_list.BoxList(tf.constant(anchors))
    coder = square_box_coder.SquareBoxCoder(scale_factors=scale_factors)
    rel_codes = coder.encode(boxes, anchors)
    with self.test_session() as sess:
      (rel_codes_out,) = sess.run([rel_codes])
      self.assertAllClose(rel_codes_out, expected_rel_codes) 
Example #28
Source File: square_box_coder_test.py    From HereIsWally with MIT License 5 votes vote down vote up
def test_correct_relative_codes_with_default_scale(self):
    boxes = [[10.0, 10.0, 20.0, 15.0], [0.2, 0.1, 0.5, 0.4]]
    anchors = [[15.0, 12.0, 30.0, 18.0], [0.1, 0.0, 0.7, 0.9]]
    scale_factors = None
    expected_rel_codes = [[-0.790569, -0.263523, -0.293893],
                          [-0.068041, -0.272166, -0.89588]]

    boxes = box_list.BoxList(tf.constant(boxes))
    anchors = box_list.BoxList(tf.constant(anchors))
    coder = square_box_coder.SquareBoxCoder(scale_factors=scale_factors)
    rel_codes = coder.encode(boxes, anchors)
    with self.test_session() as sess:
      (rel_codes_out,) = sess.run([rel_codes])
      self.assertAllClose(rel_codes_out, expected_rel_codes) 
Example #29
Source File: box_coder_builder.py    From garbage-object-detection-tensorflow with MIT License 5 votes vote down vote up
def build(box_coder_config):
  """Builds a box coder object based on the box coder config.

  Args:
    box_coder_config: A box_coder.proto object containing the config for the
      desired box coder.

  Returns:
    BoxCoder based on the config.

  Raises:
    ValueError: On empty box coder proto.
  """
  if not isinstance(box_coder_config, box_coder_pb2.BoxCoder):
    raise ValueError('box_coder_config not of type box_coder_pb2.BoxCoder.')

  if box_coder_config.WhichOneof('box_coder_oneof') == 'faster_rcnn_box_coder':
    return faster_rcnn_box_coder.FasterRcnnBoxCoder(scale_factors=[
        box_coder_config.faster_rcnn_box_coder.y_scale,
        box_coder_config.faster_rcnn_box_coder.x_scale,
        box_coder_config.faster_rcnn_box_coder.height_scale,
        box_coder_config.faster_rcnn_box_coder.width_scale
    ])
  if (box_coder_config.WhichOneof('box_coder_oneof') ==
      'mean_stddev_box_coder'):
    return mean_stddev_box_coder.MeanStddevBoxCoder()
  if box_coder_config.WhichOneof('box_coder_oneof') == 'square_box_coder':
    return square_box_coder.SquareBoxCoder(scale_factors=[
        box_coder_config.square_box_coder.y_scale,
        box_coder_config.square_box_coder.x_scale,
        box_coder_config.square_box_coder.length_scale
    ])
  raise ValueError('Empty box coder.') 
Example #30
Source File: square_box_coder_test.py    From DOTA_models with Apache License 2.0 5 votes vote down vote up
def test_correct_relative_codes_with_default_scale(self):
    boxes = [[10.0, 10.0, 20.0, 15.0], [0.2, 0.1, 0.5, 0.4]]
    anchors = [[15.0, 12.0, 30.0, 18.0], [0.1, 0.0, 0.7, 0.9]]
    scale_factors = None
    expected_rel_codes = [[-0.790569, -0.263523, -0.293893],
                          [-0.068041, -0.272166, -0.89588]]

    boxes = box_list.BoxList(tf.constant(boxes))
    anchors = box_list.BoxList(tf.constant(anchors))
    coder = square_box_coder.SquareBoxCoder(scale_factors=scale_factors)
    rel_codes = coder.encode(boxes, anchors)
    with self.test_session() as sess:
      (rel_codes_out,) = sess.run([rel_codes])
      self.assertAllClose(rel_codes_out, expected_rel_codes)