Realitas pelengkap: bahan ulasan
Diposting oleh Igor Litvinenko, Pengembang Mobile Senior.Semua orang mungkin pernah mendengar tentang helm VR yang menciptakan efek berada di dunia virtual. Namun, hari ini saya ingin berbicara bukan tentang virtual, tetapi tentang augmented reality. Konsep-konsep ini penting untuk dibedakan. Dalam helm realitas virtual, seluruh gambar dihasilkan - kenyataan seperti itu sepenuhnya buatan. Augmented reality, tidak seperti realitas virtual, tidak menyiratkan penciptaan realitas buatan sepenuhnya, tetapi penambahan aliran video dari realitas kita ke objek dan data virtual. Dengan demikian, kombinasi virtual dan dunia nyata terjadi.Teknologi Augmented Reality Inti
Bagaimana augmented reality dibuat? Agar penambahan objek nyata tertentu terjadi, perlu untuk mendeteksi objek nyata ini dalam aliran video. Ini adalah hal yang paling penting - setelah penemuan suatu objek, tidak lagi sulit untuk menyelesaikan sesuatu dan entah bagaimana menambahkannya. Ada berbagai cara untuk mendeteksi objek yang diinginkan - terutama untuk ini, penanda augmented reality digunakan. Di bawah ini dalam urutan evolusi tercantum metode utama untuk mendeteksi objek yang dilengkapi:- Marker atau gambar paling sederhana.
- Markerless - Augerless Augmented Reality.
- Penanda 3D sederhana.
- Kombinasi marker untuk merender objek kompleks (silinder, kubus, kotak).
- Frame Marker.
- Berdasarkan lokasi.
- Realitas Augmented Nyata.
Penanda gambar
Penanda augmented reality yang paling sederhana dapat dengan mudah dikenali oleh bingkai hitam tebal. Objek semacam itu sangat mudah dideteksi dalam aliran video:
- Persyaratan:
- Bingkai hitam yang lebarnya minimal 10%.
- Hanya hitam dan putih.
- Tidak berubah - kita dapat menunjukkan sudut rotasi yang tepat setiap saat.
- Selalu persegi.
- Algoritme di sini adalah yang paling sederhana: kita dapat menentukan tepi gambar (deteksi tepi), kuadrat dan kuadrat putih di tengah, dengan melakukan ambang ini - binarizing tampilan. Dengan cara ini kita bisa mendapatkan isi di dalamnya, memotongnya dan bekerja dengannya seperti dengan gambar - ini jauh lebih mudah daripada memindai seluruh bingkai.
- Deteksi sudut.
- Deteksi gumpalan.
- Deteksi tepi.
- Ambang batas.
- Manfaat:
- Algoritma pendeteksian yang paling sederhana adalah banyak pustaka yang terbuka dan tertutup yang dapat mendeteksi penanda.
- Paling stabil - marker selalu terdeteksi dengan sangat akurat dan praktis tidak ada efek model jitter.
Tanpa tanda
Terlepas dari namanya, dengan pendekatan tanpa penanda, penanda, pada kenyataannya, masih ada. Hanya saja di sini tidak terlihat seperti spidol, tetapi seperti gambar.
- Persyaratan:
- Sejumlah besar bagian kecil.
- Semakin banyak warna, semakin baik.
- Tidak berubah.
- Rasio ideal adalah 1: 1, yaitu, semakin dekat ke kotak, semakin baik. Dengan rasio 1: 2 atau lebih, markernya diakui sangat buruk
- Algoritma Titik karakteristik digunakan untuk mendeteksi penanda tersebut: katakanlah ini adalah titik di mana gradien berubah. Artinya, ini adalah titik di mana batas yang jelas terlihat. Algoritma untuk menemukan titik-titik geometris juga dapat digunakan: di beberapa tempat dalam gambar ada penanda yang tepat yang membentuk sudut - misalnya, tanda silang dapat menjadi titik geometris.
- Detect interest points.
- Fiducial markers/
- Edge detection — .
- Simultaneous localization and mapping (SLAM) — .
- :
Teknologi ini memungkinkan kita untuk memperhitungkan bentuk sederhana objek tiga dimensi: kubus, silinder, dll. Di sini kita dapat membuat konfigurasi yang membantu memahami objek seperti apa yang ada di depan kita - misalnya, objek dengan bentuk tertentu dengan kombinasi warna tertentu dapat berfungsi sebagai penanda (misalnya, kita membuat aplikasi yang mengidentifikasi obat dengan pengemasan dan label). Kami juga membuat aplikasi yang mengenali merek anggur - perpustakaan dapat menemukan label dari sudut yang berbeda, yang tidak berfungsi dalam teknologi tanpa penanda atau sederhana karena transformasi penanda non-linear.Penanda bingkai
Katakanlah Anda mengadakan konferensi. Anda memiliki logo yang Anda gantung di dinding untuk menunjukkan kepada orang-orang ke mana harus pergi. Hanya ada satu logo, oleh karena itu semua gambar adalah sama; dalam melakukannya, Anda perlu mengidentifikasi setiap gambar secara unik. Bagaimana cara melakukannya? Menggunakan penanda bingkai. Saat menggunakan penanda bingkai, ID gambar dienkripsi dalam bingkai:
- Persyaratan:
- Bingkai terpadu.
- Tidak berubah.
- Selalu persegi.
- Gambar dalam harus kontras dengan bingkai.
- Ukuran kecil (3 - 10 cm).
- Algoritma:
- Manfaat:
- Kemampuan mengidentifikasi penanda yang sama secara unik.
Augmented Reality berbasis lokasi
Jika Anda berjalan di sekitar kota dan mendapatkan informasi tentang bangunan yang Anda lihat, kemungkinan besar, penambahan realitas terjadi menggunakan lokasi.
Dalam hal ini, tidak ada tugas pengenalan gambar. Teknologi ini didasarkan pada penggunaan penerima GPS, kompas, dan accelerometer yang ada di perangkat seluler. Berkat mereka, kami tahu ke arah mana kami mencari. Jadi, untuk melengkapi kenyataan, Anda hanya perlu merespons pembacaan sensor perangkat seluler dengan benar. Tugas ini tidak begitu sulit - ada cukup banyak perpustakaan yang mengatasinya dengan baik.Realitas Augmented Nyata
Tidak ada spidol di sini. Di sini, saat bepergian, kami menentukan bentuk dan karakteristik 3D dari objek apa pun yang jatuh ke lensa kamera. Kita perlu mengetahui kedalaman objek untuk mengubah gambar 2D menjadi 3D. Untuk melakukan ini, Anda dapat menggunakan, misalnya, algoritma SLAM yang telah disebutkan, yang mencari titik karakteristik pada objek di sekitarnya. Sejauh ini, pada perangkat seluler, semua ini sangat lambat. Sekarang teknologi dari augmented reality ini secara aktif mengimplementasikan Sony bersamaan dengan PlayStation.Keyshare - keyshare.org
Dan sekarang saya akan memberi tahu Anda bagaimana kami menulis mesin augmented reality kami di DataArt dan mengapa kami melakukannya.Satu startup Swiss memutuskan untuk mengusulkan sistem baru untuk meningkatkan penjualan berdasarkan penggunaan teknologi augmented reality, dan kami mengembangkan sistem ini untuk itu. Beginilah cara kerjanya.Kami memiliki penanda augmented reality yang dipatenkan dalam bentuk gambar utama yang dapat ditempatkan, misalnya, di majalah di sebelah deskripsi produk. Titik putih dengan ukuran berbeda di dalam kunci ini memungkinkan Anda mengidentifikasi konten secara unik. Ada server - dibutuhkan kode untuk membaca dari kunci dan mengembalikan kepada pengguna berbagai data tentang produk, model 3D-nya, dll.
Untuk mengembangkan kunci seperti itu, kami mencoba semua perpustakaan paling populer, tetapi tidak dapat menemukan penanda yang cocok dengan kombinasi apa pun. Ketika kita menggunakan penanda augmented reality, ia berada pada titik-titik kunci. Penanda hitam dan putih, dan titik-titik kunci terkonsentrasi di tempat yang berubah. Pada akhirnya, kami memutuskan untuk menulis semuanya dari awal.Kami menggunakan algoritma pencarian MSER, yang hanya menemukan cakupan. Bagaimanapun, kita tahu bahwa pasti ada kunci hitam dan pasti ada salib putih di dalam kunci ini. Oleh karena itu, pertama-tama kita menemukan wilayah hitam besar, dan di dalam wilayah ini kita menemukan wilayah putih. Lalu kami memotong gambar dan melihat rasio aspek - itu harus 2: 1. Selanjutnya, kami menganalisis formulir. Berfokus pada salib, kita dapat menemukan awal dari frasa kunci. Adapun poin, mereka selalu berada di tempat yang sama, jadi menemukan mereka juga mudah. Sebagai hasilnya, kami telah memperoleh algoritma pencarian marker berdasarkan formulir. Ini, tentu saja, bukan solusi universal, tetapi melakukan tugas kita dengan baik.Jadi, pada iPhone 5S, kami mendapat kinerja lebih dari 25 FPS. Untuk mencapai ini cukup sulit. Pada awalnya, seperti halnya algoritma apa pun, kami mengurangi gambar: algoritme pengenalan bekerja jauh lebih baik pada gambar yang diperkecil dengan kualitas rendah. Kemudian mereka memperkenalkan algoritma prediksi - setelah menemukan gambar, kami menganggap bahwa kunci tidak dapat terbang keluar dari bingkai lebih dari nilai piksel tertentu. Lalu kami mempersingkat gambar. Setelah itu, kami menganalisis dinamika: jika pengguna memutar ponsel ke kiri, kunci akan bergerak ke kanan. Ini adalah algoritma probabilistik. jika kami tidak segera menemukan apa yang kami cari, kami mulai memproses area yang lebih besar dan lebih besar. Kami memiliki algoritma rendering model yang hebat, yang ditulis dari awal.Apa lagi yang kita miliki? Ada tiga baris pada kunci, di masing-masing dari mereka ada 13 poin. Ini berarti 469 kombinasi dimungkinkan. Karena pada jarak lebih dari satu meter gambarnya sudah agak buram, kami membuat algoritma dekripsi probabilistik dengan koreksi kesalahan. Kami menggunakannya bersama dengan kunci koreksi diri. Jadi kami secara akurat mengidentifikasi empat tanda palsu, yang cukup. Kami juga memiliki algoritme deteksi yang dioptimalkan, algoritme pelacakan dan prediksi untuk posisi selanjutnya.Terlepas dari kenyataan bahwa kunci semacam itu agak mengingatkan pada kode QR, ada perbedaan mendasar. Anda tidak dapat melampirkan augmented reality ke kode QR, karena kontennya terus berubah. Dengan kata lain, Anda tidak dapat membuatnya sebagai penanda. Anda tidak dapat meletakkan model 3D di atasnya dan Anda tidak dapat menentukan sudut rotasi. Selain itu, kunci semacam itu sangat mudah dikenali.Klub Sepak Bola Pengenal
Kami juga mengembangkan aplikasi yang membantu pengguna melacak klub sepak bola favorit mereka. Ini memungkinkan Anda untuk menambahkan realitas virtual ke gambar logo klub sepakbola - ketika Anda membawa kamera pada logo, data klub ditampilkan. Source: https://habr.com/ru/post/id391055/
All Articles