Skip to content

TriTetra/openCV_Examples

Repository files navigation

OpenCV Nedir?

OpenCV veya Open Source Computer Vision, sahip olduğumuz resim ve videolarla çalışırken büyük katkıda destek sağlayacak bir kütüphanedir. Görüntü işleme, bilgisayar görüşü ve makine öğrenimi için geniş bir işlevsellik yelpazesi sağlayan açık kaynaklı kodlardır. OpenCV ilk olarak 1999 da intel tarafından kullanıma açıldı.

Bilgisayarlı görünün amacı dışarıdaki nesneleri anlamaktır, bilgisayar anlayabilmek için karmaşık algoritma ve kodları kullanır.

Bilgisayarlı görünün artık hayatımızın her noktasına girmiş bulunmaktadır örnek olarak yüz algılama teknolojisi, kişinin yüzünü algılar ve bu yüzleri sınıflandırmaya çalışır.

Kullanılan diğer alanlardan biri de gözetim alanındadır, kullanılış amacı güvenlik kısmı için daha çok kullanılır kişinin hareketlerini incelenir ve olası tahminleri bilgisayar ortamında tahmin edilir.

OpenCV (Open Source Computer Vision) açık kaynaklı bir kod kütüphanesidir ve herkese açık olarak kullanılabilmektedir. Algılama ve tanıma olarak ikiye ayıralım bu ikisi birbirine karıştırılan terimler, algılama dışarıdan veya resimdeki kişinin ne olduğunu anlamaktır algılamak ise resimde gördüğü bu kişinin kim olduğunu anlama kısmıdır.

C++ dili kullanılarak geliştirilmiş bir kütüphanedir ama istenilen diller ile de kullanılabilir ama son yıllarda yoğun olarak kullanılmaya başlayan python ile devam ediyorum.


Computer Vision Terms

Bilgisayarlı görüdeki temel olarak kullanılan kavramlar;

    • Cihazın dışarıda gördüğü şeylerin gördüğü nesnelerin ne olduğunu anlamaya çalışması yani aldığı görsel verileri işlemesidir.
    • Görüntü işleme bir matematiksel işlemdir, bilgisayarda görüntüler bir matris olarak algılanır nxn boyutunda bir matris şeklinde algılanır. Resmin derinliği varsa daha da farklı matematiksel yöntemlere gidilir.

    • Figure:2 Figure 2: The matrix corresponding to Felix The Cat

      Figure:4 Figure 4: Matrix transformations

    • Yukarıda gördüğünüz resimdeki kedi felix 35x35 matris (pixel) kullanılarak ortaya çıkarılmıştır, ekrandaki siyah noktalar 1’i beyaz noktalar da 0’ı ifade ederler.
    • Figure 4’te saat yönünde x derece döndürdüğümüzde bize basit bir eylem gibi gelsede bilgisayarda bir matrisi döndürmemiz gerekir, bu işlemi yapmak içinde matrisin transpozu alınır veya gerekli yöntemler ile istenilen şekle gelene kadar işlem devam eder.
    • Görüntüsünü aldığımız bir nesnenin ne olduğunu anlamaya veya sınıflandırmaya çalışılacak olan kısımdır.

    • Figure:2 Classification: Cat&Dog

    • Aldığımız görüntüler de Input ile Output kısımlarının arıasındaki işleme noktası ANN (Artificial Neurol Network) yapay sinir ağları kullanılarak işlem gerçekleştirilir. Arada kalan kısmın diğer adıda hidden layer olarakta adlandırabiliriz.
    • Herşey den önce ANN kısmını eğitmemiz gerekmektedir ve bu eğitimi yaparken sınırları çizmeliyiz, yani verilen resimlerin önceden ne olduğunu öğretmeliyiz, bunun için bir veri kümesi oluşturuyoruz öğrenmseini istediğimiz veriler ile beraber.

    • Figure:4 Top 100 Dogs

    • Örnek olarak yukarıdaki gibi köpek türleri ve onlara air fotoğrafları ANN e vererek eğitmemiz gereklidir bunun içinde ciddi bir veri kümesine ihtiyaç duyarız.

    • Figure:4 image classification

    • Görüntü sınıflandırma çalışmalarında da görüntüyü tek bir sınıf olarak atamamız olmasıdır, modelimizi eğitme şeklimizde tek bir çıktı üzerine de eğitebiliriz veya modelin bilgisi olan veriler görselde varsa onlarında çıktılarını isteyebiliriz.
    • Yukarıdaki görselde ki sayılar da modelin tahmin oranıdır 1’e ne kadar yakınsa o kadar güvenlirdir (confidence scor).
    • Nesne tanıma ise görseldeki varlığın ne olduğunu algılar ve aynı zamanda o varlığın görselin ne tarafında olduğunu da algılamasıdır. Görüntünün içindeki nesnenin konumunu tahmin etme çalışması.

    • Figure:2 An example image with 3 bounding boxes from the COCO dataset

    • Yukarıda da gördüğünüz gibi görselin içinde 3 adet nesne tanınmış bunu yapabilmesi için önce bir ANN geliştiriyoruz yani bir model bunun içinde bir veri seti oluşturmamız ve bu veiler ile de modelimizi istediğimiz görsel veya hedefe yönelik eğitmiş olammız gerekir. (yolo, rcnn, fasrtcnn)
    • Verilmiş olan görüntünün içindedki pixellerde nesnenin ne kadar yer kapladığı alanı ölçer.

    • Figure:2

    • Belirli derin öğrenme teknikleri ile yapılabilir, basit seviyede görüntü okuma ile yapılması zor olan bir işlemdir.(unet)
    • Modelimiz ile eğitmeye çalıştığımız makineye belirli nesnelerin keypointlerini vererek daha sağlıklı bir veri sonucu elde edilir. Yüz, vücut hatları, kemik yapısı, hayvan türleri ve bir çok dahası gibi.

    • Figure:4 Keypoints annotations along with visualized edges between keypoints. Images are from the COCO dataset.

    • Key point kullanılmasının amaçları haraket takibi özellikle olsun daha çok o alanlarda kullanılır istenilen hareketin merkezi seçildikten sonra o alanın nasıkl bir şekilde haraket ettiğinin takip edilmsei gibi.

    • Figure:4 An example image with five keypoints from the COCO dataset


Computer Vision Applications

  • Biomedical

    • Hastalıkların eğitilmiş modellerce hızlı ve yüksek doğruluk oranı ile hesaplanması veya takip edilmesi olanağı sağlar.

    • Figure:4

    • Yukarıda da görüdğünüz gibi bir röntgende ki kişinin omurgasının duruş bozukluğunu hesaplar ve hangi noktada nasıl bir sıkıntısı olduğunu analiz eder.

    • Figure:4

  • Agriculture

    • Meyvelerin takibi, oldunluk durumunu anlama ve sağlık durumunu takip için de kullanılabilir.

    • Figure:4

  • Manufacturing

    • Bir üretim hattında üretimi tamamlanmış ürünlerin kalite kontrol kısmında da yer alarak daha işlevsel ve hız bakımından da daha hızlı bir sistem kurulabilir.

    • Figure:4

  • Automative

    • Belli seviyelerde geliştirilmiş olan cihazların otomatikleştirilmesi ve bu sayede zaman, sağlık, maliyet ve bunun gibi bir çok alanda tasarruf sağlanmasını sağlamaktır.
    • Örnek olarak arabalarda son yıllarda geliştirilmiş olan oto sürüş gibi ya da oto park sistemleridir.

    • Figure:4

    • Şerit takip sistemleri bunun için arabanın hızını tekerleklerin dönüş yönünü ve bunun gibi bir çok dış etkenlerin hesaplamalarını öğretilmiş olan modeller ile otonom hale getirir.

    • Figure:4

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published