R-CNN nedir? Kısa bir genel bakış
R-CNN'in seçici arama ve CNN özellik çıkarımından SVM sınıflandırması ve NMS'ye kadar nasıl çalıştığını ve Fast R-CNN ile YOLO'nun önünü nasıl açtığını öğren.
Abirami Vina7 dakikalık okuma
Nesne tespiti, otonom sürüş, gözetim ve tıbbi görüntüleme gibi uygulamalar için görüntülerdeki veya videolardaki nesneleri tanıyıp konumlarını belirleyen bir bilgisayarlı görü görevidir. Viola-Jones tespit edicisi ve Destek Vektör Makineleri (SVM) ile kullanılan Yönlü Gradyan Histogramı (HOG) gibi eski nesne tespit 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 biçimde tespit etmekte çoğu zaman zorlanıyordu.
Bölge Tabanlı Evrişimli Sinir Ağları (R-CNN), nesne tespitine yaklaşımımızı değiştirdi. Bilgisayarlı görü tarihindeki ö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 üretir, ö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 göz korkutucu görünebilir, ancak bu makalenin sonunda R-CNN'in nasıl çalıştığını ve neden bu kadar etkili olduğunu net bir şekilde anlayacaksın.
R-CNN nasıl çalışır?#
R-CNN modelinin nesne algılama süreci üç temel adımdan oluşur: bölge önerileri oluşturma, özellikleri çıkarma ve nesneleri sınırlayıcı kutularını iyileştirerek sınıflandırma. Her adımı birlikte inceleyelim.

Şekil 1. R-CNN nasıl çalışır.
Bölge önerileri: R-CNN'in temel taşı#
İ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ünün renk, doku ve şekil gibi çeşitli özelliklerini inceler ve görüntüyü farklı parçalara ayırır. 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ı yerleri belirlemeye yardımcı olur. Sonraki adımlarda model, tüm görüntü yerine bu belirli alanlara odaklanarak en ilgili bölgeleri verimli bir şekilde işleyebilir. Bölge önerilerini kullanmak, kapsamlılık ile hesaplama verimliliği arasında denge kurar.
Görüntü özelliklerini çıkarma: Ayrıntıları yakalama#
R-CNN modelinin nesne algılama sürecindeki sonraki adım, bölge önerilerinden özellikler çıkarmaktır. Her bölge önerisi, CNN'in beklediği sabit 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. Geometrik dönüşümden önce, özelliklerin daha iyi çıkarılması için çevre hakkında daha fazla bilgi sağlamak amacıyla her bölge önerisinin boyutu, bölgenin çevresine 16 piksel ek bağlam içerecek şekilde biraz genişletilir.
Yeniden boyutlandırılan bölge önerileri, genellikle ImageNet gibi büyük bir veri kümesi üzerinde önceden eğitilmiş AlexNet gibi bir CNN'e aktarılır. CNN, her bölgeyi işleyerek kenarlar, dokular ve örüntüler gibi önemli ayrıntıları yakalayan yüksek boyutlu özellik vektörleri çıkarır. 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ür. Sonraki aşamalarda nesneleri doğru sınıflandırmak ve konumlandırmak, görsel bilgilerin anlamlı verilere dönüştürülmesine bağlıdır.

Şekil 3. AlexNet kullanarak bir bölge önerisinden özellik çıkarma.
Nesne sınıflandırma: Algılanan nesneleri belirleme#
Üçüncü adım, bu bölgelerdeki nesneleri sınıflandırmaktır. Bu, önerilerde bulunan her nesnenin kategorisini veya sınıfını belirlemek anlamına gelir. Ardından çıkarılan özellik vektörleri bir makine öğrenimi sınıflandırıcısından geçirilir.
R-CNN'de bu amaç için genellikle Destek Vektör Makineleri (SVMs) kullanılır. Her SVM, özellik vektörlerini analiz edip belirli bir bölgenin o sınıfa ait bir örnek içerip içermediğine karar vererek belirli bir nesne sınıfını tanımak üzere eğitilir. Başka bir deyişle, her nesne kategorisi için her bölge önerisini o nesne açısından denetleyen ö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ırmayı öğ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 ile sınırlayıcı kutu regresyonunu birleştirerek nesneleri belirleyip doğru şekilde konumlandırabilir.

Şekil 4. Sınırlayıcı kutu regresyonuna ö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, aynı nesne için çoğu zaman birbiriyle örtüşen birden fazla sınırlayıcı kutu üretir. Bu tespitleri iyileştirmek ve en doğru kutuları tutmak için Maksimum Olmayan Bastırma (NMS) uygulanır. Model, NMS uygulayarak yinelenen ve örtüşen kutuları eler ve yalnızca güven skoru en yüksek tespitleri tutar.
NMS, tüm sınırlayıcı kutuların güven skorlarını (algılanan bir nesnenin gerçekten 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ırmaya örnek. (kaynak: towardsdatascience.com)
NMS adımlarının özeti şöyle:
- Sıralama: Sınırlayıcı kutular güven skorlarına göre azalan sırayla sıralanır.
- Seçim: En yüksek skora sahip kutu seçilir ve bu kutuyla önemli ölçüde örtüşen tüm kutular Birleşim Üzerinde Kesişim (IoU) ölçütüne göre kaldırılır.
- Yineleme: Bu işlem, sıradaki en yüksek skorlu kutu için tekrarlanır ve tüm kutular işlenene kadar devam eder.
Özetle R-CNN; bölge önerileri üreterek, 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 tespitleri tutmak için NMS kullanarak nesneleri tespit eder.
R-CNN, nesne algılamada bir dönüm noktasıdır#
R-CNN, doğruluk ve performansı büyük ölçüde artıran yeni bir yaklaşım sunduğu için nesne tespiti tarihinde önemli bir modeldir. R-CNN'den önce nesne tespit modelleri hız ile hassasiyet arasında denge kurmakta zorlanıyordu. R-CNN'in bölge önerileri oluşturma ve özellik çıkarımı için CNN'leri kullanma yöntemi, görüntülerdeki nesnelerin hassas biçimde 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 gerçek dünyadaki çeşitli uygulamaların önünü açtı.
R-CNN ile tıbbi görüntülemeyi dönüştürme#
R-CNN'in ilgi çekici kullanım alanlarından biri tıbbi görüntülemedir. R-CNN modelleri, MR ve BT taramaları gibi tıbbi görüntülerde beyin tümörleri dahil farklı tümör türlerini tespit etmek ve sınıflandırmak için kullanılmıştır. Tıbbi görüntülemede R-CNN modelinin kullanılması tanı doğruluğunu artırır ve radyologların kötü huylu tümörleri erken evrede belirlemesine yardımcı olur. R-CNN'in küçük ve erken evredeki tümörleri bile tespit edebilmesi, kanser gibi hastalıkların tedavisi ve seyri açısından önemli bir fark yaratabilir.

Şekil 6. R-CNN kullanılarak beyin tümörlerinin tespiti.
R-CNN modeli, tümör algılamanın yanı sıra başka tıbbi görüntüleme görevlerinde de kullanılabilir. Örneğin kırıkları belirleyebilir, göz taramalarında retina hastalıklarını algılayabilir ve zatürre ile COVID-19 gibi rahatsızlıklar için akciğer görüntülerini analiz edebilir. Tıbbi sorun ne olursa olsun, erken teşhis hasta sonuçlarının iyileşmesini sağlayabilir. Anormallikleri belirleme ve konumlandırmada R-CNN'in hassasiyetinden yararlanan sağlık hizmeti sağlayıcıları, tıbbi teşhislerin güvenilirliğini ve hızını artırabilir. Nesne algılama, teşhis sürecini kolaylaştırarak hastaların zamanında ve doğru tedavi planlarından yararlanmasını sağlar.
R-CNN'in sınırlamaları ve ardılları#
Etkileyici olsa da R-CNN'in 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 hâle getirir. Bölge önerileriyle sınıflandırmayı ayrı adımlara bölmek, verimliliğin düşmesine yol açabilir.
Yıllar içinde bu sorunları ele alan çeşitli nesne algılama modelleri ortaya çıktı. Fast R-CNN, CNN'i tüm görüntü üzerinde bir kez çalıştırır ve süreci hızlandırmak için her bölge önerisinin özelliklerini ortak özellik haritasından havuzlar. Faster R-CNN, öneri oluşturmayı kolaylaştırmak için Bölge Öneri Ağı (RPN) sunarken Mask R-CNN, daha ayrıntılı algılamalar için piksel düzeyinde bölütleme ekler.

Şekil 7. R-CNN, Fast R-CNN, Faster R-CNN ve Mask R-CNN karşılaştırması.
Faster R-CNN ile yaklaşık aynı dönemde YOLO (Yalnızca Bir Kez Bak) serisi, gerçek zamanlı nesne tespitini geliştirmeye 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 bilgisayarlı görü görevi için gelişmiş özelliklerle doğruluğu ve hızı artırırken Ultralytics YOLO26 gibi daha yeni modeller NMS'yi tamamen kaldırarak daha da ileri gider.
Önemli çıkarımlar#
R-CNN, derin öğrenmenin nesne tespitini nasıl dönüştürebileceğini göstererek bilgisayarlı görü alanında bir dönüm noktası oldu. Başarısı alanda birçok yeni fikre ilham verdi. Faster R-CNN ve YOLO gibi daha yeni modeller R-CNN'in kusurlarını gidermiş olsa da R-CNN'in katkısı, hatırlanması gereken çok önemli bir kilometre taşıdır.
Araştırmalar sürdükçe daha iyi ve daha hızlı nesne tespit modelleri göreceğiz. Bu gelişmeler yalnızca makinelerin dünyayı anlama biçimini iyileştirmekle kalmayacak, birçok sektörde ilerleme de sağlayacak.
Yapay zekâyı keşfetmeye devam etmek ister misin? Ultralytics topluluğuna katıl! En yeni yapay zekâ yeniliklerimizi görmek için GitHub depomuzu incele. Tarım ve üretim gibi farklı sektörlere yönelik yapay zekâ çözümlerimize göz at. Öğrenmek ve ilerlemek için bize katıl!
Yazan
Yorumlar
Soru sor, sonuçlarını paylaş veya başka birine yardım et.










