🖼️ Yapay Zeka ile Görüntü İşleme: Temel Kavramlar
Görüntü işleme, bilgisayarların görüntüleri anlamasına ve yorumlamasına olanak tanıyan bir alandır. Yapay zeka (YZ) ile birleştiğinde, bu alanda çok daha karmaşık ve güçlü uygulamalar geliştirmek mümkün hale gelir. Bu rehberde, görüntü işlemenin temel kavramlarına ve YZ ile nasıl entegre edildiğine odaklanacağız.
- 🧠 Görüntü İşleme Nedir? Görüntü işleme, dijital görüntülerin bilgisayar algoritmaları kullanılarak analiz edilmesi ve manipüle edilmesidir. Amaç, görüntüdeki bilgiyi çıkarmak, iyileştirmek veya değiştirmektir.
- 🤖 Yapay Zeka ve Görüntü İşleme İlişkisi: YZ, özellikle derin öğrenme, görüntü işlemede devrim yaratmıştır. Derin öğrenme modelleri, büyük miktarda veriden öğrenerek karmaşık görüntü tanıma ve sınıflandırma görevlerini gerçekleştirebilir.
- 📊 Temel Görüntü İşleme Adımları:
- 📸 Görüntü Alma: Görüntünün bir kamera veya başka bir sensör aracılığıyla elde edilmesi.
- 🧹 Ön İşleme: Görüntünün kalitesini artırmak için gürültü giderme, kontrast ayarı gibi işlemler.
- 🔍 Özellik Çıkarımı: Görüntüdeki önemli özelliklerin (kenarlar, köşeler, dokular) belirlenmesi.
- 🎯 Sınıflandırma/Tanıma: Özelliklere dayanarak görüntünün ne olduğunu belirleme.
🐍 Python ile Görüntü İşlemeye Giriş
Python, basit sözdizimi ve zengin kütüphane desteği sayesinde görüntü işleme projeleri için ideal bir dildir. Bu bölümde, Python kullanarak temel görüntü işleme işlemlerini nasıl gerçekleştireceğinizi öğreneceksiniz.
- ⚙️ Gerekli Kütüphaneler:
- 📦 OpenCV (cv2): Görüntü işleme için kapsamlı bir kütüphane.
- 🔢 NumPy: Diziler ve matematiksel işlemler için temel bir kütüphane.
- 📈 Matplotlib: Görüntüleri ve grafikleri görselleştirmek için kullanılır.
- 💻 Kurulum: Bu kütüphaneleri pip kullanarak kurabilirsiniz:
pip install opencv-python numpy matplotlib
- 🖼️ Görüntü Okuma ve Görüntüleme:
OpenCV ile bir görüntüyü okumak ve Matplotlib ile görüntülemek için aşağıdaki kodu kullanabilirsiniz:
import cv2
import matplotlib.pyplot as plt
# Görüntüyü oku
img = cv2.imread('ornek_goruntu.jpg')
# OpenCV BGR formatında okur, Matplotlib RGB formatında gösterir
img_rgb = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
# Görüntüyü göster
plt.imshow(img_rgb)
plt.show()
- 🎨 Temel Görüntü İşleme İşlemleri:
- 📐 Yeniden Boyutlandırma: Görüntünün boyutunu değiştirmek.
- ⚪⚫ Gri Tonlamaya Dönüştürme: Renkli bir görüntüyü gri tonlamaya dönüştürmek.
- 🌫️ Filtreleme: Görüntüdeki gürültüyü azaltmak veya kenarları belirginleştirmek için filtreler uygulamak.
📐 Görüntü Yeniden Boyutlandırma
python
import cv2
img = cv2.imread('ornek_goruntu.jpg')
resized_img = cv2.resize(img, (500, 400)) # Genişlik: 500, Yükseklik: 400
cv2.imshow('Orijinal Görüntü', img)
cv2.imshow('Yeniden Boyutlandırılmış Görüntü', resized_img)
cv2.waitKey(0)
cv2.destroyAllWindows()
⚪⚫ Gri Tonlamaya Dönüştürme
python
import cv2
img = cv2.imread('ornek_goruntu.jpg')
gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
cv2.imshow('Orijinal Görüntü', img)
cv2.imshow('Gri Tonlamalı Görüntü', gray_img)
cv2.waitKey(0)
cv2.destroyAllWindows()
🧠 Derin Öğrenme ile Görüntü Tanıma
Derin öğrenme, özellikle evrişimli sinir ağları (CNN'ler), görüntü tanıma alanında büyük başarılar elde etmiştir. CNN'ler, görüntüdeki özellikleri otomatik olarak öğrenerek nesneleri yüksek doğrulukla tanıyabilir.
- 🧱 Evrişimli Sinir Ağları (CNN): CNN'ler, evrişim katmanları, havuzlama katmanları ve tam bağlantılı katmanlardan oluşur. Bu katmanlar, görüntüdeki özellikleri hiyerarşik olarak öğrenir.
- 📚 Hazır Modeller: TensorFlow, Keras ve PyTorch gibi derin öğrenme kütüphaneleri, önceden eğitilmiş modeller sunar. Bu modelleri kendi projelerinizde kullanarak hızlı sonuçlar elde edebilirsiniz. Örneğin:
- 📱 MobileNet: Mobil cihazlar için optimize edilmiş hafif bir model.
- 🌐 VGG16: Daha derin ve karmaşık bir model.
- ⚙️ ResNet: Çok derin ağlar için tasarlanmış bir model.
- 💻 Örnek Kod (Keras ile):
from tensorflow.keras.applications import MobileNetV2
from tensorflow.keras.preprocessing import image
from tensorflow.keras.applications.mobilenet_v2 import preprocess_input, decode_predictions
import numpy as np
# Modeli yükle
model = MobileNetV2(weights='imagenet')
# Görüntüyü yükle ve yeniden boyutlandır
img_path = 'ornek_goruntu.jpg'
img = image.load_img(img_path, target_size=(224, 224))
# Görüntüyü diziye dönüştür ve ön işle
x = image.img_to_array(img)
x = np.expand_dims(x, axis=0)
x = preprocess_input(x)
# Tahmin yap
predictions = model.predict(x)
decoded_predictions = decode_predictions(predictions, top=3)[0]
# Sonuçları yazdır
for i, (imagenet_id, label, score) in enumerate(decoded_predictions):
print(f"{i+1}: {label} ({score:.2f})")
🚀 Görüntü İşleme Uygulama Alanları
Yapay zeka ile görüntü işleme, birçok farklı sektörde kullanılmaktadır. İşte bazı örnekler:
- 🚗 Otonom Araçlar: Görüntü işleme, araçların çevreyi algılamasına ve güvenli bir şekilde hareket etmesine yardımcı olur.
- 🏥 Tıp: Tıbbi görüntüleme (röntgen, MR) analizinde hastalıkların teşhisine yardımcı olur.
- 🏭 Üretim: Kalite kontrol süreçlerinde hataları tespit etmek için kullanılır.
- 🔒 Güvenlik: Yüz tanıma sistemleri ve güvenlik kameraları ile izleme ve güvenlik uygulamalarında kullanılır.
- agriculture 🌾 Tarım: Ürünlerin sağlığını değerlendirmek ve hasat zamanını belirlemek için kullanılır.
Bu rehberde, yapay zeka ile görüntü işlemenin temel kavramlarına ve Python ile nasıl uygulanabileceğine dair bir giriş yaptık. Bu bilgileri kullanarak kendi projelerinizi geliştirmeye başlayabilirsiniz.