Running verification (bring-up) ekstensi headset
Agar EasyAR bekerja di perangkat, pekerjaan terpenting sekaligus paling menantang adalah memastikan kebenaran data input. Saat pertama kali menjalankan EasyAR di perangkat baru, lebih dari 90% masalah disebabkan oleh data yang salah.
Jika memungkinkan, disarankan untuk memverifikasi kebenaran data secara langsung menggunakan beberapa metode pengujian hanya melalui perangkat dan antarmukanya, tanpa kehadiran EasyAR. Artikel ini akan memperkenalkan beberapa metode empiris menggunakan fungsionalitas EasyAR untuk memverifikasi data. Proses ini dapat membantu memahami data frame input eksternal, tetapi karena EasyAR sendiri juga memiliki kesalahan, menggunakan sistem yang digabungkan ini untuk memverifikasi kebenaran data bukanlah pilihan terbaik.
Sebelum memulai
- Selesaikan pengembangan Mendukung headset untuk EasyAR.
- Baca Memulai cepat untuk mempelajari cara menggunakan EasyAR Sense Unity Plugin.
- Pahami cara Menggunakan sampel headset.
- Pahami Konfigurasi proyek Android.
Menjalankan contoh fungsi dasar
Saat pertama kali menjalankan verifikasi EasyAR pada perangkat, pastikan untuk menjalankan fungsi-fungsi ini secara berurutan. Khususnya jangan terburu-buru menjalankan Mega karena Mega memiliki toleransi kesalahan tertentu. Masalah mungkin sulit terdeteksi saat dijalankan dalam waktu singkat atau pada satu skenario realitas tunggal.
Amati informasi sesi yang ditampilkan di depan mata, pastikan tidak ada kejadian tak terduga, dan pastikan frame count terus bertambah.
Jalankan
Image, yaitu fungsi pelacakan gambar. Bandingkan konsistensi hasilnya dengan kinerja di ponsel (disarankan menggunakan iPhone sebagai standar). Perhatikan status pelacakan dan tampilan cakupan target.Saat fusi gerak tidak diaktifkan, pelacakan gambar akan terasa tertunda secara signifikan—ini sesuai ekspektasi. Yang penting proses gerakannya benar dan posisi sejajar saat perangkat berhenti.
Jalankan
Dense, yaitu fungsi pemetaan ruang padat. Bandingkan konsistensi hasilnya dengan kinerja di ponsel (disarankan menggunakan iPhone sebagai standar). Perhatikan posisi mesh, kecepatan pembuatan, dan kualitasnya.Jika frame rate data input rendah, kecepatan pembuatan mesh akan melambat, tetapi kualitasnya tidak akan memburuk secara signifikan.
Fungsi ini tidak dapat dijalankan pada beberapa perangkat Android, dan kualitas mesh juga bervariasi tergantung perangkat.
[!PENTING] Paket ekstensi headset menggunakan ekstensi input yang merupakan implementasi kamera khusus.
Saat menggunakan produk percobaan (lisensi Personal, lisensi XR Trial, atau layanan Mega Trial, dll.) pada kamera kustom atau headset, EasyAR Sense akan berhenti merespons setelah 100 detik (pengguna Mega dapat menyesuaikan durasi melalui EasyAR Business setelah persetujuan) setiap kali dimulai. Versi berbayar dari EasyAR Sense dan layanan EasyAR Mega berbayar tidak memiliki batasan ini.
Jika Image dan Dense menunjukkan kinerja yang konsisten atau lebih baik daripada di ponsel, maka sebagian besar fungsi EasyAR dapat bekerja normal di perangkat. Anda dapat mulai menguji Mega.
Menyelesaikan masalah yang terjadi saat berjalan: Pemecahan masalah
Jika tidak dapat mereproduksi hasil yang sama seperti di ponsel, berikut adalah proses pemecahan masalah terperinci yang dapat diikuti untuk mencari akar penyebabnya. Disarankan untuk selalu memantau output log sistem.
Langkah nol: Memahami kesalahan sistem headset itu sendiri
Ingat persyaratan pelacakan gerak dan tampilan yang dijelaskan dalam Mempersiapkan perangkat untuk AR/MR?
Penting
Kesalahan pelacakan gerak/VIO akan selalu memengaruhi stabilitas algoritma EasyAR dengan cara yang berbeda.
Penting
Kesalahan sistem tampilan dapat menyebabkan objek virtual dan objek nyata tidak selaras sempurna.
Dalam beberapa kasus dengan kesalahan yang signifikan, objek virtual mungkin tampak melayang di atas atau di bawah objek nyata, dan kemudian (terlihat) terus-menerus melayang-layang. Fenomena ini dapat diamati pada Pico 4E, bahkan saat tidak menggunakan EasyAR dan hanya membuka VST-nya sendiri.
Langkah satu: Periksa status operasi session
Pesan UI harus menunjukkan fungsi atau data berikut agar status session normal:
KetersediaanExternalFrameSourceKamera virtualExternalFrameSource
Jika tidak melihat tampilan informasi status session, coba ubah opsi ke Log lalu baca status session dan nama frame source yang digunakan dalam log sistem.
Coba hapus semua frame source lain di bawah simpul ARSession, lalu periksa apakah ada perubahan.
Langkah kedua: Konfirmasi jumlah frame kamera yang diterima oleh EasyAR
Fungsi atau data yang harus berfungsi dengan normal:
- Jalur
data frame kameradari ExternalFrameSource di lapisan kode Unity (tidak termasuk kebenaran data dan jalur data ke lapisan native)
Data ini seharusnya bertambah seiring waktu, jika tidak, akan menampilkan pesan peringatan setelah beberapa detik.
Jika ditemukan bahwa angka ini tidak bertambah, ini harus diselesaikan terlebih dahulu.
Langkah ketiga: Rekam EIF di perangkat, lalu putar ulang di Unity editor
Fungsi atau data yang harus berjalan normal:
- Jalur input lapisan native untuk
data frame kameradari ExternalFrameSource (tidak termasuk kebenaran data)raw camera image datadalamdata frame kameratimestampdalamdata frame kamera(tidak termasuk titik waktu dan sinkronisasi data)
Klik EIF untuk memulai perekaman, klik lagi untuk menghentikan.
Kiat
Harus menghentikan perekaman secara normal untuk mendapatkan file EIF yang dapat diindeks secara acak.
Sebaiknya gunakan scene EasyAR bersih atau contoh EasyAR saat menjalankan data EIF di Unity editor untuk menghindari konfigurasi yang salah di scene.
Anda dapat melihat pemutaran ulang data frame kamera di Unity editor. Data gambar tidak sama persis secara byte, terdapat codec lossy dalam keseluruhan alur.
EasyAR akan menggunakan parameter distorsi dalam perhitungan tetapi tidak menerapkan undistorsi pada gambar saat menampilkannya. Jadi jika data ini dimasukkan, saat memutar ulang file EIF di Unity, Anda akan mengamati data tanpa undistorsi, ini sesuai harapan.
Kiat
Ubah rasio jendela game Unity agar sama dengan input, jika tidak data akan terpotong saat ditampilkan.
Jika pemutaran data terlalu cepat atau lambat, periksa input timestamp.
Catatan
EIF dapat digunakan untuk banyak hal, Anda dapat menjalankan pelacakan gambar dan peta spasial padat menggunakan EIF di Unity editor. Perhatikan bahwa efek tampilan saat berjalan di perangkat mungkin berbeda.
Langkah empat: Menjalankan pelacakan gambar menggunakan EIF
Fungsi atau data yang harus berfungsi normal:
raw camera image datadalamdata bingkai kameraintrinsicsdalamdata bingkai kamera(kebenaran data tidak sepenuhnya terjamin karena algoritma memiliki toleransi terhadap kesalahan)
Saat menjalankan contoh pelacakan gambar ImageTracking_Targets dengan EIF di Unity Editor, Anda perlu merekam EIF di mana gambar dapat dilacak.
Catatan
Pelacakan gambar memerlukan target pelacakan untuk menempati proporsi tertentu dari keseluruhan gambar. Jika tidak dapat melacak gambar, coba pindahkan kepala lebih dekat ke gambar.
Jika pelacakan terus gagal atau objek virtual muncul di lokasi yang jauh dari target dalam gambar, kemungkinan besar ada masalah dengan intrinsics.
Jika data gambar memiliki distorsi, Anda mungkin melihat objek virtual tidak menutupi sempurna target pelacakan pada gambar. Ini diharapkan. Fenomena ini akan lebih terlihat ketika target pelacakan berada di tepi gambar.
Langkah lima: Menjalankan pelacakan gambar di perangkat
Fungsi atau data yang harus berfungsi normal:
- Sistem tampilan perangkat itu sendiri
raw camera image datadalamdata frame kameraintrinsicsdalamdata frame kamera(kebenaran data tidak sepenuhnya terjamin karena algoritme memiliki toleransi terhadap kesalahan)extrinsicsdalamdata frame kamera- Konsistensi koordinat
device posedalamdata frame kameradandata frame rendering- Selisih waktu
device posedalamdata frame kameradandata frame rendering
Catatan
Pelacakan gambar memerlukan target pelacakan menempati proporsi tertentu dari keseluruhan gambar. Jika tidak dapat melacak gambar, coba gerakkan kepala ke posisi yang lebih dekat dengan gambar.
Pelacakan gambar memerlukan panjang sisi horizontal gambar sesuai dengan ukuran objek di dunia nyata. Dalam contoh ini, perlu melacak gambar yang panjang sisi horizontalnya memenuhi tepi panjang kertas A4 yang diletakkan secara horizontal. Oleh karena itu, jangan lacak gambar yang ditampilkan di layar komputer kecuali menggunakan penggaris dan menyesuaikan panjang sisi horizontal gambar ke ukuran A4 berdasarkan penggaris.
Jika pelacakan gambar sempurna saat menggunakan EIF tetapi berbeda di perangkat, perlu diselesaikan sebelum melanjutkan pengujian lain. Memecahkan masalah di langkah selanjutnya akan jauh lebih sulit.
Jika objek virtual melayang ditampilkan di tempat yang jauh dari objek nyata, dan ini terjadi bahkan ketika orang tidak bergerak, kemungkinan besar intrinsics atau extrinsics tidak benar, atau device pose dalam data frame kamera dan data frame rendering tidak berada dalam sistem koordinat yang sama, atau sistem tampilan yang menghasilkan kesalahan ini.
Jika objek virtual terus bergerak saat kepala digerakkan dan terlihat seperti ada penundaan, kemungkinan besar device pose tidak cukup sehat. Ini sering terjadi dalam beberapa situasi (tidak menutup kemungkinan ada masalah lain),
device posetidak sinkron waktunya dengan dataraw camera image datadata frame kameradandata frame renderingmenggunakan pose yang sama
Langkah enam: Menggunakan EIF dan menjalankan peta spasial padat di perangkat
Fungsi atau data yang harus berfungsi dengan baik:
- Sistem tampilan perangkat itu sendiri
raw camera image datadalamcamera frame dataintrinsicsdalamcamera frame data(keakuratan data tidak sepenuhnya terjamin karena algoritma memiliki toleransi terhadap kesalahan)extrinsicsdalamcamera frame datadevice posedalamcamera frame data
Jika pembuatan mesh sangat lambat dan/atau rekonstruksi tanah bergelombang, sangat mungkin ada masalah dengan device pose. Bisa juga karena sistem koordinat pose tidak benar atau waktu pose tidak tepat.
Kiat
Jika laju bingkai (frame rate) data input rendah, kecepatan pembuatan mesh juga akan melambat, tetapi kualitasnya tidak akan menurun secara signifikan. Kondisi ini sesuai dengan yang diharapkan.
Biasanya tidak mudah untuk membedakan posisi mesh yang tepat, jadi kesalahan sistem tampilan mungkin tidak teramati saat menggunakan peta spasial padat.
Menjalankan contoh mega
Baca berikut untuk memahami cara menggunakan Mega di Unity. Jika Anda belum mengaktifkan layanan Mega, hubungi EasyAR Business untuk mendapatkan izin uji coba.
- Pengantar EasyAR Mega
- Apakah perpustakaan pelokalan saya sudah dapat digunakan?
- Memulai cepat dengan contoh EasyAR Mega Unity
Kemudian jalankan Mega di perangkat, bandingkan efeknya agar konsisten dengan hasil di ponsel (disarankan menggunakan iPhone sebagai standar). Perhatikan:
- Apakah objek ditampilkan di posisi yang benar
- Apakah posisi dan ukuran objek jarak jauh (10m dan seterusnya) ditampilkan dengan benar
- Apakah posisi dan ukuran objek di luar pusat pandangan ditampilkan dengan benar
- Apakah posisi dan ukuran objek tetap benar saat memutar kepala
Mengatasi situasi abnormal selama operasi
Fungsi atau data yang harus berjalan normal:
- Sistem tampilan perangkat itu sendiri
- Semua data dalam
camera frame datadanrendering frame data
Setelah menyelesaikan verifikasi fitur Pelacakan Gambar dan Pemetaan Spasial Padat, secara teori EasyAR Mega seharusnya sudah didukung. Jika kinerja saat dijalankan di headset secara signifikan lebih buruk daripada di ponsel, perhatikan hal-hal berikut:
- Perhatikan data
posedantimestampdalamcamera frame datadanrendering frame data - Perhatikan keluaran sistem pelacakan gerak/VIO. Panda di bawah
XR Originakan menjadi referensi yang baik
Selain itu, juga perlu fokus pada sistem tampilan perangkat itu sendiri, terutama efek tampilan objek pada jarak jauh, di luar pusat pandangan, dan saat memutar kepala. Skenario seperti ini sering diabaikan dalam pengujian perangkat itu sendiri, tetapi masalahnya biasanya tetap disebabkan oleh sistem tampilan perangkat itu sendiri. Anda perlu menjelaskan masalah ini dan kemungkinan dampaknya kepada EasyAR, serta memberikan ekspektasi efek yang wajar kepada pengembang.
Penting
Pengguna akan sangat memperhatikan masalah tampilan ini, dan banyak perangkat memang tidak dapat memberikan efek tampilan yang sempurna dalam skenario ruang besar. EasyAR tidak dapat menyelesaikan masalah tampilan yang berasal dari perangkat itu sendiri; ini memerlukan iterasi penyelesaian dari pabrikan perangkat. Sementara itu, pengguna juga perlu memahami masalah-masalah ini.
Langkah selanjutnya
Topik terkait
Contoh yang dapat dijalankan di ponsel:
- Contoh pelacakan gambar ImageTracking_Targets, memungkinkan Anda memahami efek kinerja yang diharapkan dari fitur pelacakan gambar
- Contoh peta spasial padat SpatialMap_Dense_BallGame, memungkinkan Anda memahami efek kinerja yang diharapkan dari fitur pemetaan spasial padat
- Contoh fusi gerak ImageTracking_MotionFusion, memungkinkan Anda memahami efek kinerja yang diharapkan dari fitur fusi gerak
- Contoh Mega MegaBlock_Basic, memungkinkan Anda memahami efek kinerja yang diharapkan dari fitur Mega