Menü Kapat

OpenCV nedir? Detaylı Kılavuz (2023)

OpenCV nedir? OpenCV, Görüntü İşleme Endüstrisinde neden bu kadar popüler? Bugün OpenCV, görüntü işleme için fiili standart araçtır. Bu nedenle, endüstrilerdeki dünyanın önde gelen şirketleri, bilgisayarlı görme sistemlerini geliştirmek için OpenCV kullanıyor. Bu yazıda, OpenCV’ye okunması kolay bir giriş sağlayacağız.

Bu yazıda aşağıdaki konuları ele alacağız:

  • OpenCV’ye Giriş
  • OpenCV Nedir?
  • Bilgisayarla Görme Nedir? OpenCV ile yazılım geliştirme
  • OpenCV’yi kodlamadan kullanın
  • OpenCV’nin görüş yetenekleri
  • OpenCV’nin ticari kullanım örnekleri
opencv
opencv

OpenCV nedir?

Başlangıçta Intel tarafından geliştirilen OpenCV (Open Source Computer Vision), gerçek zamanlı görüntü işleme için ücretsiz bir platformlar arası bilgisayarla görme kitaplığıdır. OpenCV yazılımı, Görüntü İşleme ile ilgili her şey için fiili bir standart araç haline geldi. 2023’te OpenCV, her hafta 29.000’den fazla indirme ile hala oldukça popüler.

OpenCV, C ve C++ ile yazılmıştır. GNU/Linux, OS X, Windows, Android, iOS, vb. gibi en popüler işletim sistemleri altında çalışır. Apache 2 lisansı altında ücretsiz olarak kullanılabilir . Python, Ruby, Matlab ve diğer diller için arayüzlerde aktif geliştirme var. OpenCV kitaplığı, gerçek zamanlı bilgisayar görüşü için 2500’den fazla algoritma, kapsamlı belgeler ve örnek kod içerir.

2000 yılında BSD lisansı altında ve daha sonra Apache 2 lisansı altında ilk piyasaya sürülmesinden bu yana, OpenCV çok sayıda uygulama, ürün ve araştırma projesinde kullanılmıştır. Bu uygulamalar arasında kamera görüntülerini uydu veya web haritalarında birleştirme, görüntü tarama hizalama, tıbbi görüntü parazit azaltma, nesne analizi, güvenlik, gözetleme ve izinsiz giriş tespit sistemleri, otomatik izleme ve güvenlik sistemleri, yapay zeka denetimi , kamera kalibrasyonu, savunma ve askeri üretim yer alır. uygulamalar ve insansız hava, kara ve su altı araçları.

Ek bilgi: OpenCV, ses spektrogram görüntülerine görüntü tanıma tekniklerinin uygulandığı ses ve müzik tanımada bile kullanılmıştır.

Yüz algılama için C++ nesne dedektörü demo kodu ile OpenCV
Yüz algılama için C++ nesne dedektörü demo kodu ile OpenCV

OpenCV ne için kullanılır?

OpenCV, bilgi işlem açısından yoğun vizyon görevlerinin maksimum verimliliği ve performansı için oluşturuldu. Bu nedenle, AI vizyonunun gerçek zamanlı uygulamalarına güçlü bir şekilde odaklanır. Yazılım, optimize edilmiş C dilinde yazılmıştır ve çok çekirdekli işlemcilerden (çok iş parçacıklı) faydalanabilir.

OpenCV’nin amacı, görmedeki birçok alana yayılan 500’den fazla işlev sağlayarak insanların hızlı bir şekilde karmaşık görüş uygulamaları oluşturmasına yardımcı olan, kullanımı kolay bir bilgisayar görme altyapısı sağlamaktır. OpenCV genellikle fabrika ürün denetimi, tıbbi görüntüleme, güvenlik analizi, insan-makine arayüzü, kamera kalibrasyonu, stereo görüş (3D görüş) ve robotik görüşte kullanılır.

Kapsamlı görüntü işleme yetenekleri, video akışı işlemeyi, görüntü birleştirmeyi (birden çok kamerayı birleştirerek), kamera kalibrasyonunu ve çeşitli görüntü ön işleme görevlerini destekler. Bilgisayarla görmede makine öğrenimi esas olduğundan, OpenCV, istatistiksel örüntü tanıma ve kümelemeye odaklanan eksiksiz, genel amaçlı bir ML Kitaplığı içerir.

2011’den beri OpenCV, NVIDIA CUDA ve Grafik İşleme Birimi (GPU) donanım hızlandırma ve Açık Hesaplama Dili (OpenCL) için işlevsellik sağlar. OpenCV GPU modülü, verilerin CPU ve GPU belleği arasında nasıl taşındığına ilişkin açık kontrol sağlar.

OpenCV ve derin öğrenme modelleri kullanılarak oluşturulan bilgisayarla görme uygulamaları
OpenCV ve derin öğrenme modelleri kullanılarak oluşturulan bilgisayarla görme uygulamaları

OpenCV'yi kim kullanır?

OpenCV, Google, Toyota, IBM, Microsoft, SONY, Siemens ve Facebook gibi büyük şirketler ve devlet kurumları tarafından kullanılmaktadır. Ayrıca, tanınmış bilgisayarla görme girişimleri, viso.ai dahil olmak üzere güçlü bilgisayarla görme ürünleri ve yapay zeka çözümleri oluşturmak için OpenCV’yi kullanır . Stanford, MIT, INRIA, Cambridge ve CMU gibi birçok araştırma merkezi OpenCV kullanır.

Bilgisayar görüşünün kullanım durumları çok geniştir. Çoğu, güvenlik ve video gözetimi veya sürücüsüz arabalardaki oldukça popüler kullanım durumlarının farkında olsa da , endüstriyel üretim, restoranlar veya perakende analitiği gibi belirli sektörlerdeki kullanım durumlarını daha az kişi görebilir.

Son yıllarda bilgisayarla görü alanındaki hızlı gelişmeler, farklı sektörlerdeki şirketlerin çok özel sorunları çözen (ürün sorunlarını algılama, nesneleri sayma, davranışı analiz etme vb.) amaca yönelik bilgisayarlı görü uygulamaları geliştirmesini mümkün kıldı.

OpenCV'yi ticari projeler için kullanabilir miyim?

Evet. OpenCV için açık kaynak lisansı, geliştiricilerin OpenCV’nin tamamını veya bir kısmını kullanarak ticari ürünler oluşturabilmesi için seçilmiştir. Bu nedenle, şirketlerin ürünlerini açık kaynaklı hale getirme veya iyileştirmeleri kamu malına döndürme (copyleft) yükümlülüğü yoktur, ancak çoğu bunu yapar ve büyük topluluğa katkıda bulunur.

OpenCV'yi kim geliştirdi ve Neden?

OpenCV başlangıçta, yoğun CPU kullanan uygulamaları geliştirmek için bir Intel Araştırma girişiminin parçası olarak oluşturuldu. Intel için çalışan yazarlardan biri, MIT Media Lab gibi bazı üst düzey üniversite gruplarının, geliştirme çalışmalarını hızlandırmak için iyi geliştirilmiş ve dahili olarak açık bilgisayar görme altyapıları kullandığını fark etti. Kod, öğrenciler arasında paylaşıldı ve temel işlevleri sıfırdan yeniden keşfetmeden özel görüntü uygulamalarının geliştirilmesinde önemli bir avantaj sağladı.

Üzerine inşa edilecek ortak bir altyapı sağlayarak ticari bilgisayar vizyonu gelişimini hızlandırmak, Intel’deki OpenCV geliştirici ekiplerinin her zaman birincil hedefi olmuştur. Taşınabilir, performansı optimize edilmiş kodu ücretsiz olarak kullanıma sunarak vizyon tabanlı ticari uygulamaları geliştirmek, Intel’in temel işi olan hızlı işlemcilere olan ihtiyacı artıracaktır.

Yükseltmeleri daha hızlı işlemcilere yönlendirmek Intel için ekstra yazılım satmaktan daha fazla gelir sağlayacaktır. Ücretsiz ve açık kodun bir yazılım şirketinden çok bir donanım satıcısından gelmesinin nedeni muhtemelen budur.

OpenCV birçok kullanıcı katkısı alıyor ve merkezi geliştirme büyük ölçüde Intel’in dışına taşındı. Daha sonra Willow Garage ve Intel’in 2016’da satın aldığı bilgisayarla görme girişimi Itseez tarafından desteklendi.

OpenCV'yi İndirme ve Yükleme

2012’den beri OpenCV desteği, bir geliştirici sitesine ve bir kullanıcı web sitesine sahip olan OpenCV.org adlı kar amacı gütmeyen bir kuruluş tarafından devralındı. Resmi sürümleri SourceForge’dan alabilir veya en son kaynakları OpenCV GitHub’dan alabilirsiniz.

Windows’ta OpenCV nasıl kurulur: OpenCV’yi kurmak için yürütülebilir kurulumu indirin ve çalıştırın. OpenCV’yi yükleyecek ve DirectShow filtrelerini kaydedecektir. Sonrasında OpenCV kullanılabilir.

Test için OpenCV Demosu

Seçilen görüntü işleme ve görüntü dönüştürme işlevlerini test edebileceğiniz ve OpenCV’yi kitaplıkları kurmadan kendi görüntülerinizle test edebileceğiniz hızlı bir OpenCV demo uygulamasına giden bu bağlantıya göz atın.

Örnek bir OpenCV yazılım demosu içeren ücretsiz uygulamayı burada bulun.

Görüntü dönüştürme için OpenCV Demo Uygulaması
Görüntü dönüştürme için OpenCV Demo Uygulaması

Kodsuz ve az kodlu OpenCV

Son zamanlarda, kodsuz ve düşük kodlu geliştirme, işletmeler ve kuruluşlar için çözümleri çok daha hızlı ve daha verimli bir şekilde sunmanın ve sürdürmenin yeni bir yolu haline geldi. Bilgisayarla görme geliştirme genellikle çok karmaşıktır ve çok sayıda yineleme döngüsü gerektirir. Bu nedenle, bilgisayar görüşünün sağlanması, görsel geliştirmeden ve kodsuz teknolojinin otomatik dağıtım altyapısından büyük ölçüde yararlanır.

Bilgisayarlı görü platformu Viso Suite, OpenCV’nin yeteneklerini sıfırdan kod yazmaya gerek kalmadan bilgisayarlı görü uygulamalarını hızla oluşturmak için kullanılabilen modüler yapı taşları olarak sağlar. Bu, ekiplerin OpenCV’yi daha hızlı kullanmasına olanak tanır ve kameralar, uç bilgisayarlar ve makine öğrenimi modelleri gibi farklı donanımlarla entegrasyonu kolaylaştırır.

No-code, tecrübeli görüntü işleme mühendisleri ve iş ekipleri arasındaki boşluğu doldurmaya yardımcı olur ve çözümleri değişen iş gereksinimlerine ve gelişen teknolojiye uyarlamayı mümkün kılar. OpenCV’yi kodlama olmadan kullanma yeteneği, bilgisayarla görmenin tüm ekonomik potansiyelinden yararlanır ve bilgisayarla görmenin risk ve maliyetlerini düşürür.

Görüntü İşleme Uygulaması

Bilgisayarla Görme Nedir?

Bilgisayar görüşü, bilgisayarların belirli eylemler gerçekleştirme amacıyla dijital görüntülerden ve videolardan bilgi çıkarmasına izin veren Yapay Zeka teknolojisinin birincil alanıdır. Yapay Zekanın (AI) farklı tanımları olsa da, genel olarak tüm kavramlar insan zekasını makinelerle çoğaltmaya odaklanır.

Doluluk ve bekleme sürelerini tespit etmek için Restoranlarda Bilgisayarlı Görü
Doluluk ve bekleme sürelerini tespit etmek için Restoranlarda Bilgisayarlı Görü
Bilgisayar görüşü nasıl çalışır?

Yapay görme teknolojileri, insan görüşünü taklit etmeyi amaçlar; dijital görüntülerin veya videoların içindeki nesneleri ve sahneleri anlamak ve tanımak amacıyla yorumlanmasını içerir.

Bu, insan görsel sisteminin işleyişini taklit eden bir yazılım ve donanım kombinasyonu ile elde edilir. Yapay görmede kullanılan bazı yaygın yöntemler, örüntü tanıma , özellik çıkarma ve görüntü işlemedir.

AI vizyonu veya Computer Vision, bilgisayarların görsel bilgileri görmesini ve anlamasını sağlamak için bir dizi görüntü işleme tekniği içerir. Bilgisayarlar, gelişmiş bilgi işlem görevlerini yerine getiren ve optik sensörler veya kameralar (“gözler”) tarafından sağlanan görüntüleri veya videoları analiz etmek için karmaşık algoritmalar uygulayan “beyinler” olarak hareket eder. Neredeyse herhangi bir kameranın herhangi bir görüntüsü , yapay zeka görüş algoritmalarını uygulamak için kullanılabilir.

Üretimde Bilgisayarla Görüşü

Bilgisayarların yapay zeka ile görmesini ve görsel sensörler kullanarak fiziksel dünyayı algılamasını sağlama yeteneği, operasyonları etkin bir şekilde dijitalleştirmek ve otomatikleştirmek için ayrılmaz bir teknoloji haline geliyor. Son yıllarda, makine öğrenimi teknolojileri, özellikle derin öğrenme, endüstriler genelinde bilgisayarla görme uygulamalarında büyük başarı göstermiştir.

Çoğu uygulama , bilgisayar görüşünü her yerde ve ölçekte sunmak ve dağıtmak için IoT ( AIoT ), Bulut Bilişim ve Uç Yapay Zeka ile Yapay Zekadan yararlanır. Yapay zeka görüş teknolojisinden yararlanan bilgisayarlar, yüz tanıma gerçekleştirebilir , el yazısını okuyabilir, nesneleri tanıyabilir, insan hareketlerini sınıflandırabilir, otomatik inceleme gerçekleştirebilir veya görüntü tanıma ile kritik durumları otomatik olarak algılayabilir.

OpenCV ile Bilgisayarla Görü Geliştirme

Görüntü İşleme önemsiz değildir ve makul bir maliyetle iyi performans elde etmek , ölçeklenebilir bilgisayar görüşünün temelidir. Kameralarla çalışırken, görüntü verileri fiziksel dünyadaki varyasyonlardan (aydınlatma, yansımalar, hareket, lens kusurları (bozulma, görüş alanı), sensör veya mekanik kurulumdan (açı, konum) kaynaklanan gürültü ve bozulmalar nedeniyle sıklıkla bozulur.

Bu yıldırıcı zorlukların üstesinden gelmek için geliştiricilerin, veri akışlarının yolunu modelleyen gelişmiş bilgisayarlı görü işlem hatları oluşturmaları gerekir. Bu uygulama mantığı, çerçeveleri elde etmekten ön işlemeye (gürültü giderme, filtreleme, düzeltme, vb.) ve bunları bir veya birden çok görüntü algoritmasına aktarmaya kadar farklı görevleri birleştirir. OpenCV, geliştiricilerin bilgisayarla görme sorunlarını çözmeleri için standart bir araç seti sağlar.

Bazı durumlarda, yapay zeka vizyonundaki daha karmaşık sorunları çözmek için kitaplıktaki üst düzey işlevler yeterli olacaktır. Bununla birlikte, geleneksel kod yazmak, iş gereksinimleri veya yönetmelikler değiştikçe hızla karmaşık ve anlaşılması, sürdürülmesi veya güncellenmesi zor hale gelebilir.

Geliştirmeyi hızlandırmak için Viso Suite platformu, OpenCV’nin yeteneklerinden yararlanmak için kodsuz teknoloji kullanır. Bu, geliştiricilerin görsel olarak modüler yapı taşları ile bilgisayar görme ardışık düzenlerini oluşturmalarına olanak tanır. Kodsuz düzenleyici ve otomatik yapay zeka model yönetimi, işbirliğini kolaylaştırır ve bilgisayarla görme işlem hatlarının oluşturulmasını ve sürdürülmesini çok daha hızlı hale getirir. OpenCV’yi kodsuz kullanmak, hem vizyon uzmanlarına hem de temel bilgilere sahip yeni eğitimli geliştiricilere fayda sağlar.

OpenCV'nin görüş yetenekleri

OpenCV muhtemelen görüntü tanıma, 2B veya 3B analizden hareket izlemeye, yüz tanımaya ve daha fazlasına kadar geniş bir bilgisayarla görme görevlerinde kullanılan en çok yönlü bilgisayarla görme aracıdır. Aşağıda, en belirgin yetenekleri vurgulayacağız: 

1. Gerçek zamanlı nesne algılama

Nesne algılama teknolojisi, görüntü tanımayı uygulamak ve video verilerindeki veya görüntülerdeki arabalar, insanlar, hayvanlar ve endüstriyel üretimdeki belirli parçalar veya ekipmanlar gibi belirli nesneleri bulmak için kullanılır.

OpenCV ile ML Tabanlı Çoklu Nesne Algılama
OpenCV ile ML Tabanlı Çoklu Nesne Algılama
2. Görüntü segmentasyonu

Görüntü bölümleme, bir görüntüyü farklı bölümlere ayırmak için görüntü işleme algoritmalarını uygular. Segmentasyon genellikle görüntüyü basitleştirmek, değiştirmek veya geliştirmek için uygulanır ve genellikle sonraki bilgisayarla görme görevleriyle birleştirilir. Bir örnek, yolu belirlemek için görüntü bölümlemenin kullanıldığı otonom sürüştür.

3. Hareket ve mimik tanıma

İnsan pozu ve jest tanıma, video analizi yoluyla insan hareketlerini yorumlamak ve anlamak için kullanılır. Vücut, el veya yüz hareketleri tanınabilir ve önceden tanımlanmış bir kategori atamak için kategorize edilebilir. Hareket analizi, vücut hareketlerini referans anahtar noktalarla (eklemler, uzuvlar) analiz etmek için genellikle poz tahmininin bir parçasıdır. Nesne pozunun hesaplanması, nesnenin 3 boyutlu bir alanda nasıl konumlandığını, örneğin nasıl döndürüldüğünü anlamak için bir yöntem sağlar.

Kilit noktaları kullanarak poz tahmini ile hareket analizi
Kilit noktaları kullanarak poz tahmini ile hareket analizi
4. Yüz Tanıma

Otomatik yüz tanıma, bir insan yüzünü algılayarak ve onu algılanan yüz özelliklerine dayalı bir veri tabanıyla eşleştirerek insanları tanımlamak için kullanılır. OpenCV’nin FaceRecognizer’ı, gerçek uygulamalarda kullanmak için bir dizi popüler yüz tanıma algoritması sağlar.

Görüntü İşleme ile yüz tanıma
Görüntü İşleme ile yüz tanıma
5. Artırılmış Gerçeklik

Artırılmış gerçeklik (AR), gerçek dünya ile sanal dünya arasında gerçek zamanlı etkileşime izin verir. Bu nedenle, artırılmış gerçeklik, çevremizdeki fiziksel dünyayı bilgisayar tarafından üretilen algısal bilgilerle zenginleştirmeyi amaçlar.

OpenCV ile oluşturulmuş uygulamalar

Çoğu insan, bilgisayar görüşünün güvenlik ve gözetimde yaygın olarak popüler olduğunun farkındadır. Bazı insanlar güvenlik izleme, insansız uçan araçlar (dronlar) veya biyomedikal analizlerdeki niş uygulamaların farkındadır. Ancak çok azı endüstriyel imalatta yapay görmenin ne kadar yaygın hale geldiğinin farkındadır – seri üretilen neredeyse her şey bir noktada bilgisayar görüşü kullanılarak otomatik olarak denetlenmektedir.

OpenCV ile oluşturulmuş kullanım örnekleri

OpenCV bir geliştirme kiti olduğundan, OpenCV ile oluşturabileceğiniz sayısız kullanım durumu vardır:

  • Sayım ve nesne takibi için nesnelerin tanınması
  • İnsan teşhisini desteklemek için tıbbi görüntülerin analizi (Tıbbi Görüntüleme)
  • YZ vizyonu ile TV görüntülerindeki reklamların tanınması veya logo tanıma
  • Spor ve kondisyonda oyuncu takibi , sahne tanıma ve yürütme kalitesi analizi
  • Havaalanları gibi halka açık yerlerdeki insan sayısını sayma (Kalabalık analizi)
  • Akıllı, görüntü tabanlı arayüzler için robotik otomasyon (Akıllı Ekranlar)
  • Her zaman açık bilgisayar görüşü ile otomatik inceleme ve video analizi (örneğin, havacılıkta havaalanlarında).
  • Dijital platformlarda, web tabanlı uygulamalarda görsel arama
  • Üretim süreçlerinde kusurları veya hataları tespit etme (Akıllı Fabrika)
  • Karayolu üzerindeki araç sayısını sayma (Trafik Analizi)
  • Fiziksel şiddeti, saldırıları ve trafik ihlallerini tespit etmek için CCTV kamera uygulamaları (Akıllı Şehir) 

Nereden başlamalı?

Bilgisayarla Görme, kısmen hem daha ucuz hem de daha taşınabilir kameralar, azalan işleme maliyetleri ve derin öğrenmeye dayalı hızla gelişen görme algoritmaları nedeniyle hızla büyüyen bir alandır. Gerçek zamanlı vizyona odaklanan OpenCV, profesyonellerin ve araştırmacıların projeleri konseptten üretime verimli bir şekilde uygulamalarına yardımcı olur.

tr_TRTurkish