You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

2804 lines
208 KiB

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# coding=utf-8
import warnings
warnings.filterwarnings('ignore')
import io
import os
import base64
import json
import pathlib
import onnxruntime
from PIL import Image, ImageChops
import numpy as np
import cv2
onnxruntime.set_default_logger_severity(3)
def base64_to_image(img_base64):
img_data = base64.b64decode(img_base64)
return Image.open(io.BytesIO(img_data))
def get_img_base64(single_image_path):
with open(single_image_path, 'rb') as fp:
img_base64 = base64.b64encode(fp.read())
return img_base64.decode()
class TypeError(Exception):
pass
def png_rgba_black_preprocess(img: Image):
width = img.width
height = img.height
image = Image.new('RGB', size=(width, height), color=(255, 255, 255))
image.paste(img, (0, 0), mask=img)
return image
class DdddOcr(object):
def __init__(self, ocr: bool = True, det: bool = False, old: bool = False, beta: bool = False,
use_gpu: bool = False,
device_id: int = 0, show_ad=True, import_onnx_path: str = "", charsets_path: str = "",
origin_onnx_path: str = ""):
if show_ad:
print("欢迎使用ddddocr本项目专注带动行业内卷个人博客:wenanzhe.com")
print("训练数据支持来源于:http://146.56.204.113:19199/preview")
print("爬虫框架feapder可快速一键接入快速开启爬虫之旅https://github.com/Boris-code/feapder")
print(
"谷歌reCaptcha验证码 / hCaptcha验证码 / funCaptcha验证码商业级识别接口https://yescaptcha.com/i/NSwk7i")
if not hasattr(Image, 'ANTIALIAS'):
setattr(Image, 'ANTIALIAS', Image.LANCZOS)
self.use_import_onnx = False
self.__word = False
self.__resize = []
self.__charset_range = []
self.__channel = 1
if import_onnx_path != "":
det = False
ocr = False
self.__graph_path = import_onnx_path
with open(charsets_path, 'r', encoding="utf-8") as f:
info = json.loads(f.read())
self.__charset = info['charset']
self.__word = info['word']
self.__resize = info['image']
self.__channel = info['channel']
self.use_import_onnx = True
if det:
ocr = False
self.__graph_path = os.path.join(os.path.dirname(__file__), 'common_det.onnx')
self.__charset = []
if ocr:
if not beta:
if origin_onnx_path:
self.__graph_path = origin_onnx_path
else:
self.__graph_path = os.path.join(os.path.dirname(__file__), 'common_old.onnx')
self.__charset = ["", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "И", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "2", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "鸿", "", "",
"沿", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "耀",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "ü",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "F", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "7", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "忿", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "-", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "麿", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "广", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "D", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "M", "", "", "", "", "", "", "",
"", "", "Ω",
"", "",
"", "C", "", "", "", "", "", "", "±", "", "", "", "", "", "",
"", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "r", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "Y", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "鱿", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "β", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "(",
"", "",
"", "", "b", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "c", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "®", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "J", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "I",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "f", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "廿", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "v", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "i", "", "", "", "", "", "",
"", "使",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "l",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "B",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "姿", "", "", "簿", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "贿", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"`", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"E", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "°",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "u", "", "", "", "", "", "", "", "²", "", "", "",
"", "",
"~", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", ",", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"α", "", "", "", "", "", "", "", "", "", "", "", "", "",
"竿", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "9", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "#", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "ä", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", ".", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"О", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "k", "",
"", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "Й", "",
"罿", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "s", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "ò", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", ":",
"", "槿", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "Я", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "Θ", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "尿", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "P",
"", "",
"", "", "", "", "浿", "", "", "", "", "", "", "", "´", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "Z", "", "",
"", "", "",
"湿", "",
"穿", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "齿", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "婿", "", "", "", "", "", ">", "",
"", "", "",
"", "",
"", "", "", "n", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "岿", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "Ë",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "驿", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"'", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "1", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "/", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "G", "{", "", "", "@", "", "", "", "", "", "",
"", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "轿", "", "", "", "", "", "", "*", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"m", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", ")", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "K", "", "", "",
"殿", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "z",
"", "", "", "", "", "", "ɔ", "", "", "", "", "", "", "", "",
"", "",
"", "",
"", "", "", "羿", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "A", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "W", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "亿", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "}", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "p", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "T", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", " ",
"", "", "",
"", "",
"", "", "", "", "З", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"X", "", "", "", "", "", "", "", "", "", "", "", "绿", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "=",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"!", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "_",
"", "", "",
"", "",
"", "", "", "", "", "", "", "Φ", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "×", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "O", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "\"",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"<", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "H", "", "", "", "", "", "", "",
"", "^", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "é", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"$", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "d", "", "", "屿", "", "", "",
"", "V", "",
"", "",
"", "", "", "", "", "%", "", "", "", "", "", "", "", "",
"", "", "仿",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "\\", "", "", "", "", "", "", "", "", "4", "?", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"蹿", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"6", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "Р", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "·",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "|", "", "", "", "", "", "", "", "巿", "",
"", "", "",
"", "",
"寿", "", "", "+", "", "", "", "", "", "", "j", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "N", "", "趿", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "e", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "¥",
"", "", "", "", "", "", "鴿", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "S", "", "", "", "", "", "", "", "", "", "", "",
"", "", "西",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "[",
"", "", "",
"", "",
"", "", "", "", "", "", "", "窿", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "Q", "", "", "", "", "",
"", "", "",
"", "",
"y", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "褿", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "L", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "П", "", "", "", "", "", "", "",
"", "", "",
"怀", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "x", "", "", "",
"", "", "",
"", "",
"", "", "", "", "0", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "涿", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "o", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "5", "", "8", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "÷", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "椿", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "馿", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "Λ", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "稿", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "w", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "&", "", "",
"", "", "a",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "鹿", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "R", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "U", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "]", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "访", "", "", "", "", "", "", "", "", "", "", "", "",
"q", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"退", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", " ", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "便", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "线", "3", "", "t", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "诿", "", "", "", "", "", "", "", "", "",
"", ";", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"饿", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "à", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "g", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "è", "", "滿", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "",
"", "",
"", "", "", "", "", "", "", "h", "", "宿", "", "", "", "",
"", "", "",
"", "",
"", ""]
else:
self.__graph_path = os.path.join(os.path.dirname(__file__), 'common.onnx')
self.__charset = ["", "", "", "", "", "", "", "", "", "", "", "", "", "6",
"", "", "", "", "", "", "", "", "", "", "", "", "", "鴿",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "f", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "²", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "!", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "à", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "鹿",
"", "",
"", "", "", "p", "L", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "=",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "Y", "", "",
"", "",
"", "", "", "", "w", "", "", "3", "", "F", "", "", "", "", "",
"",
"", "", "m", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "耀",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "Θ",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "湿", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "X", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "绿",
"", "",
"", "", "", "", "滿", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "G", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "x", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "/", "", "", "", "", "", "", "",
"", "",
"i", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "椿", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", ",", "",
"", "",
"", "", "", "T", "", "", "", "N", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"´", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", " ", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "v", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "c", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "''", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "殿", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "B", "", "", "", "О", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "ɔ", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "\"", "", "",
"", "",
"", "", "", "", "", "浿", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "n", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", ":", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "#",
"", "?",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "Φ", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "Q", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", ";",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"轿", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "H",
"", "", "", "", "", "", "", "", "", "", "", "", "", "趿",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "褿", "", "姿", "", "", "", "", "", "", "",
"", "",
"", "", "", "K", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "尿",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "W", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", ">", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "P", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "r", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "%", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "l", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "E", "", "", "", "", "", "蹿", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "И", "", "",
"", "Z",
"", "", "", "", "", "寿", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"α", "",
"", "", "", "", "", "", "", "", "", "", "", "", "s", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "2", "З", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "Ω", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "@", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "z", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "访", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "巿", "", "", "", "", "", "D", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "鱿", "", "", "O", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "-", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "西", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "羿", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "麿", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "Р",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "ä", "", "", "",
"", "广",
"", "", "", "", "", "", "", "", "4", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "忿", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"涿", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "°", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "^", "", "", "", "$",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "槿", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", ")", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "ü", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "仿", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "1", "", "", "", "", "", "", "", "", "",
"", "",
"", "Й", "", "", "", "", "", "", "", "", "", "", "", "",
"亿", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", " ", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "t", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "竿", "", "|", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "β", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "b", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "o",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "Ë", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "è", "", "", "", "",
"u", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "÷", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "±", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "9", "", "", "", "", "j", "", "",
"0",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "\\",
"", "",
"", "", "", "", "", "", "", "", "", "8", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "¥", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "贿", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "ò", "", "", "{", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "5", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "岿", "[", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "驿", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "e", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "A", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "线",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "é",
"", "", "", "", "", "", "", "", "", "~", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "R",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "稿", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "窿", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "g", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "k", "", "",
"", "",
"", "", "", "", "", "", "", "鸿", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "退",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "S", "", "}", "", "", "", "", "", "", "", "", "", "", "",
"",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "`",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "怀", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "屿", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "<",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "Я", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "Λ", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "齿", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "+", "", "", "宿", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "I", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "便",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"×", "",
"", "", "", "", "", "", "", "", "", "穿", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "7", "",
"", "",
"", "", "", "", "", "", "", "", "", "", ".", "", "d", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "V", "", "", "]", "",
"", "",
"", "", "", "", "", "", "", "", "(", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "诿", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "沿", "", "", "", "", "", "", "使", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "·", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "饿", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "J", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "a", "", "", "", "", "", "", "", "", "&",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "h", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"*", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "q", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"_", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "簿", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"罿", "",
"П", "", "U", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "廿", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "馿", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "M", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "y", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "C", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "®", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "",
"", "", "", "", "", "", "婿", "", "", "", "", "", "", "",
"", "",
"", "", "", ""]
self.det = det
if use_gpu:
self.__providers = [
('CUDAExecutionProvider', {
'device_id': device_id,
'arena_extend_strategy': 'kNextPowerOfTwo',
'cuda_mem_limit': 2 * 1024 * 1024 * 1024,
'cudnn_conv_algo_search': 'EXHAUSTIVE',
'do_copy_in_default_stream': True,
}),
]
else:
self.__providers = [
'CPUExecutionProvider',
]
if ocr or det or self.use_import_onnx:
self.__ort_session = onnxruntime.InferenceSession(self.__graph_path, providers=self.__providers)
def preproc(self, img, input_size, swap=(2, 0, 1)):
if len(img.shape) == 3:
padded_img = np.ones((input_size[0], input_size[1], 3), dtype=np.uint8) * 114
else:
padded_img = np.ones(input_size, dtype=np.uint8) * 114
r = min(input_size[0] / img.shape[0], input_size[1] / img.shape[1])
resized_img = cv2.resize(
img,
(int(img.shape[1] * r), int(img.shape[0] * r)),
interpolation=cv2.INTER_LINEAR,
).astype(np.uint8)
padded_img[: int(img.shape[0] * r), : int(img.shape[1] * r)] = resized_img
padded_img = padded_img.transpose(swap)
padded_img = np.ascontiguousarray(padded_img, dtype=np.float32)
return padded_img, r
def demo_postprocess(self, outputs, img_size, p6=False):
grids = []
expanded_strides = []
if not p6:
strides = [8, 16, 32]
else:
strides = [8, 16, 32, 64]
hsizes = [img_size[0] // stride for stride in strides]
wsizes = [img_size[1] // stride for stride in strides]
for hsize, wsize, stride in zip(hsizes, wsizes, strides):
xv, yv = np.meshgrid(np.arange(wsize), np.arange(hsize))
grid = np.stack((xv, yv), 2).reshape(1, -1, 2)
grids.append(grid)
shape = grid.shape[:2]
expanded_strides.append(np.full((*shape, 1), stride))
grids = np.concatenate(grids, 1)
expanded_strides = np.concatenate(expanded_strides, 1)
outputs[..., :2] = (outputs[..., :2] + grids) * expanded_strides
outputs[..., 2:4] = np.exp(outputs[..., 2:4]) * expanded_strides
return outputs
def nms(self, boxes, scores, nms_thr):
"""Single class NMS implemented in Numpy."""
x1 = boxes[:, 0]
y1 = boxes[:, 1]
x2 = boxes[:, 2]
y2 = boxes[:, 3]
areas = (x2 - x1 + 1) * (y2 - y1 + 1)
order = scores.argsort()[::-1]
keep = []
while order.size > 0:
i = order[0]
keep.append(i)
xx1 = np.maximum(x1[i], x1[order[1:]])
yy1 = np.maximum(y1[i], y1[order[1:]])
xx2 = np.minimum(x2[i], x2[order[1:]])
yy2 = np.minimum(y2[i], y2[order[1:]])
w = np.maximum(0.0, xx2 - xx1 + 1)
h = np.maximum(0.0, yy2 - yy1 + 1)
inter = w * h
ovr = inter / (areas[i] + areas[order[1:]] - inter)
inds = np.where(ovr <= nms_thr)[0]
order = order[inds + 1]
return keep
def multiclass_nms_class_agnostic(self, boxes, scores, nms_thr, score_thr):
"""Multiclass NMS implemented in Numpy. Class-agnostic version."""
cls_inds = scores.argmax(1)
cls_scores = scores[np.arange(len(cls_inds)), cls_inds]
valid_score_mask = cls_scores > score_thr
if valid_score_mask.sum() == 0:
return None
valid_scores = cls_scores[valid_score_mask]
valid_boxes = boxes[valid_score_mask]
valid_cls_inds = cls_inds[valid_score_mask]
keep = self.nms(valid_boxes, valid_scores, nms_thr)
if keep:
dets = np.concatenate(
[valid_boxes[keep], valid_scores[keep, None], valid_cls_inds[keep, None]], 1
)
return dets
def multiclass_nms(self, boxes, scores, nms_thr, score_thr):
"""Multiclass NMS implemented in Numpy"""
return self.multiclass_nms_class_agnostic(boxes, scores, nms_thr, score_thr)
def get_bbox(self, image_bytes):
img = cv2.imdecode(np.frombuffer(image_bytes, np.uint8), cv2.IMREAD_COLOR)
im, ratio = self.preproc(img, (416, 416))
ort_inputs = {self.__ort_session.get_inputs()[0].name: im[None, :, :, :]}
output = self.__ort_session.run(None, ort_inputs)
predictions = self.demo_postprocess(output[0], (416, 416))[0]
boxes = predictions[:, :4]
scores = predictions[:, 4:5] * predictions[:, 5:]
boxes_xyxy = np.ones_like(boxes)
boxes_xyxy[:, 0] = boxes[:, 0] - boxes[:, 2] / 2.
boxes_xyxy[:, 1] = boxes[:, 1] - boxes[:, 3] / 2.
boxes_xyxy[:, 2] = boxes[:, 0] + boxes[:, 2] / 2.
boxes_xyxy[:, 3] = boxes[:, 1] + boxes[:, 3] / 2.
boxes_xyxy /= ratio
pred = self.multiclass_nms(boxes_xyxy, scores, nms_thr=0.45, score_thr=0.1)
try:
final_boxes = pred[:, :4].tolist()
result = []
for b in final_boxes:
if b[0] < 0:
x_min = 0
else:
x_min = int(b[0])
if b[1] < 0:
y_min = 0
else:
y_min = int(b[1])
if b[2] > img.shape[1]:
x_max = int(img.shape[1])
else:
x_max = int(b[2])
if b[3] > img.shape[0]:
y_max = int(img.shape[0])
else:
y_max = int(b[3])
result.append([x_min, y_min, x_max, y_max])
except Exception as e:
return []
return result
def set_ranges(self, charset_range):
if isinstance(charset_range, int):
if charset_range == 0:
# 数字
self.__charset_range = list("0123456789")
elif charset_range == 1:
# 小写英文
self.__charset_range = list("abcdefghijklmnopqrstuvwxyz")
elif charset_range == 2:
# 大写英文
self.__charset_range = list("ABCDEFGHIJKLMNOPQRSTUVWXYZ")
elif charset_range == 3:
# 混合英文
self.__charset_range = list("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ")
elif charset_range == 4:
# 小写英文+数字
self.__charset_range = list("abcdefghijklmnopqrstuvwxyz") + list(
"0123456789")
elif charset_range == 5:
# 大写英文+数字
self.__charset_range = list("ABCDEFGHIJKLMNOPQRSTUVWXYZ") + list(
"0123456789")
elif charset_range == 6:
# 混合大小写+数字
self.__charset_range = list("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ") + list(
"0123456789")
elif charset_range == 7:
# 除去英文,数字
delete_range = list("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ") + list("0123456789")
self.__charset_range = [item for item in self.__charset if item not in delete_range]
elif isinstance(charset_range, str):
charset_range_list = list(charset_range)
self.__charset_range = charset_range_list
else:
raise TypeError("暂时不支持该类型数据的输入")
# 去重
self.__charset_range = list(set(self.__charset_range)) + [""]
def classification(self, img, png_fix: bool = False, probability=False):
if self.det:
raise TypeError("当前识别类型为目标检测")
if not isinstance(img, (bytes, str, pathlib.PurePath, Image.Image)):
raise TypeError("未知图片类型")
if isinstance(img, bytes):
image = Image.open(io.BytesIO(img))
elif isinstance(img, Image.Image):
image = img.copy()
elif isinstance(img, str):
image = base64_to_image(img)
else:
assert isinstance(img, pathlib.PurePath)
image = Image.open(img)
if not self.use_import_onnx:
image = image.resize((int(image.size[0] * (64 / image.size[1])), 64), Image.ANTIALIAS).convert('L')
else:
if self.__resize[0] == -1:
if self.__word:
image = image.resize((self.__resize[1], self.__resize[1]), Image.ANTIALIAS)
else:
image = image.resize((int(image.size[0] * (self.__resize[1] / image.size[1])), self.__resize[1]),
Image.ANTIALIAS)
else:
image = image.resize((self.__resize[0], self.__resize[1]), Image.ANTIALIAS)
if self.__channel == 1:
image = image.convert('L')
else:
if png_fix:
image = png_rgba_black_preprocess(image)
else:
image = image.convert('RGB')
image = np.array(image).astype(np.float32)
image = np.expand_dims(image, axis=0) / 255.
if not self.use_import_onnx:
image = (image - 0.5) / 0.5
else:
if self.__channel == 1:
image = (image - 0.456) / 0.224
else:
image = (image - np.array([0.485, 0.456, 0.406])) / np.array([0.229, 0.224, 0.225])
image = image[0]
image = image.transpose((2, 0, 1))
ort_inputs = {'input1': np.array([image]).astype(np.float32)}
ort_outs = self.__ort_session.run(None, ort_inputs)
result = []
last_item = 0
if self.__word:
for item in ort_outs[1]:
result.append(self.__charset[item])
return ''.join(result)
else:
if not self.use_import_onnx:
# 概率输出仅限于使用官方模型
if probability:
ort_outs = ort_outs[0]
ort_outs = np.exp(ort_outs) / np.sum(np.exp(ort_outs))
ort_outs_sum = np.sum(ort_outs, axis=2)
ort_outs_probability = np.empty_like(ort_outs)
for i in range(ort_outs.shape[0]):
ort_outs_probability[i] = ort_outs[i] / ort_outs_sum[i]
ort_outs_probability = np.squeeze(ort_outs_probability).tolist()
result = {}
if len(self.__charset_range) == 0:
# 返回全部
result['charsets'] = self.__charset
result['probability'] = ort_outs_probability
else:
result['charsets'] = self.__charset_range
probability_result_index = []
for item in self.__charset_range:
if item in self.__charset:
probability_result_index.append(self.__charset.index(item))
else:
# 未知字符
probability_result_index.append(-1)
probability_result = []
for item in ort_outs_probability:
probability_result.append([item[i] if i != -1 else -1 for i in probability_result_index ])
result['probability'] = probability_result
return result
else:
last_item = 0
argmax_result = np.squeeze(np.argmax(ort_outs[0], axis=2))
for item in argmax_result:
if item == last_item:
continue
else:
last_item = item
if item != 0:
result.append(self.__charset[item])
return ''.join(result)
else:
last_item = 0
for item in ort_outs[0][0]:
if item == last_item:
continue
else:
last_item = item
if item != 0:
result.append(self.__charset[item])
return ''.join(result)
def detection(self, img_bytes: bytes = None, img_base64: str = None):
if not self.det:
raise TypeError("当前识别类型为文字识别")
if not img_bytes:
img_bytes = base64.b64decode(img_base64)
result = self.get_bbox(img_bytes)
return result
def get_target(self, img_bytes: bytes = None):
image = Image.open(io.BytesIO(img_bytes))
w, h = image.size
starttx = 0
startty = 0
end_x = 0
end_y = 0
for x in range(w):
for y in range(h):
p = image.getpixel((x, y))
if p[-1] == 0:
if startty != 0 and end_y == 0:
end_y = y
if starttx != 0 and end_x == 0:
end_x = x
else:
if startty == 0:
startty = y
end_y = 0
else:
if y < startty:
startty = y
end_y = 0
if starttx == 0 and startty != 0:
starttx = x
if end_y != 0:
end_x = x
return image.crop([starttx, startty, end_x, end_y]), starttx, startty
def slide_match(self, target_bytes: bytes = None, background_bytes: bytes = None, simple_target: bool = False,
flag: bool = False):
if not simple_target:
try:
target, target_x, target_y = self.get_target(target_bytes)
target = cv2.cvtColor(np.asarray(target), cv2.IMREAD_ANYCOLOR)
except SystemError as e:
# SystemError: tile cannot extend outside image
if flag:
raise e
return self.slide_match(target_bytes=target_bytes, background_bytes=background_bytes,
simple_target=True, flag=True)
else:
target = cv2.imdecode(np.frombuffer(target_bytes, np.uint8), cv2.IMREAD_ANYCOLOR)
target_y = 0
target_x = 0
background = cv2.imdecode(np.frombuffer(background_bytes, np.uint8), cv2.IMREAD_ANYCOLOR)
background = cv2.Canny(background, 100, 200)
target = cv2.Canny(target, 100, 200)
background = cv2.cvtColor(background, cv2.COLOR_GRAY2RGB)
target = cv2.cvtColor(target, cv2.COLOR_GRAY2RGB)
res = cv2.matchTemplate(background, target, cv2.TM_CCOEFF_NORMED)
min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(res)
h, w = target.shape[:2]
bottom_right = (max_loc[0] + w, max_loc[1] + h)
return {"target_x": target_x,
"target_y": target_y,
"target": [int(max_loc[0]), int(max_loc[1]), int(bottom_right[0]), int(bottom_right[1])]}
def slide_comparison(self, target_bytes: bytes = None, background_bytes: bytes = None):
target = Image.open(io.BytesIO(target_bytes)).convert("RGB")
background = Image.open(io.BytesIO(background_bytes)).convert("RGB")
image = ImageChops.difference(background, target)
background.close()
target.close()
image = image.point(lambda x: 255 if x > 80 else 0)
start_y = 0
start_x = 0
for i in range(0, image.width):
count = 0
for j in range(0, image.height):
pixel = image.getpixel((i, j))
if pixel != (0, 0, 0):
count += 1
if count >= 5 and start_y == 0:
start_y = j - 5
if count >= 5:
start_x = i + 2
break
return {
"target": [start_x, start_y]
}