Dalam ranah penglihatan komputer (computer vision) dan fotogrametri, pemahaman mendalam tentang bagaimana citra direkam dan diproyeksikan adalah hal fundamental. Salah satu konsep matematis paling kuat yang menjembatani kesenjangan antara dunia 3D nyata dan representasi 2D digital adalah homografi. Homografi, atau yang sering disebut sebagai transformasi proyektif planar, adalah sebuah pemetaan yang menghubungkan titik-titik pada satu bidang datar ke titik-titik lain pada bidang datar kedua, meskipun bidang-bidang tersebut dilihat dari sudut pandang yang berbeda atau melalui lensa yang berbeda.
Konsep ini muncul dari geometri proyektif, cabang matematika yang mempelajari sifat-sifat geometris yang tidak berubah di bawah transformasi proyektif. Homografi adalah alat vital yang memungkinkan mesin untuk 'melihat' dan menafsirkan perspektif, yang pada gilirannya membuka jalan bagi aplikasi kompleks seperti penyambungan citra panorama, kalibrasi kamera, augmentasi realitas (AR), dan rekonstruksi 3D. Artikel ini akan mengupas tuntas struktur matematis homografi, metode komputasinya, tantangan implementasinya, hingga aplikasinya yang luas dalam teknologi modern.
Homografi secara matematis didefinisikan sebagai transformasi yang tidak mengubah sifat-sifat garis lurus. Artinya, jika kita memiliki sekumpulan titik yang berada pada satu garis lurus di bidang pertama, setelah diubah oleh homografi, titik-titik yang diproyeksikan tersebut akan tetap berada pada satu garis lurus di bidang kedua. Inilah yang membedakannya secara signifikan dari transformasi non-linear yang lebih umum.
Dalam hierarki transformasi geometris, homografi berada di tingkat yang lebih tinggi kompleksitasnya dibandingkan translasi (pergeseran), rotasi, dan penskalaan (yang bersama-sama membentuk transformasi rigid atau Euclidean), atau bahkan transformasi Affine. Perbedaan kuncinya adalah:
Untuk merepresentasikan homografi, kita harus keluar dari sistem koordinat Euklides 2D standar (x, y) dan masuk ke dalam ruang koordinat homogen. Dalam sistem ini, sebuah titik 2D (x, y) diubah menjadi vektor 3D (x_h, y_h, w), di mana koordinat Euklidesnya ditemukan dengan membagi dua koordinat pertama dengan koordinat ketiga: x = x_h / w dan y = y_h / w.
Penggunaan koordinat homogen sangat krusial karena beberapa alasan fundamental dalam geometri proyektif:
Homografi diwakili oleh matriks non-singular 3x3, sering dilambangkan sebagai H. Matriks ini bertindak pada vektor koordinat homogen dari bidang sumber (x) untuk menghasilkan vektor koordinat homogen dari bidang tujuan (x').
Persamaan yang mendefinisikan transformasi homografi adalah:
Di mana simbol $\sim$ menunjukkan kesetaraan hingga faktor skala non-nol (inilah peran koordinat homogen). Jika kita menjabarkan matriks H dan vektor koordinat homogen:
Karena kita bekerja dengan titik 2D standar (x, y), vektor inputnya biasanya (x, y, 1)^T. Setelah perkalian matriks, koordinat Euklides dari titik baru (x', y') diperoleh dengan normalisasi (membagi dengan w'):
Matriks H memiliki sembilan elemen (h_{11} hingga h_{33}). Namun, karena kesetaraan homografi hanya sampai faktor skala (ingat, $x' \sim Hx$), kita dapat membagi semua elemen matriks H dengan salah satu elemennya yang tidak nol, misalnya h_{33}, dan mengatur h_{33} = 1. Ini meninggalkan 9 - 1 = 8 parameter independen yang harus ditentukan. Oleh karena itu, homografi dikatakan memiliki delapan derajat kebebasan.
Untuk menentukan delapan parameter ini, kita memerlukan minimal delapan persamaan linier independen. Karena setiap pasangan titik korespondensi ((x, y) \to (x', y')) memberikan dua persamaan, kita memerlukan minimal empat pasang titik korespondensi non-kolinear untuk secara unik menghitung matriks homografi H.
Visualisasi Homografi: Matriks H memetakan titik-titik (ditunjukkan oleh sudut) dari bidang planar 1 ke bidang planar 2, menciptakan distorsi perspektif.
Metode yang paling umum digunakan untuk menghitung matriks homografi H dari sekumpulan titik korespondensi yang diketahui adalah algoritma Transformasi Linier Langsung (Direct Linear Transformation - DLT). DLT mengubah persamaan non-linier yang melibatkan pembagian menjadi sistem persamaan linier homogen yang dapat diselesaikan dengan mudah menggunakan aljabar linier.
Mari kita mulai dari persamaan Euklides yang dinormalisasi:
Dengan memindahkan semua suku ke satu sisi, kita mendapatkan dua persamaan yang melibatkan sembilan elemen matriks H yang diatur dalam vektor $h = (h_{11}, h_{12}, h_{13}, h_{21}, h_{22}, h_{23}, h_{31}, h_{32}, h_{33})^T$:
Setiap pasangan korespondensi titik $(x, y) \leftrightarrow (x', y')$ menghasilkan dua baris persamaan linier ini. Jika kita memiliki $N$ pasang titik, kita akan mendapatkan sistem persamaan linier homogen besar dalam bentuk $Ah = 0$, di mana $A$ adalah matriks $2N \times 9$.
Karena kita mencari solusi non-trivial (yaitu, $h \neq 0$), dan matriks $H$ hanya ditentukan hingga faktor skala, kita mencari vektor $h$ yang meminimalkan $\|Ah\|^2$. Solusi untuk sistem homogen $Ah = 0$ (jika $A$ memiliki peringkat 8) diberikan oleh vektor singular kanan yang sesuai dengan nilai singular terkecil dari matriks $A$. Metode standar untuk menemukan solusi ini adalah Dekomposisi Nilai Singular (Singular Value Decomposition - SVD).
Langkah-langkah SVD:
Penting untuk dicatat bahwa implementasi DLT yang sederhana dapat sangat sensitif terhadap derau (noise) dan ketidakstabilan numerik, terutama jika koordinat citra sangat besar. Untuk mengatasi hal ini, DLT hampir selalu didahului oleh langkah normalisasi. Langkah normalisasi ini mencakup:
Transformasi normalisasi ini (diwakili oleh matriks $T$ dan $T'$) memastikan bahwa semua data memiliki skala dan pusat yang sama, meningkatkan kondisi matriks $A$. Setelah matriks homografi yang dinormalisasi $H_{norm}$ dihitung, matriks homografi akhir $H$ diperoleh melalui de-normalisasi:
Normalisasi adalah salah satu aspek yang paling sering diabaikan namun krusial dalam mencapai hasil homografi yang akurat dan stabil secara numerik.
Kekuatan homografi terletak pada kemampuannya untuk mengoreksi atau mengubah perspektif, yang merupakan inti dari banyak tugas pengolahan citra dan penglihatan 3D.
Ini adalah aplikasi homografi yang paling umum. Ketika dua gambar diambil dari titik pandang yang sama, tetapi dengan rotasi yang berbeda (misalnya, kamera pada tripod yang diputar), bidang pandang yang tumpang tindih dapat dipetakan satu sama lain menggunakan homografi. Prosedur umumnya melibatkan:
Jika gambar diambil dari titik pandang yang berbeda, homografi tidak akan cukup karena perbedaan paralaks (pergeseran perspektif objek yang lebih dekat relatif terhadap objek yang lebih jauh). Dalam kasus tersebut, diperlukan model yang lebih kompleks, seperti homografi global plus distorsi per piksel, atau model epipolar/fundamental matrix yang memperhitungkan kedalaman 3D.
Homografi memungkinkan kita untuk "meluruskan" gambar objek planar yang miring. Bayangkan mengambil foto papan tulis dari sudut. Hasilnya adalah trapesium. Jika kita tahu dimensi atau setidaknya empat sudut papan tulis di dunia nyata (atau hanya ingin mengubahnya menjadi persegi panjang yang sejajar dengan sumbu), kita dapat mendefinisikan homografi yang memetakan empat sudut miring tersebut ke empat sudut persegi panjang baru. Ini menghilangkan distorsi perspektif dan memberikan tampilan ortogonal, yang sangat berguna untuk pengukuran atau analisis citra dokumen.
Dalam AR, homografi memainkan peran kunci dalam menempatkan objek virtual 3D secara realistis di atas citra atau video 2D. Jika kita ingin menempelkan iklan virtual di dinding nyata (yang merupakan bidang planar), kita perlu:
Ini memastikan bahwa objek virtual mengalami distorsi perspektif yang sama dengan lingkungan sekitarnya, menjadikannya terlihat 'terkunci' pada dunia nyata.
Meskipun kalibrasi kamera penuh memerlukan matriks internal (intrinsik) dan eksternal (ekstrinsik), homografi digunakan dalam metode kalibrasi berbasis bidang datar (misalnya, menggunakan pola papan catur). Dengan memegang pola papan catur (bidang planar) di berbagai orientasi, kita dapat menghitung homografi antara koordinat dunia 3D dari papan catur dan koordinat piksel 2D yang terlihat. Matriks homografi ini kemudian diurai untuk mendapatkan parameter intrinsik kamera, seperti panjang fokus dan pusat optik, sebuah teknik yang dipopulerkan oleh Zhang.
Selain itu, ketika dua kamera mengamati bidang planar yang sama, homografi dapat menghubungkan citra di kedua kamera. Jika bidang planar ini berfungsi sebagai referensi (ground plane), homografi dapat digunakan untuk menentukan posisi 3D relatif objek lain yang berada pada atau di atas bidang tersebut.
Ketika berhadapan dengan data gambar nyata, proses pencocokan fitur (seperti SIFT) hampir selalu menghasilkan sejumlah besar korespondensi yang salah (outliers). Jika kita menggunakan DLT standar dengan semua titik ini, outlier akan merusak estimasi matriks $H$ secara keseluruhan. Untuk mengatasi hal ini, kita memerlukan metode estimasi robust, yang paling populer adalah RANSAC (Random Sample Consensus).
RANSAC adalah algoritma iteratif yang bertujuan untuk menemukan model (dalam hal ini, matriks $H$) yang paling konsisten dengan subset data yang besar (inliers). Ini bekerja berdasarkan hipotesis bahwa sebagian besar data (inliers) dapat dijelaskan oleh model tertentu yang bergantung pada sejumlah kecil parameter, sementara sisanya (outliers) tidak dapat dijelaskan.
Setelah iterasi RANSAC selesai, matriks homografi yang paling konsisten (dengan jumlah inlier terbanyak) dipilih. Matriks $H$ final kemudian dihitung ulang menggunakan semua inlier yang teridentifikasi untuk mendapatkan estimasi yang lebih akurat (refinemen linier atau non-linier).
Dalam langkah uji konsensus, jarak transfer harus diukur secara hati-hati. Jarak transfer mengukur seberapa jauh titik $x'$ (yang diamati) dari proyeksi $H x$ (yang diprediksi). Namun, karena matriks $H$ dapat diterapkan dalam kedua arah ($x' \to x$ dan $x \to x'$), pengukuran yang lebih akurat adalah Jarak Simetris Transfer, yang menggabungkan kesalahan proyeksi di kedua arah:
Di mana $d(\cdot, \cdot)$ adalah jarak Euklides standar. Pengukuran simetris ini penting karena menghindari bias yang mungkin terjadi jika hanya satu arah transformasi yang dipertimbangkan.
Meskipun homografi adalah alat yang sangat kuat, ia memiliki batasan yang jelas, terutama yang berkaitan dengan asumsi fundamental bahwa dunia yang diamati adalah planar atau pandangan kamera tetap (rotasi murni).
Estimasi homografi gagal atau menjadi sangat tidak stabil ketika titik-titik korespondensi berada dalam konfigurasi degenerasi. Dalam konteks homografi, kasus degenerasi yang paling umum terjadi ketika:
RANSAC membantu mengurangi risiko kolinearitas dengan terus-menerus memilih subset acak, namun dalam skenario tertentu (misalnya, mencari fitur hanya pada garis horizontal panjang), masalah ini tetap ada.
Homografi hanya berlaku secara sempurna jika salah satu dari dua kondisi terpenuhi:
Dalam kondisi umum, di mana objek memiliki kedalaman 3D yang bervariasi (misalnya, jalan dengan mobil dan pohon) dan kamera bergerak secara arbitrer (translasi dan rotasi), homografi planar tidak dapat secara akurat memetakan seluruh citra. Kesalahan proyeksi yang dihasilkan oleh objek non-planar disebut parallax error. Pada kasus ini, model seperti matriks fundamental atau model 3D penuh diperlukan.
Meskipun DLT cepat, akurasi puncaknya seringkali memerlukan refinement (penghalusan) non-linier. Setelah RANSAC memberikan perkiraan awal $H$, para peneliti sering menggunakan optimasi berbasis Levenberg-Marquardt. Metode ini memperlakukan matriks $H$ sebagai vektor 8 parameter dan meminimalkan kesalahan re-proyeksi (jarak antara titik yang diproyeksikan dan titik yang diamati) menggunakan iterasi non-linier. Proses ini jauh lebih lambat tetapi memberikan akurasi sub-piksel, yang sangat penting untuk aplikasi presisi tinggi seperti metrologi atau rekonstruksi 3D.
Untuk sepenuhnya menghargai kekuatan Homografi, penting untuk menempatkannya dalam konteks yang lebih luas dari transformasi proyektif, yang merupakan sub-kategori dari bidang matematika Geometri Proyektif. Geometri Proyektif mendefinisikan transformasi berdasarkan properti apa yang mereka pertahankan. Transformasi proyektif (Homografi) mempertahankan kolinearitas (titik pada garis tetap pada garis) dan rasio silang (cross-ratio), tetapi tidak mempertahankan paralelisme, jarak, atau sudut. Ini adalah transformasi yang paling umum dan fleksibel dari semua transformasi linier.
Dalam konteks kalibrasi kamera, matriks Homografi $H$ dapat diuraikan untuk mengungkapkan informasi fisik tentang kamera dan pose relatifnya. Matriks $H$ dapat difaktorkan (jika diketahui matriks intrinsik $K$) menjadi komponen rotasi ($R$) dan translasi ($t$).
Lebih spesifik, jika bidang planar dunia berada pada $Z=0$, Homografi yang menghubungkan koordinat dunia ($X_w, Y_w, 0$) ke koordinat citra ($x, y$) adalah:
Di mana $r_1$ dan $r_2$ adalah dua kolom pertama dari matriks rotasi $R$. Proses ini, yang disebut faktorisasi homografi, memungkinkan kita mengekstrak pose kamera ($R$ dan $t$) relatif terhadap bidang planar tersebut, asalkan parameter intrinsik $K$ kamera diketahui sebelumnya. Teknik ini adalah inti dari metode kalibrasi kamera Zhang yang sangat efisien.
Salah satu properti paling elegan dari homografi adalah kemampuannya untuk mempertahankan rasio silang. Rasio silang didefinisikan untuk empat titik kolinear (segaris) dan merupakan nilai skalar yang tidak berubah meskipun keempat titik tersebut diproyeksikan melalui homografi. Inilah mengapa rasio silang dianggap sebagai invarian proyektif yang paling fundamental. Properti ini sangat berguna karena memungkinkan pengukuran independen perspektif:
Jika kita menghitung rasio silang pada empat titik di citra sumber dan membandingkannya dengan rasio silang empat titik yang diproyeksikan di citra tujuan, nilainya harus sama, asalkan transformasinya adalah homografi. Invarian ini sering digunakan sebagai pemeriksaan validitas dalam algoritma yang melibatkan transformasi proyektif.
Area penelitian homografi terus berkembang, terutama didorong oleh kebutuhan akan AR yang semakin akurat dan pemetaan SLAM (Simultaneous Localization and Mapping) yang handal.
Dalam SLAM atau odometri visual, homografi sering digunakan sebagai model gerak awal, terutama ketika kamera bergerak di lingkungan yang didominasi oleh bidang datar (misalnya, berjalan di lorong atau di jalan datar). Jika gerak kamera dapat diidealkan sebagai rotasi murni (seperti yang terjadi jika kamera bergerak cepat dan bidang pandang terbatas pada objek yang jauh), homografi adalah model yang sangat baik dan cepat untuk memperkirakan pergeseran antara dua frame berturut-turut.
Penggunaan homografi sebagai model gerak ini memungkinkan penghitungan perkiraan awal pose kamera, yang kemudian dapat diperhalus menggunakan model gerak 3D penuh (seperti Fundamental Matrix atau Essential Matrix) jika terjadi translasi yang signifikan.
Mengingat batasan utama homografi adalah asumsi planar, teknik yang lebih maju menggunakan konsep homografi lokal. Daripada mencoba memetakan seluruh citra dengan satu matriks $H$, citra dibagi menjadi area-area kecil. Setiap area lokal, yang mungkin secara efektif dianggap planar, dihitung homografinya sendiri. Ini memungkinkan pemetaan yang lebih akurat pada skenario 3D kompleks.
Misalnya, dalam penyambungan video, di mana objek bergerak dalam kedalaman yang berbeda, menggunakan rata-rata atau kombinasi homografi lokal (berdasarkan segmentasi objek) dapat menghasilkan transisi yang lebih mulus daripada menggunakan satu homografi global, yang akan menghasilkan distorsi yang tidak wajar pada objek yang bergerak. Namun, implementasi homografi lokal jauh lebih mahal secara komputasi dan sering memerlukan langkah pra-pemrosesan segmentasi yang kuat.
Setelah matriks homografi $H$ berhasil dihitung, langkah berikutnya adalah proses warping (pemindaian) citra sumber ke citra tujuan. Proses warping ini melibatkan pemetaan koordinat piksel secara terbalik (inverse warping) untuk menghindari lubang (holes) pada citra hasil.
Ketika menghitung $x = H^{-1} x'$ untuk menentukan dari piksel mana di citra sumber nilai warna harus diambil, koordinat $x$ biasanya bukan bilangan bulat. Oleh karena itu, diperlukan interpolasi. Interpolasi yang paling sederhana adalah Nearest Neighbor, yang cepat tetapi menghasilkan hasil yang kotak-kotak (jagged). Untuk kualitas visual terbaik, digunakan Interpolasi Bi-Kubu (Bicubic Interpolation), yang menggunakan tetangga piksel 4x4 terdekat untuk menghasilkan nilai piksel yang mulus, meskipun menambah beban komputasi secara signifikan.
Untuk menekankan kedalaman matematis yang diperlukan untuk implementasi yang kuat, kita akan mengulas kembali detail matriks $A$ dalam DLT, khususnya untuk $N=4$ titik korespondensi.
Jika kita memiliki empat pasangan titik $(x_i, y_i) \leftrightarrow (x'_i, y'_i)$ untuk $i=1$ hingga $4$. Matriks $A$ akan berukuran $8 \times 9$. Untuk satu pasangan titik $i$, dua baris yang ditambahkan ke $A$ adalah:
Ketika $N > 4$ (kasus umum, misalnya $N=100$), matriks $A$ akan menjadi $200 \times 9$. Dalam kasus yang kelebihan ditentukan (over-determined), solusi $Ah=0$ tetap dicari melalui SVD, yang akan memberikan solusi kuadrat terkecil (Least Squares) dalam ruang homogen.
Ketika kita menggunakan SVD, $A = U \Sigma V^T$. Vektor $h$ yang kita cari, yaitu kolom terakhir $V$, secara otomatis akan memiliki norma (panjang vektor) sama dengan 1, karena kolom-kolom $V$ adalah ortonormal. Setelah mendapatkan $h$, kita harus merekonstruksi matriks $H$ 3x3 dan menormalkannya kembali ke konvensi standar (misalnya, $h_{33}=1$ atau $\|H\|^2 = 1$). Karena normalisasi SVD ini secara inheren menangani faktor skala, yang perlu diperhatikan adalah memastikan bahwa tanda dari $H$ konsisten, meskipun dalam praktiknya, tanda matriks keseluruhan tidak memengaruhi hasil proyeksi akhir karena sifat koordinat homogen.
Homografi berdiri sebagai konsep yang tidak hanya elegan secara matematis tetapi juga sangat aplikatif. Transformasi proyektif 3x3 ini merupakan jembatan esensial yang memungkinkan sistem penglihatan komputer untuk menangani distorsi perspektif yang melekat dalam proses pengambilan citra. Dari aplikasi yang terlihat sehari-hari seperti panorama yang ada di ponsel pintar, hingga teknologi AR dan kalibrasi robotika yang kompleks, Homografi adalah pilar fundamental.
Memahami homografi memerlukan penguasaan geometri proyektif dan koordinat homogen, tetapi imbalannya adalah kemampuan untuk memanipulasi ruang dan perspektif digital dengan presisi tinggi. Meskipun tantangan seperti parallax dan kasus degenerasi memerlukan solusi yang lebih maju (seperti RANSAC dan pemodelan non-linear), homografi tetap menjadi titik awal yang efisien dan robust untuk setiap masalah pemetaan planar dalam penglihatan komputer modern.
Dengan kemajuan komputasi dan sensor, estimasi matriks $H$ kini dapat dilakukan secara real-time, memungkinkan interaksi yang cepat dan mulus antara dunia fisik dan augmented reality, memperkuat posisi homografi sebagai salah satu algoritma paling penting dalam era digital.