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

Nesne algılama, otonom sürüş, gözetim ve tıbbi görüntüleme gibi uygulamalar için görüntülerde veya videolarda nesneleri tanıyıp konumlandırabilen bir bilgisayarlı görü görevidir. Viola-Jones algılayıcısı ve Destek Vektör Makineleri (SVM) ile Yönlendirilmiş Gradyan Histogramı (HOG) gibi önceki nesne algılama yöntemleri, elle tasarlanmış özelliklere ve kayan pencerelere dayanıyordu. Bu yöntemler, çeşitli şekil ve boyutlarda birden fazla nesne içeren karmaşık sahnelerde nesneleri doğru şekilde algılamakta çoğu zaman zorlanıyordu.
Bölge tabanlı Evrişimli Sinir Ağları (R-CNN), nesne algılama yaklaşımımızı değiştirdi. Bilgisayarlı görü tarihinde önemli bir dönüm noktasıdır. Ultralytics YOLOv8 gibi modellerin nasıl ortaya çıktığını anlamak için önce R-CNN gibi modelleri anlamamız gerekir.
Ross Girshick ve ekibi tarafından oluşturulan R-CNN model mimarisi, bölge önerileri oluşturur, önceden eğitilmiş bir Evrişimli Sinir Ağı (CNN) ile özellikleri çıkarır, nesneleri sınıflandırır ve sınırlayıcı kutuları iyileştirir. Bu süreç göz korkutucu görünebilir, ancak bu makalenin sonunda R-CNN'nin nasıl çalıştığını ve neden bu kadar etkili olduğunu net bir şekilde anlayacaksın. Hadi 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, özellikleri çıkarma ve sınırlayıcı kutularını iyileştirirken nesneleri sınıflandırma. Her adımı birlikte inceleyelim.

Şekil 1. R-CNN nasıl çalışır.
Bölge önerileri: RCNN'nin 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, nesne içerebilecek olası alanlardır. Selective Search gibi yöntemler, görüntüyü farklı parçalara ayırarak renk, doku ve şekil gibi çeşitli özelliklerini inceler. Selective Search, görüntüyü daha küçük parçalara bölerek başlar, ardından daha büyük ilgi alanları oluşturmak için benzer parçaları birleştirir. Bu işlem yaklaşık 2.000 bölge önerisi oluşturulana kadar devam eder.

Şekil 2. Selective Search nasıl çalışır.
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ı bölgeleri verimli bir şekilde işleyebilir. Bölge önerilerini kullanmak, kapsamlılık ile hesaplama verimliliği arasında denge sağlar.
Görüntü özelliklerini çıkarma: Ayrıntıları yakalama#
R-CNN modelinin nesne algılama sürecindeki sonraki adım, bölge önerilerinden özellikleri çıkarmaktır. Her bölge önerisi, CNN'nin beklediği tutarlı bir boyuta (örneğin 224x224 piksel) yeniden boyutlandırılır. Yeniden boyutlandırma, CNN'nin her öneriyi verimli bir şekilde işlemesine yardımcı olur. Çarpıtmadan önce, daha iyi özellik çıkarımı için çevresinden daha fazla bilgi sağlamak amacıyla her bölge önerisinin boyutu, bölgenin etrafına 16 piksel ek bağlam dahil edecek şekilde 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'ye verilir. CNN, kenarlar, dokular ve desenler gibi önemli ayrıntıları yakalayan yüksek boyutlu özellik vektörlerini çıkarmak için her bölgeyi işler. Bu özellik vektörleri, bölgelerdeki temel bilgileri sıkıştırır. Ham görüntü verilerini, modelin daha ileri analizlerde kullanabileceği bir biçime dönüştürürler. Sonraki aşamalarda nesnelerin doğru şekilde sınıflandırılması ve konumlandırılması, görsel bilgilerin anlamlı verilere dönüştürülmesine bağlıdır.

Şekil 3. AlexNet kullanarak bir bölge önerisinden özellikleri çıkarma.
Nesne sınıflandırma: Algılanan nesneleri belirleme#
Üçüncü adım, bu bölgelerdeki 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'de bu amaçla genellikle Destek Vektör Makineleri (SVM) kullanılır. Her SVM, özellik vektörlerini analiz ederek belirli bir bölgenin o sınıfa ait bir örnek içerip içermediğine karar vermek ve belirli bir nesne sınıfını tanımak üzere eğitilir. Temel olarak 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 örnekleri birbirinden ayırt etmeyi öğrenir. Sınırlayıcı kutu regresyonu, başlangıçta önerilen sınırlayıcı kutuları gerçek nesne sınırlarına daha iyi uyacak şekilde ayarlayarak algılanan nesnelerin konumunu ve boyutunu daha da iyileştirir. R-CNN modeli, sınıflandırma ile sınırlayıcı kutu regresyonunu birleştirerek nesneleri tanımlayabilir ve doğru şekilde konumlandırabilir.

Şekil 4. Sınırlayıcı kutu regresonu örneği. (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, aynı nesne için çoğu zaman birden fazla örtüşen sınırlayıcı kutu oluşturur. Bu algılamaları iyileştirmek ve en doğru kutuları korumak için Maksimum Olmayan Bastırma (NMS) uygulanır. Model, NMS uygulayarak gereksiz ve örtüşen kutuları eler ve yalnızca güven skoru en yüksek algılamaları korur.
NMS, tüm sınırlayıcı kutuların güven skorlarını (algılanan bir nesnenin gerçekte mevcut olma olasılığını gösterir) değerlendirerek ve daha yüksek skorlu kutularla önemli ölçüde örtüşenleri bastırarak çalışır.

Şekil 5. Maksimum olmayan bastırma örneği. (kaynak: towardsdatascience.com)
NMS adımlarının özeti:
- 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 Birleşim Üzerinden Kesişim (IoU) temelinde bu kutuyla önemli ölçüde örtüşen tüm kutular kaldırılır.
- Yineleme: Bu işlem, sonraki en yüksek skorlu kutu için tekrarlanır ve tüm kutular işlenene kadar devam eder.
Hepsini bir araya getirdiğimizde R-CNN modeli; bölge önerileri oluşturarak, bir CNN ile özellikleri çıkararak, nesneleri sınıflandırıp sınırlayıcı kutu regresyonuyla konumlarını iyileştirerek ve yalnızca en doğru algılamaları korumak üzere 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 sunduğu için nesne algılama tarihinde öncü bir modeldir. R-CNN'den önce nesne algılama modelleri hız ile kesinlik arasında denge kurmakta zorlanıyordu. R-CNN'nin bölge önerileri oluşturma ve özellik çıkarımı için CNN'leri kullanma yöntemi, görüntülerdeki nesnelerin hassas şekilde konumlandırılmasını ve tanımlanmasını sağlar.
R-CNN; verimliliği ve doğruluğu daha da artıran Fast R-CNN, Faster R-CNN ve Mask R-CNN gibi modellerin önünü açtı. Derin öğrenmeyi bölge tabanlı analizle birleştiren R-CNN, alanda yeni bir standart belirledi ve çeşitli gerçek dünya uygulamalarının önünü açtı.
R-CNN ile tıbbi görüntülemeyi dönüştürme#
R-CNN'nin ilgi çekici kullanım alanlarından biri tıbbi görüntüleme dir. R-CNN modelleri, MRI ve BT taramaları gibi tıbbi görüntülerde beyin tümörleri dahil olmak üzere farklı tümör türlerini algılamak ve sınıflandırmak için kullanılmıştır. R-CNN modelinin tıbbi görüntülemede kullanılması tanı doğruluğunu artırır ve radyologların kötü huylu tümörleri erken aşamada belirlemesine yardımcı olur. R-CNN'nin küçük ve erken evredeki tümörleri bile algılayabilmesi, kanser gibi hastalıkların tedavisinde ve prognozunda önemli bir fark yaratabilir.

Şekil 6. R-CNN kullanılarak beyin tümörlerinin algılanması.
R-CNN modeli, tümör algılamanın yanı sıra 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ı algılayabilir 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 algılama, daha iyi hasta sonuçları sağlayabilir. Sağlık hizmeti sağlayıcıları, anomalileri belirleme ve konumlandırmada R-CNN'nin hassasiyetinden yararlanarak tıbbi tanıların güvenilirliğini ve hızını artırabilir. Nesne algılama tanı sürecini kolaylaştırırken hastalar zamanında ve doğru tedavi planlarından yararlanabilir.
R-CNN'nin sınırlamaları ve ardılları#
Etkileyici olmasına rağmen R-CNN'nin yüksek hesaplama karmaşıklığı ve yavaş çıkarım süreleri gibi bazı dezavantajları vardır. Bu dezavantajlar, R-CNN modelini gerçek zamanlı uygulamalar için uygunsuz hale getirir. Bölge önerileri ile sınıflandırmayı ayrı adımlara ayırmak, daha düşük verimlilikte performansa yol açabilir.
Yıllar içinde çeşitli nesne algılama modelleri ortaya çıktı ve bu sorunları ele aldı. Fast R-CNN, bölge önerileri ile 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 ayrıntılı algılamalar için piksel düzeyinde segmentasyon ekler.

Şekil 7. R-CNN, Fast R-CNN, Faster R-CNN ve Mask R-CNN'nin karşılaştırılması.
Faster R-CNN ile yaklaşık aynı dönemde YOLO (You Only Look Once) serisi, gerçek zamanlı nesne algılamayı ilerletmeye başladı. YOLO modelleri, sınırlayıcı kutuları ve sınıf olasılıklarını ağ üzerinden tek geçişte tahmin eder. Örneğin Ultralytics YOLOv8, birçok bilgisayarlı görü görevi için gelişmiş özelliklerle daha yüksek doğruluk ve hız sunar.
Önemli çıkarımlar#
RCNN, derin öğrenmenin nesne algılamayı nasıl değiştirebileceğini göstererek bilgisayarlı görü alanında çığır açtı. Başarısı, alanda birçok yeni fikre ilham verdi. Faster R-CNN ve YOLO gibi daha yeni modeller RCNN'nin eksikliklerini gidermek için ortaya çıkmış olsa da katkısı, hatırlanması gereken büyük 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 yalnızca makinelerin dünyayı anlama biçimini iyileştirmekle kalmayacak, aynı zamanda birçok sektörde ilerlemeye de yol açacak. Nesne algılamanın geleceği heyecan verici görünüyor!
Yapay zekâ hakkında keşfetmeye devam etmek ister misin? Ultralytics topluluğunun bir parçası ol! En yeni yapay zekâ yeniliklerimizi görmek için GitHub depomuzu incele. Tarım ve üretim gibi çeşitli sektörlere yönelik yapay zekâ çözümlerimize göz at. Öğrenmek ve ilerlemek için bize katıl!









