PaddleOCR terintegrasi dengan Proyek Amazon SageMaker untuk MLOps untuk melakukan pengenalan karakter optik pada dokumen identitas PlatoBlockchain Data Intelligence. Pencarian Vertikal. Ai.

PaddleOCR terintegrasi dengan Proyek Amazon SageMaker untuk MLOps untuk melakukan pengenalan karakter optik pada dokumen identitas

Pengenalan karakter optik (OCR) adalah tugas mengubah teks tercetak atau tulisan tangan menjadi teks yang dikodekan oleh mesin. OCR telah banyak digunakan dalam berbagai skenario, seperti elektronisasi dokumen dan otentikasi identitas. Karena OCR dapat sangat mengurangi upaya manual untuk mendaftarkan informasi kunci dan berfungsi sebagai langkah awal untuk memahami volume dokumen yang besar, sistem OCR yang akurat memainkan peran penting di era transformasi digital.

Komunitas dan peneliti open-source berkonsentrasi pada cara meningkatkan akurasi OCR, kemudahan penggunaan, integrasi dengan model yang telah dilatih sebelumnya, ekstensi, dan fleksibilitas. Di antara banyak kerangka kerja yang diusulkan, PaddleOCR telah mendapatkan perhatian yang meningkat baru-baru ini. Kerangka kerja yang diusulkan berkonsentrasi pada perolehan akurasi tinggi sambil menyeimbangkan efisiensi komputasi. Selain itu, model pra-latihan untuk bahasa Cina dan Inggris membuatnya populer di pasar berbasis bahasa Cina. Lihat Repo GitHub PaddleOCR lebih lanjut.

Di AWS, kami juga telah mengusulkan layanan AI terintegrasi yang siap digunakan tanpa keahlian machine learning (ML). Untuk mengekstrak teks dan data terstruktur seperti tabel dan formulir dari dokumen, Anda dapat menggunakan Teks Amazon. Ini menggunakan teknik ML untuk membaca dan memproses semua jenis dokumen, mengekstrak teks, tulisan tangan, tabel, dan data lainnya secara akurat tanpa upaya manual.

Untuk ilmuwan data yang menginginkan fleksibilitas untuk menggunakan kerangka kerja sumber terbuka untuk mengembangkan model OCR Anda sendiri, kami juga menawarkan layanan ML yang terkelola sepenuhnya Amazon SageMaker. SageMaker memungkinkan Anda untuk menerapkan praktik terbaik MLOps di seluruh siklus hidup ML, dan menyediakan template dan kumpulan alat untuk mengurangi beban berat yang tidak dapat dibedakan untuk menempatkan proyek ML dalam produksi.

Dalam posting ini, kami berkonsentrasi pada pengembangan model khusus dalam kerangka PaddleOCR di SageMaker. Kami menelusuri siklus hidup pengembangan ML untuk mengilustrasikan bagaimana SageMaker dapat membantu Anda membangun dan melatih model, dan akhirnya menerapkan model sebagai layanan web. Meskipun kami mengilustrasikan solusi ini dengan PaddleOCR, panduan umum berlaku untuk kerangka kerja arbitrer yang akan digunakan di SageMaker. Untuk menyertai postingan ini, kami juga menyediakan contoh kode di Repositori GitHub.

Kerangka kerja PaddleOCR

Sebagai kerangka kerja OCR yang diadopsi secara luas, PaddleOCR berisi deteksi teks kaya, pengenalan teks, dan algoritma ujung ke ujung. Ia memilih Differentiable Binarization (DB) dan Convolutional Recurrent Neural Network (CRNN) sebagai model deteksi dan pengenalan dasar, dan mengusulkan serangkaian model, bernama PP-OCR, untuk aplikasi industri setelah serangkaian strategi optimasi.

Model PP-OCR ditujukan untuk skenario umum dan membentuk perpustakaan model dari berbagai bahasa. Ini terdiri dari tiga bagian: deteksi teks, deteksi dan perbaikan kotak, dan pengenalan teks, diilustrasikan pada gambar berikut di PaddleOCR repositori GitHub resmi. Anda juga dapat merujuk ke makalah penelitian PP-OCR: Sistem OCR Ultra Ringan Praktis for more information.

Untuk lebih spesifik, PaddleOCR terdiri dari tiga tugas berturut-turut:

  • Deteksi teks โ€“ Tujuan pendeteksian teks adalah untuk menemukan area teks pada gambar. Tugas tersebut dapat didasarkan pada jaringan segmentasi sederhana.
  • Deteksi dan perbaikan kotak โ€“ Setiap kotak teks perlu diubah menjadi kotak persegi panjang horizontal untuk pengenalan teks berikutnya. Untuk melakukan ini, PaddleOCR mengusulkan untuk melatih pengklasifikasi arah teks (tugas klasifikasi gambar) untuk menentukan arah teks.
  • Pengenalan teks โ€“ Setelah kotak teks terdeteksi, model pengenal teks melakukan inferensi pada setiap kotak teks dan mengeluarkan hasilnya sesuai dengan lokasi kotak teks. PaddleOCR mengadopsi metode CRNN yang banyak digunakan.

PaddleOCR menyediakan model pra-pelatihan berkualitas tinggi yang sebanding dengan efek komersial. Anda dapat menggunakan model yang telah dilatih sebelumnya untuk model deteksi, pengklasifikasi arah, atau model pengenalan, atau Anda dapat menyempurnakan dan melatih ulang setiap model individual untuk melayani kasus penggunaan Anda. Untuk meningkatkan efisiensi dan efektivitas pendeteksian bahasa Mandarin dan Inggris Tradisional, kami mengilustrasikan cara menyempurnakan model pengenalan teks. Model pra-terlatih yang kami pilih adalah ch_ppocr_mobile_v2.0_rec_train, yang merupakan model ringan, mendukung bahasa Mandarin, Inggris, dan pengenalan angka. Berikut ini adalah contoh hasil inferensi menggunakan kartu identitas Hong Kong.

PaddleOCR terintegrasi dengan Proyek Amazon SageMaker untuk MLOps untuk melakukan pengenalan karakter optik pada dokumen identitas PlatoBlockchain Data Intelligence. Pencarian Vertikal. Ai.

Di bagian berikut, kita akan mempelajari cara menyempurnakan model yang telah dilatih sebelumnya menggunakan SageMaker.

Praktik terbaik MLOp dengan SageMaker

SageMaker adalah layanan ML yang terkelola sepenuhnya. Dengan SageMaker, ilmuwan dan pengembang data dapat dengan cepat dan mudah membangun dan melatih model ML, lalu menerapkannya secara langsung ke lingkungan terkelola yang siap produksi.

Banyak ilmuwan data menggunakan SageMaker untuk mempercepat siklus hidup ML. Di bagian ini, kami mengilustrasikan bagaimana SageMaker dapat membantu Anda dari eksperimen hingga produksi ML. Mengikuti langkah-langkah standar proyek ML, dari frasa eksperimental (pengembangan kode dan eksperimen), hingga frasa operasional (otomatisasi alur kerja pembuatan model dan pipeline penerapan), SageMaker dapat memberikan efisiensi dalam langkah-langkah berikut:

  1. Jelajahi data dan buat kode ML dengan Studio Amazon SageMaker buku catatan.
  2. Latih dan sesuaikan model dengan tugas pelatihan SageMaker.
  3. Terapkan model dengan titik akhir SageMaker untuk penyajian model.
  4. Atur alur kerja dengan Pipa Amazon SageMaker.

Diagram berikut menggambarkan arsitektur dan alur kerja ini.

PaddleOCR terintegrasi dengan Proyek Amazon SageMaker untuk MLOps untuk melakukan pengenalan karakter optik pada dokumen identitas PlatoBlockchain Data Intelligence. Pencarian Vertikal. Ai.

Penting untuk dicatat bahwa Anda dapat menggunakan SageMaker secara modular. Misalnya, Anda dapat membuat kode dengan lingkungan pengembangan terintegrasi lokal (IDE) dan melatih serta menerapkan model Anda di SageMaker, atau Anda dapat mengembangkan dan melatih model Anda di sumber komputasi klaster Anda sendiri, dan menggunakan pipeline SageMaker untuk orkestrasi alur kerja dan menyebarkan pada titik akhir SageMaker. Ini berarti SageMaker menyediakan platform terbuka untuk beradaptasi dengan kebutuhan Anda sendiri.

Lihat kode di kami Repositori GitHub dan README untuk memahami struktur kode.

Menyediakan proyek SageMaker

Anda dapat menggunakan Proyek Amazon SageMaker untuk memulai perjalanan Anda. Dengan proyek SageMaker, Anda dapat mengelola versi untuk repositori Git Anda sehingga Anda dapat berkolaborasi di seluruh tim secara lebih efisien, memastikan konsistensi kode, dan mengaktifkan integrasi berkelanjutan dan pengiriman berkelanjutan (CI/CD). Meskipun notebook berguna untuk pembuatan model dan eksperimen, saat Anda memiliki tim ilmuwan data dan insinyur ML yang mengerjakan masalah ML, Anda memerlukan cara yang lebih skalabel untuk mempertahankan konsistensi kode dan memiliki kontrol versi yang lebih ketat.

Proyek SageMaker membuat template MLOps yang telah dikonfigurasi sebelumnya, yang mencakup komponen penting untuk menyederhanakan integrasi PaddleOCR:

  • Repositori kode untuk membuat image container khusus untuk pemrosesan, pelatihan, dan inferensi, terintegrasi dengan alat CI/CD. Ini memungkinkan kami untuk mengonfigurasi gambar Docker khusus kami dan mendorong ke Registry Kontainer Elastis Amazon (Amazon ECR) siap digunakan.
  • Saluran SageMaker yang mendefinisikan langkah-langkah untuk persiapan data, pelatihan, evaluasi model, dan pendaftaran model. Ini mempersiapkan kami untuk siap MLOps saat proyek ML mulai diproduksi.
  • Sumber daya berguna lainnya, seperti repositori Git untuk kontrol versi kode, grup model yang berisi versi model, pemicu perubahan kode untuk pipeline build model, dan pemicu berbasis peristiwa untuk pipeline penerapan model.

Anda dapat menggunakan kode benih SageMaker untuk membuat proyek SageMaker standar, atau template khusus yang dibuat organisasi Anda untuk anggota tim. Dalam posting ini, kami menggunakan standar Template MLOps untuk pembuatan gambar, pembuatan model, dan penerapan model. Untuk informasi lebih lanjut tentang membuat proyek di Studio, lihat Buat Proyek MLOps menggunakan Amazon SageMaker Studio.

Jelajahi data dan buat kode ML dengan SageMaker Studio Notebooks

Notebook SageMaker Studio adalah notebook kolaboratif yang dapat Anda luncurkan dengan cepat karena Anda tidak perlu menyiapkan instance komputasi dan penyimpanan file sebelumnya. Banyak ilmuwan data lebih suka menggunakan IDE berbasis web ini untuk mengembangkan kode ML, dengan cepat men-debug API perpustakaan, dan menjalankan berbagai hal dengan sampel data kecil untuk memvalidasi skrip pelatihan.

Di notebook Studio, Anda dapat menggunakan lingkungan bawaan untuk kerangka kerja umum seperti TensorFlow, PyTorch, Pandas, dan Scikit-Learn. Anda dapat menginstal dependensi ke kernel yang dibuat sebelumnya, atau membangun image kernel persisten Anda sendiri. Untuk informasi lebih lanjut, lihat Instal Pustaka dan Kernel Eksternal di Amazon SageMaker Studio. Notebook Studio juga menyediakan lingkungan Python untuk memicu tugas pelatihan SageMaker, penerapan, atau layanan AWS lainnya. Di bagian berikut, kami mengilustrasikan cara menggunakan notebook Studio sebagai lingkungan untuk memicu tugas pelatihan dan penerapan.

SageMaker menyediakan IDE yang kuat; ini adalah platform ML terbuka tempat ilmuwan data memiliki fleksibilitas untuk menggunakan lingkungan pengembangan pilihan mereka. Untuk ilmuwan data yang lebih memilih IDE lokal seperti PyCharm atau Visual Studio Code, Anda dapat menggunakan lingkungan Python lokal untuk mengembangkan kode ML Anda, dan menggunakan SageMaker untuk pelatihan di lingkungan skalabel terkelola. Untuk informasi lebih lanjut, lihat Jalankan tugas TensorFlow Anda di Amazon SageMaker dengan IDE PyCharm. Setelah Anda memiliki model yang solid, Anda dapat mengadopsi praktik terbaik MLOps dengan SageMaker.

Saat ini, SageMaker juga menyediakan Instance notebook SageMaker sebagai solusi warisan kami untuk lingkungan Notebook Jupyter. Anda memiliki fleksibilitas untuk menjalankan perintah build Docker dan gunakan mode lokal SageMaker untuk berlatih di instance notebook Anda. Kami juga menyediakan kode sampel untuk PaddleOCR di repositori kode kami: ./train_and_deploy/notebook.ipynb.

Buat gambar khusus dengan templat proyek SageMaker

SageMaker memanfaatkan container Docker secara ekstensif untuk tugas build dan runtime. Anda dapat menjalankan wadah Anda sendiri dengan SageMaker dengan mudah. Lihat detail teknis lainnya di Gunakan Algoritma Pelatihan Anda Sendiri.

Namun, sebagai ilmuwan data, membangun wadah mungkin tidak mudah. Proyek SageMaker menyediakan cara sederhana bagi Anda untuk mengelola dependensi kustom melalui pipeline CI/CD pembuatan image. Saat Anda menggunakan proyek SageMaker, Anda dapat membuat pembaruan pada gambar pelatihan dengan Dockerfile penampung kustom Anda. Untuk petunjuk langkah demi langkah, lihat Buat proyek Amazon SageMaker dengan pipeline CI/CD pembuatan gambar. Dengan struktur yang disediakan di template, Anda dapat memodifikasi kode yang disediakan di repositori ini untuk membangun wadah pelatihan PaddleOCR.

Untuk postingan ini, kami menampilkan kesederhanaan dalam membangun image kustom untuk pemrosesan, pelatihan, dan inferensi. Repo GitHub berisi tiga folder:

Proyek-proyek ini mengikuti struktur serupa. Ambil gambar wadah pelatihan sebagai contoh; itu image-build-train/ repositori berisi file-file berikut:

  • File codebuild-buildspec.yml, yang digunakan untuk mengkonfigurasi Pembuatan Kode AWS sehingga gambar dapat dibangun dan didorong ke Amazon ECR.
  • Dockerfile yang digunakan untuk build Docker, yang berisi semua dependensi dan kode pelatihan.
  • Titik masuk train.py untuk skrip pelatihan, dengan semua hyperparameter (seperti kecepatan pembelajaran dan ukuran batch) yang dapat dikonfigurasi sebagai argumen. Argumen ini ditentukan saat Anda memulai pekerjaan pelatihan.
  • Ketergantungan.

Saat Anda memasukkan kode ke dalam repositori yang sesuai, itu akan memicu Pipa Kode AWS untuk membangun wadah pelatihan untuk Anda. Gambar kontainer kustom disimpan dalam repositori Amazon ECR, seperti yang diilustrasikan pada gambar sebelumnya. Prosedur serupa diadopsi untuk menghasilkan gambar inferensi.

Latih model dengan SDK pelatihan SageMaker

Setelah kode algoritme Anda divalidasi dan dikemas ke dalam wadah, Anda dapat menggunakan tugas pelatihan SageMaker untuk menyediakan lingkungan terkelola untuk melatih model. Lingkungan ini bersifat sementara, artinya Anda dapat memiliki sumber daya komputasi yang terpisah dan aman (seperti GPU) atau lingkungan terdistribusi Multi-GPU untuk menjalankan kode Anda. Saat pelatihan selesai, SageMaker menyimpan artefak model yang dihasilkan ke Layanan Penyimpanan Sederhana Amazon (Amazon S3) lokasi yang Anda tentukan. Semua data log dan metadata tetap ada di Konsol Manajemen AWS, Studio, dan amazoncloudwatch.

Pekerjaan pelatihan mencakup beberapa informasi penting:

  • URL bucket S3 tempat Anda menyimpan data pelatihan
  • URL ember S3 tempat Anda ingin menyimpan hasil pekerjaan
  • Sumber daya komputasi terkelola yang Anda ingin SageMaker gunakan untuk pelatihan model
  • Jalur Amazon ECR tempat wadah pelatihan disimpan

Untuk informasi lebih lanjut tentang pekerjaan pelatihan, lihat Model Kereta Api. Contoh kode untuk pekerjaan pelatihan tersedia di eksperimen-kereta-notebook.ipynb.

SageMaker membuat hyperparameter dalam a CreateTrainingJob permintaan tersedia di wadah Docker di /opt/ml/input/config/hyperparameters.json file.

Kami menggunakan wadah pelatihan khusus sebagai titik masuk dan menentukan lingkungan GPU untuk infrastruktur. Semua hyperparameter yang relevan dirinci sebagai parameter, yang memungkinkan kami melacak setiap konfigurasi pekerjaan individual, dan membandingkannya dengan pelacakan eksperimen.

Karena proses ilmu data sangat berorientasi pada penelitian, biasanya banyak eksperimen berjalan secara paralel. Ini membutuhkan pendekatan yang melacak semua eksperimen yang berbeda, algoritme yang berbeda, dan kumpulan data dan hyperparameter yang berpotensi berbeda yang dicoba. Amazon SageMaker Experiments memungkinkan Anda mengatur, melacak, membandingkan, dan mengevaluasi eksperimen ML Anda. Kami mendemonstrasikan ini juga di eksperimen-kereta-notebook.ipynb. Untuk lebih jelasnya, lihat Kelola Pembelajaran Mesin dengan Eksperimen Amazon SageMaker.

Terapkan model untuk penyajian model

Untuk penerapan, terutama untuk penyajian model waktu nyata, banyak ilmuwan data mungkin merasa sulit melakukannya tanpa bantuan dari tim operasi. SageMaker mempermudah penerapan model terlatih Anda ke dalam produksi dengan SDK Python SageMaker. Anda dapat menerapkan model Anda ke layanan hosting SageMaker dan mendapatkan titik akhir untuk digunakan sebagai inferensi waktu nyata.

Di banyak organisasi, ilmuwan data mungkin tidak bertanggung jawab untuk memelihara infrastruktur titik akhir. Namun, menguji model Anda sebagai titik akhir dan menjamin perilaku prediksi yang benar memang merupakan tanggung jawab ilmuwan data. Oleh karena itu, SageMaker menyederhanakan tugas penerapan dengan menambahkan seperangkat alat dan SDK untuk ini.

Untuk kasus penggunaan di pos, kami ingin memiliki kemampuan real-time, interaktif, latensi rendah. Inferensi waktu nyata sangat ideal untuk beban kerja inferensi ini. Namun, ada banyak opsi yang menyesuaikan dengan setiap kebutuhan spesifik. Untuk informasi lebih lanjut, lihat Menerapkan Model untuk Inferensi.

Untuk menerapkan gambar kustom, ilmuwan data dapat menggunakan SageMaker SDK, yang diilustrasikan di

eksperimen-deploy-notebook.ipynb.

Dalam majalah create_model permintaan, definisi wadah mencakup: ModelDataUrl parameter, yang mengidentifikasi lokasi Amazon S3 tempat artefak model disimpan. SageMaker menggunakan informasi ini untuk menentukan dari mana menyalin artefak model. Itu menyalin artefak ke /opt/ml/model direktori untuk digunakan oleh kode inferensi Anda. Itu serve dan predictor.py adalah titik masuk untuk penyajian, dengan artefak model yang dimuat saat Anda memulai penerapan. Untuk informasi lebih lanjut, lihat Gunakan Kode Inferensi Anda Sendiri dengan Layanan Hosting.

Atur alur kerja Anda dengan SageMaker Pipelines

Langkah terakhir adalah membungkus kode Anda sebagai alur kerja ML ujung ke ujung, dan menerapkan praktik terbaik MLOps. Di SageMaker, beban kerja pembuatan model, grafik asiklik terarah (DAG), dikelola oleh SageMaker Pipelines. Pipelines adalah layanan terkelola sepenuhnya yang mendukung orkestrasi dan pelacakan garis keturunan data. Selain itu, karena Pipelines terintegrasi dengan SageMaker Python SDK, Anda dapat membuat pipeline secara terprogram menggunakan antarmuka Python tingkat tinggi yang kami gunakan sebelumnya selama langkah pelatihan.

Kami memberikan contoh kode pipa untuk menggambarkan implementasi di pipa.py.

Pipeline mencakup langkah preprocessing untuk pembuatan dataset, langkah pelatihan, langkah kondisi, dan langkah registrasi model. Di akhir setiap proses pipeline, ilmuwan data mungkin ingin mendaftarkan model mereka untuk kontrol versi dan menerapkan yang berperforma terbaik. Registri model SageMaker menyediakan tempat sentral untuk mengelola versi model, model katalog, dan memicu penerapan model otomatis dengan status persetujuan model tertentu. Untuk lebih jelasnya, lihat Daftarkan dan Terapkan Model dengan Model Registry.

Dalam sistem ML, orkestrasi alur kerja otomatis membantu mencegah penurunan kinerja model, dengan kata lain penyimpangan model. Deteksi dini dan proaktif terhadap penyimpangan data memungkinkan Anda mengambil tindakan korektif, seperti melatih kembali model. Anda dapat memicu saluran SageMaker untuk melatih kembali versi model baru setelah penyimpangan terdeteksi. Pemicu pipa juga dapat ditentukan oleh: Monitor Model Amazon SageMaker, yang terus memantau kualitas model dalam produksi. Dengan kemampuan pengambilan data untuk merekam informasi, Model Monitor mendukung pemantauan kualitas data dan model, bias, dan pemantauan penyimpangan atribusi fitur. Untuk lebih jelasnya, lihat Pantau model untuk data dan kualitas model, bias, dan keterjelasan.

Kesimpulan

Dalam posting ini, kami mengilustrasikan cara menjalankan framework PaddleOCR di SageMaker untuk tugas OCR. Untuk membantu ilmuwan data menggunakan SageMaker dengan mudah, kami menelusuri siklus pengembangan ML, mulai dari membangun algoritme, hingga pelatihan, hingga menghosting model sebagai layanan web untuk inferensi waktu nyata. Anda dapat menggunakan kode template yang kami sediakan untuk memigrasikan kerangka kerja arbitrer ke platform SageMaker. Cobalah untuk proyek ML Anda dan beri tahu kami kisah sukses Anda.


Tentang Penulis

PaddleOCR terintegrasi dengan Proyek Amazon SageMaker untuk MLOps untuk melakukan pengenalan karakter optik pada dokumen identitas PlatoBlockchain Data Intelligence. Pencarian Vertikal. Ai.Junyi (Jackie) LIU adalah Ilmuwan Terapan Senior di AWS. Dia memiliki pengalaman kerja bertahun-tahun di bidang pembelajaran mesin. Dia memiliki pengalaman praktis yang kaya dalam pengembangan dan implementasi solusi dalam konstruksi model pembelajaran mesin dalam algoritme prediksi rantai pasokan, sistem rekomendasi periklanan, area OCR dan NLP.

PaddleOCR terintegrasi dengan Proyek Amazon SageMaker untuk MLOps untuk melakukan pengenalan karakter optik pada dokumen identitas PlatoBlockchain Data Intelligence. Pencarian Vertikal. Ai.Yan Wei Cui, PhD, adalah Arsitek Solusi Spesialis Pembelajaran Mesin di AWS. Dia memulai penelitian pembelajaran mesin di IRISA (Research Institute of Computer Science and Random Systems), dan memiliki beberapa tahun pengalaman membangun aplikasi industri yang didukung kecerdasan buatan dalam visi komputer, pemrosesan bahasa alami, dan prediksi perilaku pengguna online. Di AWS, ia berbagi keahlian domain dan membantu pelanggan untuk membuka potensi bisnis, dan untuk mendorong hasil yang dapat ditindaklanjuti dengan pembelajaran mesin dalam skala besar. Di luar pekerjaan, dia suka membaca dan bepergian.

PaddleOCR terintegrasi dengan Proyek Amazon SageMaker untuk MLOps untuk melakukan pengenalan karakter optik pada dokumen identitas PlatoBlockchain Data Intelligence. Pencarian Vertikal. Ai.Yi-An CHEN adalah Pengembang Perangkat Lunak di Amazon Lab 126. Dia memiliki pengalaman lebih dari 10 tahun dalam mengembangkan produk berbasis pembelajaran mesin di berbagai disiplin ilmu, termasuk personalisasi, pemrosesan bahasa alami, dan visi komputer. Di luar pekerjaan, dia suka lari jarak jauh dan bersepeda.

Stempel Waktu:

Lebih dari Pembelajaran Mesin AWS