ContourNet / app.py
Cyril666's picture
First model version
b5abca7
import os
os.system('pip install --upgrade --no-cache-dir gdown')
os.system('gdown -O ./output/ctw/model_ctw.pth 1ydYjuxJglLAJRVWjj6sKXM3aBL2pXRpG')
os.system('gdown -O ./workdir.zip 1mYM_26qHUom_5NU7iutHneB_KHlLjL5y')
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(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)
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)
cv2.imwrite('result.jpg', visual_image)
return 'result.jpg', pd.DataFrame(result_words)
iface = gr.Interface(
fn=infer,
title="张博强毕设展示",
description="毕设题目:自然场景中任意形状文字的检测与识别\n目前进度:检测",
inputs=[gr.inputs.Image(label="image", type="filepath")],
outputs=[gr.outputs.Image(), gr.outputs.Dataframe(headers=['word'])],
#examples=['example1.jpg', 'example2.jpg', 'example3.jpg'],
#article="<a href=\"https://github.com/MhLiao/MaskTextSpotterV3\">GitHub Repo</a>",
).launch(enable_queue=True)