OpenCV - Genel Bakış
OpenCV, gerçek zamanlı olarak geliştirebileceğimiz bir çapraz platform kitaplığıdır. computer vision applications. Esas olarak görüntü işleme, video yakalama ve yüz algılama ve nesne algılama gibi özellikleri içeren analizlere odaklanır.
"Bilgisayarla Görme" terimini tanımlayarak bölüme başlayalım.
Bilgisayar görüşü
Computer Vision, sahnede bulunan yapının özellikleri açısından bir 3D sahnenin 2D görüntülerinden nasıl yeniden yapılandırılacağını, kesileceğini ve anlaşılacağını açıklayan bir disiplin olarak tanımlanabilir. Bilgisayar yazılımı ve donanımı kullanarak insan vizyonunun modellenmesi ve kopyalanmasıyla ilgilenir.
Computer Vision, aşağıdaki alanlarla önemli ölçüde örtüşmektedir -
Image Processing - Görüntü işlemeye odaklanır.
Pattern Recognition - Kalıpları sınıflandırmak için çeşitli teknikleri açıklar.
Photogrammetry - Görüntülerden doğru ölçümler elde etmekle ilgilenir.
Computer Vision Vs Görüntü İşleme
Image processinggörüntüden görüntüye dönüştürme ile ilgilenir. Görüntü işlemenin girişi ve çıkışı her iki görüntüdür.
Computer visionfiziksel nesnelerin görüntülerinden açık, anlamlı tanımlarının oluşturulmasıdır. Bilgisayarla görmenin çıktısı, 3B sahnedeki yapıların açıklaması veya yorumudur.
Bilgisayarla Görme Uygulamaları
Burada, Computer Vision'ın yoğun olarak kullanıldığı bazı ana alanları listeledik.
Robotik Uygulaması
Yerelleştirme - Robot konumunu otomatik olarak belirleyin
Navigation
Engellerden kaçınma
Montaj (delik içi, kaynak, boyama)
Manipülasyon (örneğin PUMA robot manipülatörü)
İnsan Robot Etkileşimi (HRI) - İnsanlarla etkileşim kurmak ve insanlara hizmet etmek için akıllı robotik
İlaç Başvurusu
- Sınıflandırma ve tespit (örn. Lezyon veya hücre sınıflandırması ve tümör tespiti)
- 2D / 3D segmentasyon
- 3D insan organı rekonstrüksiyonu (MRI veya ultrason)
- Görme güdümlü robotik cerrahi
Endüstriyel Otomasyon Uygulaması
- Endüstriyel muayene (kusur tespiti)
- Assembly
- Barkod ve paket etiketi okuma
- Nesne sıralama
- Belgenin anlaşılması (örneğin OCR)
Güvenlik Uygulaması
Biyometri (iris, parmak izi, yüz tanıma)
Gözetim - Belirli şüpheli etkinlikleri veya davranışları tespit etme
Ulaşım Uygulaması
- Otonom araç
- Güvenlik, örneğin sürücü dikkat izleme
OpenCV Kitaplığının Özellikleri
OpenCV kitaplığını kullanarak şunları yapabilirsiniz:
Görselleri okuyun ve yazın
Videoları yakalayın ve kaydedin
Görüntüleri işleme (filtre, dönüştürme)
Özellik algılama gerçekleştirin
Videolar veya görüntülerdeki yüzler, gözler, arabalar gibi belirli nesneleri tespit edin.
Videoyu analiz edin, yani içindeki hareketi tahmin edin, arka planı çıkarın ve içindeki nesneleri izleyin.
OpenCV orijinal olarak C ++ ile geliştirilmiştir. Buna ek olarak Python ve Java bağlantıları sağlandı. OpenCV, windows, Linux, OSx, FreeBSD, Net BSD, Open BSD, vb. Gibi çeşitli İşletim Sistemlerinde çalışır.
Bu eğitici, Java bağlamalarını kullanan örneklerle OpenCV kavramlarını açıklar.
OpenCV Kütüphane Modülleri
OpenCV kütüphanesinin ana kütüphane modülleri aşağıdadır.
Temel İşlevsellik
Bu modül, OpenCV uygulamaları oluşturmak için kullanılan Skalar, Point, Range vb. Gibi temel veri yapılarını kapsar. Bunlara ek olarak, çok boyutlu diziyi de içerir.Mat, görüntüleri saklamak için kullanılır. OpenCV'nin Java kitaplığında bu modül, adıyla bir paket olarak yer almaktadır.org.opencv.core.
Görüntü işleme
Bu modül, görüntü filtreleme, geometrik görüntü dönüştürmeleri, renk alanı dönüştürme, histogramlar vb. Gibi çeşitli görüntü işleme işlemlerini kapsar. OpenCV'nin Java kitaplığında bu modül, adıyla bir paket olarak yer almaktadır. org.opencv.imgproc.
Video
Bu modül, hareket tahmini, arka plan çıkarma ve nesne izleme gibi video analizi kavramlarını kapsar. OpenCV'nin Java kitaplığında bu modül, adıyla bir paket olarak yer almaktadır.org.opencv.video.
Video G / Ç
Bu modül, OpenCV kitaplığını kullanarak video yakalama ve video codec bileşenlerini açıklar. OpenCV'nin Java kitaplığında bu modül, adıyla bir paket olarak yer almaktadır.org.opencv.videoio.
calib3d
Bu modül, temel çoklu görünüm geometri algoritmaları, tek ve stereo kamera kalibrasyonu, nesne poz tahmini, stereo yazışma ve 3B yeniden yapılandırma unsurları ile ilgili algoritmaları içerir. OpenCV'nin Java kitaplığında bu modül, adıyla bir paket olarak yer almaktadır.org.opencv.calib3d.
özellikler2d
Bu modül, özellik algılama ve açıklama kavramlarını içerir. OpenCV'nin Java kitaplığında bu modül, adıyla bir paket olarak yer almaktadır.org.opencv.features2d.
Objdetect
Bu modül, yüzler, gözler, kupalar, insanlar, arabalar vb. Gibi önceden tanımlanmış sınıfların nesnelerinin ve örneklerinin algılanmasını içerir. OpenCV Java kütüphanesinde bu modül, adıyla bir paket olarak yer almaktadır. org.opencv.objdetect.
Highgui
Bu, basit UI yeteneklerine sahip, kullanımı kolay bir arayüzdür. OpenCV Java kütüphanesinde bu modülün özellikleri iki farklı paket içerisinde yer almaktadır:org.opencv.imgcodecs ve org.opencv.videoio.
OpenCV'nin Kısa Tarihi
OpenCV, başlangıçta CPU yoğun uygulamaları tavsiye etmek için bir Intel araştırma girişimiydi. Resmi olarak 1999'da başlatıldı.
- 2006 yılında, ilk büyük sürümü olan OpenCV 1.0 piyasaya sürüldü.
- Ekim 2009'da, ikinci büyük sürüm olan OpenCV 2 piyasaya sürüldü.
- Ağustos 2012'de OpenCV, kâr amacı gütmeyen bir kuruluş olan OpenCV.org tarafından alındı.