Spaces:
Runtime error
Runtime error
import os | |
os.environ["KMP_DUPLICATE_LIB_OK"] = "TRUE" | |
import time | |
import requests | |
from io import BytesIO | |
import utility | |
from detector import * | |
from recognizer import * | |
# Global Detector and Recognizer | |
args = utility.parse_args() | |
text_recognizer = TextRecognizer(args) | |
text_detector = TextDetector(args) | |
def apply_ocr(img): | |
# Detect text regions | |
dt_boxes, _ = text_detector(img) | |
boxes = [] | |
for box in dt_boxes: | |
p1, p2, p3, p4 = box | |
x1 = min(p1[0], p2[0], p3[0], p4[0]) | |
y1 = min(p1[1], p2[1], p3[1], p4[1]) | |
x2 = max(p1[0], p2[0], p3[0], p4[0]) | |
y2 = max(p1[1], p2[1], p3[1], p4[1]) | |
boxes.append([x1, y1, x2, y2]) | |
# Recognize text | |
img_list = [] | |
for i in range(len(boxes)): | |
x1, y1, x2, y2 = map(int, boxes[i]) | |
img_list.append(img.copy()[y1:y2, x1:x2]) | |
img_list.reverse() | |
rec_res, _ = text_recognizer(img_list) | |
# Postprocess | |
total_text = "" | |
table = dict() | |
for i in range(len(rec_res)): | |
table[i] = { | |
"text": rec_res[i][0], | |
} | |
total_text += rec_res[i][0] + " " | |
total_text = total_text.strip() | |
return total_text | |
def main(): | |
image_url = "https://i.ibb.co/kQvHGjj/aewrg.png" | |
response = requests.get(image_url) | |
img = np.array(Image.open(BytesIO(response.content)).convert("RGB")) | |
t0 = time.time() | |
epoch = 1 | |
for _ in range(epoch): | |
ocr_text = apply_ocr(img) | |
print("Elapsed time:", (time.time() - t0) * 1000 / epoch, "ms") | |
print("Output:", ocr_text) | |
if __name__ == "__main__": | |
main() | |