OpenCV 2.4.X ile 3.X Sürümü Arasındaki Farklar

Bu soru daha çok yeni başlayanlar veya projesinde hangi sürümü kullanmasına karar veremeyenler tarafından geliyor. Bu sürümleri kesin bir çizgiyle bir birinden ayırmamak gerekiyor, yani Python 2 ile Python 3 arasındaki ayrım gibi düşünülmemeli. Sürekli geliştirilen bir kütüphane ve yenilendikçe üzerine bir şeyler katıldıkça versiyonlama sisteminin doğası gereği major atlıyor. (Versiyonlama sistemlerinde x.x.x.x şeklinde giden numaralandırma Major, Minor, Build,Revision olarak adlandırılır.) Öğrenmek veya bir şeyler denemek için indiriyorsanız en güncel sürüm olan 3.1 i kullanmanızı öneririm veya iki sürümüde referans olarak ekleyip aynı projede kullanabilirsiniz bunun için bir engel bulunmuyor.

3.x sürümünde daha çok mobil (ios,android), Intel işlemciler ve ARM mimarisi (iOT kartlar, FPGI vb.) için iyileştirmeler yapıldı. Açık kaynak kod olması sebebiyle de bağımsız geliştiriciler tarafından bir çok yeni paket eklendi. Eski algoritmalar çıkartıldı ve yerlerine yenileri eklendi bu sebeple de paketlerde yeni bir düzenlemeye gidildi. Java geliştiricisi değilseniz paketlerdeki değişiklikler sizi çok ilgilendirmiyor olabilir :).

Eklenen bazı özellikler:

  • [Android] Android 5.x sürümleri için kamerada yaşanan sorunlar giderildi ve daha efektif kamera kullanımı sunuldu.
  • [Windows-MacOS] 3.1 sürümüyle Visual Studio 2015 ve Xcode7 desteği geldi.
  • [Intel] Intelin de desteğiyle Intel işlemcilerde performans artışı sağlayan Integrated Performance Primitives (Intel® IPP) entegre edildi. Bu sayede çekirdekler otomatik olarak optimize ediliyor.
  • [Intel] Intelin desteğiyle OpenCL tarafında iyileştirmeler yapıldı ve ek özellikler eklendi, bu sayede paralel komut işlemede performans artışı sağlandı.
  • [Genel] HAL (Hardware Acceleration Layer) yani donanım hızlandırma katmanı ek modül olarak sunuluyordu bu modül doğrudan OpenCV içerisine taşındı ve yeni aritmatik işlem fonksiyonları eklendi.
  • [Genel] ni-black thresholding algoritması eklendi.
  • [Genel] Fuzzy görüntü işleme modülü geliştirildi.
  • [Genel] Kernelized Correlation Filtresi ile gerçek zamanlı çok nesne izleme.
  • [Genel] RGBD Modülü geliştirildi.
  • [Genel] Matlab iyileştirmeleri yapıldı.
  • [Genel] CUDA için iyileştirmeler yapıldı.

yukarıdakiler sadece bazıları ve tabiki bir çok bug temizlendi. OpenCV belirli bir doygunluk seviyesine ulaşmıştı, bu sebeple performans iyileştirmeleri ve bug temizleme üzerine geliştirmeler yapılıyordu, paralel programlama ve derin öğrenmedeki gelişmeler ile birlikte 3.x sürümünde bu doğrultuda bir çok yeni modül ve algoritma entegre edildi.

 


Yararlanılan Kaynaklar

  • https://software.intel.com/en-us/intel-ipp
  • https://github.com/opencv/opencv/wiki/ChangeLog