OCR-Demo / test_bbox_extraction.py
thangvckeygen's picture
Deploy 7-Model OCR Benchmark Space with Bounding Box Visualizer
b611f38
Raw
History Blame Contribute Delete
1.39 kB
import os
import sys
import numpy as np
from PIL import Image
sys.stdout.reconfigure(line_buffering=True)
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
# Disable oneDNN PIR bug on Windows
os.environ["FLAGS_use_onednn"] = "0"
os.environ["FLAGS_use_mkldnn"] = "0"
os.environ["FLAGS_enable_pir_api"] = "0"
os.environ["FLAGS_enable_pir_in_executor"] = "0"
import torch
import paddle
from paddleocr import PaddleOCR
print("Initializing PaddleOCR for bounding box extraction...", flush=True)
ocr = PaddleOCR(lang="en", show_log=False)
img_path = "sample_data/sample_receipt.png"
img = Image.open(img_path).convert("RGB")
img_np = np.array(img)
print(f"Running OCR on {img_path} ({img.width}x{img.height} px)...", flush=True)
results = ocr.ocr(img_np)
print(f"Results returned! Type: {type(results)}", flush=True)
if results and results[0]:
print(f"Total detected text boxes: {len(results[0])}", flush=True)
for i, line in enumerate(results[0][:5]):
box = line[0] # [[x1,y1], [x2,y2], [x3,y3], [x4,y4]]
text, conf = line[1]
x1 = min(p[0] for p in box)
y1 = min(p[1] for p in box)
x2 = max(p[0] for p in box)
y2 = max(p[1] for p in box)
print(f"Box #{i+1}: [{int(x1)}, {int(y1)}, {int(x2)}, {int(y2)}] | Conf: {conf:.2f} | Text: '{text}'", flush=True)
else:
print("No results returned.", flush=True)