Bilgisayarla Görü Nedir?
Bilgisayarla görü (Computer Vision), bilgisayarların dijital görüntülerden ve videolardan anlamlı bilgi çıkarmasını, yorumlamasını ve bu bilgiye dayanarak kararlar almasını sağlayan yapay zeka alanıdır. İnsan görsel algısını taklit etmeyi hedefleyen bu alan, fotoğraflardan nesneleri tanımaktan otonom araçların yol navigasyonuna kadar geniş bir uygulama yelpazesi sunar.
İnsan beyni, görsel bilgiyi işlemek için nöronların karmaşık ağlarını kullanır. Bilgisayarla görü, bu biyolojik süreçten ilham alarak yapay sinir ağları ve matematiksel algoritmalar aracılığıyla benzer yetenekleri dijital sistemlere kazandırır. Son yıllarda derin öğrenme ve özellikle evrişimsel sinir ağları (CNN) sayesinde bilgisayarla görü, birçok görevde insan düzeyine yaklaşmış ve hatta bazı spesifik alanlarda insan performansını aşmıştır.
Bilgisayarla Görünün Tarihsel Gelişimi
Bilgisayarla görü alanının temelleri 1960'lı yıllarda atılmıştır. MIT'de Lawrence Roberts'ın üç boyutlu nesnelerin iki boyutlu görüntülerden tanınması üzerine çalışmaları, alanın öncü araştırmaları arasında yer alır.
Önemli kilometre taşları:
- 1960'lar: Kenar tespiti ve temel şekil tanıma algoritmaları
- 1970'ler: David Marr'ın görsel işleme teorisi ve hesaplamalı görü çerçevesi
- 1980'ler: Özellik çıkarma (feature extraction) yöntemlerinin geliştirilmesi
- 1990'lar: Viola-Jones yüz tespiti algoritması ve SIFT özellik tanımlayıcısı
- 2012: AlexNet'in ImageNet yarışmasını kazanarak derin öğrenme çağını başlatması
- 2015-Günümüz: ResNet, YOLO, Vision Transformers ve diffusion modelleri
Görüntü İşlemenin Temel Kavramları
Dijital Görüntü Yapısı
Dijital bir görüntü, piksellerden oluşan iki boyutlu bir matristir. Her piksel, görüntünün en küçük birimi olup bir veya birden fazla sayısal değer içerir. Gri tonlamalı görüntülerde tek bir değer (0-255), renkli görüntülerde ise genellikle üç kanal (Kırmızı, Yeşil, Mavi - RGB) bulunur.
Temel Görüntü İşleme Operasyonları
- Konvolüsyon (Convolution): Bir çekirdek (kernel) matrisinin görüntü üzerinde kaydırılarak uygulanmasıdır. Bulanıklaştırma, keskinleştirme ve kenar tespiti gibi işlemlerin temelini oluşturur
- Eşikleme (Thresholding): Piksel değerlerini belirli bir eşik değerine göre ikili (siyah-beyaz) veya çok seviyeli olarak sınıflandırır
- Morfolojik işlemler: Erozyon, genişleme, açma ve kapama gibi yapısal dönüşümler
- Histogram eşitleme: Görüntünün kontrastını iyileştirmek için piksel dağılımını normalize eder
- Kenar tespiti: Sobel, Canny ve Laplacian gibi filtrelerle nesne sınırlarını belirler
Evrişimsel Sinir Ağları (CNN)
Evrişimsel Sinir Ağları, bilgisayarla görünün temel yapı taşıdır. CNN'ler, görüntüdeki uzamsal kalıpları hiyerarşik olarak öğrenen özel bir derin öğrenme mimarisidir.
CNN'in Temel Katmanları
- Konvolüsyon Katmanı: Öğrenilebilir filtreler (kerneller) kullanarak görüntüden özellik haritaları (feature maps) çıkarır. İlk katmanlar kenar ve doku gibi düşük seviyeli özellikleri, derin katmanlar ise nesne parçaları ve semantik kavramlar gibi yüksek seviyeli özellikleri öğrenir
- Havuzlama Katmanı (Pooling): Özellik haritalarının uzamsal boyutlarını azaltarak hesaplama maliyetini düşürür ve çevrisel değişmezlik sağlar. Max pooling ve average pooling en yaygın yöntemlerdir
- Aktivasyon Fonksiyonu: ReLU (Rectified Linear Unit) en yaygın kullanılan aktivasyon fonksiyonudur. Doğrusal olmayan dönüşümler uygulayarak modelin karmaşık kalıpları öğrenmesini sağlar
- Tam Bağlantılı Katman (Fully Connected): Son katmanlarda yer alarak öğrenilen özellikleri sınıflandırma kararlarına dönüştürür
Önemli CNN Mimarileri
| Mimari | Yıl | Katman Sayısı | Temel Katkı |
|---|---|---|---|
| LeNet-5 | 1998 | 7 | İlk başarılı CNN (el yazısı tanıma) |
| AlexNet | 2012 | 8 | Derin öğrenme devrimini başlattı |
| VGGNet | 2014 | 16-19 | Küçük filtrelerle derin ağlar |
| GoogLeNet/Inception | 2014 | 22 | Inception modülleri ile verimli mimari |
| ResNet | 2015 | 50-152 | Residual bağlantılar ile çok derin ağlar |
| EfficientNet | 2019 | Değişken | Ölçekleme stratejisi ile verimlilik |
ResNet ve Artık Bağlantılar
ResNet (Residual Network), 2015 yılında Microsoft Research tarafından geliştirilen ve derin ağların eğitimindeki kaybolan gradyan problemini çözen çığır açıcı bir mimaridir. Artık bağlantılar (skip connections) sayesinde gradyanlar, ağın derinliklerine doğrudan akabilir ve yüzlerce katmanlı ağların eğitilmesini mümkün kılar.
Nesne Tespiti (Object Detection)
Nesne tespiti, bir görüntüdeki nesneleri hem sınıflandıran hem de konumlarını belirleyen (sınırlayıcı kutu - bounding box) görevdir. Bu görev, sınıflandırmadan daha karmaşıktır çünkü tek bir görüntüde birden fazla nesne olabilir ve her birinin konumu belirlenmelidir.
YOLO (You Only Look Once)
YOLO, 2016 yılında tanıtılan ve gerçek zamanlı nesne tespitinde devrim yaratan bir algoritmadır. Temel yaklaşımı, nesne tespitini tek bir sinir ağı geçişiyle yapmasıdır.
YOLO'nun çalışma prensibi:
- Görüntü S×S boyutunda bir ızgaraya bölünür
- Her ızgara hücresi, B adet sınırlayıcı kutu ve güven skoru tahmin eder
- Aynı anda sınıf olasılıkları hesaplanır
- Non-Maximum Suppression (NMS) ile yinelenen tespitler elenir
YOLO versiyonları hızla gelişmiştir. YOLOv8 ve ötesi, hem doğruluk hem de hız açısından etkileyici performans sunmaktadır.
SSD (Single Shot MultiBox Detector)
SSD, farklı ölçeklerdeki özellik haritalarından nesne tespiti yapan bir algoritmadır. Çok ölçekli özellik haritaları kullanarak farklı boyutlardaki nesneleri etkili bir şekilde tespit edebilir.
Faster R-CNN
İki aşamalı bir nesne tespit yöntemi olan Faster R-CNN, Region Proposal Network (RPN) ile aday bölgeleri oluşturur ve ardından bu bölgeleri sınıflandırır. Gerçek zamanlı uygulamalar için YOLO ve SSD'ye kıyasla daha yavaş olmasına rağmen, yüksek doğruluk gerektiren uygulamalarda tercih edilir.
Görüntü Segmentasyonu
Görüntü segmentasyonu, bir görüntüdeki her pikseli bir sınıfa atama görevidir. Nesne tespitinden farklı olarak, nesnelerin kesin sınırlarını piksel düzeyinde belirler.
Semantik Segmentasyon
Görüntüdeki her pikseli bir sınıfa atar ancak aynı sınıftaki farklı örnekleri ayırt etmez. Örneğin, bir sokak sahnesindeki tüm arabalar aynı renkte boyanır. U-Net ve FCN (Fully Convolutional Network) bu alandaki öncü mimarilerdir.
Örnek Segmentasyonu (Instance Segmentation)
Aynı sınıftaki farklı örnekleri de ayırt eder. Mask R-CNN, bu görev için en yaygın kullanılan modeldir ve her nesne için hem sınırlayıcı kutu hem de piksel maskesi üretir.
Panoptik Segmentasyon
Semantik ve örnek segmentasyonunu birleştiren en kapsamlı segmentasyon yaklaşımıdır. Hem sayılabilir nesneleri (araba, insan) örnekler bazında hem de sayılamayan alanları (gökyüzü, yol) semantik olarak segmente eder.
Yüz Tanıma (Face Recognition)
Yüz tanıma, bilgisayarla görünün en yaygın kullanılan uygulamalarından biridir. Bu teknoloji iki temel görevi kapsar:
- Yüz tespiti (Face Detection): Görüntüdeki yüzlerin konumlarını belirleme
- Yüz tanıma (Face Recognition): Tespit edilen yüzleri tanımlama veya doğrulama
Modern Yüz Tanıma Yaklaşımları
Modern yüz tanıma sistemleri, derin öğrenme tabanlı yüz temsilleri (face embeddings) kullanır. FaceNet, ArcFace ve DeepFace gibi modeller, yüzleri yüksek boyutlu vektör uzayında temsil eder. Bu uzayda benzer yüzler birbirine yakın, farklı yüzler birbirinden uzak konumlanır.
Yüz tanıma sürecinin adımları:
- Yüz tespiti (MTCNN, RetinaFace)
- Yüz hizalama (alignment)
- Özellik çıkarma (embedding extraction)
- Karşılaştırma ve eşleştirme
Optik Karakter Tanıma (OCR)
OCR, basılı veya el yazısı metinlerin dijital görüntülerden otomatik olarak okunmasını sağlayan teknolojidir. Belge dijitalleştirme, fatura işleme, plaka tanıma ve tarihsel arşivlerin dijitalleştirilmesi gibi alanlarda yaygın olarak kullanılır.
Modern OCR sistemlerinin bileşenleri:
- Metin tespiti: Görüntüdeki metin bölgelerinin konumlarını belirleme
- Metin tanıma: Tespit edilen bölgelerdeki karakterleri okuma
- Son işleme: Dil modelleri ve sözlük kontrolü ile doğruluk artırma
Tesseract, EasyOCR ve PaddleOCR gibi açık kaynaklı araçlar ile Google Vision API ve Azure Computer Vision gibi bulut tabanlı hizmetler, OCR uygulamaları için popüler seçeneklerdir.
Endüstriyel ve Sektörel Uygulamalar
Tıbbi Görüntüleme
Bilgisayarla görü, sağlık alanında devrim yaratmaktadır. Röntgen, MR, BT ve patoloji görüntülerinin analizi için kullanılan AI modelleri, hastalıkların erken teşhisinde doktorlara değerli destek sağlar.
- Akciğer nodülü tespiti ve sınıflandırması
- Retina görüntülerinden diyabetik retinopati tespiti
- Patoloji slaytlarından kanser hücre tanımlama
- Kemik kırıklarının otomatik tespiti
Otonom Araçlar
Otonom sürüş, bilgisayarla görünün en karmaşık ve zorlu uygulamalarından biridir. Bir otonom araç, çevresini algılamak için kameralar, lidar ve radar sensörlerinden gelen verileri gerçek zamanlı olarak işler.
- Yaya, araç ve bisikletli tespiti
- Şerit takibi ve trafik işareti tanıma
- Derinlik tahmini ve 3D sahne anlama
- Hareket planlama ve çarpışma önleme
Endüstriyel Kalite Kontrol
Üretim hatlarında ürün kalitesinin otomatik denetimi, bilgisayarla görünün en yaygın endüstriyel uygulamalarından biridir. Yüzey kusurları, boyut sapmaları, montaj hataları ve ambalaj sorunları gibi kalite problemleri gerçek zamanlı olarak tespit edilebilir.
Tarım ve Hassas Tarım
Drone ve uydu görüntülerinin analizi ile bitki sağlığı izleme, zararlı tespiti, ürün tahmini ve otomatik hasat gibi uygulamalar tarım sektöründe verimliliği artırmaktadır.
Vision Transformers (ViT) ve Güncel Trendler
2020'de tanıtılan Vision Transformer (ViT), NLP alanında büyük başarı kazanan transformer mimarisini görüntü işlemeye uyarlayan çığır açıcı bir çalışmadır. ViT, görüntüyü yamalara (patches) bölerek her yamayı bir token olarak işler ve self-attention mekanizmasını kullanır.
Diffusion Modelleri
Stable Diffusion, DALL-E ve Midjourney gibi metin-görüntü üretim modelleri, bilgisayarla görü alanının en heyecan verici güncel gelişmeleri arasındadır. Bu modeller, metinsel açıklamalardan yüksek kaliteli görüntüler üreterek yaratıcı endüstrileri dönüştürmektedir.
Multimodal Modeller
CLIP, GPT-4V ve Gemini gibi çok modlu modeller, metin ve görüntüyü birlikte anlayarak daha zengin ve bağlamsal bir görsel zeka sunmaktadır. Bu modeller, görsel soru yanıtlama, görüntü açıklama ve görsel muhakeme gibi görevlerde üstün performans gösterir.
Bilgisayarla Görü Araçları ve Kütüphaneleri
- OpenCV: En yaygın kullanılan açık kaynak görüntü işleme kütüphanesi
- PyTorch ve TorchVision: Derin öğrenme modelleri için araçlar ve ön eğitimli modeller
- TensorFlow ve Keras: Google'ın derin öğrenme çerçevesi
- Detectron2: Meta'nın nesne tespiti ve segmentasyon kütüphanesi
- Ultralytics: YOLO modelleri için kapsamlı araç seti
- Albumentations: Görüntü augmentasyonu kütüphanesi
Sonuç
Bilgisayarla görü, yapay zekanın en dinamik ve pratik uygulama alanlarından biridir. CNN mimarilerinden YOLO gibi nesne tespit algoritmalarına, yüz tanımadan OCR'ye, tıbbi görüntülemeden otonom araçlara kadar geniş bir uygulama yelpazesine sahiptir. Vision Transformers ve diffusion modelleri gibi güncel gelişmeler, alanın sınırlarını sürekli genişletmektedir.
Bilgisayarla görü projelerine başlamak isteyenler için OpenCV ile temel görüntü işleme kavramlarını öğrenmek, ardından PyTorch veya TensorFlow ile CNN mimarilerini uygulamak ve son olarak nesne tespiti veya segmentasyon gibi spesifik görevlerde uzmanlaşmak etkili bir yol haritası olacaktır. Bu alandaki hızlı gelişmeler, sürekli öğrenmeyi ve güncel araştırmaları takip etmeyi zorunlu kılmaktadır.