OpenCV Nedir?

OpenCV (Open Source Computer Vision), esasen gerçek zamanlı bilgisayarlı görme amaçlı programlama işlevlerini içeren bir gerçek zamanlı (realtime) görüntü işleme kütüphanesidir.

Başlangıçta Intel tarafından geliştirilen bu kütüphane daha sonra Willow Garage tarafından desteklendi ve şu anda Itseez tarafından geliştirilmektedir. Kütüphane çapraz platform (cross-platform) olup, açık kaynak BSD lisansı altında ücretsiz kullanıma sunulmuştur.

OpenCV projesi resmi olarak 1999 yılında başlatılmıştı; CPU yoğunluklu uygulamaları ilerletmek için bir Intel araştırma girişimi idi. Projeye ana katkıyı, Intel Rusya’da bir dizi optimizasyon uzmanının yanı sıra Intel’in Performans Kütüphanesi Ekibi (Intel’s Performance Library Team) sağladılar.

 

OpenCV’nin ilk günlerinde proje hedefleri şu şekilde açıklanmıştır:

  • İleri seviye görüntü işleme araştırmaları için açık kaynağın yanı sıra optimize edilmiş kodlar sağlayarak araştırmaların ilerletilmesini sağlamak; tekerleği yeniden icat etmek yok.
  • Geliştiricilere, üzerine inşa edebilecekleri ortak bir altyapı sağlayarak, kodun daha kolay okunabilir ve aktarılabilir olmasını sağlamak.
  • Ticari görüntü işleme tabanlı uygulamalara taşınabilir, performası optimize edilmiş kodları ücretsiz sağlamak.

OpenCV’nin ilk alfa sürümü, 2000’de Bilgisayarlı Görme ve Desen Tanıma konulu IEEE Konferansı’nda halka açıklandı ve 2001 ve 2005 yılları arasında beş beta çıkarıldı. İlk sürüm v1.0 2006’da piyasaya çıktı. OpenCV, 2008 yılının ortalarında, Willow Garage adlı robotik Ar-Ge firmasından kurumsal destek almıştır ve şimdi halen desteği devam etmektedir.

Ekim 2008’de bir “ön-sürüm” v1.1 sürümü piyasaya çıkmıştır. OpenCV görüntü işleme kütüphanesinin ikinci büyük sürümü Ekim 2009’da sunuldu. OpenCV 2, performans açısından (özellikle çok çekirdekli sistemlerde) daha iyi uygulamalar geliştirmeyi amaçlayan değişiklikleri içermekteydi. Resmi yayınlar her altı ayda bir ortaya yayınlanmakta ve günümüzde geliştirilmesi büyük ticari şirketler tarafından desteklenen bağımsız bir Rus ekibi tarafından gerçekleştirilmektedir. Ağustos 2012’de OpenCV için kar amacı gütmeyen bir vakıf tarafından devralındı.

Dünyanın dört bir yanına kabul edilen OpenCV, 47 binden fazla kullanıcı topluluğuna ve yaklaşık 14 milyonu aşkın indirme sayısına sahiptir.

OpenCV’nin içerdiği uygulamalar:

  • 2D ve 3D araç kitleri (2D and 3D feature toolkits)
  • Yüz tanıma sistemi (Facial recognition system)
  • Hareket tanıma (Gesture recognition)
  • İnsan-bilgisayar etkileşimi (HCI)
  • Mobil robotik (Mobile robotics)
  • Hareket anlama (Motion understanding)
  • Nesne tanımlama (Object identification)
  • Segmentasyon ve tanımlama (Segmentation and recognition)
  • Kamera derinlik algılama (Stereopsis stereo vision: depth perception from 2 cameras)
  • Hareket yapısı (SFM)
  • Hareket izleme (Motion tracking)
  • Artırılmış gerçeklik (Augmented reality)

Ayrıca içerdiği makina öğrenmesi uygulamaları:

  • Boosting
  • Decision tree learning
  • Gradient boosting trees
  • Expectation-maximization algorithm
  • K-nearest neighbor algorithm
  • Naive Bayes classifier
  • Artificial neural networks
  • Random forest
  • Support vector machine (SVM)

OpenCV’nin doğal (native) dili C++ dilidir. Ayrıca Python, Java ve MATLAB/OCTAVE gibi dillere desteği, C#, Perl, Ch, Haskell ve Ruby gibi dillere ise dolaylı yollardan desteği mevcuttur.

OpenCV’deki tüm yeni gelişmeler ve algoritmalar günümüzde C++ diliyle geliştirilip, sağlanmaktadır.

OpenCV ayrıca Nvidia CUDA ve OpenCL gibi donanım ivmelendirme kütüphanelerine de (Hardware acceleration) destek vermektedir.

OpenCV çeşitli platformlarda çalışma yeğeneğine sahiptir:

Masaüstü: Windows, Linux, macOS, FreeBSD, NetBSD, OpenBSD

Mobil: Android, iOS, Maemo, BlackBerry 10

 

Referanslar:

http://opencv.org/

https://en.wikipedia.org/wiki/OpenCV