Ana Sayfa Arama Galeri Video Yazarlar
Üyelik
Üye Girişi
Yayın/Gazete
Yayınlar
Kategoriler
Servisler
Nöbetçi Eczaneler Sayfası Nöbetçi Eczaneler Hava Durumu Namaz Vakitleri
WhatsApp
Sosyal Medya

Yapay Zeka ile Görüntü İşleme: Adım Adım Rehber

Yapay zeka ile görüntü işleme rehberi: temel bilgiler, kütüphaneler, veri setleri ve adım adım uygulama projeleri ile öğrenin.

Yapay zeka ile görüntü işleme rehberi: temel bilgiler, kütüphaneler, veri

Yapay Zeka ve Görüntü İşlemenin Gücü

Yapay zeka ile görüntü işleme, dijital görsellerin bilgisayarlar tarafından analiz edilip anlamlandırılması sürecini çok daha akıllı hale getirir. Eskiden yalnızca piksel bazlı filtreleme ve basit kenar algılama yöntemleriyle yapılan işlemler, bugün yapay zeka algoritmaları sayesinde karmaşık nesne tanıma, yüz algılama ve tıbbi görüntü analizi gibi alanlarda yüksek doğrulukla gerçekleştirilebiliyor.

Görüntü işleme, kameralar, sensörler ve dijital fotoğraflar üzerinden alınan görsellerin işlenmesini kapsar. Yapay zeka ise bu süreçte, verilerden öğrenen ve yeni senaryolara uyum sağlayan “akıllı” modeller oluşturur. Artık telefonlarımızdaki yüz tanıma sistemi, trafik akışı tespit eden şehir kameraları veya hastanelerde çekilen MR görüntülerinin analizi, hep bu teknoloji sayesinde daha hızlı ve güvenilir bir hale geliyor.

Bu rehberde, yapay zeka ile görüntü işleme adım adım ele alınacak; temel prensiplerden ileri seviye projelere kadar her aşama örneklerle açıklanacak.

Görüntü İşlemenin Temelleri

Görüntü işleme, dijital görsellerin bilgisayarlar tarafından anlaşılabilir hale getirilmesi sürecidir. Bu süreci anlamak için önce temel kavramlara göz atalım:

  • Piksel: Bir görüntünün en küçük yapı taşıdır. Her pikselin belirli bir rengi ve parlaklığı vardır.
  • Renk Kanalları: RGB (Kırmızı, Yeşil, Mavi) formatındaki kanallar, renkli görüntülerin dijital ortamda temsil edilmesini sağlar.
  • Çözünürlük: Bir görüntüdeki toplam piksel sayısıdır. Çözünürlük arttıkça detay seviyesi yükselir.

Dijital Görüntülerin Matematiksel Temeli

Dijital görüntüler, 2 boyutlu matrisler şeklinde saklanır. Her matris hücresi, piksel değerini (renk veya gri ton) içerir. İşleme sırasında bu matrisler üzerinde matematiksel dönüşümler yapılır. Örneğin, parlaklık artırma, kontrast ayarlama veya kenar algılama filtreleri, piksel değerlerinin sayısal olarak değiştirilmesiyle gerçekleşir.

AI Öncesi Klasik Görüntü İşleme Teknikleri

Yapay zeka öncesi dönemde görüntü işleme, kural tabanlı ve sabit algoritmalarla yapılıyordu. Bazı yaygın teknikler:

  • Filtreler: Gaussian Blur, Median Filter gibi yöntemlerle gürültü azaltma.
  • Kenar Algılama: Sobel, Canny gibi algoritmalarla nesne sınırlarını tespit etme.
  • Morfolojik İşlemler: Bölge büyütme/küçültme, şekil tespiti için kullanılır.

Bu klasik teknikler, günümüzde hâlâ bazı ön işleme adımlarında yer alır; ancak karmaşık görevlerde yapay zekanın öğrenme yeteneği sayesinde çok daha üst düzey sonuçlar elde edilir.

Yapay Zeka ile Görüntü İşleme Mantığı

Yapay zeka, görüntü işlemede klasik yöntemlerin ötesine geçerek görsellerden anlam çıkarma konusunda öğrenebilen sistemler oluşturur. Burada iki temel yaklaşım ön plana çıkar: Makine öğrenmesi ve derin öğrenme.

Makine Öğrenmesi vs. Derin Öğrenme

  • Makine öğrenmesi (ML): Özellikleri (feature) insan tarafından çıkarılan ve algoritmaya sunulan yöntemdir. Örneğin, bir meyve tanıma projesinde “renk, şekil, kenar” gibi özellikler önce belirlenir, ardından SVM, Decision Tree gibi algoritmalara öğretilir.
  • Derin öğrenme (DL): Özellik çıkarma sürecini kendi içinde yapan, katmanlı yapıya sahip sinir ağlarını kullanır. En popüler model türü CNN’dir.

CNN (Convolutional Neural Networks) Mantığı

CNN, görseller üzerindeki yerel özellikleri filtrelerle keşfeder. Katmanlar:

  1. Convolution Layer: Görüntüden özellik çıkarır.
  2. Pooling Layer: Özellikleri küçültür, modelin boyutunu azaltır.
  3. Fully Connected Layer: Son özellikleri sınıflandırır.

CNN, özellikle nesne tanıma, yüz algılama, el yazısı okuma gibi görevlerde yüksek doğruluk sağlar.

TensorFlow ve PyTorch ile Görsel Veri İşleme

  • TensorFlow: Google tarafından geliştirilmiş, güçlü bir derin öğrenme kütüphanesi.
  • PyTorch: Facebook tarafından geliştirilen, esnek ve araştırma dostu framework.

Her ikisi de CNN, RNN, GAN gibi mimarileri hızlıca kurmak için kullanılır. Görsel veriler için OpenCV, Pillow gibi kütüphanelerle birlikte çalışır.

Gerekli Araçlar ve Kurulum

Yapay zeka ile görüntü işleme projelerine başlamadan önce doğru araçları ve ortamı kurmak gerekir. Bu aşama, hem kodlama sürecinizi hızlandırır hem de model eğitimi sırasında kararlı sonuçlar almanızı sağlar.

Python Kurulumu

Görüntü işlemede en yaygın kullanılan dil Python’dur.

  • İndirme: Python.org üzerinden en güncel versiyonu edinin.
  • Ortam Yönetimi: Anaconda gibi paket yöneticileri, kütüphane kurulumlarını kolaylaştırır.

Temel Kütüphaneler

  • OpenCV: Görselleri okuma, işleme ve gösterme.
  • TensorFlow / Keras: Derin öğrenme modellerini kurma ve eğitme.
  • PyTorch: Esnek ve araştırma dostu derin öğrenme framework’ü.
  • NumPy: Matris ve sayısal hesaplamalar.
  • Matplotlib / Seaborn: Grafikleri ve çıktıları görselleştirme.

Çalışma Ortamı

  • Google Colab: Ücretsiz GPU/TPU desteği, bulut tabanlı çalışma imkanı.
  • Jupyter Notebook: Yerel ortamda kodlama ve not alma kolaylığı.

Veri Seti Kaynakları

  • Kaggle: Geniş topluluk ve binlerce açık veri seti.
  • ImageNet: Milyonlarca etiketli görüntü.
  • COCO Dataset: Nesne algılama ve segmentasyon için zengin veri kümesi.

Bu kurulum tamamlandığında, görüntü işleme projelerine doğrudan geçiş yapabilirsiniz.

Veri Seti Hazırlığı

Yapay zeka ile görüntü işleme projelerinde başarının temelinde, temiz ve dengeli bir veri seti bulunur. Modelinizin doğru öğrenebilmesi için verilerin düzenlenmesi, ön işleme tabi tutulması ve gerektiğinde artırılması gerekir.

Veri Toplama

  • Güvenilir kaynaklardan veri indirin (Kaggle, COCO, ImageNet).
  • Projeye özgü veri gerekiyorsa, kendi kamera veya telefonunuzla fotoğraf çekerek veri oluşturun.

Boyutlandırma ve Normalize Etme

  • Görseller farklı boyutlarda olabilir.→ OpenCV veya Pillow ile tüm görselleri aynı çözünürlüğe getirin (ör. 224×224 piksel).
  • Pixel değerlerini normalleştirin (0–255’den 0–1 aralığına)

image = image / 255.0

Veri Temizleme

  • Bozuk, bulanık veya etiketi yanlış verilmiş görselleri çıkarın.
  • Etiket isimlerini standart hale getirin (küçük harf, boşluk yerine _).

Data Augmentation (Veri Artırma)

Modelin genelleme yeteneğini artırmak için:

  • Döndürme (rotation)
  • Çevirme (flip)
  • Yakınlaştırma/Uzaklaştırma (zoom)
  • Parlaklık/Kontrast değişimi

Keras örneği:

from tensorflow.keras.preprocessing.image import ImageDataGenerator

datagen = ImageDataGenerator(
rotation_range=20,
width_shift_range=0.2,
height_shift_range=0.2,
horizontal_flip=True
)

Labeling (Etiketleme)

  • Nesne algılama projelerinde görseller üzerindeki nesneleri işaretlemek için LabelImg, CVAT gibi araçları kullanın.

İlk Basit Proje: Nesne Tanıma

Bu aşamada, yapay zeka ile görüntü işlemenin en temel ve etkili uygulamalarından biri olan nesne tanıma örneğini adım adım gerçekleştireceğiz. Bu proje, hem CNN mantığını pratikte görmenizi sağlar hem de veri setiyle çalışma becerinizi geliştirir.

Proje Senaryosu

Amaç: Basit bir veri setinden (örneğin CIFAR‑10) görsellerdeki nesneleri tanıyan bir model yapmak.

Veri sınıfları: uçak, araba, kuş, kedi, köpek, gemi, kamyon vb.

Adım 1: Veri Setini Yükleme

TensorFlow doğrudan CIFAR‑10’u sağlar:

from tensorflow.keras.datasets import cifar10

(x_train, y_train), (x_test, y_test) = cifar10.load_data()

Görsellerin boyutu: 32×32 piksel, renkli (RGB).

Adım 2: Ön İşleme

  • Pixel değerlerini normalize etme:

x_train = x_train / 255.0
x_test = x_test / 255.0

Etiketleri kategorik forma çevirme:

from tensorflow.keras.utils import to_categorical
y_train = to_categorical(y_train)
y_test = to_categorical(y_test)

Adım 3: CNN Modelini Kurma

from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense

model = Sequential([
Conv2D(32, (3,3), activation=’relu’, input_shape=(32,32,3)),
MaxPooling2D((2,2)),
Conv2D(64, (3,3), activation=’relu’),
MaxPooling2D((2,2)),
Flatten(),
Dense(64, activation=’relu’),
Dense(10, activation=’softmax’)
])

Adım 4: Modeli Eğitme

model.compile(optimizer=’adam’, loss=’categorical_crossentropy’, metrics=[‘accuracy’])
model.fit(x_train, y_train, epochs=10, validation_data=(x_test, y_test))

Adım 5: Sonuçları Analiz Etme

Eğitim sonunda accuracy değerini ve test setinden örnekleri gözlemleyerek modelin başarısını değerlendirin.

İpucu: Eğitim süresini kısaltmak ve doğruluğu artırmak için Data Augmentation tekniklerini önceki bölümde öğrendiğimiz şekilde entegre edebilirsiniz.

Orta Seviye Proje: Yüz Algılama ve Tanıma

Yüz algılama ve tanıma, yapay zeka ile görüntü işlemenin en popüler ve gerçek dünyada en çok kullanılan uygulamalarından biridir. Bu proje, hem klasik yöntemleri hem de derin öğrenme tabanlı çözümleri bir arada gösterecek.

Aşama 1: Yüz Algılama – Haar Cascade

Haar Cascade algoritması, OpenCV tarafından sağlanan hızlı ve hafif bir yüz algılama yöntemidir.

Kurulum:

pip install opencv-python

Kullanım:

import cv2

face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + ‘haarcascade_frontalface_default.xml’)
img = cv2.imread(‘people.jpg’)
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
faces = face_cascade.detectMultiScale(gray, scaleFactor=1.1, minNeighbors=5)

for (x, y, w, h) in faces:
cv2.rectangle(img, (x, y), (x+w, y+h), (255,0,0), 2)

cv2.imshow(‘Faces’, img)
cv2.waitKey(0)
cv2.destroyAllWindows()

Avantaj: Hızlı ve düşük donanım gerektirir.

Dezavantaj: Işık, açı ve çerçeve değişimlerine karşı hassas.

Aşama 2: Yüz Tanıma – Dlib Kullanımı

Dlib, yüzlerin 128 boyutlu yüz özelliği vektörleri ile tanımlanmasını sağlar.

Kurulum:

pip install dlib face_recognition

Kullanım:

import face_recognition

known_image = face_recognition.load_image_file(“person1.jpg”)
known_encoding = face_recognition.face_encodings(known_image)[0]

test_image = face_recognition.load_image_file(“test.jpg”)
test_encoding = face_recognition.face_encodings(test_image)[0]

results = face_recognition.compare_faces([known_encoding], test_encoding)
print(“Tanıma sonucu:”, results)

Aşama 3: CNN ile Yüz Tanıma

Derin öğrenme yaklaşımında, yüzlerin piksel tabanlı özellikleri CNN ile öğrenilir. Bu yöntem, FaceNet veya VGGFace gibi önceden eğitilmiş modellerle kolayca uygulanabilir.

Avantajlar:

  • Yüksek doğruluk
  • Işık ve açı değişimine karşı dayanıklılık
  • Büyük veri setlerinde daha iyi performans

Kullanım Alanları

  • Güvenlik sistemleri
  • Katılım takip sistemleri
  • Kişiselleştirilmiş pazarlama (ör. mağaza içi müşteri analizi)

İleri Seviye Proje: Tıbbi Görüntü Analizi

Tıbbi görüntü analizi, yapay zekanın en kritik ve hayat kurtaran uygulama alanlarından biridir. Burada amaç, MR (Manyetik Rezonans), CT (Bilgisayarlı Tomografi) ve röntgen gibi medikal görüntülerden hastalık belirtilerini otomatik olarak tespit etmektir.

Aşama 1: Veri Seti Seçimi

  • ChestX-ray Dataset: Akciğer hastalıkları için.
  • BraTS Dataset: Beyin tümörü tespiti (MR görüntüleri).
  • ISIC Dataset: Deri kanseri analizleri (dermatoloji).

Tıbbi veriler, hasta gizliliği ve yasal izinler çerçevesinde kullanılmalıdır.

Aşama 2: Ön İşleme

  • Görüntü boyutlarını standart hale getirme (örneğin 256×256 piksel).
  • Kontrast ve parlaklık optimizasyonu (CLAHE gibi teknikler).
  • Çoğu zaman grayscale format kullanmak, modeli hızlandırır.

Aşama 3: Model Kurulumu

CNN yapısı derinleştirilerek; veya özel mimariler (U-Net, ResNet50) kullanılarak hastalık tespiti yapılabilir.

Örnek U-Net kullanımı:

import tensorflow as tf
from tensorflow.keras import layers, models

inputs = tf.keras.Input((256, 256, 1))
# Encoder, bottleneck ve decoder blokları tanımlanır
# …
model = models.Model(inputs, outputs)

Aşama 4: Performans Ölçümü

  • Doğruluk (Accuracy) yerine F1-Score, Recall gibi metrikler daha kritiktir.
  • Yanlış negatif sonuçları (False Negative) minimize etmek öncelikli olmalıdır.

Aşama 5: Etik ve Güvenlik

  • Yanlış tahminlerin hastalara zarar verme riski vardır.
  • Sistemler mutlaka doktor onayı ile kullanılmalıdır.
  • Kullanılan veriler ISO/IEC 27001 gibi veri güvenliği standartlarına uygun olmalıdır.

Bu proje, gerçek dünyada yüksek hassasiyet gerektirdiği için güçlü donanım (GPU) ve büyük veri setleri ile yapılmalıdır.

Performans ve Optimizasyon

Yapay zeka ile görüntü işleme projelerinde, sadece yüksek doğruluk sağlamak yetmez; modelin hızlı, verimli ve ölçeklenebilir olması gerekir. Bu aşamada veri işlem hızını artırma, model boyutunu küçültme ve optimum performans elde etme tekniklerini öğreneceğiz.

1. Donanım Optimizasyonu

  • GPU Kullanımı: TensorFlow/PyTorch modellerinde NVIDIA GPU ile eğitim süresini ciddi şekilde kısaltabilirsiniz.
  • TPU Kullanımı: Google Colab veya Vertex AI üzerinde TPU ile çok daha yüksek hız.
  • Batch Size Ayarlaması: GPU belleğine uygun batch size seçimi.

# GPU kullanım kontrolü
import tensorflow as tf
print(“GPU:”, tf.config.list_physical_devices(‘GPU’))

2. Model Boyutunu Küçültme

  • Pruning: Önemsiz nöron bağlantılarını kaldırarak kaynak kullanımını azaltır.
  • Quantization: Ağırlıkları düşük bit (ör. 8-bit) formatına çevirerek hem model boyutunu hem de işlem hızını artırır.

import tensorflow_model_optimization as tfmot
prune_low_magnitude = tfmot.sparsity.keras.prune_low_magnitude

3. Hızlandırma Teknikleri

  • Model Tuning: Öğrenme oranı (learning rate), optimizer tipi gibi hiperparametreleri optimize etmek.
  • Transfer Learning: Önceden eğitilmiş modelleri yeniden eğiterek zaman tasarrufu sağlamak.
  • Mixed Precision Training: Eğitimi daha az bellekle ve daha hızlı yapmak için kullanılır.

4. Veri İşleme Optimizasyonu

  • Parallel Data Loading: Veri yükleme sırasında CPU çekirdeklerini paralel kullanmak.
  • Cache & Prefetch: Veri önbellekleme ve ön yükleme ile bekleme süresini azaltmak.

5. Performans İzleme

  • Eğitim süresince TensorBoard veya Weights & Biases ile metrikleri canlı takip ederek hataları hızlı yakalamak.

Optimizasyon, sadece hız değil; modelin kararlılığını ve taşınabilirliğini de artırır. Özellikle mobil ve IoT uygulamaları için küçük, hızlı ve doğru modeller tercih edilir.

Gerçek Dünya Entegrasyonu

Yapay zeka ile geliştirdiğiniz görüntü işleme projeleri, laboratuvar ortamında mükemmel çalışabilir. Ancak gerçek dünyada işe yaraması için uygulama entegrasyonu, kullanıcı deneyimi ve güvenlik unsurlarını da düşünmeniz gerekir. Bu bölümde, modelinizi pratik olarak hayata geçirme yollarını ele alacağız.

1. Mobil ve Masaüstü Uygulamalar

  • Android / iOS: TensorFlow Lite veya ONNX ile modeli mobil formatlara dönüştürün.
  • Masaüstü: Python GUI (PyQt, Tkinter) veya ElectronJS ile görsel arayüz oluşturun.

# TensorFlow Lite dönüştürme örneği
tflite_convert –saved_model_dir=saved_model –output_file=model.tflite

2. Web Servisleri

  • REST API: Flask veya FastAPI ile modeli bir HTTP servisi olarak sunabilirsiniz.
  • Bulut Tabanlı Çözümler: AWS Lambda, Google Cloud Functions veya Azure Functions ile serverless entegrasyon.

3. IoT ve Edge Cihazlar

  • Raspberry Pi, Jetson Nano gibi küçük cihazlarda hafifletilmiş modeller kullanın.
  • Kamera modülleri ile gerçek zamanlı görüntü akışı sağlayın.

4. Güvenlik ve Gizlilik

  • Kullanıcı verilerini yalnızca lokal olarak işleyin; buluta göndermeden önce anonim hale getirin.
  • GDPR ve KVKK gibi veri koruma yasalarına uyum sağlayın.

5. Kullanıcı Deneyimi (UX)

  • Arayüzde işlem süresini, hata mesajlarını ve başarı oranlarını net şekilde gösterin.
  • İlk yüklemede örnek veri ile demo modülü ekleyerek kullanıcıyı yönlendirin.

Unutmayın: Gerçek dünya entegrasyonu sadece kod yazmak değil, aynı zamanda ürünü ölçeklenebilir, güvenli ve kullanıcı dostu hale getirmektir.