Spaces:
Sleeping
Sleeping
paddleOCR
Browse files- Dockerfile +2 -1
- main.py +7 -13
- requirements.txt +0 -0
Dockerfile
CHANGED
@@ -1,10 +1,11 @@
|
|
1 |
FROM python:3.12.1
|
2 |
|
|
|
3 |
ENV HF_HOME /tmp
|
4 |
|
5 |
WORKDIR /code
|
6 |
|
7 |
-
RUN apt-get update && apt-get install -y libgl1-mesa-glx libboost-thread1.74.0 && rm -rf /var/lib/apt/lists/*
|
8 |
|
9 |
|
10 |
|
|
|
1 |
FROM python:3.12.1
|
2 |
|
3 |
+
ENV HOME /tmp
|
4 |
ENV HF_HOME /tmp
|
5 |
|
6 |
WORKDIR /code
|
7 |
|
8 |
+
RUN apt-get update && apt-get install -y libgl1-mesa-glx libboost-thread1.74.0 libxext6 fonts-freefont-ttf && rm -rf /var/lib/apt/lists/*
|
9 |
|
10 |
|
11 |
|
main.py
CHANGED
@@ -6,11 +6,11 @@ from datetime import datetime
|
|
6 |
from typing import List
|
7 |
|
8 |
import cv2
|
9 |
-
import easyocr
|
10 |
import numpy as np
|
11 |
from fastapi import FastAPI, HTTPException, Request, UploadFile
|
12 |
from fastapi.middleware.cors import CORSMiddleware
|
13 |
from fastapi.responses import JSONResponse
|
|
|
14 |
from PIL import Image
|
15 |
|
16 |
import dds
|
@@ -63,18 +63,10 @@ def load_ocr_model():
|
|
63 |
グローバル変数readerに格納する。
|
64 |
"""
|
65 |
global reader
|
66 |
-
model_dir = "/tmp/easyocr_models"
|
67 |
-
network_dir = "/tmp/easyocr_models/network"
|
68 |
|
69 |
# 使用する言語と、モデルの保存先ディレクトリを指定してReaderを初期化
|
70 |
-
reader =
|
71 |
-
|
72 |
-
model_storage_directory=model_dir,
|
73 |
-
user_network_directory=network_dir,
|
74 |
-
)
|
75 |
-
print(
|
76 |
-
f"EasyOCR model loaded successfully. Models are stored in {model_dir}"
|
77 |
-
)
|
78 |
|
79 |
|
80 |
# @app.on_event("startup")
|
@@ -218,7 +210,7 @@ async def analyze_image(image_paths: list[UploadFile]):
|
|
218 |
text_mask = get_not_white_mask(img)
|
219 |
masked_img = cv2.bitwise_and(img, img, mask=text_mask)
|
220 |
# result = reader.readtext(candidate["img"])
|
221 |
-
result = reader.
|
222 |
print(result)
|
223 |
if len(result) > 0:
|
224 |
ocr_results.append(result)
|
@@ -240,7 +232,9 @@ async def analyze_image(image_paths: list[UploadFile]):
|
|
240 |
# reds = []
|
241 |
for i, result in enumerate(ocr_results):
|
242 |
# text = result[0]["generated_text"].upper().strip()
|
243 |
-
|
|
|
|
|
244 |
print(text, is_text_valid(text))
|
245 |
|
246 |
text = is_text_valid(text)
|
|
|
6 |
from typing import List
|
7 |
|
8 |
import cv2
|
|
|
9 |
import numpy as np
|
10 |
from fastapi import FastAPI, HTTPException, Request, UploadFile
|
11 |
from fastapi.middleware.cors import CORSMiddleware
|
12 |
from fastapi.responses import JSONResponse
|
13 |
+
from paddleocr import PaddleOCR
|
14 |
from PIL import Image
|
15 |
|
16 |
import dds
|
|
|
63 |
グローバル変数readerに格納する。
|
64 |
"""
|
65 |
global reader
|
|
|
|
|
66 |
|
67 |
# 使用する言語と、モデルの保存先ディレクトリを指定してReaderを初期化
|
68 |
+
reader = PaddleOCR(lang="en")
|
69 |
+
print(f"PaddleOCR model loaded successfully.")
|
|
|
|
|
|
|
|
|
|
|
|
|
70 |
|
71 |
|
72 |
# @app.on_event("startup")
|
|
|
210 |
text_mask = get_not_white_mask(img)
|
211 |
masked_img = cv2.bitwise_and(img, img, mask=text_mask)
|
212 |
# result = reader.readtext(candidate["img"])
|
213 |
+
result = reader.ocr(masked_img)
|
214 |
print(result)
|
215 |
if len(result) > 0:
|
216 |
ocr_results.append(result)
|
|
|
232 |
# reds = []
|
233 |
for i, result in enumerate(ocr_results):
|
234 |
# text = result[0]["generated_text"].upper().strip()
|
235 |
+
text = result[0].get("rec_texts", [])
|
236 |
+
if text:
|
237 |
+
text = text[0]
|
238 |
print(text, is_text_valid(text))
|
239 |
|
240 |
text = is_text_valid(text)
|
requirements.txt
CHANGED
Binary files a/requirements.txt and b/requirements.txt differ
|
|