Kamera dan ekstensi input
Artikel ini memperkenalkan model kamera, parameter, dan beberapa catatan penggunaan lain untuk kamera fisik, serta cara memperluas input dengan menggunakan custom camera.

Input frame
Input frame adalah unit data dasar dalam AR. Ini merepresentasikan semua informasi terkait dari satu frame yang ditangkap dari kamera atau sumber data lain. Sebuah input frame biasanya berisi:
- Data gambar raw (camera image)
- Parameter kamera (seperti intrinsics)
- Timestamp
- Matrix transform kamera dalam koordinat dunia
- Tracking status
Informasi ini menyediakan data konteks spatiotemporal yang diperlukan algoritma AR untuk localization, tracking, rendering, dan tugas lainnya.
Kamera fisik
Kamera yang saat ini digunakan pada perangkat elektronik biasanya terdiri dari beberapa lensa dan cermin. Namun, struktur optik aktual umumnya tidak digunakan untuk membangun model kamera; yang digunakan adalah model yang disederhanakan.
Model kamera pinhole

Ini adalah model paling sederhana yang umum digunakan. Cahaya melewati lubang kecil dan membentuk gambar yang berputar 180 derajat, tetapi data keluaran kamera akan membuat gambar menjadi tegak. Diperlukan enam parameter untuk mendeskripsikan model ini: lebar dan tinggi pixel \(w, h\), focal length pixel \(f_x, f_y\), serta posisi pixel principal point \(c_x, c_y\). Perhatikan bahwa jika lebar dan tinggi pixel diskalakan, focal length pixel dan posisi pixel principal point juga diskalakan sesuai, sehingga posisi gambar dapat tetap tidak berubah.
Model kamera OpenCV
Sebagian kamera memiliki distorsi radial dan distorsi tangensial yang signifikan. Model kamera OpenCV menambahkan parameter orde tinggi ke model kamera pinhole untuk mendeskripsikan distorsi radial dan distorsi tangensial. Distorsi radial dideskripsikan dengan \(k_1, k_2, k_3, \cdots\). Distorsi tangensial dideskripsikan dengan \(p_1, p_2\).
Catatan
Beberapa tracker tidak mendukung model kamera OpenCV.
Model kamera fisheye OpenCV
Kamera fisheye menggunakan perspective projection untuk memampatkan konten dengan sudut pandang besar ke area pencitraan yang lebih kecil. Model kamera fisheye OpenCV tidak memiliki koreksi distorsi. Berdasarkan enam parameter model kamera pinhole, model ini menggunakan \(k_1, k_2, k_3, k_4, \cdots\) untuk deskripsi.
Catatan
Beberapa tracker tidak mendukung model kamera fisheye OpenCV.

Orientasi kamera dan orientasi gambar
Pada ponsel, saat ponsel biasanya dipegang horizontal (diputar 90 derajat berlawanan arah jarum jam dari pegangan portrait normal) dan orientasi tampilan layar juga landscape, gambar keluaran kamera belakang ditampilkan di layar dengan arah yang sama seperti scene nyata. Mengubah hanya orientasi tampilan layar tanpa mengubah orientasi fisik layar tidak akan mengubah orientasi gambar yang dikeluarkan kamera fisik. Saat ponsel dipegang portrait normal dan orientasi tampilan layar juga portrait normal, gambar keluaran kamera belakang perlu diputar 90 derajat searah jarum jam sebelum ditampilkan di layar agar sesuai dengan scene nyata. Saat orientasi tampilan layar berotasi, rendering gambar kamera memerlukan kompensasi rotasi berlawanan agar sesuai dengan scene nyata.
Orientasi kamera dan orientasi gambar biasanya didefinisikan relatif terhadap orientasi natural perangkat:
Ponsel
Android
Android mendefinisikan orientasi natural, yaitu arah saat ponsel dipegang portrait normal. Inertial measurement unit (IMU) juga menggunakan arah ini sebagai referensi. Sudut rotasi gambar keluaran kamera relatif terhadap arah ini dapat diperoleh sebagai parameter kamera.
iOS
Di iOS, meskipun orientasi natural tidak didefinisikan secara eksplisit, inertial measurement unit menggunakan referensi yang sama seperti Android.
Tablet
Sebagian tablet memiliki orientasi natural landscape, sementara sebagian lainnya sama seperti ponsel yaitu portrait normal.
Kacamata
Orientasi natural kacamata biasanya landscape.
Saat merender gambar kamera, orientasi kamera dan orientasi layar digabungkan untuk rendering.
Jenis kamera dan flip kamera
Ponsel umumnya memiliki kamera belakang dan kamera depan. Gambar keluaran kamera depan perlu dibalik secara horizontal sebelum ditampilkan di layar untuk mensimulasikan cermin. Jika tidak dibalik secara horizontal, hasilnya akan terlihat sangat tidak biasa.
Ekstensi input
EasyAR mendukung ekstensi input dengan menggunakan custom camera. Custom camera dapat mendukung pengambilan input frame dari sumber eksternal dan mentransmisikannya ke sistem AR untuk digunakan oleh tracker. Anda dapat mengimplementasikan sendiri pengambilan data gambar untuk custom camera.
Panduan khusus platform
Penggunaan kamera dan ekstensi input sangat terkait dengan platform. Lihat panduan berikut untuk pengembangan sesuai platform target Anda: