from scipy.misc import imread,imshow import os from PIL import Image import PIL from model.img2seq import Img2SeqModel from model.utils.general import Config, run from model.utils.text import Vocab from model.utils.image import greyscale, crop_image, pad_image,predictsize ,\ downsample_image, TIMEOUT def interactive_shell(model): """Creates interactive shell to play with model """ model.logger.info(""" This is an interactive mode. To exit, enter 'exit'. Enter a path to a file input> data/images_test/0.png""") while True: img_path = input("input> ") if img_path == "exit": break if img_path[-3:] == "png": img = imread(img_path) elif img_path[-3:] == "pdf": # call magick to convert the pdf into a png file buckets = [ [240, 100], [320, 80], [400, 80], [400, 100], [480, 80], [480, 100], [560, 80], [560, 100], [640, 80], [640, 100], [720, 80], [720, 100], [720, 120], [720, 200], [800, 100], [800, 320], [1000, 200], [1000, 400], [1200, 200], [1600, 200], [1600, 1600] ] dir_output = "tmp/" name = img_path.split('/')[-1].split('.')[0] run("magick convert -density {} -quality {} {} {}".format(200, 100, img_path, dir_output+"{}.png".format(name)), TIMEOUT) img_path = dir_output + "{}.png".format(name) crop_image(img_path, img_path) pad_image(img_path, img_path, buckets=buckets) downsample_image(img_path, img_path, 2) img = imread(img_path) img = predictsize(img) im_converted = PIL.Image.fromarray(img) im_converted.show() img = greyscale(img) hyps = model.predict(img) with open("norm_formula_val.txt", "w") as f: f.write(hyps[0]) model.logger.info(hyps[0]) if __name__ == "__main__": # restore config and model dir_output = "results/full/" config_vocab = Config(dir_output + "vocab.json") config_model = Config(dir_output + "model.json") vocab = Vocab(config_vocab) model = Img2SeqModel(config_model, dir_output, vocab) model.build_pred() model.restore_session(dir_output + "model.weights4/test-model.ckpt") interactive_shell(model)