Vision di iOS 11 memiliki semua yang Anda butuhkan untuk membuat aplikasi yang dapat mengenali karakter teks dengan implementasi yang terjadi secara bersamaan. Anda tidak memerlukan pengetahuan pengkodean teknis – menavigasi fitur ini cukup sederhana. Terlebih lagi, implementasinya mulus.
Kerangka Visi
Kerangka kerja visi memungkinkan Anda untuk dengan mudah mengimplementasikan tugas apa pun yang melibatkan detail komputer. Struktur ini melakukan deteksi landmark wajah dan wajah, pengenalan kode batang, pendaftaran gambar, pelacakan fitur umum, dan deteksi teks. Vision juga memungkinkan Anda menggunakan model Core ML kustom untuk tugas seperti klasifikasi atau deteksi objek.
VN DetectTextRectangleRequest
NS VN DetectTextRectangleRequest adalah permintaan analisis gambar yang menemukan wilayah teks yang terlihat dalam gambar; fitur mengembalikan karakter teks sebagai kotak pembatas persegi panjang dengan asal dan ukuran.
Jika Anda terbiasa menggunakan swift dan telah lama memprogram, maka Anda mungkin bertanya-tanya apa gunanya Vision ketika ada fitur lain seperti gambar dan AVFoundation. Nah, Vision lebih akurat dan lebih lugas. Fitur ini juga tersedia di berbagai platform. Namun, menggunakan Vision mungkin memerlukan lebih banyak daya pemrosesan dan waktu pemrosesan.
Untuk menggunakan Vision untuk deteksi teks, Anda memerlukan Xcode 9 dan perangkat yang menjalankan iOS 11.
Membuat Kamera dengan Avcapture
Pertama, Anda perlu membuat kamera dengan AVCapture; ini dengan menginisialisasi satu objek AVcapturesession untuk melakukan pengambilan real-time atau offline. Setelah itu, buat sesi ke koneksi perangkat.
Untuk menghemat waktu Anda dari membangun UI aplikasi Anda, pertimbangkan untuk memiliki proyek awal, untuk memulai, ini akan memberi Anda waktu untuk fokus mempelajari kerangka kerja Visi.
- Buka proyek awal Anda. Tampilan di storyboard harus sudah siap dan disiapkan untuk Anda.
- pada ViewController.swift, cari bagian kode dengan fungsi dan outlet.
- Di bawah outlet-ImageView, dmenyatakan sesi untuk AVcapturesession – ini digunakan kapan pun Anda ingin tindakan dilakukan berdasarkan streaming langsung.
- Mengatur AVcapturesession dan tipe media AV ke video karena Anda akan melakukan pemotretan kamera untuk memungkinkannya berjalan terus menerus
- Tentukan perangkat keluaran dan masukan
- Inputnya adalah apa yang akan dilihat kamera, dan outputnya adalah video pada format tipe yang ditetapkan KCVPixelFormatType_32GRA.
- Terakhir, tambahkan sublapisan yang berisi video untuk tampilan gambar dan memulai sesi. Fungsi tersebut dikenal sebagai diViewdidload. Anda juga perlu mengatur bingkai layer.
Panggil fungsi di lihatAkanTampil metode.
Karena batas belum diselesaikan, timpa viewDidLayoutSubviews ( ) metode untuk memperbarui lapisan terikat.
Setelah rilis iOS 10, entri tambahan di Info.plist diperlukan, ini memberikan alasan untuk menggunakan kamera. Anda juga harus mengatur Privacy-Camera Usage Description.
Deteksi Teks; Bagaimana Kerangka Visi Bekerja
Ada tiga langkah untuk mengimplementasikan Vision pada aplikasi.
- Penangan – ini adalah saat Anda ingin kerangka kerja melakukan sesuatu setelah permintaan dipanggil.
- Pengamatan – inilah yang ingin Anda lakukan dengan data yang Anda berikan dimulai dengan satu permintaan
- Permintaan – ini adalah saat Anda meminta kerangka kerja Deteksi
Idealnya, Anda membuat satu permintaan teks sebagai VNdetecttextrectanglesrequest. Ini adalah semacam permintaan VN yang berbatasan dengan teks. Setelah kerangka kerja menyelesaikan aplikasi, Anda melanjutkan untuk memanggil Dettexthandler fungsi. Anda juga ingin mengetahui bingkai persis yang dikenali, atur ke Kotak karakter laporan= Benar.
Setelah itu, tentukan pengamatan yang memuat semua hasil dari VNdetecttextrectanglesrequest, ingat untuk menambahkan Vision ke kamera keluaran. Karena Vision mengekspos API tingkat tinggi, bekerja dengannya aman.
Fungsi memeriksa apakah Cmsamplebuffer ada dan PutOut Avcaptureoutput. Anda kemudian harus melanjutkan untuk membuat satu variabel opsi permintaan sebagai 1 Jenis Kamus VNimageoption. NS VNmage option adalah jenis struktur yang berisi properti dan data dari kamera. Anda kemudian harus membuat VNimagerequesthandler dan jalankan permintaan teks.
Menggambar Batas Di Sekitar Teks Terdeteksi
Anda bisa mulai dengan membuat kerangka kerja untuk menggambar dua kotak, satu untuk setiap huruf yang terdeteksi dan yang lainnya untuk setiap kata. Tabel adalah kombinasi dari semua kotak karakter yang akan ditemukan permintaan Anda.
- Tentukan titik pada pandangan Anda untuk membantu Anda memposisikan kotak.
- Setelah itu, buat CALayeR; menggunakan VNpengamatan persegi panjang untuk menentukan batasan Anda, membuat proses menguraikan kotak lebih mudah.
Anda sekarang memiliki semua fungsi Anda ditata.
Untuk menghubungkan titik-titik Anda, mulailah dengan menjalankan kode Anda secara asinkron. Anda kemudian harus memeriksa untuk melihat apakah ada wilayah dalam hasil Anda dari VNTextObservation.
Anda sekarang dapat memanggil fungsi Anda, yang akan menggambar kotak di dalam area tersebut. Periksa untuk melihat apakah ada kotak karakter di wilayah tersebut, lalu hubungi layanan yang membawa kotak di sekitar setiap huruf.
Setelah itu, buat variabel Opsi Permintaan. Anda sekarang dapat membuat VNImageRequestHandler objek dan melakukan permintaan teks yang Anda buat.
Terakhir, langkah terakhir adalah menjalankan kode visi Anda dengan streaming langsung. Anda perlu mengambil output video dan mengonversinya menjadi Cmsamplebuffer.
Kiat Tambahan
- Selalu mencoba untuk memotong gambar dan memproses hanya bagian yang Anda butuhkan. Ini akan mengurangi waktu pemrosesan dan jejak memori
- Aktifkan koreksi bahasa saat berhadapan dengan karakter non-numerik lalu matikan saat berhadapan dengan karakter numerik
- Sertakan validasi untuk string angka yang dikenali untuk mengonfirmasi keakuratan dan menghilangkan tampilan nilai palsu kepada pengguna.
- Pengontrol kamera dokumen adalah pendamping terbaik untuk pengenalan teks karena kualitas gambar memainkan peran penting dalam pengenalan teks.
- Pertimbangkan untuk mengatur tinggi teks minimum untuk meningkatkan kinerja.
Dengan Vision, Anda memiliki semua yang Anda butuhkan untuk pengenalan teks. Karena Vision mudah digunakan dan membutuhkan waktu implementasi yang singkat, menggunakannya hampir setara dengan bermain dengan Lego. Coba uji aplikasi Anda pada objek, font, pencahayaan, dan ukuran yang berbeda. Anda juga dapat membuat diri Anda terkesan dengan menggabungkan Vision dengan Core ML.