Panduan Kalibrasi Kamera untuk Computer Vision
Kalibrasi kamera untuk computer vision adalah proses menemukan parameter internal dan eksternal kamera agar gambar yang dihasilkan bisa diukur dan dipetakan ke dunia nyata dengan akurat. Tanpa kalibrasi, objek yang sama bisa terlihat berbeda ukurannya tergantung posisi di frame, dan jarak yang kamu hitung dari piksel tidak bisa dipercaya.
Pembahasan berikut mencakup kapan kalibrasi dibutuhkan, alat yang dipakai, langkah melakukannya, dan cara memeriksa hasilnya. Isinya cocok untuk proyek yang melibatkan pengukuran, penggabungan beberapa kamera, atau deteksi objek yang presisi.
Apa itu kalibrasi kamera dan mengapa penting?
Setiap kamera memiliki karakteristik optik yang memengaruhi bagaimana cahaya jatuh ke sensor. Lensa sudut lebar, misalnya, membuat garis lurus di dunia nyata terlihat melengkung di tepi gambar. Fenomena ini disebut distorsi lensa. Kalibrasi memodelkan distorsi tersebut agar bisa dikoreksi.
Selain distorsi, kalibrasi menghasilkan matriks intrinsik (panjang fokus dan titik pusat) serta koefisien distorsi. Dengan data ini, kamu bisa mengubah koordinat piksel menjadi koordinat dunia nyata, asalkan kamera tidak bergerak dan bidang acuan diketahui.
Proyek seperti pengukuran jarak antar objek, penghitungan volume, atau penggabungan citra dari beberapa kamera memerlukan kalibrasi. Tanpa itu, error bisa mencapai beberapa persen dan sulit dikoreksi di tahap akhir.
Kapan kalibrasi perlu dilakukan?
Kalibrasi tidak selalu wajib. Untuk klasifikasi gambar sederhana atau deteksi objek yang hanya membutuhkan kotak pembatas, kalibrasi sering diabaikan karena model tetap bisa belajar dari gambar apa adanya. Ada beberapa situasi yang menuntut kalibrasi:
- Kamu perlu mengukur jarak, luas, atau volume objek dari gambar.
- Kamera akan dipasang permanen dan hasilnya dipakai berulang kali.
- Kamu menggabungkan beberapa kamera (stereo vision) atau menggabungkan gambar dengan sensor lain.
- Lensa yang dipakai memiliki distorsi tinggi, seperti lensa fisheye atau sudut lebar.
- Proyek melibatkan augmented reality yang membutuhkan penempatan objek virtual secara tepat.
Jika kamu baru memulai dan masih menggunakan kamera USB biasa, lihat dulu panduan memilih resolusi kamera untuk proyek computer vision agar kalibrasi tidak sia-sia karena resolusi terlalu rendah.
Alat dan bahan yang dibutuhkan
Untuk kalibrasi dasar, kamu memerlukan papan kalibrasi. Papan ini biasanya berupa papan catur (checkerboard) dengan ukuran kotak yang diketahui, atau pola lingkaran asimetris. Papan catur lebih umum karena deteksi sudutnya lebih mudah dan presisi.
Cetak papan catur pada permukaan yang rata, tempelkan di papan keras, dan pastikan ukuran kotak sesuai dengan yang akan kamu masukkan ke algoritma. Jangan mencetak di kertas biasa yang mudah melengkung karena lengkungan sekecil apa pun akan mengganggu hasil.
Selain papan, kamu butuh kamera yang akan dikalibrasi, pencahayaan merata, dan perangkat lunak. OpenCV menyediakan fungsi kalibrasi yang sudah banyak dipakai. Kamu bisa menjalankannya di laptop tanpa GPU, seperti dijelaskan di cara menjalankan model AI di laptop tanpa GPU.
Langkah melakukan kalibrasi kamera
1. Siapkan papan kalibrasi
Cetak papan catur dengan jumlah kotak yang cukup, misalnya 9x6 kotak dalam dan ukuran kotak 25 mm. Semakin besar papan dan semakin banyak kotak, semakin stabil hasil kalibrasi. Tempelkan pada papan datar dan ukur ulang ukuran kotak setelah dicetak untuk memastikan tidak ada penyusutan akibat printer.
2. Ambil beberapa gambar dari sudut berbeda
Rekam 15-30 gambar papan dari berbagai posisi: miring, tegak, dekat, jauh, dan di berbagai area frame. Pastikan seluruh papan terlihat di setiap gambar dan sudutnya tidak terpotong. Variasi sudut penting agar algoritma bisa memisahkan parameter intrinsik dari distorsi.
Hindari gerakan saat mengambil gambar karena blur akan membuat deteksi sudut gagal. Gunakan mode burst atau timer jika perlu.
3. Deteksi sudut papan
Dengan OpenCV, kamu bisa menggunakan findChessboardCorners untuk menemukan sudut-sudut kotak. Setelah terdeteksi, tingkatkan akurasinya dengan cornerSubPix. Simpan koordinat sudut ini untuk tahap kalibrasi.
4. Jalankan kalibrasi
Fungsi calibrateCamera akan menghitung matriks intrinsik, koefisien distorsi, vektor rotasi, dan translasi untuk setiap gambar. Proses ini meminimalkan error reproyeksi, yaitu selisih antara posisi sudut yang terdeteksi dan posisi yang diprediksi oleh model.
Perhatikan nilai error reproyeksi. Nilai di bawah 0,5 piksel umumnya dianggap baik, tetapi bisa bervariasi tergantung kualitas papan dan gambar.
5. Periksa hasil dengan undistort
Gunakan parameter yang diperoleh untuk mengoreksi gambar baru dengan undistort. Garis lurus di dunia nyata seharusnya terlihat lurus di gambar hasil koreksi. Jika masih melengkung, kemungkinan jumlah gambar kurang atau sudut papan tidak terdeteksi dengan baik.
Tips agar kalibrasi lebih akurat
- Gunakan papan dengan kontras tinggi dan permukaan matte untuk menghindari pantulan.
- Pastikan pencahayaan merata dan tidak ada bayangan tajam di papan.
- Ambil gambar pada resolusi penuh, jangan di-resize sebelum kalibrasi.
- Jika kamera memiliki autofokus, kunci fokus pada jarak kerja yang akan dipakai.
- Ulangi kalibrasi jika kamera dipindahkan atau lensa diganti.
Untuk proyek yang melibatkan sensor tambahan, seperti Arduino, pastikan pemasangan sensor tidak mengganggu posisi kamera. Ada baiknya membaca tips memasang sensor di Arduino untuk pemula tanpa bingung agar rangkaian tetap rapi.
Kalibrasi untuk penggabungan gambar dan video
Jika kamu bekerja dengan video, kalibrasi tetap relevan. Distorsi lensa yang sama berlaku untuk setiap frame. Kamu bisa mengoreksi seluruh video dengan parameter yang sama, asalkan zoom dan fokus tidak berubah.
Saat merekam video untuk keperluan deteksi, kompresi bisa memengaruhi kualitas gambar. Bandingkan dulu metode kompresi video untuk media sosial agar kamu tahu kompresi mana yang paling sedikit merusak detail, terutama jika video akan dipakai untuk analisis lebih lanjut.
Untuk menggabungkan hasil deteksi ke dalam laporan, kamu bisa menyimpan koordinat objek ke CSV seperti dijelaskan di cara menyimpan hasil deteksi objek ke file CSV. Data ini bisa dipakai untuk memverifikasi apakah kalibrasi sudah cukup baik.
Kesalahan umum saat kalibrasi
Banyak pemula hanya mengambil gambar papan di satu sudut pandang. Akibatnya, model tidak cukup informasi untuk memisahkan parameter. Kesalahan lain adalah menggunakan papan yang tidak rata atau ukuran kotak yang salah. Selalu ukur ulang papan setelah dicetak.
Mengabaikan error reproyeksi juga sering terjadi. Jika error terlalu tinggi, jangan langsung memakai parameter tersebut. Periksa kembali gambar dan pastikan semua sudut terdeteksi.
Ringkasan
Kalibrasi kamera untuk computer vision membantu kamu mendapatkan pengukuran yang lebih akurat dan mengurangi distorsi lensa. Prosesnya memerlukan papan kalibrasi, beberapa gambar dari sudut berbeda, dan perangkat lunak seperti OpenCV. Periksa error reproyeksi dan uji hasilnya dengan undistort. Untuk proyek yang lebih kompleks, pertimbangkan juga pengaruh resolusi dan kompresi video.
Pertanyaan yang Sering Diajukan
Apakah kalibrasi kamera wajib untuk semua proyek computer vision?
Tidak. Untuk klasifikasi gambar atau deteksi objek sederhana, kalibrasi sering tidak diperlukan. Namun, jika kamu perlu mengukur jarak atau menggabungkan beberapa kamera, kalibrasi menjadi penting.
Berapa banyak gambar yang ideal untuk kalibrasi?
Umumnya 15-30 gambar dengan variasi sudut sudah cukup. Yang lebih penting adalah variasi posisi dan kualitas gambar, bukan sekadar jumlah.
Bagaimana cara mengetahui kalibrasi berhasil?
Lihat nilai error reproyeksi. Nilai yang rendah (di bawah 0,5 piksel) menandakan kalibrasi baik. Kamu juga bisa memeriksa hasil undistort: garis lurus seharusnya tetap lurus.
