OpenCV - Ikhtisar
OpenCV adalah pustaka lintas platform yang dapat digunakan untuk mengembangkan waktu nyata computer vision applications. Ini terutama berfokus pada pemrosesan gambar, pengambilan dan analisis video termasuk fitur seperti deteksi wajah dan deteksi objek.
Mari kita mulai bab ini dengan mendefinisikan istilah "Visi Komputer".
Visi Komputer
Computer Vision dapat didefinisikan sebagai disiplin ilmu yang menjelaskan bagaimana merekonstruksi, menyela, dan memahami pemandangan 3D dari gambar 2D-nya, dalam kaitannya dengan properti struktur yang ada dalam pemandangan tersebut. Ini berkaitan dengan pemodelan dan mereplikasi visi manusia menggunakan perangkat lunak dan perangkat keras komputer.
Computer Vision tumpang tindih secara signifikan dengan bidang berikut -
Image Processing - Ini berfokus pada manipulasi gambar.
Pattern Recognition - Menjelaskan berbagai teknik untuk mengklasifikasikan pola.
Photogrammetry - Ini berkaitan dengan mendapatkan pengukuran yang akurat dari gambar.
Computer Vision Vs Pemrosesan Gambar
Image processingberhubungan dengan transformasi gambar-ke-gambar. Input dan output dari pengolahan citra keduanya adalah citra.
Computer visionadalah konstruksi deskripsi eksplisit dan bermakna tentang objek fisik dari gambarnya. Output dari computer vision berupa deskripsi atau interpretasi dari struktur dalam scene 3D.
Aplikasi Computer Vision
Di sini kami telah membuat daftar beberapa domain utama di mana Computer Vision banyak digunakan.
Aplikasi Robotika
Lokalisasi - Tentukan lokasi robot secara otomatis
Navigation
Menghindari rintangan
Perakitan (pasak dalam lubang, pengelasan, pengecatan)
Manipulasi (misalnya manipulator robot PUMA)
Human Robot Interaction (HRI) - Robotika cerdas untuk berinteraksi dan melayani orang
Aplikasi Obat
- Klasifikasi dan deteksi (misalnya lesi atau klasifikasi sel dan deteksi tumor)
- Segmentasi 2D / 3D
- Rekonstruksi organ manusia 3D (MRI atau ultrasound)
- Operasi robotika yang dipandu visi
Aplikasi Otomasi Industri
- Inspeksi industri (deteksi cacat)
- Assembly
- Pembacaan kode batang dan label paket
- Penyortiran objek
- Pemahaman dokumen (misalnya OCR)
Aplikasi Keamanan
Biometrik (iris, sidik jari, pengenalan wajah)
Pengawasan - Mendeteksi aktivitas atau perilaku tertentu yang mencurigakan
Aplikasi Transportasi
- Kendaraan otonom
- Keamanan, misalnya, pemantauan kewaspadaan pengemudi
Fitur Perpustakaan OpenCV
Menggunakan pustaka OpenCV, Anda dapat -
Membaca dan menulis gambar
Rekam dan simpan video
Gambar proses (filter, transformasi)
Lakukan deteksi fitur
Mendeteksi objek tertentu seperti wajah, mata, mobil, dalam video atau gambar.
Analisis video, yaitu memperkirakan gerakan di dalamnya, kurangi latar belakang, dan lacak objek di dalamnya.
OpenCV awalnya dikembangkan di C ++. Selain itu, binding Python dan Java juga disediakan. OpenCV berjalan di berbagai Sistem Operasi seperti windows, Linux, OSx, FreeBSD, Net BSD, Open BSD, dll.
Tutorial ini menjelaskan konsep OpenCV dengan contoh-contoh menggunakan pengikatan Java.
Modul Perpustakaan OpenCV
Berikut adalah modul perpustakaan utama dari perpustakaan OpenCV.
Fungsi Inti
Modul ini mencakup struktur data dasar seperti Scalar, Point, Range, dll., Yang digunakan untuk membangun aplikasi OpenCV. Selain itu, ini juga mencakup array multidimensiMat, yang digunakan untuk menyimpan gambar. Di pustaka Java OpenCV, modul ini disertakan sebagai paket dengan namaorg.opencv.core.
Pengolahan citra
Modul ini mencakup berbagai operasi pemrosesan gambar seperti pemfilteran gambar, transformasi gambar geometris, konversi ruang warna, histogram, dll. Di pustaka Java OpenCV, modul ini disertakan sebagai paket dengan nama org.opencv.imgproc.
Video
Modul ini mencakup konsep analisis video seperti estimasi gerak, pengurangan latar belakang, dan pelacakan objek. Di pustaka Java OpenCV, modul ini disertakan sebagai paket dengan namaorg.opencv.video.
Video I / O
Modul ini menjelaskan pengambilan video dan codec video menggunakan pustaka OpenCV. Di pustaka Java OpenCV, modul ini disertakan sebagai paket dengan namaorg.opencv.videoio.
kalib3d
Modul ini mencakup algoritme mengenai algoritme geometri tampilan ganda dasar, kalibrasi kamera tunggal dan stereo, estimasi pose objek, korespondensi stereo, dan elemen rekonstruksi 3D. Di pustaka Java OpenCV, modul ini disertakan sebagai paket dengan namaorg.opencv.calib3d.
fitur2d
Modul ini mencakup konsep deteksi dan deskripsi fitur. Di pustaka Java OpenCV, modul ini disertakan sebagai paket dengan namaorg.opencv.features2d.
Objdetect
Modul ini mencakup deteksi objek dan instance dari kelas yang telah ditentukan sebelumnya seperti wajah, mata, mug, orang, mobil, dll. Di pustaka Java OpenCV, modul ini disertakan sebagai paket dengan nama org.opencv.objdetect.
Highgui
Ini adalah antarmuka yang mudah digunakan dengan kemampuan UI sederhana. Di pustaka Java OpenCV, fitur modul ini termasuk dalam dua paket berbeda yaitu,org.opencv.imgcodecs dan org.opencv.videoio.
Sejarah Singkat OpenCV
OpenCV awalnya merupakan inisiatif penelitian Intel untuk menyarankan aplikasi intensif CPU. Secara resmi diluncurkan pada tahun 1999.
- Pada tahun 2006, versi utama pertamanya, OpenCV 1.0 dirilis.
- Pada bulan Oktober 2009, versi utama kedua, OpenCV 2 dirilis.
- Pada Agustus 2012, OpenCV diambil alih oleh organisasi nonprofit OpenCV.org.