mirror of
https://github.com/sui-feng-cb/AzurLaneAutoScript1.git
synced 2026-08-19 12:54:48 +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:
@@ -4,18 +4,31 @@ from module.base.decorator import cached_property
|
||||
class OcrModel:
|
||||
@cached_property
|
||||
def _OCR(self):
|
||||
from module.exception import ScriptError
|
||||
from module.webui.setting import State
|
||||
backend = State.deploy_config.OcrBackend
|
||||
if backend == 'onnx':
|
||||
from module.ocr.al_ocr import AlOcrOnnx as _OCR
|
||||
else:
|
||||
if backend == 'mxnet':
|
||||
from module.ocr.al_ocr import AlOcr as _OCR
|
||||
elif backend == 'onnx':
|
||||
try:
|
||||
import onnxruntime
|
||||
except ImportError:
|
||||
from module.logger import logger
|
||||
logger.warning('ONNX Runtime is not available, fallback to MXNet')
|
||||
from module.ocr.al_ocr import AlOcr as _OCR
|
||||
else:
|
||||
from module.ocr.onnx_ocr import OnnxOcr as _OCR
|
||||
else:
|
||||
raise ScriptError(f'Unsupported OCR backend: {backend}')
|
||||
return _OCR
|
||||
|
||||
def load(self):
|
||||
_ = self._OCR
|
||||
|
||||
@cached_property
|
||||
def azur_lane(self):
|
||||
# Folder: ./bin/cnocr_models/azur_lane
|
||||
# Size: 3.25MB (MXNet) / 3.34MB (ONNX)
|
||||
# Size: 3.25MB (MXNet) / 3.26MB (ONNX)
|
||||
# Model: densenet-lite-gru
|
||||
# Epoch: 15
|
||||
# Validation accuracy: 99.43%
|
||||
@@ -28,7 +41,7 @@ class OcrModel:
|
||||
@cached_property
|
||||
def azur_lane_jp(self):
|
||||
# Folder: ./bin/cnocr_models/azur_lane_jp
|
||||
# Size: 3.25MB (MXNet) / 3.34MB (ONNX)
|
||||
# Size: 3.25MB (MXNet) / 3.26MB (ONNX)
|
||||
# Model: densenet-lite-gru
|
||||
# Epoch: 20
|
||||
# Validation accuracy: 99.01%
|
||||
@@ -41,7 +54,7 @@ class OcrModel:
|
||||
@cached_property
|
||||
def cnocr(self):
|
||||
# Folder: ./bin/cnocr_models/cnocr
|
||||
# Size: 9.51MB (MXNet) / 9.75MB (ONNX)
|
||||
# Size: 9.52MB (MXNet) / 9.52MB (ONNX)
|
||||
# Model: densenet-lite-gru
|
||||
# Epoch: 39
|
||||
# Validation accuracy: 99.04%
|
||||
@@ -54,16 +67,17 @@ class OcrModel:
|
||||
@cached_property
|
||||
def jp(self):
|
||||
# Folder: ./bin/cnocr_models/jp
|
||||
# Size: 6.36MB (ONNX)
|
||||
# Size: 6.21MB (MXNet) / 6.22MB (ONNX)
|
||||
# Model: densenet-lite-gru
|
||||
# Epoch: 125
|
||||
# _num_classes: 3052
|
||||
return self._OCR(model_name='densenet-lite-gru', model_epoch=125,
|
||||
root='./bin/cnocr_models/jp', name='jp')
|
||||
|
||||
@cached_property
|
||||
def tw(self):
|
||||
# Folder: ./bin/cnocr_models/tw
|
||||
# Size: 8.43MB (MXNet) / 8.64MB (ONNX)
|
||||
# Size: 8.43MB (MXNet) / 8.44MB (ONNX)
|
||||
# Model: densenet-lite-gru
|
||||
# Epoch: 63
|
||||
# Validation accuracy: 99.24%
|
||||
|
||||
Reference in New Issue
Block a user