Ejemplo n.º 1
0
            np.asarray([db.load_imgs(img) for img in imgs]),
            np.asarray([db.get_groundtruth(gt, 255.0) for gt in gts]))


output_file = "output/out{}_{}_{}.png"
head = ['VIDNAME', 'AGE', 'pEPs', 'pCEPs', 'MSSSIM', 'PSNR', 'CQM']
report = CSVLogging("report{}.csv".format(options.method), head)
init_weight = model.get_model().get_weights()
try:
    for id in range(db.max_video):
        print("VIDEO : {}, {}".format(id, db.videos[id]["input"][-15:]))
        model.get_model().set_weights(init_weight)
        model.get_model().fit_generator(
            generator=get_generator_batched_for_id(id, options.ratio),
            samples_per_epoch=min(
                int(db.get_count_on_video(id) * options.ratio),
                options.max_length),
            nb_epoch=max_epoch,
            callbacks=[])
        if db.get_count_on_video(id) * (
                1.0 - options.ratio) > 0 and options.max_length > 0:
            max_test = db.get_count_on_video(id) - options.max_length
            outputs = model.get_model().predict_generator(
                get_generator_test_batched_for_id(id, options.ratio), 5)
            gt = db.get_groundtruth_from_id(id)
            gt = gt.reshape(list(gt.shape) + [1])
            acc = []
            for i, output in enumerate(outputs):
                cv2.imwrite(
                    output_file.format(options.method, id, i),
                    output.reshape([model.output_size, model.output_size]) *
Ejemplo n.º 2
0
ratio = 0.5


@GeneratorLoop
def get_generator_test_batched_for_id(id):
    max_test = db.get_count_on_video(id) - options.max_length
    for batch in chunks(db.get_datas_on_one(id), options.batch_size):
        imgs, gts = zip(*batch)
        yield model.preprocess(
            np.asarray([db.load_imgs(img) for img in imgs]),
            np.asarray([db.get_groundtruth(gt, 255.0) for gt in gts]))


if options.weight_file is None:
    model.get_model().fit_generator(
        generator=get_generator_batched_for_id(options.videoid),
        samples_per_epoch=int(db.get_count_on_video(options.videoid) * ratio),
        nb_epoch=max_epoch)
outputs = model.get_model().predict_generator(
    get_generator_batched_for_id(options.videoid),
    int(db.get_count_on_video(options.videoid) * (1 - ratio)))
gt = db.get_groundtruth_from_id(options.videoid)
gt = gt.reshape(list(gt.shape) + [1])
acc = []
for i, output in enumerate(outputs):
    cv2.imwrite(output_file.format(options.method, i),
                output.reshape([model.output_size, model.output_size]) * 255.)
    acc += Evaluate(gt, output)

print(acc)