wai572 commited on
Commit
03adde9
·
1 Parent(s): 61381f8

get request

Browse files
Files changed (1) hide show
  1. main.py +13 -12
main.py CHANGED
@@ -7,7 +7,7 @@ from typing import List
7
 
8
  import cv2
9
  import numpy as np
10
- from fastapi import FastAPI, HTTPException, UploadFile
11
  from fastapi.middleware.cors import CORSMiddleware
12
  from fastapi.responses import JSONResponse
13
  from PIL import Image
@@ -74,7 +74,8 @@ def load_dependencies():
74
 
75
 
76
  @app.post("/analyze/")
77
- async def analyze_image(image_binaries: List[UploadFile]):
 
78
  progress = print
79
  global trocr_pipeline
80
  # モデルが読み込まれているか確認
@@ -86,7 +87,7 @@ async def analyze_image(image_binaries: List[UploadFile]):
86
  return
87
 
88
  all_results = []
89
- num_total_files = len(image_binaries)
90
 
91
  progress(0, desc="テンプレート画像読み込み中...")
92
  suit_templates = load_suit_templates(SUIT_TEMPLATE_PATH)
@@ -100,12 +101,12 @@ async def analyze_image(image_binaries: List[UploadFile]):
100
  processed_files_info = []
101
  # image_objects = {}
102
 
103
- for i, image_path in enumerate(image_binaries):
104
  progress(
105
  (i + 1) / num_total_files * 0.15,
106
  desc="ステージ1/3: 文字候補を検出中...",
107
  )
108
- filename = os.path.basename(image_path)
109
  progress(
110
  (i + 1) / num_total_files * 0.3,
111
  f"分析中 ({i+1}/{num_total_files}): {filename}",
@@ -113,12 +114,12 @@ async def analyze_image(image_binaries: List[UploadFile]):
113
 
114
  try:
115
  # ファイルをバイナリモードで安全に読み込む
116
- file_bytes = np.asarray(bytearray(image_path))
117
- # with open(image_path, "rb") as f:
118
- # # バイトデータをNumPy配列に変換
119
- # file_bytes = np.asarray(
120
- # bytearray(f.read()), dtype=np.uint8
121
- # )
122
  # NumPy配列(メモリ上のデータ)から画像をデコード
123
  image = cv2.imdecode(file_bytes, cv2.IMREAD_COLOR)
124
 
@@ -223,7 +224,7 @@ async def analyze_image(image_binaries: List[UploadFile]):
223
  # else:
224
  # export_update = gr.update(interactive=False)
225
  final_result = all_results[0]["hands"]
226
- filenames = [os.path.basename(p) for p in image_binaries]
227
  # dropdown_update = gr.update(
228
  # choices=filenames, value=filenames[0], interactive=True, open=True
229
  # )
 
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 PIL import Image
 
74
 
75
 
76
  @app.post("/analyze/")
77
+ async def analyze_image(request: Request):
78
+ image_paths = request["image_binaries"]
79
  progress = print
80
  global trocr_pipeline
81
  # モデルが読み込まれているか確認
 
87
  return
88
 
89
  all_results = []
90
+ num_total_files = len(image_paths)
91
 
92
  progress(0, desc="テンプレート画像読み込み中...")
93
  suit_templates = load_suit_templates(SUIT_TEMPLATE_PATH)
 
101
  processed_files_info = []
102
  # image_objects = {}
103
 
104
+ for i, image_path in enumerate(image_paths):
105
  progress(
106
  (i + 1) / num_total_files * 0.15,
107
  desc="ステージ1/3: 文字候補を検出中...",
108
  )
109
+ filename = os.path.basename(image_path.filename)
110
  progress(
111
  (i + 1) / num_total_files * 0.3,
112
  f"分析中 ({i+1}/{num_total_files}): {filename}",
 
114
 
115
  try:
116
  # ファイルをバイナリモードで安全に読み込む
117
+ # file_bytes = np.asarray(bytearray(image_path))
118
+ with open(image_path.filename, "rb") as f:
119
+ # バイトデータをNumPy配列に変換
120
+ file_bytes = np.asarray(
121
+ bytearray(f.read()), dtype=np.uint8
122
+ )
123
  # NumPy配列(メモリ上のデータ)から画像をデコード
124
  image = cv2.imdecode(file_bytes, cv2.IMREAD_COLOR)
125
 
 
224
  # else:
225
  # export_update = gr.update(interactive=False)
226
  final_result = all_results[0]["hands"]
227
+ filenames = [os.path.basename(p) for p in image_paths]
228
  # dropdown_update = gr.update(
229
  # choices=filenames, value=filenames[0], interactive=True, open=True
230
  # )