Beispiel #1
0
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
Beispiel #2
0
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
Beispiel #4
0
                       '--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)
Beispiel #5
0
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 = []
Beispiel #8
0
    '--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)
Beispiel #9
0
        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'):