OpenCV 3.2 Dersleri #Giriş – OpenCV Nedir ?

 

Merhaba arkadaşlar bu eğitim serisinde Javada OpenCV ile görüntü işlemeyi anlatacağız.Derslerin kod kısmını video olarak,teori kısmını ise yazı olarak ayırmayı düşünüyorum. Başlangıç seviyesinden gidip,ilerki videolarda işe yarar projeler göstermeye  çalışacağım.Şimdi openCV nedir ondan başlayalım..

 

OpenCv Nedir ?
OpenCv gerçek zamanlı “bilgisayarlı görme”(computer vision) uygulamaları geliştirmemizi sağlayan çapraz platform(cross-platform) kütüphanesidir.Temelde resim işleme,video yakalama ve yüz ve obje tanıma gibi özellik analizi içeren işlerde yoğunlaşmıştır.

Bilgisayarlı Görmeyi(Computer Vision) açıklayarak konuya başlayalım.

Computer Vision

Computer vision sahnedeki özelliklerin nasıl yeniden inşa edileceğini,kesmeleri,2D resimlerden oluşan 3D sahneleri anlamayı açıklayan bir disiplin olarak tanımlanabilir.Bilgisayar yazılım ve donanımını kullanarak insan görmesini modellemeyle ve kopyalamayla ilgilenir.OpenCV nin de “Open Source Computer Vision(Açık Kaynak Kodlu Bilgisayar Görmesi)” dir.Burdan bu kavramın önemini anlayabiliriz.

Computer vision aşağıdaki alanlarla ilgilenir:

  • Resim İşleme(Image Processing) = Resim manipülasyonuyla ilgilenir.
  • Desen Tanıma(Pattern Recognition) = Desenleri sınıflandırmak için çeşitli teknikleri açıklar.
  • Photogrammetry = Görüntülerden doğru ölçümler almakla ilgilidir.

Computer Vision ve Image Processing
Görüntü işleme,görüntüden görüntü dönüşümü(image to image transformation) ile ilgilidir.

Computer vision ,görüntülerdeki fiziksel nesnelerden, açık yapılar ve anlamlı açıklamalar oluşturulmasıdır.Bilgisayarlı Görme(Computer Vision) un çıktısı,3D sahnedeki yapıların açıklanması ve yorumlanmasıdır.

Computer Vision Uygulamaları
Burada computer vision un yoğun olarak kullanıldığı bazı önemli alanları listelemek gerekirse:

  • Robotik Uygulamaları
  • Yerelleştirme(Localization) = Robot konumunu otomatik olarak belirleme
  • Navigasyon
  • Engellerden Kaçma(Obstacles avoidance)
  • Montaj(Assembly) =Delme,kaynak,boyama
  • Manipülasyon = Örneğin PUMA robot manipülatörü
  • İnsan Robot Etkileşimi(Human Robot Interaction (HRI)) = İnsanlarla etkileşimde bulunmak ve hizmet etmek için akıllı robotlar yapma
  • Tıp Uygulamaları
  • Barkod ve paket etiket okuma
  • Nesne sıralama
  • Belge anlayışı (ör. OCR)
  • Güvenlik Uygulaması
  • Biyometri (göz-iris, parmak izi, yüz tanıma)
  • Gözetim – Şüpheli bazı faaliyetleri veya davranışları saptamak
  • Taşıma Uygulaması
  • Otonom Araçlar
  • Güvenlik =Ör: Sürücü uyarı takibi

OpenCv Kütüphanesinin Özellikleri
OpenCv kütüphanesini kullanarak şunları yapabilirsiniz;

  • Resim okuyup yazma
  • Video yakalama ve kaydetme
  • Görüntü işleme(Image processing) = filtreleme,dönüşüm(tranform)
  • Özellik Algılama Uygulamaları
  • Video veya resimlerde göz,yüz,araba gibi belirli özellikleri tespit etme
  • Video analiz etme, yani videodaki hareketleri hesaplama,arkaplanı temizleme ve nesneleri takip etme gibi..

OpenCv başlangıçta C++’da geliştirildi.Ek olarak java ve Python ciltleri de sağlandı.OpenCv windows,OSx,FreeBSD,Net BSD,Open BSD vb fibi çeşitli işletim sistemlerinde çalışır.

Biz bu eğitim serisinde sadece java kısmını açıklayacağız..

Opencv Kütüphane Modülleri

Aşağıda,OpenCv kütüphanesinin ana kütüphane modülleri bulunmaktadır.

Temel İşlevsellik(Core Functionality)
Bu modül OpenCV uygulamalarını oluşturmak için kullanılan Skaler(Scalar), Nokta(Point), Aralık(Range) vb. gibi temel veri yapılarını kapsar.Bunlara ek olarak,görüntüleri depolamak için kullanılan çok boyutlu dizi tipi olan “Mat” veri tipini de içerir.OpenCv nin çekirdek işlevselliği(Core Functionality) kütüphanesinde bu modül “org.opencv.imgproc” adı verilen bir pakete dahil edilmiştir.

Video
Bu modül,hareket tahmini,arkaplan temizleme ve nesne takibi gibi video analizlerini kapsar.OpenCv Java Kütüphanesinde bu modül org.opencv.video adı verilen bir paket adı altında bulunur.

Video Giriş/Çıkış(Video I/O)
Bu modül OpenCv kütüphanesini kullanarak video yakalama ve video codec bileşenlerini açıklamaktadır.OpenCV Java kütüphanesinde bu modül adı org.opencv.videoio olan bir paket adı altında bulunur.

Calib3D
Bu modül,temel çoklu görünüm(multiple-view) geometrisi algoritmalarını,tek(single) ve streo kamera kalibrasyonunu,nesne poz tahminlerini,stereo uygunluk(correspondence ) ve 3D yeniden yapılandırma unsurları ile ilgili algoritmaları içerir.OpenCv kütüphanesinde bu modül org.opencv.calib3d olarak bulunur.

Features2D
Bu modül, özellik algılama ve açıklama kavramlarını içerir. OpenCV Java kütüphanesinde, bu modül org.opencv.features2d adı verilen bir paket olarak bulunur.

Objdetect
Bu modül, yüzler, gözler, kupalar, insanlar, otomobiller gibi önceden tanımlanmış sınıfların nesnelerinin ve örneklerinin algılanmasını içerir. OpenCV Java kütüphanesinde, bu modül org.opencv.objdetect adı verilen bir pakete dahil edilmiştir.

Highgui
Bu, basit UI(User Interface=Kullanıcı Arayüzü) özelliklerine sahip, kullanımı kolay bir arayüz. OpenCV Java kütüphanesinde, bu modülün özellikleri iki farklı pakete dahil edilmiştir: org.opencv.imgcodecs ve org.opencv.videoio

Bu derste OpenCV yi  tanıdık.Diğer derslerde görüşmek üzere..

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir