docs: 添加涉密文件自检工具实施计划
This commit is contained in:
109
UmiOCR-data/plugins/win7_x64_RapidOCR-json/rapidocr_config.py
Normal file
109
UmiOCR-data/plugins/win7_x64_RapidOCR-json/rapidocr_config.py
Normal file
@@ -0,0 +1,109 @@
|
||||
import os
|
||||
import psutil
|
||||
from plugin_i18n import Translator
|
||||
|
||||
tr = Translator(__file__, "i18n.csv")
|
||||
|
||||
# 模块配置路径
|
||||
MODELS_CONFIGS = "/models/configs.txt"
|
||||
# 保存语言字典
|
||||
LangDict = {}
|
||||
|
||||
|
||||
# 动态获取模型库列表
|
||||
def _getlanguageList():
|
||||
global LangDict
|
||||
"""configs.txt 格式示例:
|
||||
简体中文(V4)
|
||||
ch_PP-OCRv4_det_infer.onnx
|
||||
ch_ppocr_mobile_v2.0_cls_infer.onnx
|
||||
rec_ch_PP-OCRv4_infer.onnx
|
||||
dict_chinese.txt
|
||||
|
||||
"""
|
||||
optionsList = []
|
||||
configsPath = os.path.dirname(os.path.abspath(__file__)) + MODELS_CONFIGS
|
||||
try:
|
||||
with open(configsPath, "r", encoding="utf-8") as file:
|
||||
content = file.read()
|
||||
parts = content.split("\n\n")
|
||||
for part in parts:
|
||||
items = part.split("\n")
|
||||
if len(items) == 5:
|
||||
title, det, cls, rec, keys = items
|
||||
LangDict[title] = {
|
||||
"det": det,
|
||||
"cls": cls,
|
||||
"rec": rec,
|
||||
"keys": keys,
|
||||
}
|
||||
optionsList.append([title, title])
|
||||
return optionsList
|
||||
except FileNotFoundError:
|
||||
print("[Error] RapidOCR配置文件configs不存在,请检查文件路径是否正确。", configsPath)
|
||||
except IOError:
|
||||
print("[Error] RapidOCR配置文件configs无法打开或读取。")
|
||||
return []
|
||||
|
||||
|
||||
_LanguageList = _getlanguageList()
|
||||
|
||||
|
||||
# 获取最佳线程数
|
||||
def _getThreads():
|
||||
try:
|
||||
phyCore = psutil.cpu_count(logical=False) # 物理核心数
|
||||
lgiCore = psutil.cpu_count(logical=True) # 逻辑核心数
|
||||
if (
|
||||
not isinstance(phyCore, int)
|
||||
or not isinstance(lgiCore, int)
|
||||
or lgiCore < phyCore
|
||||
):
|
||||
raise ValueError("核心数计算异常")
|
||||
# 物理核数=逻辑核数,返回逻辑核数
|
||||
if phyCore * 2 == lgiCore or phyCore == lgiCore:
|
||||
return lgiCore
|
||||
# 大小核处理器,返回大核线程数
|
||||
big = lgiCore - phyCore
|
||||
return big * 2
|
||||
except Exception as e:
|
||||
print("[Warning] 无法获取CPU核心数!", e)
|
||||
return 4
|
||||
|
||||
|
||||
_threads = _getThreads()
|
||||
|
||||
globalOptions = {
|
||||
"title": tr("RapidOCR(本地)"),
|
||||
"type": "group",
|
||||
"numThread": {
|
||||
"title": tr("线程数"),
|
||||
"default": _threads,
|
||||
"min": 1,
|
||||
"isInt": True,
|
||||
},
|
||||
}
|
||||
|
||||
localOptions = {
|
||||
"title": tr("文字识别(RapidOCR)"),
|
||||
"type": "group",
|
||||
"language": {
|
||||
"title": tr("语言/模型库"),
|
||||
"optionsList": _LanguageList,
|
||||
},
|
||||
"angle": {
|
||||
"title": tr("纠正文本方向"),
|
||||
"default": False,
|
||||
"toolTip": tr("启用方向分类,识别倾斜或倒置的文本。可能降低识别速度。"),
|
||||
},
|
||||
"maxSideLen": {
|
||||
"title": tr("限制图像边长"),
|
||||
"optionsList": [
|
||||
[1024, "1024 " + tr("(默认)")],
|
||||
[2048, "2048"],
|
||||
[4096, "4096"],
|
||||
[999999, tr("无限制")],
|
||||
],
|
||||
"toolTip": tr("将边长大于该值的图片进行压缩,可以提高识别速度。可能降低识别精度。"),
|
||||
},
|
||||
}
|
||||
Reference in New Issue
Block a user