def test_invalid_box_specs(self): # not all box specs are pairs box_specs_list = [[(1.0, 1.0), (2.0, 1.0), (1.0, 0.5)], [(1.0, 1.0), (1.0, 0.5, .3)]] with self.assertRaises(ValueError): ag.MultipleGridAnchorGenerator(box_specs_list) # box_specs_list is not a list of lists box_specs_list = [(1.0, 1.0), (2.0, 1.0), (1.0, 0.5)] with self.assertRaises(ValueError): ag.MultipleGridAnchorGenerator(box_specs_list)
def graph_fn(height, width): box_specs_list = [[(1.0, 1.0)]] anchor_generator = ag.MultipleGridAnchorGenerator( box_specs_list, base_anchor_size=tf.constant([1, 1], dtype=tf.float32)) anchors_list = anchor_generator.generate(feature_map_shape_list=[(height, width)]) return anchors_list[0].get()
def graph_fn(): box_specs_list = [[(0.5, 1.0), (1.0, 1.0), (2.0, 1.0)]] anchor_generator = ag.MultipleGridAnchorGenerator( box_specs_list, base_anchor_size=tf.constant([10, 10], dtype=tf.float32), anchor_strides=[(19, 19)], anchor_offsets=[(0, 0)]) anchors_list = anchor_generator.generate(feature_map_shape_list=[(2, 2)]) return anchors_list[0].get()
def graph_fn(): box_specs_list = [[(.5, .25), (1.0, .25), (2.0, .25), (.5, 1.0), (1.0, 1.0), (2.0, 1.0), (.5, 4.0), (1.0, 4.0), (2.0, 4.0)]] anchor_generator = ag.MultipleGridAnchorGenerator( box_specs_list, base_anchor_size=tf.constant([256, 256], dtype=tf.float32), anchor_strides=[(16, 16)], anchor_offsets=[(7, -3)]) anchors_list = anchor_generator.generate(feature_map_shape_list=[(1, 1)]) return anchors_list[0].get()
def graph_fn(): box_specs_list = [[(1.0, 1.0), (2.0, 1.0), (1.0, 0.5)], [(1.0, 1.0), (1.0, 0.5)]] clip_window = tf.constant([0, 0, 1, 1], dtype=tf.float32) anchor_generator = ag.MultipleGridAnchorGenerator( box_specs_list, base_anchor_size=tf.constant([1.0, 1.0], dtype=tf.float32), clip_window=clip_window) anchors_list = anchor_generator.generate(feature_map_shape_list=[(4, 4), ( 2, 2)]) return [anchors.get() for anchors in anchors_list]
def graph_fn(): box_specs_list = [[(1.0, 1.0), (2.0, 1.0), (1.0, 0.5)], [(1.0, 1.0), (1.0, 0.5)]] anchor_generator = ag.MultipleGridAnchorGenerator( box_specs_list, base_anchor_size=tf.constant([1.0, 1.0], dtype=tf.float32), anchor_strides=[(.25, .25), (.5, .5)], anchor_offsets=[(.125, .125), (.25, .25)]) anchors_list = anchor_generator.generate(feature_map_shape_list=[(4, 4), ( 2, 2)]) return [anchors.get() for anchors in anchors_list]
def graph_fn(): box_specs_list = [[(1.0, 1.0)]] anchor_generator = ag.MultipleGridAnchorGenerator( box_specs_list, base_anchor_size=tf.constant([1, 1], dtype=tf.float32)) anchors_list = anchor_generator.generate( feature_map_shape_list=[(tf.constant(1, dtype=tf.int32), tf.constant( 2, dtype=tf.int32))], im_height=320, im_width=640) return anchors_list[0].get()
def test_invalid_generate_arguments(self): box_specs_list = [[(1.0, 1.0), (2.0, 1.0), (1.0, 0.5)], [(1.0, 1.0), (1.0, 0.5)]] # incompatible lengths with box_specs_list with self.assertRaises(ValueError): anchor_generator = ag.MultipleGridAnchorGenerator( box_specs_list, base_anchor_size=tf.constant([1.0, 1.0], dtype=tf.float32), anchor_strides=[(.25, .25)], anchor_offsets=[(.125, .125), (.25, .25)]) anchor_generator.generate(feature_map_shape_list=[(4, 4), (2, 2)]) with self.assertRaises(ValueError): anchor_generator = ag.MultipleGridAnchorGenerator( box_specs_list, base_anchor_size=tf.constant([1.0, 1.0], dtype=tf.float32), anchor_strides=[(.25, .25), (.5, .5)], anchor_offsets=[(.125, .125), (.25, .25)]) anchor_generator.generate(feature_map_shape_list=[(4, 4), (2, 2), (1, 1)]) with self.assertRaises(ValueError): anchor_generator = ag.MultipleGridAnchorGenerator( box_specs_list, base_anchor_size=tf.constant([1.0, 1.0], dtype=tf.float32), anchor_strides=[(.5, .5)], anchor_offsets=[(.25, .25)]) anchor_generator.generate(feature_map_shape_list=[(4, 4), (2, 2)]) # not pairs with self.assertRaises(ValueError): anchor_generator = ag.MultipleGridAnchorGenerator( box_specs_list, base_anchor_size=tf.constant([1.0, 1.0], dtype=tf.float32), anchor_strides=[(.25, .25), (.5, .5)], anchor_offsets=[(.125, .125), (.25, .25)]) anchor_generator.generate(feature_map_shape_list=[(4, 4, 4), (2, 2)]) with self.assertRaises(ValueError): anchor_generator = ag.MultipleGridAnchorGenerator( box_specs_list, base_anchor_size=tf.constant([1.0, 1.0], dtype=tf.float32), anchor_strides=[(.25, .25, .1), (.5, .5)], anchor_offsets=[(.125, .125), (.25, .25)]) anchor_generator.generate(feature_map_shape_list=[(4, 4), (2, 2)]) with self.assertRaises(ValueError): anchor_generator = ag.MultipleGridAnchorGenerator( box_specs_list, base_anchor_size=tf.constant([1.0, 1.0], dtype=tf.float32), anchor_strides=[(.25, .25), (.5, .5)], anchor_offsets=[(.125, .125), (.25, .25)]) anchor_generator.generate(feature_map_shape_list=[(4), (2, 2)])