test_paddle_vl / app.py
Maskedxx's picture
Update app.py
d37d4c9 verified
import gradio as gr
from paddleocr import PaddleOCRVL
import time
print("Loading PaddleOCR-VL...")
pipeline = PaddleOCRVL(
use_doc_orientation_classify=False,
use_doc_unwarping=False,
use_layout_detection=False,
)
print("Model loaded!")
def predict(image):
if image is None:
return "Загрузите изображение"
temp_path = "/tmp/input.png"
image.save(temp_path)
print(f"[{time.strftime('%H:%M:%S')}] Processing...")
t0 = time.time()
output = pipeline.predict(temp_path, vl_rec_task="ocr")
# Отладка - смотрим что вернулось
for i, res in enumerate(output):
print(f"\n=== Result {i} ===")
print(f"Type: {type(res)}")
print(f"Dir: {[x for x in dir(res) if not x.startswith('_')]}")
if hasattr(res, '__dict__'):
print(f"Dict: {res.__dict__.keys()}")
print(f"Str: {str(res)[:500]}")
print(f"\n[{time.strftime('%H:%M:%S')}] Done in {time.time()-t0:.1f}s")
# Пробуем разные варианты
for res in output:
# Вариант 1
if hasattr(res, 'rec_text'):
return res.rec_text
# Вариант 2
if hasattr(res, 'vl_recognition_res'):
return str(res.vl_recognition_res)
# Вариант 3 - просто строка
return str(res)
return "Нет результата"
gr.Interface(
fn=predict,
inputs=gr.Image(type="pil", label="Изображение"),
outputs=gr.Textbox(label="Результат", lines=20),
title="PaddleOCR-VL (OCR)",
).launch()