Esempio n. 1
0
def main():
    parser = argparse.ArgumentParser()
    parser.add_argument("-e", "--expected_rois_file", type=str, required=True)
    parser.add_argument("-a", "--actual_rois_file", type=str, required=True)
    parser.add_argument("-i", "--images_folder", type=str, required=False)
    parser.add_argument("-o", "--result_file", type=str, required=False)
    args = parser.parse_args()

    expected_rois_file = args.expected_rois_file
    actual_rois_file = args.actual_rois_file
    images_folder = args.images_folder

    expected_metadata = proto_api.read_metadata(expected_rois_file)
    actual_metadata = proto_api.read_metadata(actual_rois_file)

    random.seed(1337)

    expected_dictionary = proto_api.create_metadata_dictionary(
        expected_metadata, True)
    actual_dictionary = proto_api.create_metadata_dictionary(
        actual_metadata, False)
    min_size = 25
    statistics_dict = get_model_statistics(expected_dictionary,
                                           actual_dictionary, images_folder,
                                           min_size)
    output_statistics(statistics_dict, args.result_file)
Esempio n. 2
0
def main():
    log_util.config(__file__)
    logger = logging.getLogger(__name__)
    # parse arguments
    args = sys.argv[1:]
    args = parse_args(args)
    # get metadata
    expected_metadata = meta.read_metadata(args.expected_rois_file)
    actual_metadata = meta.read_metadata(args.actual_rois_file)
    # calculate best thresholds
    best_thresholds = get_thresholds(
        meta.create_metadata_dictionary(expected_metadata, True),
        meta.create_metadata_dictionary(actual_metadata, True))
    io_utils.json_dump(best_thresholds, args.result_file)
Esempio n. 3
0
 def __evaluate_traffic_signs(self):
     resolutions = [self.resolution]
     score_threshold_per_class = dict([
         (class_label, self.lowest_score_threshold)
         for class_label in self.rois_labels.classes.keys()
     ])
     actual_metadata = predict_folder(
         self.model,
         self.images_folder,
         None,
         resolutions,
         self.rois_labels,
         score_threshold_per_class,
         draw_predictions=False,
         max_number_of_images=self.max_number_of_images,
         log_level=0)
     actual_dict = meta.create_metadata_dictionary(actual_metadata, True)
     for file_name in list(self.expected_dict.keys()):
         if file_name not in actual_dict:
             del self.expected_dict[file_name]
     statistics_dict = get_model_statistics(self.expected_dict, actual_dict,
                                            None, self.roi_min_side_size)
     self.logger.info(statistics_dict['Total'])
Esempio n. 4
0
 def __init__(self,
              generator,
              ground_truth_proto_file,
              train_proto_file,
              resolution=2592,
              max_number_of_images=100,
              roi_min_side_size=25,
              lowest_score_threshold=0.5):
     self.generator = generator
     self.ground_truth_proto_file = ground_truth_proto_file
     self.rois_labels = RoisLabels(train_proto_file)
     self.resolution = resolution
     self.lowest_score_threshold = lowest_score_threshold
     self.images_folder = os.path.dirname(
         os.path.abspath(ground_truth_proto_file))
     self.max_number_of_images = max_number_of_images
     self.logger = logging.getLogger(__name__)
     self.expected_metadata = meta.read_metadata(
         self.ground_truth_proto_file)
     self.expected_dict = meta.create_metadata_dictionary(
         self.expected_metadata, True)
     self.roi_min_side_size = roi_min_side_size
     self.logger = logging.getLogger(__name__)
     super().__init__()
Esempio n. 5
0
 def __get_rois_dict_from_file_name(self):
     roi_metadata = meta.read_metadata(self.rois_file_name)
     rois_dict = meta.create_metadata_dictionary(roi_metadata)
     return rois_dict