wai572 commited on
Commit
0fc56b2
·
1 Parent(s): 1eaacfa
Files changed (3) hide show
  1. Dockerfile +2 -1
  2. main.py +7 -13
  3. 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 = easyocr.Reader(
71
- ["en"],
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.readtext(masked_img, text_threshold=0.3)
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
- _, text, _ = result[0]
 
 
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