Table of Contents

Kamera dan input ekstensi

Artikel ini memperkenalkan model kamera, parameter, dan beberapa catatan penggunaan untuk kamera fisik, serta cara memperluas input dengan menggunakan kamera kustom.

camera

Bingkai input

Bingkai input (Input Frame) adalah unit data dasar dalam AR, yang mewakili semua informasi relevan yang ditangkap dari kamera atau sumber data lain dalam satu frame. Sebuah bingkai input biasanya berisi:

  • Data gambar mentah (camera image)
  • Parameter kamera (seperti parameter internal)
  • Stempel waktu
  • Matriks transformasi kamera dalam koordinat dunia
  • Status pelacakan (tracking status)

Informasi ini menyediakan konteks spasio-temporal untuk algoritma AR dalam melakukan pelokalan, pelacakan, rendering, dll.

Kamera fisik

Saat ini, kamera yang digunakan pada perangkat elektronik biasanya terdiri dari beberapa lensa dan cermin. Namun, umumnya model kamera tidak dibangun menggunakan struktur optik aktual, melainkan menggunakan beberapa model yang disederhanakan.

Model kamera lubang jarum

pinhole camera

Ini adalah model paling sederhana yang biasa digunakan, di mana cahaya melewati lubang kecil membentuk gambar yang terbalik 180 derajat. Tetapi data keluaran kamera akan memperbaiki orientasi gambar. Enam parameter diperlukan untuk menggambarkan model ini: lebar dan tinggi piksel \(w, h\), panjang fokus piksel \(f_x, f_y\), posisi titik utama piksel \(c_x, c_y\). Perlu diperhatikan bahwa jika lebar dan tinggi piksel diskalakan, panjang fokus piksel dan posisi titik utama piksel juga akan diskalakan secara proporsional untuk mempertahankan posisi gambar.

Model kamera OpenCV

Beberapa kamera mungkin memiliki distorsi radial dan tangensial yang signifikan. Model kamera OpenCV menambahkan parameter orde tinggi untuk menggambarkan distorsi radial dan tangensial pada model kamera lubang jarum. Distorsi radial menggunakan \(k_1, k_2, k_3, \cdots\) untuk menggambarkan. Distorsi tangensial menggunakan \(p_1, p_2\) untuk menggambarkan.

Catatan

Beberapa pelacak tidak mendukung model kamera OpenCV.

Model kamera mata ikan OpenCV

Kamera mata ikan menggunakan proyeksi perspektif untuk mengompres konten sudut pandang luas ke area pencitraan yang lebih kecil. Model kamera mata ikan OpenCV tidak memiliki koreksi distorsi, dan menggunakan \(k_1, k_2, k_3, k_4, \cdots\) untuk menggambarkan berdasarkan 6 parameter model kamera lubang jarum.

Catatan

Beberapa pelacak tidak mendukung model kamera mata ikan OpenCV.

fisheye camera

Orientasi kamera dan orientasi gambar

Di ponsel, biasanya ketika dipegang secara horizontal (diputar 90 derajat berlawanan arah jarum jam dari posisi vertikal normal) dan arah tampilan layar juga horizontal, gambar yang dihasilkan oleh kamera belakang akan konsisten dengan adegan nyata saat ditampilkan di layar. Mengubah arah tampilan layar tanpa mengubah orientasi fisik layar tidak akan mengubah orientasi gambar keluaran kamera fisik. Ketika dipegang secara vertikal normal dan arah tampilan layar juga vertikal normal, gambar dari kamera belakang perlu diputar 90 derajat searah jarum jam sebelum ditampilkan di layar agar konsisten dengan adegan nyata. Saat arah tampilan layar diputar, gambar kamera yang dirender perlu melakukan kompensasi rotasi berlawanan arah untuk tetap konsisten dengan adegan nyata.

Orientasi kamera dan orientasi gambar biasanya didefinisikan relatif terhadap orientasi alami perangkat:

  • Ponsel

    • Android

      Android mendefinisikan orientasi alami sebagai orientasi saat ponsel dipegang secara vertikal normal. Unit sensor inersia (IMU) juga menggunakan orientasi ini sebagai referensi. Sudut rotasi gambar keluaran kamera relatif terhadap orientasi ini dapat diperoleh sebagai parameter kamera.

    • iOS

      Di iOS, meskipun tidak secara eksplisit mendefinisikan orientasi alami, unit sensor inersia juga menggunakan referensi yang sama dengan Android.

  • Tablet

    Orientasi alami tablet, beberapa di antaranya adalah orientasi horizontal, beberapa sama seperti ponsel yaitu vertikal normal.

  • Kacamata

    Orientasi alami kacamata biasanya adalah orientasi horizontal.

Saat merender gambar kamera, orientasi kamera dan orientasi layar akan diintegrasikan.

Tipe kamera dan pembalikan kamera

Ponsel umumnya memiliki kamera belakang dan kamera depan. Gambar yang dihasilkan oleh kamera depan perlu dibalik kiri-kanan sebelum ditampilkan di layar untuk meniru cermin. Jika tidak dibalik, akan terasa tidak biasa.

Ekstensi input

EasyAR mendukung ekstensi input dengan menggunakan kamera kustom. Kamera kustom memungkinkan Anda mendapatkan input frame dari eksternal dan meneruskannya ke sistem AR untuk digunakan oleh pelacak. Kamera kustom dapat diimplementasikan sendiri untuk memperoleh data gambar.

Panduan khusus platform

Penggunaan kamera dan ekstensi input sangat terkait dengan platform. Silakan merujuk pada panduan berikut sesuai dengan platform target Anda untuk pengembangan: