R-CNN nedir? Kısa bir genel bakış
RCNN ve nesne algılama üzerindeki etkisi hakkında bilgi edin. Temel bileşenlerini, uygulamalarını ve Fast RCNN ve YOLO gibi teknikleri ilerletmedeki rolünü ele alacağız.

Object detection, otonom sürüş, gözetim ve tıbbi görüntüleme gibi uygulamalar için görüntülerdeki veya videolardaki nesneleri tanıyabilen ve konumlandırabilen bir bilgisayarla görü görevdir. Viola-Jones dedektörü ve Destek Vektör Makineleri (SVM) ile Yönelimli Gradyanların Histogramı (HOG) gibi daha önceki nesne tespiti yöntemleri, elle tasarlanmış özelliklere ve kayan pencerelere dayanıyordu. Bu yöntemler, genellikle çeşitli şekil ve boyutlarda birden fazla nesne içeren karmaşık sahnelerdeki nesneleri doğru bir şekilde tespit etmekte zorlanıyordu.
Bölge tabanlı Evrişimli Sinir Ağları (R-CNN), nesne tespitiyle başa çıkma şeklimizi değiştirdi. Bu, bilgisayarlı görü tarihinde önemli bir dönüm noktasıdır. Ultralytics YOLOv8 gibi modellerin nasıl ortaya çıktığını anlamak için öncelikle R-CNN gibi modelleri anlamamız gerekir.
Ross Girshick ve ekibi tarafından oluşturulan R-CNN model mimarisi, bölge teklifleri üretir, önceden eğitilmiş bir Evrişimli Sinir Ağı (CNN) ile özellikler çıkarır, nesneleri sınıflandırır ve sınırlayıcı kutuları iyileştirir. Bu göz korkutucu görünse de, bu makalenin sonuna geldiğinde R-CNN'in nasıl çalıştığını ve neden bu kadar etkili olduğunu net bir şekilde anlayacaksın. Bir göz atalım!
R-CNN nasıl çalışır?#
R-CNN modelinin nesne algılama süreci üç ana adımdan oluşur: bölge önerileri oluşturma, özellik çıkarma ve nesneleri sınıflandırırken sınırlayıcı kutularını iyileştirme. Her bir adımı inceleyelim.

Şek 1. R-CNN'in çalışması.
Bölge önerileri: R-CNN'in omurgası#
İlk adımda, R-CNN modeli çok sayıda bölge önerisi oluşturmak için görüntüyü tarar. Bölge önerileri, nesneleri içerebilecek potansiyel alanlardır. Renk, doku ve şekil gibi görüntünün çeşitli yönlerine bakarak onu farklı parçalara ayıran Seçici Arama (Selective Search) gibi yöntemler kullanılır. Seçici Arama, görüntüyü daha küçük parçalara bölerek başlar ve ardından benzer olanları birleştirerek daha büyük ilgi alanları oluşturur. Bu süreç, yaklaşık 2.000 bölge önerisi oluşturulana kadar devam eder.

Şek 2. Seçici Arama'nın (Selective Search) çalışması.
Bu bölge önerileri, bir nesnenin bulunabileceği tüm olası noktaları belirlemeye yardımcı olur. Sonraki adımlarda model, görüntünün tamamı yerine bu belirli alanlara odaklanarak en alakalı kısımları verimli bir şekilde işleyebilir. Bölge önerilerini kullanmak, kapsamlılık ile hesaplama verimliliği arasında bir denge kurar.
Görüntü özellik çıkarma: Detayları yakalama#
R-CNN modelinin nesne algılama sürecindeki bir sonraki adım, bölge önerilerinden özellikleri çıkarmaktır. Her bölge önerisi, CNN'in beklediği tutarlı bir boyuta (örneğin 224x224 piksel) yeniden boyutlandırılır. Yeniden boyutlandırma, CNN'in her öneriyi verimli bir şekilde işlemesine yardımcı olur. Çarpıtma işleminden önce, her bölge önerisinin boyutu, daha iyi özellik çıkarımı için çevredeki bağlamsal bilgileri sağlamak amacıyla etrafına 16 piksellik ek bir bağlam dahil edilerek biraz genişletilir.
Yeniden boyutlandırıldıktan sonra, bu bölge önerileri genellikle ImageNet gibi büyük bir veri kümesi üzerinde önceden eğitilmiş AlexNet gibi bir CNN'e beslenir. CNN, kenarlar, dokular ve desenler gibi önemli detayları yakalayan yüksek boyutlu özellik vektörlerini çıkarmak için her bölgeyi işler. Bu özellik vektörleri, bölgelerden gelen temel bilgileri yoğunlaştırır. Ham görüntü verilerini, modelin daha fazla analiz için kullanabileceği bir formata dönüştürürler. Bir sonraki aşamalarda nesneleri doğru bir şekilde sınıflandırmak ve konumlandırmak, görsel bilgilerin bu anlamlı verilere dönüştürülmesine bağlıdır.

Şek 3. AlexNet kullanarak bir bölge teklifinden özellikler çıkarma.
Nesne sınıflandırma: Algılanan nesneleri tanımlama#
Üçüncü adım, bu bölgeler içindeki nesneleri sınıflandırmaktır. Bu, öneriler içinde bulunan her nesnenin kategorisini veya sınıfını belirlemek anlamına gelir. Çıkarılan özellik vektörleri daha sonra bir makine öğrenimi sınıflandırıcısından geçirilir.
R-CNN durumunda, bu amaçla genellikle Destek Vektör Makineleri (SVM) kullanılır. Her SVM, özellik vektörlerini analiz ederek ve belirli bir bölgenin o sınıftan bir örnek içerip içermediğine karar vererek belirli bir nesne sınıfını tanımak üzere eğitilir. Esasen, her nesne kategorisi için her bölge önerisini o belirli nesne açısından kontrol eden özel bir sınıflandırıcı bulunur.
Eğitim sırasında, sınıflandırıcılara pozitif ve negatif örnekler içeren etiketli veriler verilir:
- Pozitif örnekler: Hedef nesneyi içeren bölgeler.
- Negatif örnekler: Nesneyi içermeyen bölgeler.
Sınıflandırıcılar bu örnekler arasında ayrım yapmayı öğrenir. Sınırlayıcı kutu regresyonu, başlangıçta önerilen sınırlayıcı kutuları gerçek nesne sınırlarıyla daha iyi eşleşecek şekilde ayarlayarak algılanan nesnelerin konumunu ve boyutunu daha da iyileştirir. R-CNN modeli, sınıflandırma ve sınırlayıcı kutu regresyonunu birleştirerek nesneleri tanımlayabilir ve doğru bir şekilde konumlandırabilir.

Şekil 4. Sınırlayıcı kutu regresyonuna bir örnek. (kaynak: towardsdatascience.com)
Hepsini bir araya getirme: NMS ile algılamaları iyileştirme#
Sınıflandırma ve sınırlayıcı kutu regresyonu adımlarından sonra, model genellikle aynı nesne için birden fazla çakışan sınırlayıcı kutu oluşturur. Bu algılamaları iyileştirmek ve en doğru kutuları tutmak için Maksimum Olmayan Bastırma (NMS) uygulanır. Model, NMS uygulayarak gereksiz ve çakışan kutuları eler ve yalnızca en güvenilir algılamaları tutar.
NMS, tüm sınırlayıcı kutuların güven skorlarını (algılanan bir nesnenin gerçekte ne kadar olasılıkla orada olduğunu belirten) değerlendirerek ve daha yüksek skorlu kutularla önemli ölçüde çakışanları bastırarak çalışır.

Şekil 5. Maksimum olmayan bastırma örneği. (kaynak: towardsdatascience.com)
İşte NMS'teki adımların dökümü:
- Sıralama: Sınırlayıcı kutular, güven skorlarına göre azalan sırada sıralanır.
- Seçim: En yüksek skora sahip kutu seçilir ve onunla önemli ölçüde çakışan (Kesişim Üzerinden Birleşim, IoU temelinde) tüm kutular kaldırılır.
- Yineleme: Bu işlem, bir sonraki en yüksek skorlu kutu için tekrarlanır ve tüm kutular işlenene kadar devam eder.
Her şeyi özetlemek gerekirse; R-CNN modeli, bölge önerileri oluşturarak, CNN ile özellikler çıkararak, nesneleri sınıflandırıp sınırlayıcı kutu regresyonu ile konumlarını iyileştirerek ve yalnızca en doğru algılamaları tutan Maksimum Olmayan Bastırma (NMS) kullanarak nesneleri algılar.
R-CNN, nesne algılamada bir dönüm noktasıdır#
R-CNN, doğruluğu ve performansı büyük ölçüde artıran yeni bir yaklaşım getirdiği için nesne algılama tarihindeki çığır açan bir modeldir. R-CNN'den önce nesne algılama modelleri, hız ve hassasiyet arasında denge kurmakta zorlanıyordu. R-CNN'in bölge önerileri oluşturma ve özellik çıkarma için CNN'leri kullanma yöntemi, görüntülerdeki nesnelerin hassas bir şekilde konumlandırılmasına ve tanımlanmasına olanak tanır.
R-CNN; verimliliği ve doğruluğu daha da artıran Fast R-CNN, Faster R-CNN ve Mask R-CNN gibi modellere yol açmıştır. Derin öğrenmeyi bölge tabanlı analizle birleştiren R-CNN, bu alanda yeni bir standart belirlemiş ve çeşitli gerçek dünya uygulamaları için olanaklar yaratmıştır.
Tıbbi görüntülemeyi R-CNN ile dönüştürme#
R-CNN'in ilginç bir kullanım alanı tıbbi görüntüleme alanındadır. R-CNN modelleri, MRI ve BT taramaları gibi tıbbi taramalarda beyin tümörleri gibi farklı tümör türlerini tespit etmek ve sınıflandırmak için kullanılmaktadır. Tıbbi görüntülemede R-CNN modelinin kullanılması teşhis doğruluğunu artırır ve radyologların kötü huylu kitleleri erken aşamada belirlemesine yardımcı olur. R-CNN'in küçük ve erken aşamadaki tümörleri bile tespit edebilme yeteneği, kanser gibi hastalıkların tedavisinde ve prognozunda büyük bir fark yaratabilir.

Şek 6. R-CNN kullanarak beyin tümörlerinin tespiti.
R-CNN modeli, tümör tespitine ek olarak diğer tıbbi görüntüleme görevlerine de uygulanabilir. Örneğin kırıkları belirleyebilir, göz taramalarında retina hastalıklarını tespit edebilir ve zatürre ile COVID-19 gibi durumlar için akciğer görüntülerini analiz edebilir. Tıbbi sorun ne olursa olsun, erken teşhis daha iyi hasta sonuçlarına yol açabilir. R-CNN'in anormallikleri belirleme ve yerelleştirmedeki hassasiyetini uygulayarak sağlık hizmeti sağlayıcıları tıbbi teşhislerin güvenilirliğini ve hızını artırabilir. Nesne tespitinin teşhis sürecini kolaylaştırmasıyla hastalar zamanında ve doğru tedavi planlarından yararlanabilir.
R-CNN'in sınırlamaları ve halefleri#
Etkileyici olsa da R-CNN, yüksek hesaplama karmaşıklığı ve yavaş çıkarım süreleri gibi bazı dezavantajlara sahiptir. Bu dezavantajlar, R-CNN modelini gerçek zamanlı uygulamalar için uygunsuz kılar. Bölge önerilerini ve sınıflandırmaları ayrı adımlara ayırmak, daha az verimli bir performansa yol açabilir.
Yıllar geçtikçe, bu endişeleri gideren çeşitli nesne algılama modelleri ortaya çıktı. Fast R-CNN, bölge önerilerini ve CNN özellik çıkarımını tek bir adımda birleştirerek süreci hızlandırır. Faster R-CNN, öneri oluşturmayı kolaylaştırmak için bir Bölge Öneri Ağı (RPN) sunarken, Mask R-CNN daha detaylı algılamalar için piksel düzeyinde segmentasyon ekler.

Şekil 7. R-CNN, Fast R-CNN, Faster R-CNN ve Mask R-CNN modellerinin karşılaştırılması.
Faster R-CNN ile aynı zamanlarda YOLO (You Only Look Once) serisi, gerçek zamanlı nesne tespitini ilerletmeye başladı. YOLO modelleri, ağ üzerinden tek bir geçişte sınırlayıcı kutuları ve sınıf olasılıklarını tahmin eder. Örneğin, Ultralytics YOLOv8, birçok bilgisayarla görü görevi için gelişmiş özelliklerle gelişmiş doğruluk ve hız sunar.
Öne çıkanlar#
R-CNN, derin öğrenmenin nesne algılamayı nasıl değiştirebileceğini göstererek bilgisayarlı görüde oyunun kurallarını değiştirdi. Başarısı, alandaki birçok yeni fikre ilham verdi. Faster R-CNN ve YOLO gibi daha yeni modeller R-CNN'in kusurlarını gidermek için ortaya çıkmış olsa da, katkısı hatırlanması gereken dev bir dönüm noktasıdır.
Araştırmalar devam ettikçe, daha iyi ve daha hızlı nesne algılama modelleri göreceğiz. Bu gelişmeler sadece makinelerin dünyayı anlama şeklini iyileştirmekle kalmayacak, aynı zamanda birçok endüstride ilerlemelere yol açacaktır. Nesne algılamanın geleceği heyecan verici görünüyor!
Yapay zekayı keşfetmeye devam etmek istiyor musun? Ultralytics topluluğunun bir parçası ol! En son yapay zeka yeniliklerimizi görmek için GitHub depolarımızı incele. Tarım ve imalat gibi çeşitli sektörleri kapsayan yapay zeka çözümlerimize göz at. Öğrenmek ve ilerlemek için bize katıl!






