mirror of
https://github.com/sui-feng-cb/AzurLaneAutoScript1.git
synced 2026-08-19 20:55:05 +08:00
Feat: adopt upstream standalone ONNX OCR backend
Adopt the standalone OnnxOcr from upstream PR #5893 (381bb8d05, by Horizon101011), which vendors cnocr's pure-Python pipeline so the ONNX path loads no mxnet at runtime. Backend is selected via deploy config, keeping onnxruntime a standard dependency and onnx the default. Co-authored-by: Horizon101011 <43370844+Horizon101011@users.noreply.github.com>
This commit is contained in:
@@ -185,7 +185,6 @@ class ModelProxyFactory:
|
||||
def start_ocr_server(port=22268):
|
||||
import zerorpc
|
||||
import zmq
|
||||
from module.ocr.al_ocr import AlOcr
|
||||
from module.ocr.models import OcrModel
|
||||
|
||||
class OCRServer(OcrModel):
|
||||
@@ -194,42 +193,42 @@ def start_ocr_server(port=22268):
|
||||
|
||||
def ocr(self, lang, img_fp):
|
||||
img_fp = pickle.loads(img_fp)
|
||||
cnocr: AlOcr = self.__getattribute__(lang)
|
||||
return cnocr.ocr(img_fp)
|
||||
model = self.__getattribute__(lang)
|
||||
return model.ocr(img_fp)
|
||||
|
||||
def ocr_for_single_line(self, lang, img_fp):
|
||||
img_fp = pickle.loads(img_fp)
|
||||
cnocr: AlOcr = self.__getattribute__(lang)
|
||||
return cnocr.ocr_for_single_line(img_fp)
|
||||
model = self.__getattribute__(lang)
|
||||
return model.ocr_for_single_line(img_fp)
|
||||
|
||||
def ocr_for_single_lines(self, lang, img_list):
|
||||
img_list = [pickle.loads(img_fp) for img_fp in img_list]
|
||||
cnocr: AlOcr = self.__getattribute__(lang)
|
||||
return cnocr.ocr_for_single_lines(img_list)
|
||||
model = self.__getattribute__(lang)
|
||||
return model.ocr_for_single_lines(img_list)
|
||||
|
||||
def set_cand_alphabet(self, lang, cand_alphabet):
|
||||
cnocr: AlOcr = self.__getattribute__(lang)
|
||||
return cnocr.set_cand_alphabet(cand_alphabet)
|
||||
model = self.__getattribute__(lang)
|
||||
return model.set_cand_alphabet(cand_alphabet)
|
||||
|
||||
def atomic_ocr(self, lang, img_fp, cand_alphabet):
|
||||
img_fp = pickle.loads(img_fp)
|
||||
cnocr: AlOcr = self.__getattribute__(lang)
|
||||
return cnocr.atomic_ocr(img_fp, cand_alphabet)
|
||||
model = self.__getattribute__(lang)
|
||||
return model.atomic_ocr(img_fp, cand_alphabet)
|
||||
|
||||
def atomic_ocr_for_single_line(self, lang, img_fp, cand_alphabet):
|
||||
img_fp = pickle.loads(img_fp)
|
||||
cnocr: AlOcr = self.__getattribute__(lang)
|
||||
return cnocr.atomic_ocr_for_single_line(img_fp, cand_alphabet)
|
||||
model = self.__getattribute__(lang)
|
||||
return model.atomic_ocr_for_single_line(img_fp, cand_alphabet)
|
||||
|
||||
def atomic_ocr_for_single_lines(self, lang, img_list, cand_alphabet):
|
||||
img_list = [pickle.loads(img_fp) for img_fp in img_list]
|
||||
cnocr: AlOcr = self.__getattribute__(lang)
|
||||
return cnocr.atomic_ocr_for_single_lines(img_list, cand_alphabet)
|
||||
model = self.__getattribute__(lang)
|
||||
return model.atomic_ocr_for_single_lines(img_list, cand_alphabet)
|
||||
|
||||
def debug(self, lang, img_list):
|
||||
img_list = [pickle.loads(img_fp) for img_fp in img_list]
|
||||
cnocr: AlOcr = self.__getattribute__(lang)
|
||||
return cnocr.debug(img_list)
|
||||
model = self.__getattribute__(lang)
|
||||
return model.debug(img_list)
|
||||
|
||||
server = zerorpc.Server(OCRServer())
|
||||
try:
|
||||
|
||||
Reference in New Issue
Block a user