This commit is contained in:
HuangHai
2026-01-12 20:39:06 +08:00
parent 874c1ceb23
commit 2051cb61c2
11 changed files with 196 additions and 400 deletions

View File

@@ -534,14 +534,14 @@ class ReadImageKit:
@staticmethod
async def get_stations_hybrid(image_path, uploader, cdn_domain):
"""
混合识别模式:图形学切片 + 大模型小图 OCR
混合识别模式:图形学切片 + 大模型小图 VL 识别
"""
# 1. 图形学切片
segments = ReadImageKit.get_card_segments(image_path)
if not segments:
return []
# 2. 对每个切片并行进行 OCR
# 2. 对每个切片并行进行 VL 识别
tasks = []
for seg in segments:
# 上传切片
@@ -552,9 +552,9 @@ class ReadImageKit:
# 记录上传后的 URL 供识别使用
seg["patch_url"] = patch_url
tasks.append(ReadImageKit.recognize_card_text(patch_url))
tasks.append(ReadImageKit.recognize_card_with_vl(patch_url))
# 等待所有 OCR 完成
# 等待所有 VL 完成
results = await asyncio.gather(*tasks)
# 3. 组装结果
@@ -773,9 +773,9 @@ class ReadImageKit:
return []
@staticmethod
async def recognize_card_text(patch_url):
async def recognize_card_with_vl(patch_url):
"""
对切片进行小图 OCR 识别,提取场站详细信息
对切片进行小图 VL 识别,提取场站详细信息
"""
resp = await ReadImageKit._client.chat.completions.create(
model=VL_MODEL_NAME,
@@ -802,7 +802,7 @@ class ReadImageKit:
if json_match:
return json.loads(json_match.group())
except Exception:
logger.warning(f"OCR 结果解析 JSON 失败: {content}")
logger.warning(f"VL 结果解析 JSON 失败: {content}")
return {"station_name": "未知"}