Merhaba arkadaşlar
Mobilhanem.com sitemizde yeni bir seri olan Görüntü İşleme Dersleri eğitim serisine başlıyoruz. Bu derslerimize birlikte devam edeceğiz. Umarım sizler için faydalı bir seri olur. Bu ders serisi, görüntü işleme üzerinde meraklı, görüntü işleme alanında kendini geliştirmek isteyenlere bir yol gösterici olacaktır. Bende Python ile Görüntü İşleme’ye Giriş dersi ile ilk önce kafanızda oluşan; eğitim serisi için ne bilmeniz gerektiğini, kullanacağımız kütüphane ve teknolojilerin ne olduğunu anlatacağım.
Bu Eğitim Serisi İçin Neler Bilmeliyim?
Eğitim serisi Python ile Görüntü İşleme olduğu için temel seviyede Python bilginizin olması ders serisini daha rahat kavramanıza yardımcı olacaktır. Eğer yoksa temel seviyede Python öğrenmek için tıklayınız. Ayrıca biraz matematik bilginizin olması da yeterli olacaktır. Bu ders serimizi, temel görüntü işleme yöntemlerinin yanında filtreleme, yüz tanıma, araç tanıma, trafikte araç sayma ve daha bir çok görüntü işleme projeleri ile taçlandıracağız.
Bu Eğitim Serisinde Neler Kullanacağız?
Python ile Görüntü İşleme serimizde PyCharm geliştirme ortamını, Python dilini, OpenCV kütüphanesini, Anaconda’yı ve çok boyutlu matrisler için destek alacağımız NumPy kütüphanesini kullanacağız.
Bu serimizin sonunda akademik ve üniversite çalışmaları için yeni bir seri olan MATLAB ile Görüntü İşleme derslerine devam etmeye çalışacağız. Her ders sonunda soru ve önerinizi belirtmeyi unutmayın.
Şimdi görüntü işlemenin ne olduğunu, görüntü işleme teknolojisinin ne işe yaradığına ve kullanım alanlarının nereler olduğuna hep birlikte bakalım.
Görüntü İşleme (Image Processing) Nedir ? Nasıl Bir Temele Dayanmaktadır ?
Görüntü işleme, bir görüntüyü elde etmek ya da elimizde bulunan görüntüden yararlı bilgiler çıkarmak için çeşitli algoritmalar kullanarak görüntü üzerinde bazı işlemlerin gerçekleştirilme yöntemidir. Görüntü işlemelerinin temel adımları şunlardır:
- Görüntünün çalışma ortamına aktarılması
- Alınan görüntünün işlenerek analiz edilmesi ve görüntülenmesi
- Analiz sonucu görüntü raporunun ortaya çıkması
Görüntü işleme aslında matrisler üzerinde yapılan işlemler bütünü diyebiliriz. Genellikle resimlere baktığımızda çeşitli renklerin bir araya geldiği kareden ibaret olduğunu düşünebiliriz. Halbuki resimi en küçük parçalara böldüğümüzde bizi çok boyutlu matrisler karşılıyor. Bu matrislerin her bir elemanına iyi bildiğimiz bir kelime olan piksel adını veriyoruz. Ve biz görüntü işleme yöntemlerinde pikseli oluşturan matris hücrelerinin üzerinden işlemler yapıyoruz. Aşağıda gördüğünüz görsel yukarıdaki paragrafın vücut bulmuş hali diyebiliriz.
Her bir matris hücresinde gördüğünüz sayılar aslında RGB ( Red [kırmızı], Green [yeşil], Blue [mavi] ) renk uzayının 0 ile 255 arasında olan birer sayısal değerdir. Mesela matrisin ilk satır ve ilk sütunda olan 157 değerimizi incelediğimizde rgb renk değerlerinin ağırlığını RedGreenBlue (157,157,157) olarak yazabiliriz. 3 ana renge bu değeri verdiğiniz zaman resimdeki ilk satır ve ilk sütunda olan rengin ortaya çıktığını görebilirsiniz.
Görüntü İşleme Ne İşe Yarar?
Günümüz teknolojilerinde oldukça sık kullanılan görüntü işleme yöntem ve teknolojileri vardır. Görüntü işleme yapmanın temel amaçları aşağıdaki gibidir.Bunlar:
- Görüntü üzerinde tespiti zor olan objeleri gözlemleyebilme
- Gürültü temizleme, keskinleştirme ve görüntü restorasyonu (temizleme) yapma
- Yüksek çözünürlükte görüntüler elde etme
- Nesne tanıma
- Görüntü tanıma ve nesne ayırt etme
olarak sıralayabiliriz.
Görüntü İşlemenin Kullanıldığı Alanlar
Görüntü işleme yöntem ve teknikleri günümüzde bir çok alanda kullanılır. Görüntü işleme çok geniş bir konsepttir. Sağlık alanında insan hastalıklarını tespitine kadar kullanılmaktadır.Ayrıca,
- Robot teknolojileri
- Savunma sanayisi
- İnsansız hava araçları
- Montaj Hatları (Örneğin, otomobil üretim hattında çalışan otomasyon robotları)
- Snapchat, Instagram’da kullanılan gerçek zamanlı filtreler
- Yüz kilidi teknolojisi
- Google harita teknolojisi
ve daha bir çok alanda görüntü işleme teknolojisi mevcuttur. Sizlerde yapacağınız görüntü işleme projeleri ile bu konuda size uygun meslek kollarında yerinizi alabilirsiniz.
Şimdi ise kullanacağımız kütüphaneler hakkında biraz bilgi edinelim.
OpenCV (Open Source Computer Vision)
OpenCV Intel Corporation , Willow Garage , Itseez tarafından geliştirilen gerçek zamanlı görüntü işlemede kullanılan programlama fonksiyonlarını içeren açık kaynak kodlu bir kütüphanedir. Google, Nvidia, AMD gibi büyük şirketler ve bir çok toplulukların destekleri ile OpenCV kütüphanesinin geliştirme süreci devam etmektedir. OpenCV kütüphanesinin içerisinde görüntü işleme ve makine öğrenmesine yönelik 2500’den fazla algoritma bulunmaktadır. Bu algoritmalar ile yüz tanıma, hareket tespiti, OCR (Optical Character Recognition) metin tanıma, plaka tanıma, nesneleri ayırt etme gibi işlemler kolaylıkla yapılabilmektedir. Bizde Python ile görüntü işleme serimizde bu kütüphaneyi kullanacağız.
Hangi Dilleri Destekliyor?
- Python
- C / C++
- Java
- Matlab
NumPy
NumPy Python’da bilimsel hesaplamalar için kullanılan bir pakettir. Çok boyutlu diziler ve çeşitli türetilmiş nesneler (matrisler gibi) üzerinde hızlı işlemler yapabilmek için kullanılır. Ayrıca matematiksel, mantıksal, sıralama, seçme, giriş/çıkış dahil olmak üzere çeşitli yordamlar sağlayan Python kütüphanesidir.
Anaconda
Anaconda Python ve Python’un sahip olduğu bir çok modül ve kütüphanelerini birlikte içinde barındıran bir açık kaynak teknolojidir. İhtiyacımız olan tüm modülleri beraberinde getirerek tek seferde erişim sağlama imkanı buluyoruz. Çeşitli paketleri kurma ve kaldırma olaylarında da işimizi kolaylaştırmaktadır.
PyCharm
PyCharm , Jetbrains tarafından geliştirilen ve piyasada sıkça kullanılan Python geliştirme ortamıdır. Çeşitli versiyon kontrol sistemi barındıran, çeşitli web uygulamalarının da geliştirme imkanı sağlayan çapraz bir platformdur. Bize faydalanabileceğimiz bir çok araç seti ve yerleşik özellikler sunar.
Peki biz neler yaptık ve tecrübelerimiz nedir?
Yaklaşık 6-7 ay süren benim ve Engin ÜLGER’in üzerinde çalıştığımız , Sıfır Atık projesine destek vermek amaçlı ortaya koyduğumuz projeden bahsetmek istiyorum. Yapay Zeka Temelli Katı Atık Ayrıştırma Makinesi. Görüntü işleme ve derin öğrenme algoritmaları ile tek bir kısımda atılan çöpü (Metal,cam,plastik,kağıt) %98 oranında başarıyla ayrıştırma işlemini gerçekleştirdik. Ayrıca bu makinenin gömülü sistemi dışında mobil uygulama ile puan kazanma olayını da entegre ettik.
Bu projemiz ile Elazığ Tübitak Bilim Merkezinde 70 proje arasından birincilik elde ettik. Ayrıca Tübitak 2242 Üniversiteler Arası Proje yarışmasında Erzurum’da düzenlenen bölge yarışmasında bölge birinciliğine layık görüldük. Bu projenin final ayağı İstanbul Teknofest’te gerçekleşti. Bu final yarışmasından da çevre ve enerji kategorisinde Türkiye birinciliğini kazandık. Ödülümüzü Sayın Cumhurbaşkanımız Recep Tayyip ERDOĞAN’dan aldık.
Teknofest Türkiye birinciliğinin ardından projemiz Sıfır Atık İnovasyon Ödülüne layık görülmüştür. İnovasyon ödülümüzü de Cumhurbaşkanımızın eşi Sayın Emine ERDOĞAN’dan ve Çevre ve Şehircilik Bakanı Murat KURUM’dan aldık.
Bir çok haber siteleri ve kanallarında projemiz gösterilmiştir. Bazılarına aşağıdaki linklerden ulaşabilirsiniz.
Python ile Görüntü İşlemeye Giriş dersimizin sonuna geldik. Bir sonraki derste Python ile görüntü işleme için gerekli kütüphane ve teknolojileri kuracağız.
57
Teşekkürler, devamını bekliyoruz.
Biz teşekkür ederiz.
Tesekkurler devamini sabirsizlikla bekliyorum
Teşekkür ederiz. Bir sorun ile karşılaşmadığımız sürece düzenli olarak dersimizi paylaşacağız.
Serinin devamını sabırsızlıkla bekliyorum. Takipteyim sizi.
Teşekkür ederiz. Bir aksilik olmadığını sürece inşallah devamı gelecektir.
Öncelikle, projeniz için tebrikler.. Rica etsem projenizde kullandığınız donanımları paylaşabilir misiniz?
Merhabalar, iyi dilekleriniz için çok teşekkür ederim.
996r Servo Motor
Hc-sr04 Ultrasonic Sensör
Yüksek Torklu Motor (Asansör Kapı Motoru)
BTS7960B 40 Amper Motor Sürücü Modülü
Arduino MEGA/UNO
Lcd Shield
Ky-008 Lazer
Webcam (Görüntü İşleme İçin)
Sistemin geliştirilebilir özelliği olduğu için donanım malzemeleri sabit olmuyor. İsteğiniz veya amacınız doğrultusunda bu liste değişebilir.
Öncelikle projeniz için tebrikler. Projenizde hangi donanım materyallerini kullandığınızı öğrenebilir miyim? Kolay gelsin, başarılar.
Merhabalar, iyi dilekleriniz için çok teşekkür ederim.
996r Servo Motor
Hc-sr04 Ultrasonic Sensör
Yüksek Torklu Motor (Asansör Kapı Motoru)
BTS7960B 40 Amper Motor Sürücü Modülü
Arduino MEGA/UNO
Lcd Shield
Ky-008 Lazer
Webcam (Görüntü İşleme İçin)
Sistemin geliştirilebilir özelliği olduğu için donanım malzemeleri sabit olmuyor. İsteğiniz veya amacınız doğrultusunda bu liste değişebilir.
Görüntü işleme teknolojisi kullanarak yüksek çözünürlüklü videolarda gürültü temizleme, keskinleştirme ve görüntü restorasyonu yapmak istiyoruz. Bunu otomatik şekilde yapabilecek bir uygulama geliştirmek istedik. Sizinle nasıl iletişime geçebiliriz?
Merhabalar. Mail adresim üzerinden iletişime geçebiliriz.
[email protected]
Ne yani bu yapay Zeko projelerindeki köşeli parantezlerin içine yazılan 3 basamaklı kodlar aslında renk kodlarimi yani dizini matrislerimi bende diyordum bu 3 basamaklı matris kodları neyin kodları ? ben bu işi çözdüm. Gerçi ben Android gelistiricisiyim ilk öğrendiğim dil Python dı ben matris matematigine biraz çalışayım algoritma yi sonra bağlarız teşekkür ederim.
Rica ederim. İyi çalışmalar dilerim.
etkilendim.