英語 | 中文
簡介 | ?安裝|快速入門 |教程 | ?型號列表| ?資料集列表|常見問題 | ?
MindOCR是一個基於MindSpore的開源OCR開發和應用工具箱,整合了一系列主流文字偵測和辨識演算法/模型,提供易於使用的訓練和推理工具。它可以加速在實際應用中開發和部署 SoTA 文字偵測和識別模型的過程,例如 DBNet/DBNet++ 和 CRNN/SVTR,並幫助滿足影像文字理解的需求。
以下是對應的mindocr
版本和支援的mindspore版本。
頭腦多克 | 心靈孢子 |
---|---|
掌握 | 掌握 |
0.4 | 2.3.0 |
0.3 | 2.2.10 |
0.1 | 1.8 |
MindOCR 是基於 MindSpore AI 框架構建,相容於以下框架版本。 Training安裝指南,請參考如下安裝連結。
mindocr
版本。MindSpore Lite離線推理請參考Lite離線環境安裝
pip install -r requirements.txt
git clone https://github.com/mindspore-lab/mindocr.git
cd mindocr
pip install -e .
使用
-e
進行“可編輯”模式可以幫助解決潛在的模組導入問題。
提供的dockers環境資訊如下:
請依照以下步驟安裝docker:
下載docker
docker pull swr.cn-central-221.ovaijisuan.com/mindocr/mindocr_dev_910_ms_2_2_10_cann7_0_py39:v1
docker pull swr.cn-central-221.ovaijisuan.com/mindocr/mindocr_dev_ms_2_2_10_cann7_0_py39:v1
建立容器
docker_name= " temp_mindocr "
# 910
image_name= " swr.cn-central-221.ovaijisuan.com/mindocr/mindocr_dev_910_ms_2_2_10_cann7_0_py39:v1 "
# 910*
image_name= " swr.cn-central-221.ovaijisuan.com/mindocr/mindocr_dev_ms_2_2_10_cann7_0_py39:v1 "
docker run --privileged --name ${docker_name}
--tmpfs /tmp
--tmpfs /run
-v /sys/fs/cgroup:/sys/fs/cgroup:ro
--device=/dev/davinci1
--device=/dev/davinci2
--device=/dev/davinci3
--device=/dev/davinci4
--device=/dev/davinci5
--device=/dev/davinci6
--device=/dev/davinci7
--device=/dev/davinci_manager
--device=/dev/hisi_hdc
--device=/dev/devmm_svm
-v /etc/localtime:/etc/localtime
-v /usr/local/Ascend/driver:/usr/local/Ascend/driver
-v /usr/local/bin/npu-smi:/usr/local/bin/npu-smi
--shm-size 800g
--cpus 96
--security-opt seccomp=unconfined
--network=bridge -itd ${image_name} bash
進入容器
# set docker id
container_id= " your docker id "
docker exec -it --user root $container_id bash
設定環境變數進入容器後,透過以下指令設定環境變數:
source env_setup.sh
pip install mindocr
由於該專案正在積極開發中,從 PyPI 安裝的版本目前已經過時。 (很快就會更新)。
安裝MindOCR後,我們可以輕鬆地對任意圖像進行文字檢測和識別,如下所示。
python tools/infer/text/predict_system.py --image_dir {path_to_img or dir_to_imgs}
--det_algorithm DB++
--rec_algorithm CRNN
--visualize_output True
運行後,結果預設保存在./inference_results
中。這是一個範例結果。
文字檢測和識別結果可視化
我們可以看到圖像上的所有文字都被準確地檢測和識別。更多使用請參考教程中的推理部分。
使用tools/train.py
腳本可以輕鬆訓練OCR模型,該腳本支援文字偵測和識別模型訓練。
python tools/train.py --config {path/to/model_config.yaml}
--config
arg 指定 yaml 檔案的路徑,該檔案定義要訓練的模型和訓練策略,包括資料處理管道、最佳化器、lr 調度器等。
MindOCR 在configs
資料夾中提供 SoTA OCR 模型及其訓練策略。您可以將其調整為您的任務/資料集,例如,透過執行
# train text detection model DBNet++ on icdar15 dataset
python tools/train.py --config configs/det/dbnet/dbpp_r50_icdar15.yaml
# train text recognition model CRNN on icdar15 dataset
python tools/train.py --config configs/rec/crnn/crnn_icdar15.yaml
同樣,使用tools/eval.py
腳本可以輕鬆評估訓練後的模型。
python tools/eval.py
--config {path/to/model_config.yaml}
--opt eval.dataset_root={path/to/your_dataset} eval.ckpt_load_path={path/to/ckpt_file}
更多說明和使用請參考教學中的模型訓練部分。
您可以使用MindOCR 模型或第三方模型(PaddleOCR、MMOCR 等)在 MindOCR 中進行 MindSpore Lite 推理。請參考模型離線推理教學課程
訓練後模型的詳細表現請參考https://github.com/mindspore-lab/mindocr/blob/main/configs。
MindSpore Lite推理模型支援詳情請參考MindOCR模型支援清單和第三方模型支援清單(PaddleOCR等)。
MindOCR提供了不同格式OCR資料集的資料集轉換工具,並支援使用者自訂資料集。我們在模型訓練/評估中驗證了以下公共 OCR 資料集。
我們將包含更多用於訓練和評估的資料集。該清單將持續更新。
有關設定環境和mindocr的常見問題,請參閱FAQ。
model
欄位下方新增resume
參數,例如: resume: True
,從{ckpt_save_dir}/train_resume.ckpt載入並恢復訓練或resume: /path/to/train_resume.ckpt
,從下列載入並恢復訓練給定的路徑。eval.dataset.output_columns
清單來啟用。pred_cast_fp32
,修復存在無效多邊形時的錯誤。model-pretrained
來載入自訂的預訓練檢查點。train-ema
(預設:False)和train-ema_decay
來啟用。num_columns_to_net
-> net_input_column_index
:將輸入網路的列號變更為列索引。num_columns_of_labels
-> label_column_index
:將標籤對應的列號變更為列索引。grouping_strategy
參數來選擇預先定義的分組策略,或使用no_weight_decay_params
參數來選擇要從權重衰減中排除的層(例如,偏差、範數)。範例可以參考configs/rec/crnn/crnn_icdar15.yaml
gradient_accumulation_steps
,全域批次大小=batch_size * devices *gradient_accumulation_steps。範例可以參考configs/rec/crnn/crnn_icdar15.yaml
grad_clip
設為 True 來啟用它。loss_scale
的type
設為dynamic
。可以在configs/rec/crnn/crnn_icdar15.yaml
中查看 YAML 範例output_keys
-> output_columns
、 num_keys_to_net
-> num_columns_to_net
i) Create a new training task on the openi cloud platform.
ii) Link the dataset (e.g., ic15_mindocr) on the webpage.
iii) Add run parameter `config` and write the yaml file path on the website UI interface, e.g., '/home/work/user-job-dir/V0001/configs/rec/test.yaml'
iv) Add run parameter `enable_modelarts` and set True on the website UI interface.
v) Fill in other blanks and launch.
我們感謝各種貢獻,包括問題和 PR,以使 MindOCR 變得更好。
請參閱 CONTRIBUTING.md 以了解貢獻指南。請遵循模型範本和指南來貢獻適合整體介面的模型:)
本專案遵循 Apache License 2.0 開源授權。
如果您發現該項目對您的研究有用,請考慮引用:
@misc{MindSpore OCR 2023,
title={{MindSpore OCR }:MindSpore OCR Toolbox},
author={MindSpore Team},
howpublished = { url {https://github.com/mindspore-lab/mindocr/}},
year={2023}
}