Yapay zekadan makale özeti
- Kısa
- Ayrıntılı
- Bu eğitim videosu, Havaalan'ın Murat Baldan Nesne Tanıma ve Algıma Takım Lideri ve Bilgi ve İletişim Teknolojileri Genel Müdürlüğü Müdür Yardımcısı tarafından sunulmaktadır.
- Video, Python programlama dilini kullanarak görüntü işleme ve derin öğrenme konularını kapsamlı şekilde ele almaktadır. İçerik, Python ortamının kurulumundan başlayarak Numpy ve OpenCV kütüphanelerinin kullanımı, sinir ağlarının temel prensipleri ve Keras kütüphanesi ile MNIST veri setinde el yazısı rakamlarının sınıflandırılması örnekleri sunmaktadır. Son bölümde ise nesne tespit yöntemlerinin tarihsel gelişimi ve Faster R-CNN, YOLO, SSD gibi modern derin öğrenme algoritmaları anlatılmaktadır.
- Eğitim, özellikle görüntü işleme, veri manipülasyonu ve derin öğrenme konularında Python kullanmak isteyenler için tasarlanmıştır. Ayrıca, bu teknolojinin otonom araçlar, hava görüntüleri, IHA görüntüleri ve güvenlik sistemleri gibi pratik uygulamalardaki kullanım alanları da gösterilmektedir.
- Giriş ve Python Dili
- Konuşmacı, havaalanından Murat Baldan nesne tanıma ve algıma takım lideri olarak çalıştığını belirtiyor.
- Görüntü işleme ve derin öğrenme ile nesne tespiti konularında başlangıç seviyesinde bilgiler paylaşacağını söylüyor.
- İçerik olarak görüntü işleme, Python derin sinir ağları, görüntü tespiti için derin öğrenme yöntemleri ve uygulamaları konularını işleyecek.
- 01:02Python Dili ve Dağıtımları
- Python akademik çevre ve algoritma geliştirme konusunda yaygın olarak kullanılan bir bilimsel geliştirme dili olarak tanıtılıyor.
- Python son yıllarda çokça kullanılan ve bazı istatistiklere göre en çok kullanılan dil haline gelmiş durumda.
- Python ortamını kurmak için winpython, anakonda ve standart Python dağıtımları kullanılabilir.
- 03:53Python Geliştirme Ortamları
- Python için PyCharm, Spyder ve Jupyter Notebook gibi geliştirme ortamları bulunuyor.
- PyCharm, uzak bilgisayarda çalışan uygulamaları kendi bilgisayarından debug etme gibi gelişmiş özelliklere sahip.
- Jupyter Notebook, blok blok Python kodları çalıştırmak ve sonuçları HTML ortamında görselleştirmek için kullanılıyor.
- 06:39Python Temel Özellikleri
- Jupyter Notebook'ta hem metinsel açıklamalar hem de Python komutları çalıştırılabiliyor.
- Python'da "import" komutuyla paketler programa yükleniyor ve Python Package Index'de yüzbinlerce paket bulunuyor.
- Python bağımsız bir dil olarak tip tanımlamaları zorunlu değil, değişkenlerin tipleri atama anında belirleniyor.
- 10:15Python Veri Tipleri ve Listeler
- Python'da integer, float, complex ve string standart veri tipleri bulunuyor.
- String ve listelerde indeksleme 0'dan başlıyor ve aralık ifadeleriyle (range) elemanlara erişilebiliyor.
- Listelerde eleman tiplerinin aynı olmak zorunda olmadığı gibi, range ifadeleriyle belirli aralıklar oluşturulabiliyor.
- 15:51Numpy Kütüphanesi
- Numpy, Python'da bilimsel dil olmasına neden olan ana kütüphane olup, sinyal ve görüntü verileri gibi matris şeklinde ifade edilen verileri yönetmeyi sağlar.
- Numpy'de data tipi tekil olup, tüm elemanlar int, float veya bool türünde olup bellekte ardışık tutulur, bu da C++ gibi dillerdeki gibi hızlı çalışmayı sağlar.
- Numpy ile matrislerle yapılan işlemler (çarpım, toplama, thresholding) ve matris seviyesindeki toplama, çıkarma gibi işlemler gerçekleştirilebilir.
- 17:21Numpy Kullanımı
- Numpy import edildiğinde tüm fonksiyonlar doğrudan kullanılabilecek hale gelir, örneğin "array" fonksiyonu doğrudan kullanılabilir.
- Listelerdeki tüm eleman tipleri aynıysa, bu listeleri doğrudan array fonksiyonuyla numpy matrisine çevirebiliriz.
- Numpy ile iki boyutlu matrisler, kompleks elemanlı matrisler oluşturulabilir ve indeksleme işlemleri kolayca yapılabilir.
- 19:38Numpy Dosya İşlemleri
- Numpy ile matrisler dosyadan okunabilir ve kaydedilebilir.
- Örneğin, bir dosyadan okunan matrisde 7777 satır ve 7 sütun bulunabilir ve veri tipi float64 olabilir.
- Jupyter Matplotlib ortamında, veriler görselleştirilerek incelenmesi kolay hale getirilebilir.
- 21:22OpenCV Kütüphanesi
- OpenCV, C++'ta yazılmış ancak birçok ortamda kullanılabilen, özellikle Python ortamında yoğun olarak kullanılan bir kütüphanedir.
- OpenCV bir resmi okudukta, bu resmi numpy matrisi olarak üretir ve böylece numpy ile yapılan işlemlerle resim üzerinde işlem yapılabilir.
- OpenCV ile resim okuma, çizim (line, rectangle, circle, elips), poligon üretimi ve yazı yazma gibi fonksiyonlar kullanılabilir.
- 25:07OpenCV ile Resim İşleme
- OpenCV ile boş resimler oluşturulabilir ve üzerine çizim yapılabilir.
- Resimdeki pikseller indeksleme ile erişilebilir ve değiştirilebilir.
- Resimden belli bir bölge alınabilir ve başka bir bölgeye kopyalanabilir.
- 29:51Derin Öğrenme ve Sinir Ağları
- Derin öğrenmede kullanılan sinir ağları, biyolojik sinir ağlarından esinlenmiş olup, bir sinir hücresi gibi input sinyalleri alıp tetikleme fonksiyonu ile sonuç üretir.
- En basit bilgisayardaki karşılığı perceptron yapısıdır; burada gelen veriler ağırlıklarla çarpılıp toplanır ve tetikleme fonksiyonu ile sonuç üretilir.
- Tetikleme fonksiyonları lojistik, rectif lineer veya tanh gibi farklı şekillerde olabilir ve sinir ağının tetiklenmesini sağlar.
- 31:45Perceptron ve Sınıflandırma
- Perceptron ile en boyutlu uzayda sınıflandırma yapılabilir; iki sınıfı bir çizgi ile ayırmak mümkündür.
- Birden fazla sınıf için birden fazla perceptron kullanılır ve en yüksek değere sahip perceptron sonucu sınıflandırma sonucu olarak ortaya çıkar.
- Birden fazla hidden layer ve output layer kullanıldığında çok katmanlı perceptron oluşturulur ve böylece derin sinir ağları oluşur.
- 34:22Keras ile El Yazısı Sınıflandırması
- Keras kütüphanesi ile MNIST data seti kullanılarak el yazıları sınıflandırması yapılabilir; bu veri seti 28x28 pikselle 0'dan 9'a kadar yazılmış rakamlardan oluşur.
- Veri setinde 60.000 örnek bulunur ve her biri 28x28 piksel boyutunda olup, 10 sınıf (0-9 rakamları) için sınıflandırma yapılabilir.
- Veriler test ve eğitim seti olarak ayrılır, eğitim setinde 10.000 örnek kullanılır.
- 37:21Sinir Ağı Modeli ve Eğitimi
- 28x28 piksellik veriler tek sıraya dizerilerek 784 boyutlu bir input olarak verilir ve 512'lik bir sinir ağına beslenir.
- Model iki katmanlı olup, 10 sınıf için sonuç katmanı vardır ve son katmanda softmax activation layer kullanılır.
- Model optimizasyon ve entropi ile eğitilir, veriler 10 kere ağ üzerinden geçirilerek ağırlıklar düzenlenir.
- 40:11Test Sonuçları
- Test verileri üzerinde %98,80 oranında doğru sınıflandırma başarısı elde edilmiştir.
- Doğru sınıflandırılan örneklerde 7, 2, 1 gibi rakamlar doğru tespit edilmiştir.
- Yanlış sınıflandırılan örneklerde özellikle kötü yazılmış rakamlar yanlış tespit edilmiştir (örneğin 4'ü 9 olarak, 9'u 5 olarak).
- 42:24Nesne Tespiti Yöntemleri
- Derin öğrenme temelli nesne tespit ve sınıflandırma yöntemleri, resimdeki çeşitli nesneleri tespit etmeyi amaçlar.
- Selective search gibi segmentasyon yöntemleri kullanılarak resimdeki nesneler ayrıştırılır ve aday bölgeler oluşturulur.
- Kayan nokta yöntemi yerine segmentasyon tabanlı yöntemler daha hızlıdır ve sadece aday bölgeler üzerinde sınıflandırma yapar.
- 45:40Nesne Tespit Yöntemleri
- Faster R-CNN yöntemi, aday bölgelerdeki objelerin sinir ağıyla üretilip sınıflandırılmasıyla daha hızlı bir nesne tespit yöntemi sağlamıştır.
- Resim gridlere bölünerek farklı network altyapıları ile nesnelerin sınıflandırılması, 7x7'lik bloklara ayrılıp her bloğun hangi sınıfa ait olduğu belirlenerek bir araya getirilmesiyle gerçekleştirilir.
- Nesne tespit yöntemlerinde başarım (nesnelerin yüksek doğrulukla bulunması) ve hız (saniyede kaç çerçeve işlenebiliyor) iki önemli noktadır.
- 47:56Nesne Tespit Algoritmalarının Kullanımı
- Nesne tespit algoritmaları, araçları, insanları, trafik ışıklarını ve otobüsleri gibi nesneleri başarılı ve hızlı şekilde tespit edebilmektedir.
- Bu algoritmalar otonom araçlar için altyapı olarak kullanılabilecek bir yapı haline gelerek, çevredeki nesneleri kameralardan tespit edip hareket etmelerine olanak sağlamaktadır.
- SSD (Single Shot Detector) yöntemi, Faster R-CNN'e benzer şekilde anchor adı verilen blitlerin aday bölgelerin sınıflandırılmasında kullanıldığı bir yöntemdir.
- 49:05Algoritmaların Başarımlarının Ölçülmesi
- Algoritmaların başarımları açık kaynak veri yapılarıyla ölçülmekte, akademik çevrede publi hale getirilmiş veriler üzerinde nesne tespit başarıları ölçülerek hangi algoritmanın daha iyi olduğu belirlenmektedir.
- Pascal VOC Visual Object Challenge gibi veri setleri, 10.000 farklı resim ve 20 farklı sınıf içermekte, günümüzde ise derin öğrenme ile çok daha fazla resim ve sınıf içeren veri setleri kullanılmaktadır.
- Nesne tespit başarımını ölçmek için Intersection over Union (IoU) parametresi kullanılmaktadır; tespit edilen alan ile gerçek alanın örtüşme oranıyla başarım ölçülmektedir.
- 51:03Algoritmaların Gelişimi ve Kullanım Alanları
- Yıllara göre algoritma başarımları, başlangıçta klasik yöntemlerle en fazla %40 olan başarımın, derin öğrenme ile %12-13'e kadar artıp %80-90'lara ulaşmasıyla ilerlemiştir.
- Derin öğrenme yöntemleri artık insan algısından daha yüksek başarı elde edebilmekte, insanın kaçırdığı ayrıntıları başarıyla tespit edebilmektedir.
- Nesne tespit algoritmaları, uydu görüntülerinde hedef tespit, havaalanındaki uçakların sayılması, limandaki gemilerin tespiti, yol çizgileri ve binaların tespiti gibi alanlarda kullanılmaktadır.
- 52:43Özel Nesne Tespit Uygulamaları
- İHA görüntülerinden hareketli insanların tespiti, termal kameradan hareketli nesne tespiti yapılabilir.
- Araç marka ve modelinin tespiti için önce dedektör, sonra sınıflandırıcı kullanılarak detaylı bilgi edinilebilir.
- Güvenlik amaçlı insan tespiti de bu algoritmalarla gerçekleştirilebilmektedir.