Bahasa Inggris | tidak
Pendahuluan | ?Instalasi | Mulai Cepat | Tutorial | ?Daftar Model | ?Daftar Kumpulan Data | Pertanyaan yang Sering Diajukan | ?Catatan
MindOCR adalah kotak alat sumber terbuka untuk pengembangan dan aplikasi OCR berdasarkan MindSpore, yang mengintegrasikan serangkaian algoritma/model deteksi dan pengenalan teks arus utama, menyediakan alat pelatihan dan inferensi yang mudah digunakan. Hal ini dapat mempercepat proses pengembangan dan penerapan model deteksi dan pengenalan teks SoTA dalam aplikasi dunia nyata, seperti DBNet/DBNet++ dan CRNN/SVTR, dan membantu memenuhi kebutuhan pemahaman gambar-teks.
Berikut ini adalah versi mindocr
yang sesuai dan versi mindpore yang didukung.
mindocr | mindpore |
---|---|
menguasai | menguasai |
0,4 | 2.3.0 |
0,3 | 2.2.10 |
0,1 | 1.8 |
MindOCR dibangun di atas kerangka kerja MindSpore AI dan kompatibel dengan versi kerangka kerja berikut. pedoman instalasi untuk Pelatihan, silakan merujuk ke tautan instalasi yang ditunjukkan di bawah ini.
mindocr
.Inferensi offline MindSpore Lite, silakan lihat Instalasi Lingkungan offline Lite
pip install -r requirements.txt
git clone https://github.com/mindspore-lab/mindocr.git
cd mindocr
pip install -e .
Menggunakan
-e
untuk mode "dapat diedit" dapat membantu menyelesaikan potensi masalah impor modul.
Informasi lingkungan buruh pelabuhan yang disediakan adalah sebagai berikut:
Silakan ikuti langkah-langkah untuk menginstal buruh pelabuhan:
Unduh buruh pelabuhan
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
Buat wadah
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
Masukkan wadah
# set docker id
container_id= " your docker id "
docker exec -it --user root $container_id bash
Tetapkan variabel lingkungan Setelah memasuki wadah, atur variabel lingkungan dengan perintah berikut:
source env_setup.sh
pip install mindocr
Karena proyek ini sedang dalam pengembangan aktif, versi yang diinstal dari PyPI saat ini sudah kedaluwarsa. (akan segera diperbarui).
Setelah menginstal MindOCR, kita dapat menjalankan deteksi dan pengenalan teks pada gambar sembarang dengan mudah sebagai berikut.
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
Setelah dijalankan, hasilnya akan disimpan di ./inference_results
secara default. Berikut ini contoh hasilnya.
Visualisasi hasil deteksi dan pengenalan teks
Kita dapat melihat bahwa semua teks pada gambar terdeteksi dan dikenali secara akurat. Untuk penggunaan lebih lanjut, silakan merujuk ke bagian inferensi dalam tutorial.
Sangat mudah untuk melatih model OCR Anda dengan skrip tools/train.py
, yang mendukung pelatihan model deteksi dan pengenalan teks.
python tools/train.py --config {path/to/model_config.yaml}
Argumen --config
menentukan jalur ke file yaml yang mendefinisikan model yang akan dilatih dan strategi pelatihan termasuk alur proses data, pengoptimal, penjadwal lr, dll.
MindOCR menyediakan model SoTA OCR dengan strategi pelatihannya di folder configs
. Anda dapat menyesuaikannya dengan tugas/kumpulan data Anda, misalnya dengan menjalankan
# 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
Demikian pula, mudah untuk mengevaluasi model yang dilatih dengan skrip 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}
Untuk ilustrasi dan penggunaan lebih lanjut, silakan merujuk ke bagian pelatihan model di Tutorial.
Anda dapat melakukan inferensi MindSpore Lite di MindOCR menggunakan model MindOCR atau model pihak ketiga (PaddleOCR, MMOCR, dll.). Silakan merujuk ke Tutorial Inferensi Model Offline
Untuk detail performa model yang dilatih, silakan merujuk ke https://github.com/mindspore-lab/mindocr/blob/main/configs.
Untuk rincian dukungan model inferensi MindSpore Lite, silakan lihat Daftar Dukungan Model MindOCR dan Daftar Dukungan Model Pihak Ketiga (PaddleOCR dll.).
MindOCR menyediakan alat konversi kumpulan data ke kumpulan data OCR dengan format berbeda dan mendukung kumpulan data yang disesuaikan oleh pengguna. Kami telah memvalidasi kumpulan data OCR publik berikut dalam pelatihan/evaluasi model.
Kami akan menyertakan lebih banyak kumpulan data untuk pelatihan dan evaluasi. Daftar ini akan terus diperbarui.
Pertanyaan yang sering diajukan tentang konfigurasi lingkungan dan mindocr, silakan merujuk ke FAQ.
resume
di bawah bidang model
di konfigurasi yaml, misalnya resume: True
, muat dan lanjutkan pelatihan dari {ckpt_save_dir}/train_resume.ckpt atau resume: /path/to/train_resume.ckpt
, muat dan lanjutkan pelatihan dari jalan yang diberikan.eval.dataset.output_columns
.pred_cast_fp32
untuk ctcloss dalam pelatihan AMP, perbaiki kesalahan saat ada poligon yang tidak valid.model-pretrained
dengan url pos pemeriksaan atau jalur lokal di yaml.train-ema
(default: False) dan train-ema_decay
di konfigurasi yaml.num_columns_to_net
-> net_input_column_index
: mengubah nomor kolom yang masuk ke jaringan menjadi indeks kolom.num_columns_of_labels
-> label_column_index
: ubah nomor kolom sesuai label menjadi indeks kolom.grouping_strategy
di konfigurasi yaml untuk memilih strategi pengelompokan yang telah ditentukan sebelumnya, atau gunakan argumen no_weight_decay_params
untuk memilih lapisan yang akan dikecualikan dari penurunan bobot (misalnya, bias, norma). Contoh dapat dirujuk di configs/rec/crnn/crnn_icdar15.yaml
gradient_accumulation_steps
di konfigurasi yaml, ukuran batch global = ukuran_batch * perangkat * gradien_akumulasi_langkah. Contoh dapat dirujuk di configs/rec/crnn/crnn_icdar15.yaml
grad_clip
sebagai True di konfigurasi yaml.type
loss_scale
sebagai dynamic
. Contoh YAML dapat dilihat di 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.
Kami mengapresiasi segala bentuk kontribusi termasuk isu dan PR untuk menjadikan MindOCR lebih baik.
Silakan merujuk ke CONTRIBUTING.md untuk pedoman berkontribusi. Silakan ikuti Templat Model dan Pedoman untuk menyumbangkan model yang sesuai dengan keseluruhan antarmuka :)
Proyek ini mengikuti lisensi sumber terbuka Apache License 2.0.
Jika Anda merasa proyek ini berguna dalam penelitian Anda, mohon pertimbangkan untuk mengutip:
@misc{MindSpore OCR 2023,
title={{MindSpore OCR }:MindSpore OCR Toolbox},
author={MindSpore Team},
howpublished = { url {https://github.com/mindspore-lab/mindocr/}},
year={2023}
}