Beispiel #1
0
    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)
Beispiel #2
0
 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()
Beispiel #3
0
        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()
Beispiel #4
0
        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]
Beispiel #5
0
        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]
Beispiel #6
0
        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()
Beispiel #7
0
        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()
Beispiel #8
0
    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)])