2. Agenda
S Structure and Fundamentals of Visual Signals
S Image Structure and Processing
S Video Structure and Processing
S 3D Video Structure and Devices
S 3D Video Processing Fundamentals
S Applications
S Questions
5. Image Structure and
Processing
S Image sampling ,quantization color and Compression
S Point operations
S Segmentation
S Morphological image processing
S Linear image filtering and correlation
S Image transforms
S Eigenfaces
S Multi-resolution image processing
S Noise reduction and restoration
S Feature extraction and recognition tasks
S Image registration
Lena Söderberg isveç 1951 doğumlu model ,
“Playmate of the month” Playboy Magazine kasım 1972
Society of Imaging Science and Technology in 1997 konferans da konuk
BBC news first lady of the internet
Image satır ve sütunlardan oluşan,matris şeklinde bir veri yapısıdır ve her bir field pixel olarak geçiyor.
Pixeller renk değerlerini barındırıyor.
Bu değerler de resmin hangi formatta olduğuna göre veya hangi renk paleti kullanıldığına göre yorumlanıyor. Image okuma işlemi de buna göre yapılıyor.
Çeşitli renk paletleri var ancak en çok bilinen RGB.
RGB 3*8 bit
gray scale 8 bit --- yüz tanıma işleminde rgb görüntüye ihtiyaç yok çünkü bu kadar renk bilgisine ihtiyaç yok.
Binary
Aslında özetle resim içerisinde rakamlar olan bir matris diyebiliriz.
Maske ya da filtreler ile çeşitli hesaplamalar yapılıp yeni resim ortaya çıkarılıyor. Bu filtreler ise uzay domaininde yada frekans domain inde olabilir.
Resim matrisi üzerinde filtre matrisler adım adım gezdirilip çeşitli matematiksel hesaplamalar yapılıp en son çıkan rakam resmin ilgili yerine koyuluyor.
Bu yer algoritma tarafından da belirlenebilir ama genellikle maskenin tam orta pikseline denk gelen pixel üzerine yazılarak işlem yapılır.
Tahtada göster!!!!
Instagram filtreleri de aynı şekilde çalışmaktadır. Bu filtreler resmin ilgili RGB değerlerini değerlerini değiştirerek yeni resmi elde etmemizi sağlıyor.
Bazı patternler ile bir objenin detect edilmesi işlemleri yapılabiliyor.Face detection işlemi yapılırken benzer mantık kullanılıyor. Fotoğrafta kaş göz burun kulak bulabilmek için çeşitli maskeler gezdiriliyor ve işaretlenen yerler üzerinden
Frontal face in ovali tespit edilebiliyor. Bu konu ile ilgili farklı şeyler anlatacağım ilerleyen kısımlarda
Segmentation örnekleri var burada. İlgili resim üzerinden varlıkları çıkarmak üzerine işlemler yapılabiliyor. Örneğin trafiği çekiyoruz bize sadece araçlar lazım o zmn insanları görüntüden çıkaralım çünkü ilgilenmiyoruz
Desen veya örüntü bulabilmek için çeşitli algoritmalar var. Tekrar eden patternleri bulup segmentasyon yapılabilir.
Örneğin siyah beyaz kare parkelerden oluşmuş bir zemin üzerinde birkaç cismin olduğu bir fotoğraf düşünelim. Bize dediler ki bu fotoğraftaki cisimlerin fotoğraflarını ayrı ayrı resimlere çıkaralım segmente edelim?
Resimleri segmente etme işlemi bambaşka bir konu ANCAK öncelikle zemin tespiti yapılmalı bunu da örüntü üzerinden yapabiliriz.
Sağ alt resim edge detection Lena !! Aşırı blur bir resim düşünelim daha keskin hatlara sahip olsun istiyoruz. Içerisindeki varlıklar daha belirgin olsun isteyebiliriz
Resimleri iyileştirmek, gürültüyü azaltmak, çeşitli efektler vermek veya resim içerisinden bazı varlıkları segmente etmek için bir çok algoritma var ancak temelde image processing bu şekilde yapılıyor.
Histogram çıkarılarak resmin sıkıştırılması gibi işlemler var. İnsan gözünün ayırt edemediği renkler var. Madem ayırt edemiyoruz farkı fazla olan bilgiyi kullanmayıp sıkıştırma yöntemlerini geliştirelim.
Point operations zaten az önce anlattığımız pixel ve komşuları üzerinde basit hesaplamalar yapıp pixel in yeni değerlerini çıkaran operasyonlara denk geliyor. Aynı zamanda edge detection işlemleri de bunlar arasında sayılabilir
Resmi segmentlere ayırmak. Resmin içerisindeki varlıkları ayrı ayrı işlemeye hazır hale getirmek ya da bir nevi parçalama işlemi için farklı algoritmalar var
Biçimsel değişikliklerin yapıldığı algoritmalar var. resmin içerisindeki varlıkların biçimlerini değiştirmek üzerine dayalı işlemler bunlar. Medical görüntülerin iyileştirilmesinde kullanılıyor ağırlıklı olarak.
Resim içerisinde varlıklara ait feature ları belirleyip bu featurelara göre resmin değerlerini ayrıştırdığımız yöntemler var. Bu değerleri de bazı resimleri tanımak için kullanıyoruz.
Mesela yüz tanıma işlemi. Bitirme tezindeki kısmı anlat.
Detection vs recognation
Öncelikle yüzünü tanımak istediğiniz kişilerin frontal face fotolarını aldık diyelim farklı açılardan.
Daha sonra bu training set deki resimleri grayscale e çevirdik datayı azalttık.
Insan yüzünü maskeler ile detect ettik
Sonra bu insan yüzünü featurelara göre bölüp bir eigenface çıkardık diyelim.
Sonra da kamera ile görüntü içerisinde bir yüz detect ettiğimizde aynı işlemden o yüzü de geçiriyoruz ve karşılıklı olarak eigenfaceleri karşılaştırıyoruz.
2. Sayısal Görüntü Temelleri
3. Görüntü İyileştirme Teknikleri
4. Uzaysal Domainde Filtreler
5. Frekans Domeainde Filtreler
6. Renkli Görüntü İşleme
7. Görüntü Bölütleme
8. Morfolojik Görüntü İşleme
9. Doku Analizi
10. Görüntü Gösterimi ve Tanımlama
11. Görüntü Sıkıştırma
12. Hareket Analizi
13. Video İşleme
14. Şekil Tanıma
Video birçok resimin arka arkaya ekranda render edilmesi ile oluşturulmuştur.
Her bir resim video processing de FRAME olarak isimlendirilir.
Bu noktada Frame per second kavramı ortaya çıkıyor. Nedir bu FPS? Bir saniye içerisinde kameranın çekebildiği fotoğraf sayısı da diyebiliriz.
Aynı konuya Video Player lar açısından baktığımızda 1 saniye içerisinde, bu resim dizisinden kaç tanesini çekip render etmem gerekiyor çıkarımı yapabiliriz.
Video yu nasıl işleyebiliriz peki ?
Video processing de frame by frame işleme yapılıyor . Bu noktada bütün image processing yöntemlerini kullanarak çıkarımlar yapmak mümkün.
Örneğin Fabrika üretim bandındaki x parçasının bandın sağ tarafına mı yoksa sol tarafına mı gitmesi gerekiyor kararı
Ancak image processing in de üzerinde şimdi bir resim dizisi var elimizde ve zamana göre sıralı. Bu ne demek?
Artık 2 boyutta HAREKET çıkarımları yapabiliriz. Resimler içerisinde hareket eden cisim nesne ya da varlıkları tespit edebiliriz.
Bu hareketleri yorumlama şekline göre oldukça çeşitli uygulamalar geliştirilebilir.
Şimdi bir düşünelim bakalım bu hareket algısıyla neler yapabiliriz?
Cisim,nesne ya da varlık takip etmek
Person of interest dizisi Suçlu takip etmek Cihan tübitak
Quadro copter yapalım ve bu işaretlenmiş bir cismi takip etsin sürekli sonra da sadece kendi belirlediğiniz bir alana otonom iniş yapsın? Füze de olabilir
Elimizle hareket patternleri tanımlayıp bunun karşılığında bazı işler yapalım. Mesela ışıkları açmak kapamak. Sesi yükseltmek
Öyle bir uygulama yapalım ki futbol maçlarının özetini çıkarsın?
Trafik işaretlerinin tanınması
Görüntü üzerinden ses çıkarımı yapan çalışma MIT TED presentation
Ve işte artık elimizde harika kinect kamerası var.
Peki bu kameranın özelliği nedir?
3 boyutlu görüntünün oluşturulması için gerekli sensörleri barındıran gömülü bir cihazdır . RGB kamera ile infrared sensör bilgilerinin ortak yorumlanabildiği bir hardware.
Önceden nasıl oluşturulurdu?
Sterio kameralar vasıtası ile oluşturulurdu. İşlemek için yüksek işlem gücü gerekirdi. Çok fazla hesaplama gerekirdi
Sterio kamera ile derinlik algısının yaratılmasında insan gözünden esinlenilmiştir. Tek gözümüzü kapattığımızda derinlik algımızda yanılsamalara düşebileceğimizi deneyerek görebilirsiniz.
Diğer kameralardan başka farklı olarak neler yapabiliyor?
mikrofon, accelerometre.
Türevleri var mı?
Var, RGB-d kamera olarak da geçiyor
Kameranın perspektifinden baktığımızda resimlerdeki gibi bir alan görüntü olarak oluşturulabiliyor.
Derinlik sınırı var tabiki kameraya yeterli uzaklıkta olmanız gerekiyor doğru hesaplamalar yapılabilmesi için. Aynı zamanda fazla yaklaşmak da bazı problemlere yol açabiliyor.
Özetle elimizde bir nokta bulutu var ve her bir noktanın kendi RGB değeri haricinde infrared sensör üzerinden gelen 3 boyutlu kordinat bilgisi de bulunmaktadır.
RGB görüntü ve infrared sensör bilgisi nasıl birleştiriliyor? Infrared sensörden çıkan ışık bir noktaya çarpıp geri dönüyor. Döndüğü yerde bu çıkan ışık saçılmalarını toplayan bir sensör var.
Bu sensör üzerinde oluşturduğu izler ve ışığın gidiş geliş toplam süresine göre ilgili noktanın X,Y ve Z düzlemindeki konumunu tespit etmiş oluyoruz.
Bu hesaplamaları yapmak için farklı kütüphaneler var
Point Cloud Library
Open Kınect
Windows Kinect SDK
Soldaki görüntü kinectten alınmış işlenmemiş 3D videoya ait bir görüntü.
Bütün sinyal işleme yöntemlerinde olduğu gibi öncelikle üzerinde çalışılan dataset in daraltılması gerekiyor. Gerçek zamanlı uygulamalarda bu işlem oldukça kritiktir. Yapılan her gereksiz işlem zamansal sapmalara yol açar.
Ya da diğer bir deyişle fazla işlem yapılması , sonuçların makul kabul edilebilecek bir zamandan daha uzun sürmesine yol açar
Bu ne demek?
Yoğun bakım da kalp atışlarını ,nabzı ve solunumu ölçen cihazlar üzerinde zamansal bir sapma hayati sonuçlara sebep olabilir.
Kişinin kalbi veya solunumu durmuşsa ama biz bunun uyarısını 5 dk sonra alırsak beyin ölümü gerçekleşmiş olacaktır. Hasta sizlere ömür
Başka bir bakış açısı da şudur. Aynı zaman diliminde çok az sinyal okumak da farklı problemlere yol açacaktır.
Sağ taraftaki görüntü ise bazı filtrelerden geçmiş bir bulut var. örneğin 2 m den sonraki noktalar görüntüden çıkartılmış
Voxel grid yöntemi ile downsampling yapılmış soldaki bulutta. Gereksiz bazı noktalar da buluttan çıkarılmış.
Diyelim ki artık elimizde çalışmak için yeterli bir bulut var. Şimdi de herhangi bir düzlem tanıma işlemi yapmak istiyoruz diyelim.
Duvarları ya da zemini de gereksiz işlem yapmamak adına buluttan çıkarmak istiyoruz. Bunun için de çeşitli algoritmalar var
RANSAC algoritması bunlardan bir tanesi. Bütün bulutu gezerek belirli bir düzlemi oluşturabilecek noktaları işaretleyen bir algoritma bu.
ax + by + cz + d = 0 şeklinde 3 boyutlu bir uzaydaki düzlem formülüne uyan noktaları işaretliyor. Bu düzlemin uzayda nasıl bir açıyla durması gerektiğini siz belirliyorsunuz.
zemin tespiti yapmak istiyoruz diyelim.
3 boyutlu bir uzayda x eksenine paralel bir düzlem formülü oluşturursunuz sonra da bu formülü doğrulayan tüm noktaları işaretlesin diye algoritmayı çalıştırırsınız.
Daha sonra da bu işaretlerenen noktaları buluttan çıkartırsınız.
Kinect in windows SDK sı iskeleti direkt olarak çıkaran metodları da içeriyor. Oyunlarda oldukça fazla kullanılıyor bu iskelet verisi.
Ama başka uygulamalarda da kullanılabilir.
Arkadaşımın bitirme tezi, Yaşlıların düşmesi hareketsizliği ve Skype ile bilgilendirme
Bitirme tezi adımlarını anlat
Kendi kendine giden araba google