Kerangka kerja IOS AR: mana yang harus dipilih?

gambar
Banyak pengembang telah lama menggunakan AR dalam aplikasi mereka. Bantuan yang bagus untuk ini adalah solusi pihak ketiga seperti OpenCV atau Wikitude. Dengan rilis iOS 11, programmer memiliki akses ke kerangka kerja sistem ARKit. Mari kita lihat seberapa baik perpustakaan ini dan yang mana yang harus digunakan untuk proyek augmented reality Anda berikutnya.

ARKit


Keuntungan yang tidak diragukan dari ARKit termasuk keasliannya. Integrasi dan konfigurasi hanya membutuhkan beberapa menit. Xcode dengan baik hati melakukan setengah dari operasi yang diperlukan untuk Anda, setelah itu kerangka kerja "hanya berfungsi." Sangat mudah untuk mengatur interaksi antara ARKit dan kerangka kerja sistem lainnya (SpriteKit, SceneKit, Metal, CoreLocation, dll.).

Perpustakaan dioptimalkan dengan baik dan memanfaatkan kemampuan perangkat keras iPhone dan iPad model terbaru secara maksimal. Sejumlah besar perhitungan yang terjadi di bawah tenda, hampir tidak berpengaruh pada UX. Saya senang dengan ketepatan yang digunakan kerangka kerja mengenali pesawat dan spidol. Baik pencahayaan yang buruk atau gerakan perangkat yang tiba-tiba mengganggu ini. Berkat teknologi pelengkap VIO (Visual Inertial Odometry) dan IMU (Inertial Measurement Unit), yang membentuk dasar ARKit, Apple guys berhasil meminimalkan kesalahan perhitungan.

Tentu saja, bukan tanpa kekurangan. Pertama, ARKit hanya tersedia di perangkat dengan iOS 11+, hanya didukung pada iPhone 6s dan lebih muda, iPad Pro (9,7, 10,5 atau 12,9). Sayangnya, ini dapat mengasingkan pelanggan yang takut kehilangan bagian dari target audiens mereka.

ARKit dirancang sedemikian rupa sehingga informasi tentang objek-objek dari dunia sekitarnya dan posisi perangkat di dalamnya terus-menerus dikalibrasi. Karena itu, pada awal sesi, sementara data tidak cukup akurat, perasaan "ketidakstabilan" dari pekerjaan dibuat, yang belum akan bisa dihilangkan. Selain itu, jika sesi cukup lama, kecil, tampaknya, kesalahan dalam indikator sensor akan menumpuk dan menjadi lebih terlihat.

Saat mengenali gambar, masalah timbul dengan posisi objek AR, objek mengapung, dan tidak diperbaiki dengan jelas pada titik yang ditunjukkan. Perilaku serupa diamati dalam contoh yang diterbitkan oleh Apple . Namun, objek yang ditempatkan pada titik tertentu dalam ruang praktis tidak bergerak.

Dalam beberapa kasus (gambar hitam putih kecil dengan kualitas yang tidak terlalu baik) penanda dikenali, tetapi sistem salah menentukan koordinatnya. Akibatnya, objek AR digambar di tempat yang salah.

ARKit sangat mudah dipelajari, untuk memulai, Anda membutuhkan jumlah pengetahuan minimum. Sejumlah besar artikel pelatihan dan contoh kode telah dipublikasikan di Web, dan komunitasnya besar dan responsif, sehingga tidak akan sulit untuk menemukan jawaban atas pertanyaan yang muncul dalam proses penulisan kode.

Opencv


Pustaka OpenCV yang ditulis dalam C ++ didistribusikan secara gratis dan memberi Anda kesempatan untuk mengunduh SDK iOS dari situs resmi atau kompilasi sendiri.

Sudah pada tahap memperkenalkan penggemar, Swift sedang menunggu pencarian yang menarik untuk menghilangkan kesalahan kompilasi, yang mengancam akan meluas selama beberapa jam. Untungnya, petunjuk langkah demi langkah tersedia di Web yang diterbitkan oleh kawan-kawan kami yang telah mengatasi kerangka kerja keras (misalnya, OpenCV dengan Swift - langkah demi langkah ).

Setelah Anda akhirnya berhasil memulai proyek dengan pustaka yang terhubung, akan muncul pertanyaan, apa yang harus dilakukan selanjutnya. Mungkin Anda memutuskan untuk mencari tutorial di situs web resmi. Di sana, pengembang iOS akan menunggu tiga contoh penggunaan kerangka versi lama dalam proyek yang berfokus pada iOS 8. Tidak banyak artikel modern tentang pengembangan ponsel dengan OpenCV. Rupanya, ini disebabkan oleh fakta bahwa setiap orang yang ingin menguasai perpustakaan ini telah melakukan ini sejak lama dan tidak lagi membutuhkan penjelasan.

Namun, pemula masih memiliki kesempatan untuk menguasai ini, tanpa ragu, alat yang ampuh. Namun, itu akan membutuhkan banyak waktu dan usaha. Seperti perpustakaan tingkat rendah lainnya, OpenCV membutuhkan studi mendalam yang mendalam, analisis dokumentasi yang terperinci, menyaring ribuan diskusi di forum untuk mencari jawaban atas pertanyaan Anda dan eksperimen tanpa akhir.

Ngomong-ngomong, jangan lupa tambahkan lagi waktu ini untuk memulihkan mata kuliah universitas dalam memori, karena OpenCV tidak akan menampilkan formula untuk Anda.

Wikitude


Untuk mulai dengan, Wikitude adalah bayaran dan tidak berarti kerangka murah . Versi gratisnya berisi tanda air, jadi Anda tidak bisa menggunakannya untuk rilis build.

Meskipun demikian, perpustakaan itu sepadan dengan uangnya. Tidak seperti ARKit, ini mendukung perangkat dan versi sistem yang lebih lama. Produk ini didokumentasikan dengan baik, memiliki banyak artikel, pelajaran dan contoh kode, sehingga integrasi dan implementasi tugas-tugas paling sederhana untuk seorang programmer yang tidak siap hanya akan memakan waktu beberapa jam.

Lingkup utama perpustakaan adalah pengenalan marker. Sebagai yang terakhir, gambar apa pun tanpa saluran alfa dapat digunakan. Benar, Wikitude hanya berfungsi dengan format asli. Gambar penanda harus dikemas dalam format .wtc, model 3D harus dikonversi ke file .wt3. Dalam keadilan, perlu dicatat bahwa Wikitude menyediakan alat konversi di situs webnya.

Secara umum, kerangka bekerja dengan baik dengan tugasnya: penanda dikenali, objek AR ditempatkan di tempat yang Anda rencanakan, jangan berenang saat mengubah sudut pandang atau menggerakkan kamera. Memposting gambar, video, atau model 3D tidaklah sulit, juga untuk memastikan interaktivitasnya. Pekerjaan simultan dengan beberapa marker didukung, tetapi ketika mengkonfigurasi kelas perpustakaan, lebih baik membatasi jumlah mereka untuk meningkatkan kinerja.

Namun, saya perhatikan bahwa dalam kondisi pencahayaan yang buruk, serta pergerakan perangkat yang tidak akurat, ada masalah dengan pengenalan marker meskipun gambar sumber berkualitas tinggi digunakan untuk membuatnya.

Wikitude mendukung JS dan versi asli SDK.

Jika Anda memilih versi JS untuk integrasi, bersiaplah untuk menolak Swift atau Objective-C yang nyaman untuk Anda dan berkonsentrasilah pada penulisan kode JavaScript. Dan karena yang terakhir ini cukup menyakitkan ketika bekerja di Xcode, instal Sublime atau salah satu penggantinya secara bersamaan. Dan cobalah untuk segera menulis, karena proses debugging dan memperbaiki kesalahan tidak akan mudah.

Poin lain menyangkut optimasi. Ketika berinteraksi dengan objek JS AR untuk waktu yang lama, versi kerangka kerja mulai melambat secara nyata, namun banyak yang terkuras, yang tidak mengejutkan.

Versi asli SDK, dengan segala keramahannya, praktis tanpa "sihir". Bahkan, itu hanya memberi tahu Anda bahwa penanda dikenali, melaporkan pengidentifikasi dan koordinatnya dalam ruang, setelah itu melewati bendera untuk Anda. Maka Anda bebas menggunakan alat favorit Anda, misalnya, OpenGL, untuk menggambar objek AR.

Kesimpulan


Jadi, jika Anda seorang pemula yang telah memutuskan untuk mencoba tangannya di augmented reality, itu semua tergantung pada pelanggan Anda dan kebutuhannya. Jika klien tidak menyesal menghabiskan beberapa ribu euro untuk kerangka kerja berbayar yang berkualitas tinggi, dan Anda tidak takut dengan JavaScript atau OpenGL, ambil Wikitude. Jika tidak, mulailah dengan ARKit. Berkat banyak contoh dan dukungan komunitas, Anda dapat dengan cepat mengimplementasikan tugas-tugas sederhana dan "menyelidiki" teknologi ini. Kemudian, ketika Anda mulai memahami apa itu, dan membiasakan diri sedikit, akan mungkin untuk menyerbu OpenCV tingkat rendah dan menaklukkan puncak yang sebelumnya tidak dapat diakses.

Source: https://habr.com/ru/post/id413401/


All Articles