def test_prior_boxes(self,
        original_prior_boxes_file='test_resources/prior_boxes_ssd300.pkl'):
     prior_box_creator = PriorBoxCreator(self.model)
     self.prior_boxes = prior_box_creator.create_boxes()
     original_prior_boxes = pickle.load(
                     open(original_prior_boxes_file, 'rb'))
     prior_box_difference = self.prior_boxes - original_prior_boxes[:, :4]
     print('shape {}, max value {}, min value {}'.format(
                                     prior_box_difference.shape,
                                     prior_box_difference.max(),
                                     prior_box_difference.min()))
 def __init__(self,
              model,
              test_keys,
              prior_boxes=None,
              dataset_name='VOC2007'):
     self.model = model
     box_creator = PriorBoxCreator(self.model)
     self.prior_boxes = box_creator.create_boxes()
     self.class_names = get_class_names(dataset_name)
     self.num_classes = len(self.class_names)
     self.colors = plt.cm.hsv(np.linspace(0, 1, self.num_classes)).tolist()
     self.colors = np.asarray(self.colors) * 255
     self.arg_to_class = dict(
         zip(list(range(self.num_classes)), self.class_names))
     self.overlap_threshold = .5
     self.background_id = 0
     self.test_keys = test_keys
     self.root_prefix = '../datasets/VOCdevkit/VOC2007/'
     self.ground_data_prefix = self.root_prefix + 'Annotations/'
     self.image_prefix = self.root_prefix + 'JPEGImages/'
     self.image_size = (300, 300)
     self.ground_truth_manager = DataLoader(dataset_name)
     self.ground_truth_data = self.ground_truth_manager.get_data()
from image_generator import ImageGenerator
from models import SSD300
from utils.prior_box_creator import PriorBoxCreator
from utils.prior_box_assigner import PriorBoxAssigner
from utils.box_transformer import BoxTransformer
from utils.XML_parser import XMLParser
from utils.utils import split_data
from utils.utils import read_image, resize_image
import numpy as np
import matplotlib.pyplot as plt

image_shape = (300, 300, 3)
model = SSD300(image_shape)
box_creator = PriorBoxCreator(model)
prior_boxes = box_creator.create_boxes()

layer_scale, box_arg = 0, 780
box_coordinates = prior_boxes[layer_scale][box_arg, :, :]
image_path = '../images/'
image_key = '007040.jpg'
box_creator.draw_boxes(image_path + image_key, box_coordinates)

data_path = '../datasets/VOCdevkit/VOC2007/'
ground_truths = XMLParser(data_path + 'Annotations/').get_data()
prior_box_manager = PriorBoxAssigner(prior_boxes, ground_truths)
assigned_boxes = prior_box_manager.assign_boxes()
prior_box_manager.draw_assigned_boxes(image_path, image_shape[0:2], image_key)
batch_size = 7
train_keys, validation_keys = split_data(assigned_boxes, training_ratio=.8)

assigned_image_generator = ImageGenerator(assigned_boxes, batch_size,