From fba45da1fe4e5cbb4262972b52f9b1bafb9bccca Mon Sep 17 00:00:00 2001 From: merschie <f-mersch@web.de> Date: Thu, 26 Oct 2023 16:11:47 +0200 Subject: [PATCH] better formatting --- src/webserver.py | 42 ++++++++++++++++++++++++++---------------- 1 file changed, 26 insertions(+), 16 deletions(-) diff --git a/src/webserver.py b/src/webserver.py index 880914c..a4186cc 100644 --- a/src/webserver.py +++ b/src/webserver.py @@ -1,19 +1,26 @@ +"""Schnittstelle zwischen SimpleHTR und der Hauptanwendung. Erstellt einen + Webserver, der Anfragen entgegennimmt und die Vorhersage an SimpleHTR weitergibt. +""" + + +import base64 +import json +import numpy as np from flask import Flask, request, jsonify + import main as htr import model as htr_model import dataloader_iam as htr_data_loader import preprocessor as htr_preprocessor -import numpy as np -import base64 -import json -app = Flask(__name__) -model_name = htr_model.Model(htr.char_list_from_file(), htr_model.DecoderType.LexiconSearch, must_restore=True) -model_name.setup_ctc -char_list = htr.char_list_from_file() -chars = ''.join(char_list) +app = Flask(__name__) + +model_name = htr_model.Model(htr.char_list_from_file(), + htr_model.DecoderType.LexiconSearch, + must_restore=True) +model_name.setup_ctc() def image_to_base64(processed_image): @@ -51,25 +58,28 @@ def base64_to_image(image_data): """ image=base64.b64decode(image_data.encode('utf-8')) image_array = np.frombuffer(image, dtype=np.uint64) - h=image_array[-2] - w=image_array[-1] + hight=image_array[-2] + width=image_array[-1] image_array = image_array[:-2] - image_array = image_array.reshape((h, w)) + image_array = image_array.reshape((hight, width)) return image_array @app.route('/predictName', methods=['POST']) -def predictName(): - """Sagt den Namen auf einem Bild vorher. Bekommt als Daten per json ein Bild und eine Namensliste. Das Bild muss schwarz weiß sein und base64-encoded sein. Die Namensliste muss ein String sein, der mit Leerzeichen getrennt alle möglichen Namen enthält. +def predict_name(): + """Sagt den Namen auf einem Bild vorher. Bekommt als Daten per json + ein Bild und eine Namensliste. Das Bild muss schwarz weiß sein und + base64-encoded sein. Die Namensliste muss ein String sein, der mit + Leerzeichen getrennt alle möglichen Namen enthält. Returns: - json: Im json Format wird das erkannte Wort und das zur Vorhersage genutztes Bild als base64-encoded-String zurückgegeben. + json: Im json Format wird das erkannte Wort und das zur + Vorhersage genutztes Bild als base64-encoded-String zurückgegeben. """ image_data=json.loads(request.data)['image'] - image_array=base64_to_image(image_data) - + preprocessor = htr_preprocessor.Preprocessor(htr.get_img_size(), dynamic_width=True, padding=16) processed_image = preprocessor.process_img(image_array) batch = htr_data_loader.Batch([processed_image], None, 1) -- GitLab