OpenCV Nedir?
OpenCV; şirketler, araştırma grupları ve hükümet organları dahil olmak üzere 47.000'den fazla kullanıcı tarafından yaygın olarak kullanılan ve 14 milyonu aşkın indirme sayısına sahip, açık kaynak kodlu ‘Bilgisayarlı Görü’ kütüphanesidir. Bu kütüphaneyi kullanarak, hem klasik hem de son teknoloji bilgisayarlı görme ve makine öğrenimi algoritmalarıyla ilgili çalışmalar gerçekleştirebilir. Bu yazımızda, OpenCV kütüphanesini ve özelliklerini ele aldık.
25.05.2018 tarihli yazı 23580 kez okunmuştur.
OpenCV, ilk olarak 1999 yılında Intel’in Rusya’daki laboratuvarlarında geliştirilmeye başlanılmış bir projedir. İlk zamanlarda, gerçek zamanlı ışın izleme ve 3D ekran duvarları da dahil olmak üzere bir dizi projenin bir parçası olan CPU'lu uygulamaları geliştirmek, bilgisayar görme uygulamaları için ortak bir altyapı sağlayarak ve ticari ürünlerde makine algısının kullanımını hızlandırmak için oluşturulmuştur.
OpenCV nin en büyük avantajlarından bir tanesi açık kodlu bir kütüphane olmasıdır. Bu özelliğinden dolayı algoritmaların üzerinde değişiklikler yapılarak geliştirilebilir. Ayrıca, BSD lisansı altında dağıtılmaktadır. BSD lisanslı bir ürün olan OpenCV, işletmelerin kodu kullanmasını ve değiştirmesini kolaylaştırır.
Google, Yahoo, Microsoft, Intel, IBM, Sony, Honda, Toyota gibi köklü şirketler dışında, OpenCV' yi yaygın olarak kullanan; Applied Minds, VideoSurf ve Zeitera gibi birçok yeni şirket var. Kütüphanenin içerdiği algoritmalar kullanılarak neler yapalıbilceğine bir göz atalım. İşlek bir cadde üzerine konumlandırılış denetim kamerasını düşünürsek, yol durumunu sürekli kayıt altına alabilir; ancak artık hızla ilerleyen tejknolojiyle birlikte ihtiyaç duyulan sadece devasa boyutlardaki bu görüntüyü saklamak değildir. Gerçek ihtiyacımız, trafik kurallarını ihlal eden araçların plakalarını da otonom olarak tespit edebilmektir. 'Bilgisayarlı Görü' tam olarak bu örnek ve benzeri ihtiyaçları karşılamak için ortaya çıkan kavramlardır ve OpenCV, bu kavramları hayata geçirebilmek için en kullanışlı kütüphanelerden birisidir.
OpenCV, yüzleri ve nesneleri algılama ve tanımlama, videolarda insani eylemleri sınıflandırma, kamera hareketlerini ve hareketli nesneleri izleme, nesneleri 3 boyutlu modellerine ayıklama, stereo kameralardan 3D nokta bulutları üretme, görüntüleri yüksek çözünürlükte birleştirme gibi alanlarda başarılı alanlarda kullanılabilir.
OpenCV, yüzleri ve nesneleri algılama ve tanımlama, videolarda insani eylemleri sınıflandırma, kamera hareketlerini ve hareketli nesneleri izleme, nesneleri 3 boyutlu modellerine ayıklama, stereo kameralardan 3D nokta bulutları üretme, görüntüleri yüksek çözünürlükte birleştirme gibi alanlarda başarılı alanlarda kullanılabilir.
İsrail'de gözetim videosundan izinsiz girişlerin tespit edilmesi, Çin'deki maden ekipmanlarının izlenmesi, robotların Willow Garage'da nesnelerin gezinmesine ve toplanmasına yardım etmesi, Avrupa'da yüzme havuzundaki boğulma olaylarının algılanması, profesyonel cihazlardan herkesin cebinde taşıdığı mobil telefonlara kadar pek çok kaynaktan gelen görüntülerin anlamlandırılması gibi olaylar OpenCV'nin günlük yaşama geçmiş uygulamalarına örnek olarak verilebilir.
OpenCV, başlangıçta C ile kodlanmaya başlanmış olmasına rağmen 2.0 versiyonundan itibaren C++ dili ile daha sağlam bir yapıya kavuşmuştur. OpenCV 3.0 ile daha modern bir C++ yapısına geçilmiştir. Kütüphane, C ++, Python, Matlab/Octave ve Java arayüzlerine sahiptir ve Windows, Linux, Android ve Mac OS'yi destekler. OpenCV çoğunlukla gerçek zamanlı görüş uygulamalarına yönelir ve mevcut olduğunda MMX ve SSE talimatlarından yararlanır. Tam özellikli bir CUDA ve OpenCL arayüzleri şu anda aktif olarak geliştirilmektedir. 500'den fazla algoritma ve bu algoritmaları oluşturan veya destekleyen algoritmaların yaklaşık 10 kat fazlası fonksiyon vardır. OpenCV, C ++ dilinde doğal olarak yazılmıştır ve STL kapsayıcılarla sorunsuz çalışan bir şablona sahiptir.
Ayrıca, OpenCV ‘nin geliştirilmesi ve kullanımını yaygınlaştırmak için Willowgarage ve Itseez başta olmak üzere pek çok kuruluş ve kişi tarafından da desteklenen kar amacı gütmeyen www.opencv.org adlı site geliştirilmiştir.
OpenCV ve Ana Bileşenleri
Highgui: Görüntü ve hareketli görüntü-video ya da kamera -okuma, yazmak ve göstermek gibi işlemleri yapabileceğiniz temel fonksiyonlarından oluşur.
Core: Genel veri yapıları, görüntü üzerine çizim yapma, XML ve YAML yazma okuma işlevlerini barındırır.
İmgproc: Görüntü işleme ile ilgili genel fonksiyonları barındırıd.Filtreleme, geometrik ve renk uzay dönüşümleri, yapısal analiz ve şekil eşleştirme vb. fonksiyonlarını içerir.
Ml: Bayes , SVm, YSA ve benzeri yapay öğrenme algoritmalarından oluşur.
Core: Genel veri yapıları, görüntü üzerine çizim yapma, XML ve YAML yazma okuma işlevlerini barındırır.
İmgproc: Görüntü işleme ile ilgili genel fonksiyonları barındırıd.Filtreleme, geometrik ve renk uzay dönüşümleri, yapısal analiz ve şekil eşleştirme vb. fonksiyonlarını içerir.
Ml: Bayes , SVm, YSA ve benzeri yapay öğrenme algoritmalarından oluşur.
OpenCV 3.0 Versiyonuna Göre
Highgui: Ekranda pencereler açmak üzerinde görüntüleri göstermek gerektiğinde güncellemek; klavyeden ve fareden kullanıcı girişlerini almak gibi işleri yapan fonksiyonlardan oluşur.
İmgcodes: Görüntü yazma okuma işlemleri yapar.
Videoio: Video ya da kameradan görüntü yazma v eokuma işlemlerini yapar.
Core: Genel veri yapıları, görüntü üzerine çizim yapma , XML ve YAML yazma okuma işlevlerini barındrırır.
İmgproc: Görüntü işleme ile ilgili genel fonksiyonları barındırır. Filtreleme, geometrik ve renk uzay dönüşümleri ,yapısal analiz ve şekil eşleştirme vb. fonksiyonlarını içerir.
Ml: Bayes ,SVM,YSA ve benzeri yapay öğrenme algoritmalarından oluşur.
Kaynak:
►software.intel
►opencv.org
Highgui: Ekranda pencereler açmak üzerinde görüntüleri göstermek gerektiğinde güncellemek; klavyeden ve fareden kullanıcı girişlerini almak gibi işleri yapan fonksiyonlardan oluşur.
İmgcodes: Görüntü yazma okuma işlemleri yapar.
Videoio: Video ya da kameradan görüntü yazma v eokuma işlemlerini yapar.
Core: Genel veri yapıları, görüntü üzerine çizim yapma , XML ve YAML yazma okuma işlevlerini barındrırır.
İmgproc: Görüntü işleme ile ilgili genel fonksiyonları barındırır. Filtreleme, geometrik ve renk uzay dönüşümleri ,yapısal analiz ve şekil eşleştirme vb. fonksiyonlarını içerir.
Ml: Bayes ,SVM,YSA ve benzeri yapay öğrenme algoritmalarından oluşur.
Kaynak:
►software.intel
►opencv.org
YORUMLAR
Aktif etkinlik bulunmamaktadır.
- Dünyanın En Görkemli 10 Güneş Tarlası
- Dünyanın En Büyük 10 Makinesi
- 2020’nin En İyi 10 Kişisel Robotu
- Programlamaya Erken Yaşta Başlayan 7 Ünlü Bilgisayar Programcısı
- Üretimin Geleceğinde Etkili Olacak 10 Beceri
- Olağan Üstü Tasarıma Sahip 5 Köprü
- Dünyanın En İyi Bilim ve Teknoloji Müzeleri
- En İyi 5 Tıbbi Robot
- Dünyanın En Zengin 10 Mühendisi
- Üretim için 6 Fabrikasyon İşlemi
- DrivePro Yaşam Döngüsü Hizmetleri
- Batarya Testinin Temelleri
- Enerji Yönetiminde Ölçümün Rolü: Verimliliğe Giden Yol
- HVAC Sistemlerinde Kullanılan EC Fan, Sürücü ve EC+ Fan Teknolojisi
- Su İşleme, Dağıtım ve Atık Su Yönetim Tesislerinde Sürücü Kullanımı
- Röle ve Trafo Merkezi Testlerinin Temelleri | Webinar
- Chint Elektrik Temel DIN Ray Ürünleri Tanıtımı
- Sigma Termik Manyetik Şalterler ile Elektrik Devrelerinde Koruma
- Elektrik Panoları ve Üretim Teknikleri
- Teknik Servis | Megger Türkiye
ANKET