def test_train_yolo_framework(setup_model_config, setup_weights_file, setup_dataset_folder, setup_image_and_its_boxes): model_config = setup_model_config pretrained_feature_file, weight_file = setup_weights_file img_folder, ann_folder = setup_dataset_folder # 1. Construct the model yolo = create_yolo(model_config['architecture'], model_config['labels'], model_config['input_size'], model_config['anchors'], pretrained_feature_file) # 2. warmup training yolo.train(img_folder, ann_folder, 2, weight_file, 2, False, 1e-4, 10, 1, 2, img_folder, ann_folder) # 3. Load the warmup trained weights yolo.load_weights(weight_file) # 4. actual training yolo.train(img_folder, ann_folder, 12, weight_file, 2, False, 1e-4, 10, 1, 0, img_folder, ann_folder) # 5. Load training image & predict objects image, true_boxes = setup_image_and_its_boxes boxes, probs = yolo.predict(image) boxes = to_centroid(boxes) assert len(boxes) == 2 assert len(probs) == 2 assert np.allclose(np.argmax(probs, axis=1), [0, 3]) for box, true_box in zip(boxes, true_boxes): iou = centroid_box_iou(box, true_box) assert iou > 0.4
def initYolo(): # laddar in modellen och Konfigurerar yolo. with open(DEFAULT_CONFIG_FILE) as config_buffer: config = json.loads(config_buffer.read()) if config['train']['is_only_detect']: labels = [''] else: if config['model']['labels']: labels = config['model']['labels'] else: labels = get_object_labels(config['train']['train_annot_folder']) print(labels) # 2. create yolo instance & predict yolo = create_yolo(config['model']['architecture'], labels, config['model']['input_size'], config['model']['anchors']) yolo.load_weights(DEFAULT_WEIGHT_FILE) return yolo,labels
def test_predict(setup_image_and_its_boxes, setup_outputs, setup_config): # 1. Given image, true_boxes = setup_image_and_its_boxes model_config = setup_config desired_boxes, desired_probs = setup_outputs # 2. When run # 1. Construct the model yolo = create_yolo(model_config['architecture'], model_config['labels'], model_config['input_size'], model_config['anchors']) yolo.load_weights(os.path.join(TEST_SAMPLE_DIR, "mobile_288_weights.h5")) boxes, probs = yolo.predict(image) boxes = to_centroid(boxes) assert len(boxes) == 2 assert len(probs) == 2 for box, true_box in zip(boxes, true_boxes): iou = centroid_box_iou(box, true_box) assert iou > 0.5
'--weights', default=DEFAULT_WEIGHT_FILE, help='trained weight files') if __name__ == '__main__': # 1. extract arguments args = argparser.parse_args() with open(args.conf) as config_buffer: config = json.loads(config_buffer.read()) # 2. create yolo instance & predict yolo = create_yolo(config['model']['architecture'], config['model']['labels'], config['model']['input_size'], config['model']['anchors']) yolo.load_weights(args.weights) # 3. read image write_dname = "detected" if not os.path.exists(write_dname): os.makedirs(write_dname) annotations = parse_annotation( config['train']['valid_annot_folder'], config['train']['valid_image_folder'], config['model']['labels'], is_only_detect=config['train']['is_only_detect']) n_true_positives = 0 n_truth = 0 n_pred = 0 for i in range(len(annotations)): img_path = annotations.fname(i)
from yolo.backend.utils.box import draw_scaled_boxes import spotipy.util as util DEFAULT_CONFIG_FILE = "./image_det/config.json" DEFAULT_WEIGHT_FILE = "./image_det/model.h5" config_buffer = open(DEFAULT_CONFIG_FILE, 'r') config = json.loads(config_buffer.read()) playlist = [] postion = [] host_name_list = [] # 2. create yolo instance & predict yolo = create_yolo(config['model']['architecture'], config['model']['labels'], config['model']['input_size'], config['model']['anchors']) yolo.load_weights(DEFAULT_WEIGHT_FILE) hostname = socket.gethostname() def Connect_to_token(): #ansluter till spotify token global spotifyObject_1, host_name_list #kollar om programmet har använts på användarens dator förut for i in range(0, len(config["spotify_config"]["Devices"])): host_name_list.append( config["spotify_config"]["Devices"][i]["devuce-name"]) if hostname in host_name_list: config["spotify_config"]["USERNAME"] = config["spotify_config"][ "Devices"][host_name_list.index(hostname)]["USERNAME"] else:
from jetcam.utils import bgr8_to_jpeg from jetcam.csi_camera import CSICamera import argparse import json import cv2 import numpy as np from yolo.frontend import create_yolo from yolo.backend.utils.box import draw_scaled_boxes from yolo.backend.utils.annotation import parse_annotation from yolo.backend.utils.eval.fscore import count_true_positives, calc_score from pascal_voc_writer import Writer from shutil import copyfile import os import yolo import time DEFAULT_CONFIG_FILE = os.path.join(yolo.PROJECT_ROOT, "svhn", "config.json") DEFAULT_WEIGHT_FILE = os.path.join(yolo.PROJECT_ROOT, "svhn", "weights.h5") DEFAULT_THRESHOLD = 0.3 with open('turn4/config.json') as config_buffer: config = json.loads(config_buffer.read()) # 2. create yolo instance & predict yolo = create_yolo(config['model']['architecture'], config['model']['labels'], config['model']['input_size'], config['model']['anchors']) yolo.load_weights('model.h5')
affinity='euclidean', linkage='ward') DEFAULT_CONFIG_FILE = os.path.join(yolo.PROJECT_ROOT, "svhn", "config.json") DEFAULT_WEIGHT_FILE = os.path.join(yolo.PROJECT_ROOT, "svhn", "weights.h5") DEFAULT_THRESHOLD = 0.3 threshold = DEFAULT_THRESHOLD config_file = DEFAULT_CONFIG_FILE weights_file = DEFAULT_WEIGHT_FILE with open(config_file) as config_buffer: config = json.loads(config_buffer.read()) # 2. create yolo instance & predict yolo = create_yolo(config['model']['architecture'], config['model']['labels'], config['model']['input_size'], config['model']['anchors']) yolo.load_weights(weights_file) def get_digits_boxes(img, show_img=False, save_img=False): img_path = img_path.replace('\\', '/') # img_path = img_path.replace('\','/') image = cv2.imread(img_path) im_size = np.shape(image) boxes, probs = yolo.predict(image, float(threshold)) labels = np.argmax(probs, axis=1) if len(probs) > 0 else [] probs = np.max(probs, axis=1) if len(probs) > 0 else [] # 4. save detection result image = draw_scaled_boxes(image, boxes, probs, config['model']['labels']) centers = []
'--weights', default=DEFAULT_WEIGHT_FILE, help='trained weight files') if __name__ == '__main__': # 1. extract arguments args = argparser.parse_args() with open(args.conf) as config_buffer: config = json.loads(config_buffer.read()) # 2. create yolo instance & predict yolo = create_yolo(config['model']['architecture'], config['model']['labels'], config['model']['input_size'], config['model']['anchors']) yolo.load_weights(args.weights) # 3. read image write_dname = "detected" if not os.path.exists(write_dname): os.makedirs(write_dname) annotations = parse_annotation(config['train']['valid_annot_folder'], config['train']['valid_image_folder'], config['model']['labels'], is_only_detect=config['train']['is_only_detect']) n_true_positives = 0 n_truth = 0 n_pred = 0 for i in range(len(annotations)): img_path = annotations.fname(i) img_fname = os.path.basename(img_path)
os.path.join('datasets', evaluation_object, 'images_test', filename), 224, 224) writer.addObject(label_list[labels[0]], boxes[0][0], boxes[0][1], boxes[0][2], boxes[0][3]) name = filename.split('.') writer.save('evaluation/ann/' + name[0] + '.xml') if __name__ == "__main__": # 2. create yolo instance & predict yolo = create_yolo(config['model']['architecture'], config['model']['labels'], config['model']['input_size'], config['model']['anchors']) # yolo.load_weights(DEFAULT_WEIGHT_FILE) yolo.load_weights("./weights.h5") # 3. read image write_dname = "evaluation/detected" if not os.path.exists(write_dname): os.makedirs(write_dname) annotations = parse_annotation( config['train']['valid_annot_folder'], config['train']['valid_image_folder'], config['model']['labels'], is_only_detect=config['train']['is_only_detect']) # n_true_positives = 0 # n_truth = 0 # n_pred = 0 # for i in range(len(annotations)): for filename in os.listdir('datasets/' + evaluation_object + '/images_test'):