opencv etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
opencv etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

12 Ağustos 2021 Perşembe

OpenCV: SVM ve HOG ile nesne tespiti

Bu yazı kapsamında Python ile OPENCV kütüphanesini kullanarak basit bir nesne tespiti/sınıflama uygulamasını nasıl gerçekleştirebileceğinizi anlatacağım. Örneğimizde OpenCV ML (machine learning) modülü içerisindeki SVM(Support Vector Machine) ve Object Detection modülü içerisindeki HOG yöntemlerini kullanacağız.

23 Mart 2021 Salı

UAV Images Dataset (PESMOD) for Moving Object Detection from Moving Cameras

I have prepared a high resolution aerial images dataset for motion detection. This dataset (named PESMOD) consists of challenging images containing small targets compared to other publicly available datasets. You can view the preprint paper comparing two methods in the literature and proposed method which is relatively simple.

https://lnkd.in/dFVyP-E
To download the dataset and compare your own method
https://lnkd.in/d3ASwaC

6 Kasım 2020 Cuma

C++ ile OpenCV CUDA metodlarının kullanımı

Python kullanarak OpenCV ile Görüntü işleme üzerine yayınladığım udemy kurslarına ek olarak, C++ ile OpenCV+CUDA destekli metodları nasıl kullanabileceğimize dair bir başka video serisi daha hazırladım.

15 Ocak 2019 Salı

Docker ile Python ve OpenCV uygulaması - Giriş

Docker ile sanal ortamlar oluşturup, uygulamaları bu sanal ortam üzerinde çalıştırıp "benim makinemde çalışıyordu sende neden çalışmadı!" problemini ortadan kaldırabiliriz. Detayları için benim de istifade ettiğim şu linkteki yazıya göz atmanızı tavsiye ederim. 
Bu yazı kapsamında sizlere (python+opencv) uygulamasını, bilgisayarımıza ilgili kütüphanelerin kurulumu ile uğraşmadan nasıl docker üzerinde çalıştırabileceğimizi açıklamaya çalışacağım. Bu basit örnek üzerinden, docker ile ilgili linkini verdiğim yazıdaki bazı noktaları da açıklamış olacağım.

10 Eylül 2018 Pazartesi

C++ - OpenCV Nesne Takip Modülleri

Bu yazı kapsamında sizlere OpenCV içerisindeki nesne takip modüllerinden bahsedeceğim. 

28 Ocak 2018 Pazar

Learn Computer Vision with OpenCV and Python

I have prepared a course to teach computer vision & image processing from scratch. In this course, you will find special examples beside the fundamental topics. I preferred to use OpenCV which is an open source computer vision library used and supported by many people!. And I have used OpenCV with Python, because Python allows us to focus on the problem easily without spending time for programming syntax/complex codes.

9 Ağustos 2017 Çarşamba

Python - OpenCV Hit The Ball - Top sektirmece :)


A mini "hit the ball" game was implemented by using OpenCV and numpy libraries of Python. If you want to move your head and do a few tricks with the ball :) while sitting at your home or office, you can download the .py files (codes) at the end of this page and run it.

23 Ocak 2017 Pazartesi

Python - OPENCV Yaya Tespiti (Görüntü İşleme)


Yaya tanıma (pedestrian detection) video takip, kişi davranış analizi, akıllı arabalar için sürücü destek sistemi gibi farklı uygulamalarda kullanılabilir. Yaya tespiti probleminde makine öğrenmesi teknikleri yaygın olarak kullanılmaktadır, bu tekniklerde eğitilmiş sınıflandırıcılar ile görüntü içerisindeki yaya tespit edilmeye çalışılır. Sınıflama yapılırken yani bizim örneğimizde görüntüdeki insanları bulurken, uygun bir sınıflandırıcı bulmak kadar bulunacak nesneye ait olan seçici/ayırt edici bir özelliğin (feature) çıkarılabilir olması da çok önemlidir. Yayaların tanınması probleminde HOG (Histograms of Oriented Gradient) ile özellik çıkarılması yönteminin başarılı sonuçlar verdiği gösterilmiştir.

                 

6 Aralık 2016 Salı

Blob Detection Using OPENCV (C++)


GitHub (https://github.com/mribrahim/Blob-Detection) to download the codes and  contribute the project

A Blob means a group of connected pixels in an image that share near intensity values. In the image below, the goal is to detect the blobs and identify some properties belong to that blobs, as if regionprobs in Python (http://scikit-image.org/docs/dev/api/skimage.measure.html#skimage.measure.regionprops).

Measure Properties of Regions 

center:                point2f -> Center coordinates of region 
area:                   float -> Number of pixels of region. 
perimeter:          float -> Perimeter of region. 
eccentricity:       float -> Between 1 and 0. (1 for circle) 
solidity:              float -> Between 1 and 0. ( Area / ConvexHullArea ) 
compactness:     float -> Between 1 and 0. ( Area / BoundingRect Area ) -- measure of how close to a rectangle 
mean_intensity:  Vec3b -> mean intensity values of three channel(blue,green,red) of the region 
bounding_box:   Rect -> Bounding box of the region 

6 Kasım 2016 Pazar

HSV renk uzayı, Renk filtreleme



RGB renk uzayı renkleri farklı tonlardaki üç ana rengin (kırmızı,yeşil,mavi) karışımı ile tanımlar.
HSV renk uzayı ise Hue, Saturation ve Value terimleri ile rengi tanımlar. RGB de renklerin karışımı kullanılmasına karşın HSV de renk, doygunluk ve parlaklık değerleri kullanılır. Doygunluk rengin canlılığını belirlerken parlaklık rengin aydınlığını ifade eder. HSV uzayında siyah renk için renk ve doygunluk değerleri 0 ile 255 arasında herhangi bir alabilir iken parlaklık değeri sıfırdır. Beyaz renkte ise ise parlaklık değeri 255'dir.




Buna göre herhangi bir bilgisayarlı görme/görüntü işleme uygulamasında belirli renkteki bir nesneyi ayırt etmek istediğimizde HSV renk uzayını kullanmak daha elverişlidir. Çünkü RGB nin aksine sadece hue değerini kullanarak eşik değer uygulama suretiyle renkleri daha net ayırt edebiliriz.

Örneğin; Aşağıda soldaki Muslera fotoğrafından kırmızı bölgeleri ayırt etmek istediğimizde; HSV renk uzayını kullanınca sağ üstteki sonucu, RGB renk uzayını kullanınca sağ alttaki sonucu elde ediyoruz. İlgili Python kodlarına yazının devamında ulaşabilirsiniz.


27 Ekim 2016 Perşembe

Python - Opencv kamera kalibrasyonu



Kamera kalibrasyonu 3 boyutlu bilgisayarlı görme uygulamalarında son derece önemlidir. Malumunuz kamera ile elde edilen görüntüler 2 boyutludur ve ayrıca kullanılan lensten kaynaklanan bozulmalar da vardır. Örneğin kullanılan lense göre görüntünün merkezindeki pikseller ile kenarlardaki piksellerin yer değiştirme oranları(nasıl tarif edeceğimi tam bulamadım ama literatürde bknz. lens distortion) farklı olabilir (Şekil 1). Kameranın üretiminden kaynaklanan bu bozukluğu gidermek için; kameranın iç parametreleri diye adlandırılan lens parametrelerini tahmin edip görüntüye düzeltme işlemi uygulamak gerekir. Bunun için gerçek büyüklüğü bilinen bir nesne referans olarak kullanılmalıdır. Genelde satranç tahtası (chessboard) bu amaçla kullanılır ve görüntü işlemede yaygın kullanılan OPENCV içerisinde de bu amaçla geliştirilmiş fonksiyonlar mevcuttur.


Şekil 1


30 Ağustos 2016 Salı

Python - OPENCV ile kişi sayma


Bu yazı kapsamında Python ile OPENCV kütüphanesini kullanarak tavana yerleştirilmiş bir kameradan elde edilen görüntüler ile hareket eden nesneleri (bizim örneğimizde kişileri) saymaya çalıştık. Bunun için kullanacağımız algoritmanın temel adımlarını şu şekilde sıralayabiliriz;


1- Background Subtraction : Sabit bir arka plandan her gelen yeni görüntüyü çıkararak görüntüde (videoda) değişen kısımların yani hareketli nesnelerin belirlenmesi

2- Object Tracking : Belirlenen bu ön plandaki nesnelerin takip edilmesi

3- People Counting : Takip edilen bu nesnelerin (hareketli kişilerin) belirli noktayı geçtiklerinde sayılması ve geçiş yönünün belirtilmesi

( Kullandığımız videoyu şuradan indirebilirsiniz.. )

Background Subtraction için OPENCV kütüphanesi içerisindeki fonksiyonlardan arka planının modellenmesinde Gaussian Mixture Model'in kullanıldığı cv2.BackgroundSubtractorMOG() fonksiyonunu kullanıyoruz.

Bunun için ilk olarak masaüstünde kayıtlı olan çekilen alanın boş bir görüntüsünü yüklüyoruz. Daha sonra ise videoyu yükleyip her bir gelen frame 'e backgroundsubtraction işlemini uyguluyoruz.