Views
No views yet
20250912)。Jigmo 是一个自由且无偿的汉字开源字体项目,主要利用 KAGE 系统、Clipper、FontForge 以及 TTX 生成,完整覆盖了中日韩统一表意文字及其扩展区(包括第 0 面 BMP、第 1 面 SMP、第 2 面 SIP、第 3 面 TIP 等超大平面及 IVD 变体数据库),包含多达 10.7 万个汉字及非汉字字符,为古文字与生僻字数字化提供了坚实的字体基础。epoch_num):50 轮(最终在 best_epoch: 43 取得最优权重保存)。acc) 在局部步数中呈现阶梯式爬升,归一化编辑距离 (norm_edit_dis) 与损失函数 (loss) 逐步优化。best_epoch: 43)时,模型在验证集上取得了令人瞩目的 acc: 98.82%(0.98819) 以及 norm_edit_dis: 0.9884 的极高精度,推理速度表现优异。这意味着模型在面对 10.7 万生僻字时依然保持了极低的误识率。model_type): rec (文字识别)algorithm): SVTR_LCNetBackbone): PPLCNetV3 (scale: 1.0)Neck): SequenceEncoder (encoder_type: svtr, depth: 2, dims: 120, hidden_dims: 120, use_guide: True)Head): CTCHead (fc_decay: 1e-05)Adam (beta1: 0.9, beta2: 0.999)lr): Cosine 衰减策略 (learning_rate: 0.001, warmup_epoch: 5)regularizer): L2 (factor: 3e-05)epoch_num): 50 轮batch_size_per_card): 单卡 128 (支持多卡并行加速)max_text_length): 25character_dict_path): 绑定定制的 jigmo_dict.txt (10.7万生僻字表)inference.json & inference.pdiparams:极致压缩与固化的静态图推理模型。用于加载模型时构建骨架与恢复权重。best_accuracy.pdiparams:训练过程中的最优准确率权重备份(对应验证集 acc: 98.82% 的 Epoch 43 权重)。jigmo_dict.txt:10.7 万字生僻字映射核心字典。绝对核心,用于将模型输出的数字 ID 转回真正的生僻字。config.yml:网络训练时的架构与超参数配置文件。train.log:历史训练日志文件,完整记录了整个训练周期的 Loss 下降与 Acc 变化轨迹。1# 基于 PaddlePaddle 官方 GPU 运行环境镜像
2FROM paddlepaddle/paddle:2.5.2-gpu-cuda11.7-cudnn8.4
3
4# 设置工作目录
5WORKDIR /workspace
6
7# 安装系统依赖
8RUN apt-get update && apt-get install -y \
9 libgl1-mesa-glx \
10 libglib2.0-0 \
11 git \
12 && rm -rf /var/lib/apt/lists/*
13
14# 安装 Python 依赖包
15RUN pip install --no-cache-dir --upgrade pip
16RUN pip install --no-cache-dir \
17 paddleocr>=2.7.0 \
18 opencv-python==4.7.0.72 \
19 numpy<2.0.0 \
20 pyyaml \
21 shapely \
22 scikit-image
23
24# 复制项目推理代码与权重文件
25COPY . /workspace/
26requirements.txt)paddlepaddle-gpu>=2.5.0 (如仅使用 CPU 可安装 paddlepaddle)paddleocr>=2.7.0opencv-python>=4.5.0numpy>=1.20.0pyyaml>=6.0SVTR_LCNet(PPLCNetV3) 构建,计算开销低、推理速度快,非常适合在以下硬件设备上进行本地部署:inference.json、inference.pdiparams、jigmo_dict.txt)下载到本地指定目录后,可以通过以下 Python 代码进行本地加载与推理:1import cv2
2from paddleocr import PaddleOCR
3
4# 初始化 PaddleOCR 文字识别模型
5# 注意:需将 rec_model_dir 指向存放 inference.json / inference.pdiparams 的文件夹
6# char_dict_path 指向 10.7 万生僻字核心字典
7ocr = PaddleOCR(
8 use_angle_cls=False,
9 lang="ch",
10 det=False, # 如果输入已经是切好的单字或纯文本行图片,可关闭检测
11 rec_model_dir="./", # 模型文件所在路径
12 char_dict_path="./jigmo_dict.txt", # 定制的主字典
13 use_gpu=False, # 若有 GPU 环境可设置为 True
14)
15
16# 读取待识别的生僻字/古文字图片
17img_path = "path_to_rare_character_image.png"
18result = ocr.ocr(img_path, det=False, rec=True)
19
20# 打印识别结果
21for line in result:
22 print(f"识别文本: {line[0]}, 置信度: {line[1]:.4f}")
2320250912)。Jigmo 是一個自由且無償的漢字開源字體專案,主要利用 KAGE 系統、Clipper、FontForge 以及 TTX 生成,完整覆蓋了中日韓統一表意文字及其擴展區(包括第 0 面 BMP、第 1 面 SMP、第 2 面 SIP、第 3 面 TIP 等超大平面及 IVD 變體資料庫),包含多達 10.7 萬個漢字及非漢字字元,為古文字與罕見字數位化提供了堅實的字體基礎。epoch_num):50 輪(最終在 best_epoch: 43 取得最佳權重保存)。acc) 在局部步數中呈現階梯式爬升,歸一化編輯距離 (norm_edit_dis) 與損失函數 (loss) 逐步優化。best_epoch: 43)時,模型在驗證集上取得了令人矚目的 acc: 98.82%(0.98819) 以及 norm_edit_dis: 0.9884 的極高精度,推理速度表現優異。這意味著模型在面對 10.7 萬罕見字時依然保持了極低的誤識率。model_type): rec (文字識別)algorithm): SVTR_LCNetBackbone): PPLCNetV3 (scale: 1.0)Neck): SequenceEncoder (encoder_type: svtr, depth: 2, dims: 120, hidden_dims: 120, use_guide: True)Head): CTCHead (fc_decay: 1e-05)Adam (beta1: 0.9, beta2: 0.999)lr): Cosine 衰減策略 (learning_rate: 0.001, warmup_epoch: 5)regularizer): L2 (factor: 3e-05)epoch_num): 50 輪batch_size_per_card): 單卡 128 (支援多卡並行加速)max_text_length): 25character_dict_path): 綁定客製化的 jigmo_dict.txt (10.7萬罕見字表)inference.json & inference.pdiparams**:極致壓縮與固化的靜態圖推理模型。用於載入模型時建構骨架與恢復權重。best_accuracy.pdiparams:訓練過程中的最佳準確率權重備份(對應驗證集 acc: 98.82% 的 Epoch 43 權重)。jigmo_dict.txt:10.7 萬字罕見字映射核心字典。絕對核心,用於將模型輸出的數字 ID 轉回真正的罕見字。config.yml:網路訓練時的架構與超參數配置檔案。train.log:歷史訓練日誌檔案,完整記錄了整個訓練週期的 Loss 下降與 Acc 變化軌跡。1# 基於 PaddlePaddle 官方 GPU 執行環境映像檔
2FROM paddlepaddle/paddle:2.5.2-gpu-cuda11.7-cudnn8.4
3
4# 設定工作目錄
5WORKDIR /workspace
6
7# 安裝系統依賴
8RUN apt-get update && apt-get install -y \
9 libgl1-mesa-glx \
10 libglib2.0-0 \
11 git \
12 && rm -rf /var/lib/apt/lists/*
13
14# 安裝 Python 依賴套件
15RUN pip install --no-cache-dir --upgrade pip
16RUN pip install --no-cache-dir \
17 paddleocr>=2.7.0 \
18 opencv-python==4.7.0.72 \
19 numpy<2.0.0 \
20 pyyaml \
21 shapely \
22 scikit-image
23
24# 複製專案推理程式碼與權重檔案
25COPY . /workspace/
26requirements.txt)paddlepaddle-gpu>=2.5.0 (若僅使用 CPU 可安裝 paddlepaddle)paddleocr>=2.7.0opencv-python>=4.5.0numpy>=1.20.0pyyaml>=6.0SVTR_LCNet(PPLCNetV3) 建構,計算開銷低、推理速度快,非常適合在以下硬體設備上進行本地部署:inference.json、inference.pdiparams、jigmo_dict.txt)下載到本地指定目錄後,可以透過以下 Python 程式碼進行本地載入與推理:1import cv2
2from paddleocr import PaddleOCR
3
4# 初始化 PaddleOCR 文字識別模型
5# 注意:需將 rec_model_dir 指向存放 inference.json / inference.pdiparams 的資料夾
6# char_dict_path 指向 10.7 萬罕見字核心字典
7ocr = PaddleOCR(
8 use_angle_cls=False,
9 lang="ch",
10 det=False, # 如果輸入已經是切好的單字或純文本行圖片,可關閉檢測
11 rec_model_dir="./", # 模型檔案所在路徑
12 char_dict_path="./jigmo_dict.txt", # 客製化的主字典
13 use_gpu=False, # 若有 GPU 環境可設定為 True
14)
15
16# 讀取待識別的罕見字/古文字圖片
17img_path = "path_to_rare_character_image.png"
18result = ocr.ocr(img_path, det=False, rec=True)
19
20# 列印識別結果
21for line in result:
22 print(f"識別文本: {line[0]}, 置信度: {line[1]:.4f}")
2320250912). Jigmo is a free and open-source CJK font generated via the KAGE system, Clipper, FontForge, and TTX. It comprehensively covers the CJK Unified Ideographs and their extensions (including BMP, SMP, SIP, TIP planes, and the IVD variant database), containing up to 107,000 kanji/hanzi and non-kanji characters, providing a solid foundation for the digitization of ancient and rare scripts.epoch_num): 50 (The optimal weights were saved at best_epoch: 43).acc) climbed in a step-like manner, while the normalized edit distance (norm_edit_dis) and loss gradually optimized.best_epoch: 43), the model achieved a remarkable validation acc of 98.82% (0.98819) and a norm_edit_dis of 0.9884, alongside excellent inference speed. This indicates an extremely low misrecognition rate even when facing 107,000 rare characters.model_type): rec (Text Recognition)algorithm): SVTR_LCNetPPLCNetV3 (scale: 1.0)SequenceEncoder (encoder_type: svtr, depth: 2, dims: 120, hidden_dims: 120, use_guide: True)CTCHead (fc_decay: 1e-05)Adam (beta1: 0.9, beta2: 0.999)lr): Cosine decay strategy (learning_rate: 0.001, warmup_epoch: 5)L2 (factor: 3e-05)epoch_num): 50batch_size_per_card): 128 per card (supports multi-GPU acceleration)max_text_length): 25character_dict_path): Bound to the customized jigmo_dict.txt (107k rare characters)inference.json & inference.pdiparams**: Highly compressed static-graph inference models used to build the skeleton and restore weights during deployment.best_accuracy.pdiparams: The optimal accuracy weight backup during training (corresponding to Epoch 43 with a validation acc: 98.82%).jigmo_dict.txt: The core dictionary mapping 107,000 rare characters. Essential for converting model output numeric IDs back to actual characters.config.yml: Architecture and hyperparameter configuration file used during training.train.log: Historical training log fully recording the Loss decline and Acc trajectory over the training cycle.1# Based on PaddlePaddle's official GPU image
2FROM paddlepaddle/paddle:2.5.2-gpu-cuda11.7-cudnn8.4
3
4# Set working directory
5WORKDIR /workspace
6
7# Install system dependencies
8RUN apt-get update && apt-get install -y \
9 libgl1-mesa-glx \
10 libglib2.0-0 \
11 git \
12 && rm -rf /var/lib/apt/lists/*
13
14# Install Python dependencies
15RUN pip install --no-cache-dir --upgrade pip
16RUN pip install --no-cache-dir \
17 paddleocr>=2.7.0 \
18 opencv-python==4.7.0.72 \
19 numpy<2.0.0 \
20 pyyaml \
21 shapely \
22 scikit-image
23
24# Copy inference code and model weights
25COPY . /workspace/
26requirements.txt)paddlepaddle-gpu>=2.5.0 (Install paddlepaddle if only using CPU)paddleocr>=2.7.0opencv-python>=4.5.0numpy>=1.20.0pyyaml>=6.0SVTR_LCNet (PPLCNetV3) backbone, this model has low computational overhead and fast inference speeds, making it ideal for:inference.json, inference.pdiparams, jigmo_dict.txt) to a local directory, you can load and run inferences using the following Python code:1import cv2
2from paddleocr import PaddleOCR
3
4# Initialize PaddleOCR recognition model
5# Note: Point rec_model_dir to the folder containing inference.json / inference.pdiparams
6# Point char_dict_path to the 107k rare character dictionary
7ocr = PaddleOCR(
8 use_angle_cls=False,
9 lang="ch",
10 det=False, # Disable detection if input is already cropped to a single character/text line
11 rec_model_dir="./", # Path to the model folder
12 char_dict_path="./jigmo_dict.txt", # Customized dictionary
13 use_gpu=False, # Set to True if a GPU is available
14)
15
16# Read the rare/ancient character image
17img_path = "path_to_rare_character_image.png"
18result = ocr.ocr(img_path, det=False, rec=True)
19
20# Print results
21for line in result:
22 print(f"Recognized Text: {line[0]}, Confidence: {line[1]:.4f}")
2320250912)に由来します。Jigmoは、KAGEシステム、Clipper、FontForge、TTX等を用いて生成された自由かつ無償の漢字オープンソースフォントであり、CJK統合漢字とその拡張領域(第0面BMP、第1面SMP、第2面SIP、第3面TIP等の超巨大平面およびIVDバリアントデータベースを含む)を完全に網羅しています。最大10万7千文字以上の漢字・非漢字を収録し、古文字およびレア文字のデジタル化に強固な基盤を提供しています。epoch_num):50 エポック(最終的に best_epoch: 43 で最適な重みを保存)。acc) が段階的に上昇し、正規化編集距離 (norm_edit_dis) と損失関数 (loss) が徐々に最適化されました。best_epoch: 43)において、検証セットで目覚ましい acc: 98.82%(0.98819) および norm_edit_dis: 0.9884 という極めて高い精度を達成し、推論速度も優れたパフォーマンスを示しました。これは、10万7千字の難読漢字に対しても極めて低い誤認識率を維持していることを意味します。model_type): rec (テキスト認識)algorithm): SVTR_LCNetBackbone): PPLCNetV3 (scale: 1.0)Neck): SequenceEncoder (encoder_type: svtr, depth: 2, dims: 120, hidden_dims: 120, use_guide: True)Head): CTCHead (fc_decay: 1e-05)Adam (beta1: 0.9, beta2: 0.999)lr): Cosine 減衰戦略 (learning_rate: 0.001, warmup_epoch: 5)regularizer): L2 (factor: 3e-05)epoch_num): 50 エポックbatch_size_per_card): GPU 1基あたり 128 (マルチGPU並列加速対応)max_text_length): 25character_dict_path): カスタマイズされた jigmo_dict.txt (10.7万字辞書) に紐付けinference.json & inference.pdiparams**:極限まで圧縮・固化された静的グラフ推論モデル。モデルロード時の骨組み構築と重みの復元に使用されます。best_accuracy.pdiparams:学習過程における最適精度の重みバックアップ(検証セット acc: 98.82% のエポック43の重みに対応)。jigmo_dict.txt:10万7千字のマッピングコア辞書。モデルが出力した数値 ID を実際の文字に変換するための絶対不可欠なコアファイルです。config.yml:ネットワーク学習時のアーキテクチャおよびハイパーパラメータ設定ファイル。train.log:過去の学習ログファイル。トレーニングサイクル全体の Loss の減少と Acc の変化軌跡を完全に記録しています。1# PaddlePaddle 公式の GPU 実行環境イメージをベースにする
2FROM paddlepaddle/paddle:2.5.2-gpu-cuda11.7-cudnn8.4
3
4# 作業ディレクトリの設定
5WORKDIR /workspace
6
7# システム依存パッケージのインストール
8RUN apt-get update && apt-get install -y \
9 libgl1-mesa-glx \
10 libglib2.0-0 \
11 git \
12 && rm -rf /var/lib/apt/lists/*
13
14# Python 依存ライブラリのインストール
15RUN pip install --no-cache-dir --upgrade pip
16RUN pip install --no-cache-dir \
17 paddleocr>=2.7.0 \
18 opencv-python==4.7.0.72 \
19 numpy<2.0.0 \
20 pyyaml \
21 shapely \
22 scikit-image
23
24# プロジェクトの推論コードと重みファイルをコピー
25COPY . /workspace/
26requirements.txt)paddlepaddle-gpu>=2.5.0 (CPUのみを使用する場合は paddlepaddle をインストール)paddleocr>=2.7.0opencv-python>=4.5.0numpy>=1.20.0pyyaml>=6.0SVTR_LCNet(PPLCNetV3) に基づいて構築されているため、計算負荷が低く、推論速度が速いのが特徴です。以下のハードウェアデバイスでのローカルデプロイに非常に適しています:inference.json、inference.pdiparams、jigmo_dict.txt)をローカルの指定ディレクトリにダウンロードした後、以下の Python コードでロードして推論を実行できます:1import cv2
2from paddleocr import PaddleOCR
3
4# PaddleOCR テキスト認識モデルの初期化
5# 注意:rec_model_dir は inference.json / inference.pdiparams が保存されているフォルダを指定
6# char_dict_path は 10.7 万字のコア辞書を指定
7ocr = PaddleOCR(
8 use_angle_cls=False,
9 lang="ch",
10 det=False, # 入力が既に切り取られた単文字やテキスト行の画像である場合、検出をオフにできます
11 rec_model_dir="./", # モデルファイルが配置されているパス
12 char_dict_path="./jigmo_dict.txt", # カスタマイズされたメイン辞書
13 use_gpu=False, # GPU環境がある場合は True に設定
14)
15
16# 認識対象の異体字/古文字画像を読み込む
17img_path = "path_to_rare_character_image.png"
18result = ocr.ocr(img_path, det=False, rec=True)
19
20# 認識結果を出力
21for line in result:
22 print(f"認識テキスト: {line[0]}, 信頼度: {line[1]:.4f}")
2320250912)에서 유래합니다. Jigmo는 KAGE 시스템, Clipper, FontForge, TTX 등을 활용하여 생성된 자유롭고 무료인 한자 오픈소스 프로젝트로, CJK 통합 한자 및 확장 영역(제0면 BMP, 제1면 SMP, 제2면 SIP, 제3면 TIP 등의 초대형 평면 및 IVD 변형 데이터베이스 포함)을 완벽하게 포괄하며 최대 10만 7천여 개의 문자를 포함하여 고문자 및 희귀 문자 디지털화에 탄탄한 기반을 제공합니다.epoch_num): 50 에포크 (최종적으로 best_epoch: 43에서 최적의 가중치를 저장함).acc)가 단계적으로 상승하였으며, 정규화 편집 거리(norm_edit_dis)와 손실 함수(loss)가 점진적으로 최적화되었습니다.best_epoch: 43)에서 검증 세트 기준 주목할 만한 acc: 98.82%(0.98819) 및 norm_edit_dis: 0.9884의 매우 높은 정확도를 달성했으며, 추론 속도 또한 우수한 성능을 보였습니다. 이는 10만 7천 자의 희귀 문자를 마주했을 때도 여전히 매우 낮은 오인식률을 유지함을 의미합니다.model_type): rec (텍스트 인식)algorithm): SVTR_LCNetBackbone): PPLCNetV3 (scale: 1.0)Neck): SequenceEncoder (encoder_type: svtr, depth: 2, dims: 120, hidden_dims: 120, use_guide: True)Head): CTCHead (fc_decay: 1e-05)Adam (beta1: 0.9, beta2: 0.999)lr): Cosine 감쇠 전략 (learning_rate: 0.001, warmup_epoch: 5)regularizer): L2 (factor: 3e-05)epoch_num): 50 에포크batch_size_per_card): GPU 1개당 128 (다중 GPU 병렬 가속 지원)max_text_length): 25character_dict_path): 맞춤 제작된 jigmo_dict.txt (10.7만 희귀 문자표)와 연결inference.json & inference.pdiparams**: 극도로 압축 및 고정된 정적 그래프 추론 모델입니다. 모델을 로드할 때 뼈대 구축 및 가중치 복원에 사용됩니다.best_accuracy.pdiparams: 학습 과정 중 최적 정확도 가중치 백업 파일입니다 (검증 세트 acc: 98.82%인 에포크 43의 가중치에 해당).jigmo_dict.txt: 10만 7천 자 희귀 문자 매핑 핵심 사전. 모델이 출력한 숫자 ID를 실제 희귀 문자로 변환하는 데 사용되는 절대적인 핵심 파일입니다.config.yml: 네트워크 학습 시 아키텍처 및 하이퍼파라미터 설정 파일입니다.train.log: 과거 학습 로그 파일로, 전체 학습 주기에 걸친 Loss 감소 및 Acc 변화 궤적을 완벽하게 기록하고 있습니다.1# PaddlePaddle 공식 GPU 실행 환경 이미지 기반
2FROM paddlepaddle/paddle:2.5.2-gpu-cuda11.7-cudnn8.4
3
4# 작업 디렉토리 설정
5WORKDIR /workspace
6
7# 시스템 종속성 패키지 설치
8RUN apt-get update && apt-get install -y \
9 libgl1-mesa-glx \
10 libglib2.0-0 \
11 git \
12 && rm -rf /var/lib/apt/lists/*
13
14# Python 종속성 패키지 설치
15RUN pip install --no-cache-dir --upgrade pip
16RUN pip install --no-cache-dir \
17 paddleocr>=2.7.0 \
18 opencv-python==4.7.0.72 \
19 numpy<2.0.0 \
20 pyyaml \
21 shapely \
22 scikit-image
23
24# 프로젝트 추론 코드 및 가중치 파일 복사
25COPY . /workspace/
26requirements.txt)paddlepaddle-gpu>=2.5.0 (CPU만 사용하는 경우 paddlepaddle 설치 가능)paddleocr>=2.7.0opencv-python>=4.5.0numpy>=1.20.0pyyaml>=6.0SVTR_LCNet (PPLCNetV3)을 기반으로 구축되었기 때문에 연산 부하가 적고 추론 속도가 빨라 다음 기기에서의 로컬 배포에 매우 적합합니다:inference.json, inference.pdiparams, jigmo_dict.txt)을 로컬 지정 디렉토리로 다운로드한 후, 다음 Python 코드를 통해 로드하고 추론할 수 있습니다:1import cv2
2from paddleocr import PaddleOCR
3
4# PaddleOCR 텍스트 인식 모델 초기화
5# 주의: rec_model_dir은 inference.json / inference.pdiparams가 있는 폴더를 가리켜야 합니다.
6# char_dict_path는 10.7만 자의 핵심 사전을 가리킵니다.
7ocr = PaddleOCR(
8 use_angle_cls=False,
9 lang="ch",
10 det=False, # 입력이 이미 잘린 단일 문자나 텍스트 줄 이미지인 경우 감지를 끌 수 있습니다.
11 rec_model_dir="./", # 모델 파일이 있는 경로
12 char_dict_path="./jigmo_dict.txt", # 맞춤 설정된 메인 사전
13 use_gpu=False, # GPU 환경이 있는 경우 True로 설정
14)
15
16# 인식할 희귀 문자/고문자 이미지 읽기
17img_path = "path_to_rare_character_image.png"
18result = ocr.ocr(img_path, det=False, rec=True)
19
20# 인식 결과 출력
21for line in result:
22 print(f"인식된 텍스트: {line[0]}, 신뢰도: {line[1]:.4f}")
2320250912). Jigmo là một dự án phông chữ CJK tự do và miễn phí được tạo ra thông qua hệ thống KAGE, Clipper, FontForge và TTX. Nó bao phủ toàn diện các vùng chữ Hán thống nhất CJK và các vùng mở rộng (bao gồm mặt phẳng BMP 0, SMP 1, SIP 2, TIP 3 và cơ sở dữ liệu biến thể IVD), chứa tới hơn 107.000 ký tự, tạo nền tảng vững chắc cho việc số hóa chữ cổ và chữ hiếm.epoch_num): 50 vòng (Lưu lại trọng số tối ưu nhất tại best_epoch: 43).acc) tăng dần theo kiểu bậc thang, khoảng cách chỉnh sửa chuẩn hóa (norm_edit_dis) và hàm mất mát (loss) được tối ưu hóa dần.best_epoch: 43), mô hình đã đạt được độ chính xác (acc) cực cao trên tập xác thực là 98,82% (0.98819) và norm_edit_dis là 0.9884, đồng thời hiệu suất suy luận rất xuất sắc. Điều này cho thấy mô hình vẫn duy trì tỷ lệ nhận dạng sai cực thấp ngay cả khi đối mặt với 107.000 chữ hiếm.model_type): rec (Nhận dạng văn bản)algorithm): SVTR_LCNetPPLCNetV3 (scale: 1.0)SequenceEncoder (encoder_type: svtr, depth: 2, dims: 120, hidden_dims: 120, use_guide: True)CTCHead (fc_decay: 1e-05)Adam (beta1: 0.9, beta2: 0.999)lr): Chiến lược giảm dần Cosine (learning_rate: 0.001, warmup_epoch: 5)regularizer): L2 (factor: 3e-05)epoch_num): 50 vòngbatch_size_per_card): 128 mỗi thẻ (Hỗ trợ tăng tốc song song đa thẻ)max_text_length): 25character_dict_path): Liên kết với jigmo_dict.txt tùy chỉnh (Bảng 107k chữ hiếm)inference.json & inference.pdiparams**: Mô hình suy luận đồ thị tĩnh được nén và cố định hóa cao độ. Dùng để xây dựng khung và khôi phục trọng số khi tải mô hình.best_accuracy.pdiparams: Bản sao lưu trọng số có độ chính xác tối ưu trong quá trình huấn luyện (tương ứng với trọng số của Epoch 43 có acc đạt 98,82%).jigmo_dict.txt: Từ điển cốt lõi ánh xạ 107.000 ký tự hiếm. Thành phần cốt lõi tuyệt đối, dùng để chuyển đổi ID số do mô hình xuất ra thành chữ hiếm thực tế.config.yml: Tệp cấu hình kiến trúc và siêu tham số trong quá trình huấn luyện mạng.train.log: Tệp nhật ký huấn luyện lịch sử, ghi lại đầy đủ quá trình giảm Loss và biến động Acc trong toàn bộ chu kỳ.1# Dựa trên image môi trường chạy GPU chính thức của PaddlePaddle
2FROM paddlepaddle/paddle:2.5.2-gpu-cuda11.7-cudnn8.4
3
4# Thiết lập thư mục làm việc
5WORKDIR /workspace
6
7# Cài đặt các gói phụ thuộc hệ thống
8RUN apt-get update && apt-get install -y \
9 libgl1-mesa-glx \
10 libglib2.0-0 \
11 git \
12 && rm -rf /var/lib/apt/lists/*
13
14# Cài đặt các gói phụ thuộc Python
15RUN pip install --no-cache-dir --upgrade pip
16RUN pip install --no-cache-dir \
17 paddleocr>=2.7.0 \
18 opencv-python==4.7.0.72 \
19 numpy<2.0.0 \
20 pyyaml \
21 shapely \
22 scikit-image
23
24# Sao chép mã suy luận của dự án và các tệp trọng số
25COPY . /workspace/
26requirements.txt)paddlepaddle-gpu>=2.5.0 (Nếu chỉ sử dụng CPU, có thể cài đặt paddlepaddle)paddleocr>=2.7.0opencv-python>=4.5.0numpy>=1.20.0pyyaml>=6.0SVTR_LCNet (PPLCNetV3), chi phí tính toán thấp và tốc độ suy luận nhanh nên rất phù hợp để triển khai cục bộ trên các thiết bị phần cứng sau:inference.json, inference.pdiparams, jigmo_dict.txt) về thư mục chỉ định trên máy, bạn có thể tải và chạy suy luận cục bộ thông qua mã Python sau:1import cv2
2from paddleocr import PaddleOCR
3
4# Khởi tạo mô hình nhận dạng văn bản PaddleOCR
5# Lưu ý: Cần trỏ rec_model_dir đến thư mục chứa inference.json / inference.pdiparams
6# char_dict_path trỏ đến từ điển cốt lõi gồm 107.000 chữ hiếm
7ocr = PaddleOCR(
8 use_angle_cls=False,
9 lang="ch",
10 det=False, # Nếu đầu vào là ảnh cắt sẵn chứa 1 ký tự hoặc 1 dòng chữ, có thể tắt phần phát hiện (det)
11 rec_model_dir="./", # Đường dẫn đến thư mục chứa mô hình
12 char_dict_path="./jigmo_dict.txt", # Từ điển chính tùy chỉnh
13 use_gpu=False, # Nếu có môi trường GPU, thiết lập thành True
14)
15
16# Đọc hình ảnh chữ hiếm/chữ cổ cần nhận dạng
17img_path = "path_to_rare_character_image.png"
18result = ocr.ocr(img_path, det=False, rec=True)
19
20# In kết quả nhận dạng
21for line in result:
22 print(f"Văn bản nhận dạng: {line[0]}, Độ tin cậy: {line[1]:.4f}")