Bilgisayarla görüde üç temel görev: Neyi, nerede ve hangi pikseller?
Bilgisayarla görü projelerinde en sık karışan konu, “modelden nasıl bir çıktı beklediğiniz”dir. Bunu üç kısa soruyla ayırabilirsiniz:
- Sınıflandırma (classification): Görüntüde ne var?
- Nesne tespiti (object detection): Görüntüde ne var ve nerede?
- Segmentasyon (image segmentation): Görüntüdeki her piksel neye ait?
Bu ayrım; veri etiketleme (anotasyon) türünü, seçeceğiniz model ailesini, değerlendirme raporlarını ve üretimdeki gecikme/performans dengesini doğrudan etkiler.
1) Görüntü sınıflandırma (classification) nedir, ne zaman yeterlidir?
Sınıflandırma, bir görüntüye tek etiket (örn. “kedi”) veya çoklu etiket (örn. “kedi” + “iç mekân”) atamayı hedefler. Genel olarak tek tek nesnelerin konumunu üretmez; amaç görüntü düzeyinde bir karardır.
Sınıflandırma için tipik kullanım örnekleri
- “Bu görüntüde ürün var mı/yok mu?” gibi hızlı filtreleme.
- Kalite kontrol: “kusurlu/kusursuz” ayrımı (kutu çizmeden).
- İçerik etiketleme: arama/indeksleme için görsel etiketler.
Ne zaman sınıflandırma yetmez?
Birden fazla nesnenin ayrı ayrı sayılması, yerinin bilinmesi veya birbirinden ayrılması gerekiyorsa sınıflandırma tek başına yeterli değildir. Örneğin “görüntüde kedi var mı?” sınıflandırmadır; “kaç kedi var ve nerede?” nesne tespitidir.
2) Nesne tespiti (object detection): sınıf + bounding box
Nesne tespiti, görüntüdeki her nesne için sınıf etiketi ve sınır kutusu (bounding box) üretir. Pratikte YOLOv5 gibi tespit odaklı kütüphaneler bu çıktıyı “kutu + sınıf” olarak doğrudan verir. (src3)
Detectron2 de tespit (ve segmentasyon) modelleri için hazır bileşenler sunar. (src2)
Tespit için tipik kullanım örnekleri
- Perakende/raf analizi: ürünlerin yeri ve sayımı.
- Güvenlik/izleme: belirli sınıfların görüntüde bulunması ve konumlanması.
- Robotik: nesnenin konumuna göre eylem planlama (yaklaşma/kavrama).
Tek aşamalı ve iki aşamalı yaklaşımlar (genel sezgi)
- Tek aşamalı (one-stage) yöntemler: Tespit çıktısını tek bir akışta üretmeyi hedefler; pratikte hız/uygulama kolaylığı nedeniyle sık tercih edilir. YOLOv5 bu ailede konumlanır. (src3)
- İki aşamalı (two-stage) yöntemler: Bölge önerisi (proposal) ve ardından sınıflandırma/iyileştirme gibi adımlar kullanır. Mask R-CNN, iki aşamalı bir hattın üzerine maske dalı ekleyerek instance segmentation hedefler. (src1)
Not: “Şu yaklaşım her zaman daha iyi” gibi genellemeler risklidir. Hedef donanım, giriş çözünürlüğü, veri dağılımı ve eğitim ayarları sonuçları ciddi biçimde değiştirir. Uygulama tarafında bu denemeleri hızlandırmak için YOLOv5 ve Detectron2 dokümantasyonu pratik bir başlangıç sağlar. (src3) (src2)
3) Segmentasyon: semantic vs instance (piksel düzeyi)
Segmentasyon, görüntüdeki pikselleri etiketlemeyi hedefler. En yaygın iki alt görev:
- Semantic segmentation: Her piksele bir sınıf atanır (örn. “yol”, “gökyüzü”, “insan”). Aynı sınıftaki farklı nesneler genellikle birbirinden ayrılmaz.
- Instance segmentation: Aynı sınıftaki farklı nesneler ayrı örnekler olarak ayrılır; her nesne için ayrı maske üretilir.
Segmentasyonun uygulama alanları (tıp, otonom sistemler, endüstriyel görüntüleme vb.) ve pratik zorlukları (sınır doğruluğu, küçük nesneler, etiketleme maliyeti) 2024 tarihli derleme çalışmalarda kapsamlı biçimde tartışılır. (src4)
Mask R-CNN neden sık referans verilir?
Mask R-CNN, iki aşamalı ROI tabanlı mimari üzerine bir maske dalı ekleyerek instance segmentation için temel bir yaklaşım sunar. Bu yaklaşım, literatürde yaygın referans noktalarından biridir. (src1)
Uygulama tarafında Detectron2, Mask R-CNN ve benzeri modelleri modüler biçimde denemenizi kolaylaştıran bir kütüphanedir (model zoo, eğitim/evaluasyon bileşenleri vb.). (src2)
4) Hızlı karşılaştırma: Hangi görev, hangi çıktı, hangi etiket?
| Görev |
Çıktı |
Anotasyon (etiket) türü |
Ne zaman seçilir? |
| Sınıflandırma |
Görüntü etiketi(leri) |
Görüntü düzeyi etiket |
Konum önemli değil; hızlı etiketleme/filtreleme |
| Nesne tespiti |
Sınıf + bounding box |
Kutu (box) anotasyonu |
Sayma, konumlandırma, “nerede?” sorusu |
| Semantic segmentation |
Piksel sınıf haritası |
Piksel düzeyi sınıf maskesi |
Alan/zemin gibi sınıfların kapsamı önemli |
| Instance segmentation |
Her nesne için ayrı maske |
Piksel düzeyi örnek maskesi |
Nesneleri tek tek ayırmak gerekiyor |
5) Veri ve anotasyon: COCO-tarzı JSON ve YOLO formatları (pratik bakış)
Pratikte, kullandığınız eğitim kütüphanesi hangi anotasyon formatını “yerel olarak” destekliyorsa iş akışınız da ona göre şekillenir. Örneğin:
- Detectron2, COCO-tarzı anotasyonlarla (COCO benzeri JSON şemalarıyla) çalışmayı destekleyen veri yükleme ve değerlendirme bileşenleri sunar. (src2)
- YOLOv5, YOLO ailesinde yaygın olan etiket dosyası düzenleriyle (kutu tabanlı anotasyon) eğitim/evaluasyon akışını dokümante eder. (src3)
Bu noktada kritik olan, “hangi format daha iyi?”den çok araç zincirinizle sorunsuz çalışan ve ekipçe sürdürülebilir bir format seçmektir.
Anotasyon planı oluşturma (kontrol listesi)
- Hedef çıktı: Kutu mu gerekiyor, maske mi? (Tespit vs segmentasyon kararı burada netleşir.)
- Sınıf sözlüğü: Sınıflar net mi, çakışma/örtüşme kuralları yazılı mı?
- Zor örnekler politikası: Kısmi görünüm, bulanıklık, yansıma gibi durumlarda etiketleme kuralı belirleyin.
- Format uyumu: Eğitim kütüphanenizin beklediği formatla anotasyon aracınızın çıktısı uyumlu mu?
- Kalite örneklemesi: Etiketlerin bir bölümünü ikinci gözle düzenli kontrol edecek basit bir süreç kurun.
Segmentasyon tarafında (özellikle sınır bölgeleri ve küçük nesneler) etiket tutarlılığı, modelin öğrenebileceği sinyali belirgin biçimde etkiler. (src4)
6) Model seçimi: YOLOv5 mi, Mask R-CNN mi?
Doğru soru genellikle “hangi model daha iyi?” değil, hangi gereksinime daha uygun? sorusudur:
- Hız/gerçek zaman öncelikliyse, tespit için YOLOv5 gibi akışlar pratik bir başlangıç olabilir (eğitim, çıkarım ve dışa aktarma adımları repo dokümanlarında anlatılır). (src3)
- Piksel düzeyinde çıktı gerekiyorsa (özellikle instance maskeleri), Mask R-CNN yaklaşımı ve Detectron2 ekosistemi güçlü bir temel sağlar. (src1) (src2)
Lisans ve sürüm notu: Açık kaynak projelerde sürümler, bağımlılıklar ve kullanım koşulları değişebilir. Üretim/ticari kullanım düşünüyorsanız, güncel bilgiler için doğrudan resmi depo/dokümantasyonu kontrol edin. (src3)
7) Değerlendirme raporlarını okumak: IoU ve AP/mAP pratikte ne demek?
Tespit/segmentasyon projelerinde değerlendirme çıktılarında sık görülen iki kavram vardır:
- IoU (Intersection over Union): Tahmin edilen kutu/maske ile gerçek etiketin örtüşmesini özetleyen bir örtüşme ölçütü olarak kullanılır.
- AP/mAP (Average Precision / mean AP): Bir eşik/ayar kümesi boyunca precision-recall davranışını özetleyen skorlar olarak raporlanır. Uygulamada araçlar çoğu zaman farklı IoU eşikleri için AP değerlerini de gösterir.
Önemli pratik nokta: Bu metriklerin raporlanış biçimi, kullandığınız eğitim/evaluasyon aracına ve seçtiğiniz protokole göre değişebilir. Örneğin YOLOv5 eğitim/evaluasyon çıktılarında mAP benzeri değerleri raporlar; Detectron2 ise evaluator bileşenleri üzerinden AP raporları üretir. (src3) (src2)
Pratik uyarılar
- Aynı protokol olmadan kıyas yapmayın: Farklı giriş boyutu, farklı veri bölme (split) veya farklı eşikler doğrudan karşılaştırmayı bozar.
- İş hedefiyle hizalayın: Bazı uygulamalarda kaçırmamak (recall) daha kritik, bazılarında yanlış alarmı azaltmak (precision) daha kritiktir.
- Hız ölçümünü yerinde yapın: FPS/latency donanım, batch ve ön/son işleme adımlarından güçlü şekilde etkilenir.
8) Uygulama yol haritası: 1 haftalık prototipten üretim planına
A) Hızlı prototip (minimum uygulanabilir deneme)
- Problem tanımı: “Neyi tespit edeceğiz/segment edeceğiz?” ve “çıktı nerede kullanılacak?” sorularını yazın.
- 10–50 örnek etiketleme: Küçük bir setle format/kalite sorunlarını erkenden görün.
- Hazır modelle başlangıç: Tespitte YOLOv5; instance segmentation’da Detectron2 + Mask R-CNN ile ilk sonuçları alın. (src3) (src2)
- Basit hata analizi: Küçük nesne kaçırma, benzer sınıfların karışması, kutu kayması, maske sınır hatası gibi hata tiplerini etiketleyin.
B) Veri stratejisi (kaliteyi büyütmek)
- Veri çeşitliliği: Aydınlatma, açı, arka plan ve cihaz çeşitliliğini bilinçli artırın.
- Hata odaklı veri toplama: Modelin en çok zorlandığı senaryolardan yeni örnekler ekleyin.
- Etiket yönergesi: Etiketleyiciler için kısa ve net kurallar hazırlayın; segmentasyonda bu özellikle kritiktir. (src4)
C) Üretim (deployment) düşünceleri
Üretimde tipik kaygılar; gecikme, bellek, izlenebilirlik, model güncelleme ve geri alma (rollback) süreçleridir. YOLOv5 deposu, farklı ortamlara dışa aktarma ve çıkarım akışı hakkında pratik notlar içerir. (src3)
Detectron2 ise modüler yapısıyla deneme-yanılma döngülerini hızlandırabilir ve araştırma prototiplerinden ürünleşmeye geçişte sık kullanılır. (src2)
9) Sık yapılan hatalar
- Görevi yanlış seçmek: Kutu yeterliyken maske istemek etiket maliyetini artırır; maske gerekirken kutuyla yetinmek ürün kalitesini düşürebilir.
- Raporları bağlamından koparmak: Aynı veri/protokol yoksa skorları doğrudan kıyaslamak sağlıklı değildir.
- Etiket tutarlılığını hafife almak: Segmentasyonda sınır kalitesi ve zor örnek kuralları çok etkilidir. (src4)
- Sürüm/koşulları kontrol etmemek: Üretime gitmeden önce resmi depo/dokümantasyon üzerinden güncel notları kontrol edin. (src3)
Kaynaklar ve kapsam (kısa not)
Bu yazıda Mask R-CNN’in yöntemsel çerçevesi için orijinal makale referans alınmıştır; pratik kullanım ayrıntıları için Detectron2 ve YOLOv5 dokümantasyonlarına bağlantı verilmiştir. Segmentasyonun uygulama alanları ve zorlukları için 2024 derleme çalışmaya atıf yapılmıştır. (src1) (src2) (src3) (src4)
Özet: En hızlı doğru başlangıç
En verimli yaklaşım: önce doğru görevi seçin (sınıflandırma/tespit/segmentasyon), küçük bir veriyle prototip çıkarın, ardından hata analizine göre veri ve model stratejinizi büyütün. Instance segmentation için Mask R-CNN güçlü bir referans noktasıdır; Detectron2 ile denemek kolaylaşır. (src1) (src2) Gerçek zamanlı tespitte ise YOLOv5 ekosistemi hızlı ilerlemek için pratik bir başlangıç sunar. (src3)
Yorumlar