Spaces:
Runtime error
Runtime error
import os | |
os.system('pip install --upgrade --no-cache-dir gdown') | |
os.system('gdown -O ./model_ctw.pth 16qgtD4UOhp0q5e2RYXE1dvuTz_ylZMyb') | |
#os.system('unzip model_ctw.zip') | |
os.system('gdown -O ./workdir.zip 10HxLehcJMY9rLd_OyH40HmrySZItuNDt') | |
os.system('unzip workdir.zip') | |
os.system('pip install "git+https://github.com/philferriere/cocoapi.git#egg=pycocotools&subdirectory=PythonAPI"') | |
os.system('python setup.py build develop --user') | |
import cv2 | |
import pandas as pd | |
import gradio as gr | |
from det_demo import DetDemo | |
from maskrcnn_benchmark.config import cfg | |
from demo import get_model, preprocess, postprocess, load | |
from utils import Config, Logger, CharsetMapper | |
import torch | |
def infer(img): | |
filepath = './input.png' | |
img.save(filepath) | |
config = Config('configs/rec/train_abinet.yaml') | |
config.model_vision_checkpoint = None | |
model = get_model(config) | |
model = load(model, 'workdir/train-abinet/best-train-abinet.pth') | |
charset = CharsetMapper(filename=config.dataset_charset_path, max_length=config.dataset_max_length + 1) | |
cfg.merge_from_file('./configs/det/r50_baseline.yaml') | |
# manual override some options | |
cfg.merge_from_list(["MODEL.DEVICE", "cpu"]) | |
det_demo = DetDemo( | |
cfg, | |
min_image_size=800, | |
confidence_threshold=0.7, | |
output_polygon=True | |
) | |
image = cv2.imread(filepath) | |
print(image.shape) | |
result_polygons, result_masks, result_boxes = det_demo.run_on_opencv_image(image) | |
patchs = [image[box[1]:box[3], box[0]:box[2], :] for box in result_boxes] | |
patchs = [preprocess(patch, config.dataset_image_width, config.dataset_image_height) for patch in patchs] | |
patchs = torch.cat(patchs, dim=0) | |
res = model(patchs) | |
result_words = postprocess(res, charset, 'alignment')[0] | |
visual_image = det_demo.visualization(image.copy(), result_polygons, result_masks, result_boxes, result_words) | |
print(visual_image.shape) | |
cv2.imwrite('result.jpg', visual_image) | |
return ['result.jpg', pd.DataFrame(result_words)] | |
blocks = gr.Blocks() | |
input_image = gr.Image(label="image", type="pil") | |
output_image = gr.Image(label="out_img", type="filepath") | |
output_word = gr.Dataframe(label="out_word", headers=['word']) | |
with blocks: | |
gr.Markdown(''' | |
<center><h1 id="title">张博强毕设展示</h1></center> | |
<center> 西北工业大学 航海学院本科 张博强 </center> | |
<center> 毕设题目:自然场景中任意形状文字的检测与识别 </center> | |
<center> 检测:基于<a href="https://github.com/wangyuxin87/ContourNet">ContourNet</a> 识别:基于<a href="https://github.com/FangShancheng/ABINet">ABINet</a> </center> | |
''') | |
with gr.Row(): | |
with gr.Column(): | |
input_image.render() | |
button = gr.Button("Submit") | |
button.click(fn=infer, inputs=[input_image], | |
outputs=[output_image, output_word],) | |
with gr.Column(): | |
output_image.render() | |
with gr.Row(): | |
output_word.render() | |
if __name__ == "__main__": | |
blocks.launch(debug=True) | |
''' | |
iface = gr.Interface( | |
fn=infer, | |
title="张博强毕设展示", | |
description=description, | |
inputs=[gr.inputs.Image(label="image", type="filepath")], | |
outputs=[gr.outputs.Image(), gr.outputs.Dataframe(headers=['word'])], | |
examples=['figs/test/CANDY.png', 'figs/test/ESPLANADE.png', 'figs/test/KAPPA.png'], | |
).launch(enable_queue=True, cache_examples=True) | |
''' |