OpenCV

Created with Sketch.
  • Bilgisayarlı görü ve OpenCV’nin ne olduğunu , ne işe yaradığını öğreneceksiniz.
  • Hangi programlama dilini öğrenmeniz gerektiğine karar vereceksiniz.
  • OpenCV ile neler yapabileceğinizi öğreneceksiniz.

1. Giriş

Bilgisayar bilimlerinin en dikkat çeken disiplinlerinden biri olan bilgisayarlı görü (computer vision), Türkiye’de AR-GE çalışmalarının son yıllarda hız kazanmasıyla birlikte gittikçe popülerleşen bir konu haline geldi.

Bilgisayarlı Görü’nün amacı görüntüleri anlamak ve amaçlarımız doğrultusunda yorumlamaktır. Biz insanlar için bu iş oldukça kolaydır, fakat bilgisayarlar için de, aynısını söylemek pek mümkün değildir.

2.Öyleyse, Neden Bilgisayarlı Görü ?

“Peki neden bilgisayarlı görü öğrenmeliyiz ?”

Çünkü o her yerde !

Elektroniğin keşfi ve elektronik cihazların geliştirilmesiyle birlikte veri depolama kapasitemiz olağanüstü biçimde arttı. Bu sayede dijital ortamlarda milyonlarca hatta milyarca resim ve video depoladığımızı söyleyebiliriz. Yani günümüzde hiç istemediğimiz kadar resim/videoya sahibiz. Bunları bir şekilde analiz etmeli ve sınıflandırmalıyız. Bu nedenle bir yönteme ihtiyacımız var.

Örneğin, birinin resmini çekerken telefonunuzun, çektiğiniz kişinin yüzünü dikdörtgen içine aldığını farketmişsinizdir veya Facebook’ta yüklediğiniz resime etiket vermek istediğinizde Facebook’un bu resimdeki yüzü otomatik olarak algıladığına çokça şahit olmuşsunuzdur.

Facebook burada yüz olduğunu nasıl algılıyor ?

Milyonlarca kullanıcısı olan Facebook’ta, yüz algılamayı sağlayan fonksiyonlar gömülü olarak bulunuyor. Sadece algılamıyor, aynı zamanda sınıflandırıyor da !

Bilgisayarlı Görü’nün diğer bir popüler uygulaması da, gözetimdir. Aslında gözetlenmek kulağa kötü geliyor olabilir ama güvenlik amaçlı kullanımı birçok insanın hayatını kurtarabilir veya mağazada gördüğünüz kötü tasarımlı bir kot pantolona verdiğiniz tepki, üreticiler için yeni ürünlerini çıkarmada yol gösterici olabilir.

Bu liste uzar gider ve bu gidişle, listemiz ilerleyen yıllarda daha uzayacak gibi gözüküyor. Çünkü bilgisayarlı görü ile yapabileceklerinizin tek sınırı sizin hayal gücünüzdür.

Ben de bu yazımda, Bilgisayarlı Görü alanında kullanılan en popüler kütüphanelerden olan OpenCV’yi anlatacağım. Ayrıca OpenCV’ye merak salan; bu kütüphanenin ne olduğunu ve nasıl kullanıldığı öğrenmek isteyenler için bir yol haritası da çizeceğim.

3.OpenCV Nedir ?

Basitçe tanımlamak gerekirse; OpenCV, dijital ortamlardaki görselleri (fotoğraf,video..) kullanarak algılama (detection) ve tanıma (recognition) işlemlerinin kolaylıkla yapılabildiği bir bilgisayarlı görü (computer vision) kütüphanesidir. Açılımı Open Source Computer Vision Library“, yani “Açık Kaynaklı Bilgisayarlı Görü Kütüphanesi“.

OpenCV ilk olarak, Intel’de 1999 yılında Gary Bradsky tarafından geliştirilmeye başlandı ve ilk sürümü 2000 yılında çıktı. O yıllarda daha henüz emekleme aşamasında olan kütüphanemiz, yıllar yılı üzerine katarak ilerledi ve şuanki halini aldı. Günümüzde ise o denli popüler hale geldi ki, görüntü işlemeyle uğraşan birinin yolu mutlaka OpenCV ile yolu kesişir.

OpenCV zamanla öylesine gelişti ki şuan gelinen noktada bu kütüphane ile gerçekten yapabileceklerimizin sınırı yoktur. OpenCV ile basit bir resim kırpma işleminden, bir videodaki yüzlerin kime ait, kişilerinin yaşlarının ve cinsiyetlerinin ne olduğunu bulmaya kadar oldukça geniş bir yelpazede çalışılabilir.

İşte tam da bu noktada akıllara şu soru geliyor:

OpenCV’yi kullanırken herhangi bir ücret ödemem gerekiyor?

Hayır, OpenCV BSD lisansına sahiptir. Yani ücretsiz bir şekilde özgürce kullanabilirsiniz.

OpenCV derin öğrenmede kullanılan birçok framework ile sorunsuz çalışabilmektedir. Bu framework’ler (yazılım iskeleti) şunlardır:

  • Tensorflow
  • Caffe
  • PyTorch

Ayrıca OpenCV yaygın olarak kullanılan birçok işletim sisteminde sorunsuz biçimde çalışmaktadır. Bunlar:

  • Linux,
  • Windows,
  • Android/iOS,
  • macOS

3.1 Hangi Programlama Dilini Öğrenmeliyim ?

Artık OpenCV’nin hakkında epeyce bilgi sahibisiniz ve bu aşamada, bu kütüphaneyi kullanmak için bir programlama dili seçmelisiniz. OpenCV kütüphanesi C++ diliyle geliştirilmiştir ve içerisinde yüzlerce algoritma ve binlerce fonksiyon vardır. OpenCV kütüphanesi; Python, Java, Android SDK ve C++ gibi programlama dilleri ile kullanılabilmektedir.

Bu blog’da biz Python dilini kullanacağız. Dolayısıyla sizinde bunu kullanmanızı öneriyoruz. Python öğrenilmesi oldukça kolay bir dildir. Ayrıca tüm dünyadaki kullanım oranı üssel olarak artmakta ve oldukça gelecek vadeden bir dil haline gelmektedir.

Aşağıdaki görsellerden ilki (soldaki), Python’un kullanım oranınıdaki artışı göstermektedir. Gördüğünüz gibi Python grafiği üssel biçimde artmaktadır. İkinci görselde(sağdaki) ise 2020 tahminini göstermektedir. Bu görselden anlayacağınız üzere Python farkı gittikçe açacak gibi gözüküyor.

Python’un diğer birçok dile göre pek çok avantajı vardır. Bunlardan bazıları,

  • Kolay syntax(sözdizimi) yapısını sahiptir,
  • Kod okunabilirliği yüksektir,
  • AI, Computer Vision ve Deep Learning gibi alanlarda oldukça sık kullanılan bir dildir,
  • Gelecek vadediyor.

Dolayısıyla artık Python öğrenmek için çok fazla nedeniniz var. İnternette bu programlama dilini öğrenmek için çok fazla kaynak var fakat bu bilgi karmaşası içinde nereden başlayacağınızı bilmiyorsanız sizin için hazırladığım ücretsiz Udemy kursuma kaydolabilirsiniz. Tabi ki de, başka kaynaklardan da öğrenebilirsiniz. Bu tamamen sizin tercihiniz.

Eğer hiç Python bilmiyorsanız, buraya tıklayarak Udemy’deki ücretsiz kursuma kaydolup Python’a hızlı bir giriş yapabilirsiniz.

Peki Python’dan farklı bir programlama dili kullanmak istiyorsanız, gorselanaliz.com’dan yararlanamaz mısınız ?

OpenCV algoritmaları kurma hakkında fikirler edinmek için hala bu siteden yararlanabilirsiniz. Algoritmalara bakarsınız ve kendi programlama dilinize tanımlanmış sözdizimi kurallarıyla işlemlerinizi gerçekleştirebilirsiniz.

3.2 OpenCV ile Neler Yapılabilir ?

Daha önce de söylediğim gibi OpenCV’nin temellerini öğrendikten sonra yapabilecekleriniz, tamamen sizin hayal gücünüze bağlı. Ben sadece bazılarından bahsedeceğim:

  • Resim ve video gibi görsel ögeleri okuma ve yazma
  • Bu ögeler üzerinde barındırdığı verilerle oynama ve değiştirme
  • Görsel ögelerde istenen nesneleri saptama (canlı nesneler,şekiller,yazılar vs.)
  • Duyguları saptama
  • El yazısı tanıma/çözümleme
  • Renk, şekil, nesne takibi
  • Hareket takibi
  • Yaş ve cinsiyet analizi
  • Sanal tuştakımı(klavye) oluşurma ve aklıma gelmeyen daha birçoğu…

3.3 Nereden Başlamalıyım ?

Nereden başlayacağına karar verebilmek için hemen aşağıdaki basit testi yanıtlayabilirsin:

0%

Herhangi bir programlama dilini biliyor musun ?

Daha önce Python programlama dili ile ilgilendin mi ?

OpenCV kütüphanesini hiç kullandın mı ?

Yol Haritası
Python

Yapman gereken şey belli acilen Python öğrenmeye başlaman gerekiyor.
OpenCV

Artık OpenCV'ye başlamaman için hiçbir neden yok. Hemen sitedeki kılavuzları okuyarak ve videoları seyrederek işe başlayabilirsin.
Derin Öğrenme

Anlaşılan bu konulara hakimsin artık derin öğrenme yöntemlerine geçmenin vakti gelmiş.

Share your Results:

Yorum yapılmamış

Yorumunuzu ekleyin