Bilgisayar ile Görü Diclehan & Oğuzhan Ulucan İçerik 1. Görüntü İşleme Tanımı ve Kapsamı 2. İnsanlarda Renk Algısı 3. Makinelerde Renk Algısı 4. Görüntü Oluşumu 5. Temel Görüntü İşleme Teknikleri 6. Evrişimsel Sinir Ağları (CNNs) 2 Görüntü İşleme Tanımı ve Kapsamı Kullanım Alanları: Sağlık: Tıbbi görüntü analizi (MR, BT, röntgen), kanser teşhisi, retina taraması, gıda kalitesi kontrolü Güvenlik: Yüz tanıma, plaka tanıma, video gözetim analizi, obje takibi ve sını andırması, doğal afet sonrası değerlendirme Otomotiv: Otonom araçlarda nesne algılama, yol şeridi takibi, engel tespiti E-ticaret: Fotoğraf ile ürün bulma, ürün önerileri, augmented reality ile ürün deneme Tarım/Gıda: Bitki sağlığı tespiti, bozuk gıda tespiti, drone görüntülerinden veri çıkarma Sanayi: Üretim hattında kalite kontrol, hata algılama Computational Photography: Görüntü düzenleme (İyileştirme?) Diğer: Filtreleme (Instagram, Photoshop), oyun teknolojileri fl 3 Görüntü İşleme Tanımı ve Kapsamı Yapay Zeka Uygulamalarındaki Yeri: Bilgisayarla Görü (Computer Vision): • Yapay zeka, görüntü işleme ile birleşir • Görüntü işleme, veriyi hazırlar ve bilgisayarla görme algoritmalarına girdi sağlar Derin Öğrenme (Deep Learning): • CNN gibi yapılar, görüntü işleme için devrim yaratmıştır • Nesne algılama (Object Detection) • Segmentasyon (Segmentation) • Görüntü sını andırma (Image Classi cation) fi fl 4 Görüntü İşleme Tanımı ve Kapsamı Yapay Zeka Uygulamalarındaki Yeri: Gerçek Zamanlı Uygulamalar: • Otonom araçlarda anlık nesne algılama • Spor analizinde oyuncu hareketlerinin gerçek zamanlı tespiti • Akıllı kameralar ile tehlike/nesne tespiti, evcil hayvan takibi Doğal Dil İşleme ve Görüntü İşleme Birleşimi: • Görüntü açıklaması oluşturma (Image Captioning): Bir fotoğrafı betimleyen metinlerin oluşturulması • Görüntüye dayalı soru-cevap sistemleri: Bir fotoğraftaki nesne hakkında soru sorma Resimde neler var? - Bir köpek, tren rayları ve bitkiler 5 İnsanlarda Renk Algısı TED. 2009. "Optical illusions show how we see | Beau Lotto." YouTube. https://www.youtube.com/watch?v=mf5otGNbkuc&t=147s 6 İnsanlarda Renk Algısı Normal Görü Renk Körü 74 21 Ishihara, S. (1972). The series of plates designed as a test for colour blindness. 36 plates. Kannehara Shuppan, Tokyo. 7 İnsanlarda Renk Algısı Görsel bilgi işleme gözde başlar. Işık retinaya düşer ve fotoreseptörler bu sinyali ölçer. Renk, beynin bir ürünüdür. (Zeki, 1993) Light Source In ci de nt Li gh t e y E Nobj ht g i L d lecte Ref The response of the (L, M, S) cones of the human eye, named for their sensitivity peaking at long, medium, and short wavelengths (in nm). Object Spectral sensitivities of the cones, http://www.cvrl.org/database/text/cones/smj2.htm, Last access: 09.12.2024 8 Makinelerde Renk Algısı Sinyal, algılayıcı (sensör) dizisine düşer ve sensörler bu sinyali ölçer. Sensörler, görünür tayfın/dalga boyu aralığının belirli kısımlarına duyarlıdır. Light Source Ca Nobj c e l f e R ht g i L ted Light In ci de nt Li gh t Image sensor array a r e m wiki/Color_filter_array, Last Accessed: 25.05.2025 Camera sensors’ spectral sensitivities Object 9 𝜆 𝑆 𝐸 Görüntü Oluşumu Uzamsal konum (x,y)’de ölçülen sinyal enerjisi şu şekilde formüle edilebilir: I(x, y) = ∫w E(x, y; λ) S(λ)dλ Yüzeyin Lambertian (ışığın tüm yönlere eşit olarak yansıtıldığını) olduğunu varsayarsak, sensörlere çarpan irradyans (irradiance) aşağıdaki gibi ifade edilebilir: E(x, y) = G(x, y) R(x, y; λ) L(x, y; λ) I : Görüntü : Algılayıcı (sensör) dizisine çarpan irradyans : Sensor responses R: Reflektans : Görünür tayfın (spektrumun) dalga boyu L: Işık kaynağı G: Geometri faktörü 10 Görüntü Oluşumu Uzamsal konum (x, y) noktasında ölçülen sinyal enerjisi şu şekilde formüle edilebilir: I(x, y) = G(x, y) ∫w R(x, y; λ) L(x, y; λ) S(λ) dλ 11 Görüntü Oluşumu Genel olarak, görüntülerde 3 renk kanalı bulunur. Her kanal, piksel adı verilen öğeleri içeren bir matrisi oluşturur. Her pikselin 0 ile 255 arasında bir değeri vardır (8 bit görüntüler için). [0, 0, 0] = siyah [255, 255, 255] = beyaz [255, 0, 0] = kırmızı [0, 255, 0] = yeşil [0, 0, 255] = mavi [126 182 137] Girdi Kırmızı kanal Yeşil kanal Mavi kanal 12 Temel Görüntü İşleme Teknikleri Histogram Bir görüntünün histogramı, görüntüdeki piksel yoğunluklarının dağılımının gra ksel bir temsilidir. Görüntüde her yoğunluk değerine sahip kaç piksel bulunduğunu gösterir. Histogram, bir görüntünün kontrastını, parlaklığını ve genel pozlamasını anlamaya yardımcı olur. fi 13 Temel Görüntü İşleme Teknikleri Eşikleme (Thresholding) Eşikleme, gri tonlamalı bir görüntüden ikili (binary) bir görüntü oluşturmak için kullanılan basit bir görüntü işleme tekniğidir. Bu teknik, nesneleri arka plandan ayırmak için kullanılabilir (örneğin, parlak nesneleri karanlık bir arka plandan ayırmak). 14 Temel Görüntü İşleme Teknikleri Yeniden Boyutlandırma, Döndürme ve Kırpma Girdi Yeniden Boyutlandırma Döndürme Kırpma 15 Temel Görüntü İşleme Teknikleri Gürültü Ekleme ve Parlaklık Değiştirme Girdi Gürültü Ekleme Parlaklık Değiştirme 16 Temel Görüntü İşleme Teknikleri Konvolüsyon (Convolution) Konvolüsyon, görüntü işlemede temel bir işlemdir çünkü bir görüntüye ltreler yani çekirdekler (kernel) uygulayarak onu faydalı şekillerde dönüştürmemize ve özellikleri çıkarmamıza olanak tanır. • Kenar Tespiti (Edge Detection) • Bulanıklaştırma ve Yumuşatma (Blurring and Smoothing) • Keskinleştirme (Sharpening) • Gürültüyü Azaltma (Reducing Noise) • Kontrastı İyileştirme (Improving Contrast) • Özellik Çıkarma (Feature Extraction) Kenar tespiti fi 17 Evrişimsel Sinir Ağları (CNNs) Kanguru Köpek “Değişmezlik Problemi” (Invariance Problem) Beynimiz, duyusal girdilerdeki büyük değişimlere rağmen ortak bir örüntüyü tanıyabilmektedir. Kanguru Max S. Bennett (2023), A Brief History of Intelligence, William Collins, Ireland. Köpek 18 Evrişimsel Sinir Ağları (CNNs) David Hubel ve Torsten Wiesel, 1962'de raporladıkları deneylerde, kedilere farklı görsel uyaranlar göstererek, nöronların verdiği tepkileri incelemişlerdir. Amaç, görsel korteksin görsel bilgiyi nasıl işlediğini anlamaktı. Her bir nöron, görsel alandaki belirli bir konumda, yalnızca belirli bir doğrultuya sahip çizgilere yanıt vermektedir. f Hubel, D. H., & Wiesel, T. N. (1962). Receptive ields, binocular interaction and functional architecture in the cat's visual cortex. The Journal of physiology, 160(1), 106. 19 Evrişimsel Sinir Ağları (CNNs) Görsel korteksin daha üst düzeylerinde, nöronların reseptif alanlarının kapsamı genişler ve bu nöronlar daha karmaşık görsel özelliklere yanıt verir. 1970'lerin sonlarında Kunihiko Fukushima, bilgisayarlara nesne tanıma yetisi kazandırmaya çalışıyordu. Standart sinir ağları, değişmezlik problemi nedeniyle başarısız oluyordu. f Hubel, D. H., & Wiesel, T. N. (1962). Receptive ields, binocular interaction and functional architecture in the cat's visual cortex. The Journal of physiology, 160(1), 106. 20 Evrişimsel Sinir Ağları (CNNs) Fukushima, Hubel ve Wiesel’in raporladığı hiyerarşik yapıdan ve belirli bir düzeydeki nöronların benzer görsel özelliklere karşı seçicilik göstermesinden ilham alarak bir model geliştirdi. Neocognitron, hiyerarşik bir mimariye sahip olup, değişmezlik problemini aşmak için yerel özellikleri aşamalı olarak daha karmaşık temsillere dönüştüren katmanlar içerir. Daha sonra Yann LeCun ve Yoshua Bengio, bu modeli geri yayılım (backpropagation) yöntemiyle güncellemiş ve böylece günümüzde bildiğimiz Evrişimli Sinir Ağları ortaya çıkmıştır. Fukushima, K. (1988). Neocognitron: A hierarchical neural network capable of visual pattern recognition. Neural networks, 1(2), 119-130. LeCun, Y., & Bengio, Y. (1995). Convolutional networks for images, speech, and time series. The handbook of brain theory and neural networks, 3361(10), 1995. 21 Evrişimsel Sinir Ağları (CNNs) CNN'ler, translasyonel değişmezlik (translational invariance) özelliğine sahiptir. Bir özelliğin farklı konumlardaki görünümleri aynı şekilde işlenir. “Çizgi” Her ne kadar güçlü modeller olsalar da, CNN’ler üç boyutlu nesnelerin döndürülmelerini doğrudan anlayamaz. Bu sınırlılığı aşmak için genellikle veri artırma yöntemleri kullanılmaktadır. 22 Evrişimsel Sinir Ağları (CNNs) Her ne kadar insan görsel sisteminden esinlenmiş olsalar da, CNN’ler insan görsel sistemiyle oldukça sınırlı bir benzerliğe sahiptir. Öğrenme süreçlerinde gözetim ve geri yayılım gibi biyolojik olmayan yöntemlere ihtiyaç duyarlar. 23 Evrişimsel Sinir Ağları (CNNs) Konvolüsyon (Convolution) Konvolüsyon Nasıl Çalışır? • Bir çekirdek (örneğin, 3x3 matris), görüntü üzerinde piksel piksel "kaydırılır." • Her konumda, çekirdekteki değerler görüntüdeki ilgili piksel değerleriyle çarpılır. • Bu çarpımların toplamı, merkezi piksel değerinin yerine geçer. • Bu işlem, görüntüdeki tüm pikseller için tekrarlanır. 24 Evrişimsel Sinir Ağları (CNNs) Temel Çalışma Prensibi Konvolüsyon işleminin arkasındaki kir, ltreler (çekirdekler) uygulayarak görüntüdeki kenarlar, dokular ve şekiller gibi desenleri tespit etmektir. Bir ltre, genellikle 3x3, 5x5 veya 7x7 boyutlarında küçük bir matristir. Filtre, görüntü üzerinde kaydırılarak konvolüsyon işlemi yapar ve özellik haritasını üretir. Görüntünün çeşitli özelliklerini yakalamak için birden fazla ltre uygulanır. fi fi fi fi 25 Evrişimsel Sinir Ağları (CNNs) Eğitilebilir Parametreler Ağırlıklar (weights), her bir girdinin ağın çıktısı üzerindeki etkisini kontrol eden çarpanlar gibidir. Bir yapay sinir ağında, nöronlar arasındaki her bağlantının bir ağırlığı vardır. Daha büyük bir ağırlık, o ağırlığa bağlı olan girdinin çıktıyı daha fazla etkilemesi anlamına gelir. Bias ağın çıktıyı girdiden bağımsız olarak ayarlamasına olanak tanıyan kaydırmalar gibidir. 26 Evrişimsel Sinir Ağları (CNNs) Model Nasıl Öğrenir? İleri Yönlü Geçiş (Forward Pass): Ağ, bir görüntü alır ve her nöron, ağırlıklar, bias ve bir aktivasyon fonksiyonu kullanarak çıktısını hesaplar. Ağ çıktısı, gerçek çıktı (doğru etiket, mesela ”kedi" veya “köpek") ile karşılaştırılır. Kayıp Fonksiyonu (Loss Function): Tahmin edilen çıktı ile doğru etiket (ground truth) arasındaki fark, bir kayıp fonksiyonu ile ölçülür. Bu, ağın tahminlerinin ne kadar yanlış olduğunu gösterir. 27 Evrişimsel Sinir Ağları (CNNs) Model Nasıl Öğrenir? Geri Yayılım (Backpropagation): Ağ, ağırlıkları ve önyargıları ayarlamak için geri yayılım kullanır. Her ağırlık ve bias’ın hataya (veya kayba) ne kadar katkı sağladığını hesaplar. Sonra, kaybı zamanla azaltan bir yöntem olan bir metot (örneğin gradient descent) kullanarak ağırlıklar ve bias’ı ayarlar. Öğrenme (Learning): Ağırlıklar ve bias’lar, ağın tahminler yaptığı, bunları gerçek çıktı ile karşılaştırdığı ve parametreleri hatayı azaltacak şekilde ayarladığı yinelemeler (iteration) veya dönemler (epochs) boyunca güncellenir 28 Evrişimsel Sinir Ağları (CNNs) Model Nasıl Öğrenir? Özetlemek gerekirse: Ağırlıklar: Her bir girdinin etkisini kontrol eder. Bias: Çıktıyı daha iyi uyum sağlaması için kaydırır. Öğrenme: Ağ, tahmin hatasını azaltmak için ağırlıkları ve önyargıları ayarlayarak öğrenir. Amaç, ağırlıklar ve bias’ları güncelleyerek tahmin edilen ve doğru etiket arasındaki hatayı kademeli olarak minimize etmek ve ağın daha iyi tahminler yapmasını sağlamaktır. 29 Evrişimsel Sinir Ağları (CNNs) Temel Katmanlar Girdi Katmanı (Input Layer): Görüntünün ağın içine verildiği yerdir. Konvolüsyon Katmanı (Convolutional Layer): Kenarlar, dokular ve şekiller gibi özellikleri tespit etmek için ltreler (çekirdekler) uygular. Görüntüdeki önemli desenleri vurgulayan özellik haritaları (feature maps) üretir. fi 30 Evrişimsel Sinir Ağları (CNNs) Temel Katmanlar Aktivasyon Katmanı: Özellik haritalarına, ReLU gibi doğrusal olmayan bir aktivasyon fonksiyonu uygular, bu da doğrusal olmayanlık ekler. Ağa, sadece doğrusal ilişkilerle modellenemeyen karmaşık desenleri öğrenmesinde yardımcı olur. Havuzlama Katmanı (Pooling): Özellik haritalarının boyutunu, yalnızca en önemli bilgiyi tutarak, alt örnekleme (downsampling) yaparak küçültür. Hesaplamayı azaltmaya yardımcı olur, modeli daha verimli hale getirir ve görüntüdeki küçük değişikliklere (örneğin, kaymalar veya bozulmalar) karşı bir dereceye kadar değişmezlik sağlar. 31 Evrişimsel Sinir Ağları (CNNs) Temel Katmanlar Tam Bağlantılı Katman (Dense Layer): Konvolüsyon ve havuzlama yoluyla çıkarılan özellikleri birleştirir. Her nöron, önceki katmandaki her nörona bağlıdır. Öğrenilen özelliklere dayanarak tahminler veya sını andırmalar yapmaya yardımcı olur. Çıktı Katmanı (Output Layer): Ağın nihai çıktısını üretir, örneğin bir sınıf etiketi veya bir olasılık. fl 32 Evrişimsel Sinir Ağları (CNNs) Temel Katmanlar Özetlemek gerekirse: Girdi Katmanı: Veriyi alır. Konvolüsyon Katmanı: Özellikleri çıkarır. Aktivasyon Katmanı: Doğrusal olmayanlık ekler. Havuzlama Katmanı: Özellik haritalarının boyutunu küçültür. Tam Bağlantılı Katman: Nihai karar için özellikleri birleştirir. Çıktı Katmanı: Nihai tahmini üretir. 33 Evrişimsel Sinir Ağları (CNNs) Hiperparametreler Filtre Boyutu: Konvolüsyonda kullanılan kaydırma penceresinin boyutu (örneğin, 3x3, 5x5). Filtre Sayısı: Bir konvolüsyon katmanında uygulanan çekirdeklerin sayısı. Adım (Stride): Filtrenin konvolüsyon sırasında hareket ettiği piksel sayısı. Dolgu (Padding): Çıktı boyutunu kontrol etmek için girdinin etrafına ekstra pikseller (örneğin sıfırlar) eklemek. Aktivasyon Fonksiyonu: Konvolüsyondan sonra doğrusal olmayanlık ekleyen fonksiyon (örneğin, ReLU, Sigmoid). 34 Evrişimsel Sinir Ağları (CNNs) Hiperparametreler Havuzlama Boyutu: Havuzlama işlemleri için pencere boyutu (örneğin, Maks Havuzlama için 2x2). Öğrenme Oranı (Learning Rate): Ağırlıkların ve bias’ların eğitim sırasında ne kadar güncelleneceğini kontrol eder. Yığın Boyutu (Batch Size): Tek bir ileri/geri geçişte işlenen eğitim örneklerinin sayısı. Dönem Sayısı (Number of Epochs): Tüm veri kümesinin ağdan geçirilme sayısı (eğitim sırasında). Optimizasyon Yöntemi (Optimizer): Ağırlıkları ve önyargıları güncelleyen algoritma (örneğin, SGD, Adam). Kayıp Fonksiyonu (Loss Function): Tahminlerin gerçek değerlerden ne kadar uzak olduğunu ölçen fonksiyon (örneğin, Çapraz Entropi). 35 Evrişimsel Sinir Ağları (CNNs) Veri Çoğaltma (Data Augmentation) Mevcut görüntülere dönüşümler uygulayarak bir veri kümesinin boyutunu yapay olarak artırma işlemidir. Bu dönüşümler; döndürme, gürültü ekleme, kırpma, parlaklığı değiştirme gibi işlemleri içerir. Aşırı Öğrenmeyi (Over tting) Azaltır: Aşırı öğrenme, bir CNN'in eğitim verilerinde iyi performans gösterip, görülmemiş verilerde kötü performans göstermesi durumudur. Veri çoğaltma, veri setinde çeşitlilik yaratarak modelin daha iyi genelleme yapmasını sağlar. Model Performansını İyileştirir: Modele verinin ha fçe değiştirilmiş versiyonlarını göstererek, modelin daha dayanıklı ve daha doğru öğrenmesini sağlar. Küçük Veri Setlerini Tela Eder: Büyük veri setlerinin toplanmasının zor olduğu durumlarda, veri çoğaltma daha fazla eğitim örneği oluşturur. Değişmezliği Geliştirir: Ağ, döndürme, ölçek, aydınlatma veya gürültü gibi gerçek dünyada yaygın olan değişimlere karşı değişmez hale gelir. fi fi fi 36 Evrişimsel Sinir Ağları (CNNs) Örnek Yapı input_shape = (64, 64, 3) # Image size (height, width, channels) num_classes = 10 # For classi cation 10 classes conv_ lters = 32 # Number of lters for convolution layers kernel_size = (3, 3) # Size of the convolution kernel pool_size = (2, 2) # Size of the pooling layer dense_units = 128 # Number of units in the fully connected layer learning_rate = 0.001 # Learning rate for the optimizer model = models.Sequential() model.add(layers.InputLayer(input_shape=input_shape)) model.add(layers.Conv2D( lters=conv_ lters, kernel_size=kernel_size, activation='relu')) model.add(layers.MaxPooling2D(pool_size=pool_size)) model.add(layers.Conv2D( lters=conv_ lters*2, kernel_size=kernel_size, activation='relu')) model.add(layers.MaxPooling2D(pool_size=pool_size)) model.add(layers.Flatten()) model.add(layers.Dense(dense_units, activation='relu')) model.add(layers.Dense(num_classes, activation='softmax')) model.compile(optimizer=Adam(learning_rate=learning_rate), loss='sparse_categorical_crossentropy', # for multi-class classi cation metrics=['accuracy']) fi fi fi fi fi fi fi fi 37 Teşekkürler!
0
You can add this document to your study collection(s)
Sign in Available only to authorized usersYou can add this document to your saved list
Sign in Available only to authorized users(For complaints, use another form )