英語 | 中国語
はじめに | ?取り付け |クイックスタート |チュートリアル | ?モデル一覧 | ?データセットリスト |よくある質問 | ?注意事項
MindOCR は、MindSpore に基づく OCR 開発およびアプリケーション用のオープンソース ツールボックスで、一連の主流のテキスト検出および認識アルゴリズム/モデルを統合し、使いやすいトレーニングおよび推論ツールを提供します。 DBNet/DBNet++ や CRNN/SVTR などの実世界のアプリケーションでの SoTA テキスト検出および認識モデルの開発と展開のプロセスを加速し、画像とテキストの理解のニーズを満たすのに役立ちます。
以下は、対応するmindocr
バージョンとサポートされている minndocr バージョンです。
マインドク | マインドスポア |
---|---|
マスター | マスター |
0.4 | 2.3.0 |
0.3 | 2.2.10 |
0.1 | 1.8 |
MindOCR は MindSpore AI フレームワークに基づいて構築されており、次のフレームワーク バージョンと互換性があります。トレーニング用のインストール ガイドラインについては、以下のインストール リンクを参照してください。
mindocr
バージョンを参照して、正しい MindSpore バージョンをインストールしてください。MindSpore Lite オフライン推論については、「Lite オフライン環境のインストール」を参照してください。
pip install -r requirements.txt
git clone https://github.com/mindspore-lab/mindocr.git
cd mindocr
pip install -e .
「編集可能」モードで
-e
使用すると、モジュールのインポートに関する潜在的な問題の解決に役立ちます。
提供される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
引数は、トレーニングするモデルと、データ プロセス パイプライン、オプティマイザー、lr スケジューラなどを含むトレーニング戦略を定義する yaml ファイルへのパスを指定します。
MindOCR は、SoTA OCR モデルとそのトレーニング戦略をconfigs
フォルダーに提供します。たとえば、次のコマンドを実行することで、タスク/データセットに適応させることができます。
# 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 データセットを検証しました。
トレーニングと評価用にさらに多くのデータセットを含める予定です。このリストは継続的に更新されます。
環境の構成とminocrに関するよくある質問は、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
に設定してください。 YAML の例はconfigs/rec/crnn/crnn_icdar15.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.
MindOCR をより良くするための問題や PR など、あらゆる種類の貢献に感謝します。
貢献ガイドラインについては、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}
}