R-CNN Nedir?
Yayın: · Son güncelleme:
R-CNN Nedir? Kısaca
R-CNN (Regions with CNN features, CNN özellikli bölgeler), bir görüntüde nesne olabilecek aday bölgeleri önerip her birini evrişimli sinir ağıyla sınıflandıran iki aşamalı bir nesne tespit yöntemidir. Derin öğrenmeyi nesne tespitine taşıyan öncü çalışmalardan biridir.

R-CNN nedir?
R-CNN, Ross Girshick ve arkadaşlarının 2014'te yayımladığı bir nesne tespiti yöntemidir. Adı "Regions with CNN features" ifadesinden gelir. O dönemde evrişimli sinir ağları görüntü sınıflandırmada büyük başarı göstermişti; R-CNN bu gücü, bir görüntüde birden fazla nesnenin yerini bulma problemine uyguladı ve tespit doğruluğunda önemli bir sıçrama sağladı.
Nasıl çalışır?
R-CNN dört adımdan oluşur:
- Bölge önerisi: Seçici arama (selective search) gibi klasik bir algoritma, görüntüde nesne içerebilecek yaklaşık iki bin aday bölge önerir.
- Özellik çıkarma: Her aday bölge sabit bir boyuta getirilir ve ayrı ayrı bir CNN'den geçirilerek özellik vektörü elde edilir.
- Sınıflandırma: Bu özellikler, her sınıf için eğitilmiş sınıflandırıcılarla (orijinal çalışmada destek vektör makineleri) değerlendirilir.
- Kutu düzeltme: Sınırlayıcı kutuların konumu bir regresyon modeliyle iyileştirilir.
Sınırları
Her aday bölge için CNN'in yeniden çalıştırılması yöntemi çok yavaşlatıyordu; tek bir görüntünün işlenmesi saniyeler sürebiliyordu. Eğitim de birkaç ayrı aşamadan oluştuğu için karmaşıktı.
R-CNN ailesi
| Model | Ana yenilik |
|---|---|
| Fast R-CNN | Görüntü bir kez CNN'den geçirilir, bölgeler özellik haritasından kesilir |
| Faster R-CNN | Bölge önerileri de bir sinir ağıyla (Region Proposal Network) üretilir |
| Mask R-CNN | Her nesne için piksel düzeyinde maske ekler |
Bu gelişmelerle iki aşamalı tespit hem hızlandı hem de daha doğru hâle geldi. Hız öncelikliyse YOLO gibi tek aşamalı yöntemler, yüksek doğruluk ve ayrıntılı analiz gerekiyorsa R-CNN ailesi sıklıkla tercih edilir. Bugün özgün R-CNN yerine çoğunlukla bu geliştirilmiş sürümler kullanılır.
Sıkça Sorulan Sorular
R-CNN ile Faster R-CNN arasındaki fark nedir?
R-CNN aday bölgeleri klasik bir algoritmayla bulur ve her bölge için CNN'i ayrı ayrı çalıştırır. Faster R-CNN ise görüntüyü bir kez işler ve aday bölgeleri de bir sinir ağıyla üretir; bu da onu çok daha hızlı yapar.
R-CNN neden iki aşamalı yöntem olarak anılır?
Çünkü önce nesne olabilecek bölgeleri önerir, ardından bu bölgeleri sınıflandırıp kutuları düzeltir. YOLO gibi tek aşamalı yöntemler ise bu iki işi tek geçişte yapar.