saplama YOLOv9: Gerçek Zamanlı Nesne Algılamada Bir Atılım - Unite.AI
Bizimle iletişime geçin

Yapay Zeka

YOLOv9: Gerçek Zamanlı Nesne Algılamada Bir Atılım

mm

Yayınlanan

 on

Nesne algılama sayesinde son yıllarda hızlı bir ilerleme kaydetti derin öğrenme YOLO (Yalnızca Bir Kez Bakarsınız) gibi algoritmalar. En son yineleme, YOLOv9, önceki sürümlere göre doğruluk, verimlilik ve uygulanabilirlik açısından büyük iyileştirmeler getiriyor. Bu yazıda YOLOv9'u gerçek zamanlı nesne algılamada yeni bir teknoloji harikası haline getiren yeniliklere dalacağız.

Nesne Algılama Konusunda Hızlı Bir Başlangıç

YOLOv9'daki yeniliklere geçmeden önce nesne algılamanın nasıl çalıştığına kısaca göz atalım. Nesne tespitinin amacı, bir görüntüdeki arabalar, insanlar veya hayvanlar gibi nesneleri tanımlamak ve bulmaktır. Kendi kendini süren arabalar, gözetim sistemleri ve görsel arama gibi uygulamalar için önemli bir yetenektir.

Dedektör, girdi olarak bir görüntüyü alır ve algılanan nesnelerin etrafındaki, her biri ilişkili bir sınıf etiketine sahip olan sınırlayıcı kutuları çıkarır. MS COCO gibi popüler veri kümeleri, bu modelleri eğitmek ve değerlendirmek için binlerce etiketli görüntü sağlar.

Nesne tespitine iki ana yaklaşım vardır:

  • İki aşamalı dedektörler Daha Hızlı R-CNN gibi, önce bölge önerileri üretir, ardından her bölgenin sınırlarını sınıflandırır ve hassaslaştırır. Daha doğru olma eğilimindedirler ancak daha yavaştırlar.
  • Tek aşamalı dedektörler YOLO gibi, tek geçişte doğrudan görüntünün üzerine bir model uygulayın. Çok hızlı çıkarım süreleri için doğruluktan ödün veriyorlar.

YOLO tek aşamalı yaklaşımın öncülüğünü yaptı. Doğruluğu ve verimliliği artırmak için birden fazla sürümde nasıl geliştiğine bakalım.

Önceki YOLO Sürümlerinin İncelenmesi

YOLO (Yalnızca Bir Kez Bakarsınız) model ailesi, orijinal sürümün 2016'da yayınlanmasından bu yana hızlı nesne algılamada ön sıralarda yer aldı. Burada YOLO'nun birden fazla yinelemede nasıl ilerlediğine dair hızlı bir genel bakış var:

  • YOLOv1 sınırlayıcı kutuları ve sınıf olasılıklarını doğrudan tam görüntülerden tek geçişte tahmin etmek için birleşik bir model önerdi. Bu, önceki iki aşamalı modellere kıyasla onu son derece hızlı hale getirdi.
  • YOLOv2 Daha iyi kararlılık için toplu normalleştirme, birden fazla boyutu algılamak için kutuları çeşitli ölçeklerde ve en boy oranlarında sabitleme ve diğer çeşitli optimizasyonlar kullanılarak orijinalin üzerine iyileştirildi.
  • YOLOv3 Darknet-53 adında, aralarında daha fazla katman ve kısayol bulunan yeni bir özellik çıkarıcı ekleyerek doğruluğu daha da artırdı.
  • YOLOv4 Hızlı çıkarımı korurken doğruluğu daha da yükseğe çıkarmak için diğer nesne dedektörlerinden ve segmentasyon modellerinden gelen fikirleri birleştirdi.
  • YOLOv5 YOLOv4'ü PyTorch'ta tamamen yeniden yazdı ve diğer bazı geliştirmelerin yanı sıra CSPDarknet adı verilen yeni bir özellik çıkarma omurgası ekledi.
  • YOLOv6 Performansı daha da artırmak için büyük harici veri kümeleri üzerinde önceden eğitilmiş modellerle mimariyi ve eğitim sürecini optimize etmeye devam etti.

Özetle önceki YOLO versiyonları, model mimarisinde, eğitim tekniklerinde ve ön eğitimde yapılan iyileştirmeler sayesinde daha yüksek doğruluk elde etti. Ancak modeller büyüdükçe ve karmaşıklaştıkça hız ve verimlilik zarar görmeye başlıyor.

Daha İyi Verimlilik İhtiyacı

Birçok uygulama, sınırlı bilgi işlem kaynaklarına sahip cihazlarda gerçek zamanlı olarak çalışmak için nesne algılamayı gerektirir. Modeller büyüdükçe ve hesaplama açısından daha yoğun hale geldikçe dağıtılması pratik olmaz hale gelir.

Örneğin sürücüsüz bir otomobilin, araç içindeki işlemcileri kullanarak nesneleri yüksek kare hızlarında algılaması gerekiyor. Bir güvenlik kamerasının kendi gömülü donanımı içindeki video akışında nesne algılamayı çalıştırması gerekir. Telefonlar ve diğer tüketici cihazları çok sıkı güç ve termal kısıtlamalara sahiptir.

En yeni YOLO versiyonları, çok sayıda parametre ve çarpma toplama işlemleri (FLOP'lar) ile yüksek doğruluk elde eder. Ancak bunun bedeli hız, boyut ve güç verimliliğidir.

Örneğin YOLOv5-L, tek bir 100×1280 görüntüyü işlemek için 1280 milyardan fazla FLOP gerektirir. Bu, birçok gerçek zamanlı kullanım durumu için çok yavaştır. Daha büyük modellerin trendi aynı zamanda aşırı uyum riskini de artırıyor ve genellemeyi zorlaştırıyor.

Bu nedenle, nesne algılamanın uygulanabilirliğini genişletmek için verimliliği artıracak, daha az parametre ve hesaplamayla daha iyi doğruluk elde edecek yollara ihtiyacımız var. Bu zorluğun üstesinden gelmek için YOLOv9'da kullanılan tekniklere bakalım.

YOLOv9 – Daha Az Kaynakla Daha İyi Doğruluk

YOLOv9'un arkasındaki araştırmacılar, daha geniş bir cihaz yelpazesinde gerçek zamanlı performans elde etmek için verimliliği artırmaya odaklandı. İki önemli yenilik getirdiler:

  1. Yeni bir model mimarisi adı verildi Genel Verimli Katman Toplama Ağı (GELAN) Bu, parametreleri ve FLOP'ları en aza indirirken doğruluğu en üst düzeye çıkarır.
  2. Bir eğitim tekniği denir Programlanabilir Gradyan Bilgisi (PGI) Bu, özellikle daha küçük modeller için daha güvenilir öğrenme değişimleri sağlar.

Bu gelişmelerin her birinin verimliliği artırmaya nasıl yardımcı olduğuna bakalım.

GELAN ile Daha Verimli Mimari

Model mimarisinin kendisi, çıkarım sırasında doğruluğu hız ve kaynak kullanımına göre dengelemek için kritik öneme sahiptir. Sinir ağının, giriş görüntülerinden ilgili özellikleri yakalamak için yeterli derinliğe ve genişliğe ihtiyacı vardır. Ancak çok fazla katman veya filtre, modellerin yavaş ve şişirilmesine neden olur.

Yazarlar GELAN'ı mümkün olan en küçük mimariden maksimum doğruluğu elde etmek için özel olarak tasarladılar.

GELAN, bir araya getirilmiş iki ana yapı taşını kullanır:

  • Verimli Katman Toplama Blokları – Bunlar, çok ölçekli özellikleri verimli bir şekilde yakalamak için birden fazla ağ şubesindeki dönüşümleri bir araya getirir.
  • Hesaplamalı Bloklar – CSPNet blokları bilginin katmanlar arasında yayılmasına yardımcı olur. Hesaplama kısıtlamalarına göre herhangi bir blok değiştirilebilir.

GELAN, bu blokları dikkatlice dengeleyip birleştirerek performans, parametreler ve hız arasında hassas bir noktaya ulaşır. Aynı modüler mimari, farklı boyutlardaki model ve donanımlara göre ölçeklenebilir veya küçültülebilir.

Deneyler GELAN'ın önceki YOLO mimarilerine kıyasla daha küçük modellere daha fazla performans sığdırdığını gösterdi. Örneğin GELAN-Small, 7M parametresiyle 11M parametresi YOLOv7-Nano'dan daha iyi performans gösterdi. Ve 20M parametreli GELAN-Medium, 7-35M parametre gerektiren YOLOv40 orta modelleriyle aynı performansı gösterdi.

GELAN, özellikle verimlilik için optimize edilmiş parametreli bir mimari tasarlayarak modellerin daha hızlı ve kaynakları daha kısıtlı cihazlarda çalışmasına olanak tanır. Daha sonra PGI'nın onların daha iyi antrenman yapmalarına nasıl yardımcı olduğunu göreceğiz.

Programlanabilir Gradyan Bilgisi (PGI) ile Daha İyi Eğitim

Sınırlı kaynaklarla doğruluğu en üst düzeye çıkarmak için model eğitimi de aynı derecede önemlidir. YOLOv9 yazarları, güvenilmez gradyan bilgilerinin neden olduğu daha küçük modellerin eğitiminde sorunlar tespit etti.

Renk Geçişleri Eğitim sırasında bir modelin ağırlıklarının ne kadar güncelleneceğini belirleyin. Gürültülü veya yanıltıcı eğimler yakınsamanın zayıf olmasına neden olur. Bu sorun küçük ağlarda daha belirgin hale gelir.

Tekniği derin denetim ağ üzerinden daha iyi gradyan sinyali yaymak için kayıplı ek yan dallar ekleyerek bu sorunu çözer. Ancak daha küçük hafif modeller için parçalanma ve farklılaşmaya neden olma eğilimindedir.

YOLOv9: Programlanabilir Degrade Bilgilerini Kullanarak Öğrenmek İstediğinizi Öğrenme

YOLOv9: Programlanabilir Degrade Bilgilerini Kullanarak Öğrenmek İstediğinizi Öğrenme https://arxiv.org/abs/2402.13616

Bu sınırlamanın üstesinden gelmek için YOLOv9 şunları sunar: Programlanabilir Gradyan Bilgisi (PGI). PGI'nın iki ana bileşeni vardır:

  • Yardımcı tersinir dallar – Bunlar, RevCols gibi bloklar kullanarak girişe tersinir bağlantılar sağlayarak daha temiz geçişler sağlar.
  • Çok seviyeli degrade entegrasyonu – Bu, farklı yan dalların karışmasından kaynaklanan sapmayı önler. Ana modele geri beslenmeden önce tüm dallardaki degradeleri birleştirir.

PGI, daha güvenilir gradyanlar oluşturarak küçük modellerin büyük modeller kadar etkili bir şekilde eğitilmesine yardımcı olur:

Deneyler, PGI'nın tüm model boyutlarında, özellikle de daha küçük konfigürasyonlarda doğruluğu artırdığını gösterdi. Örneğin, YOLOv9-Small'ın AP puanlarını temel GELAN-Small'a göre %0.1-0.4 artırdı. Kazançlar, %9 mAP'de YOLOv55.6-E gibi daha derin modeller için daha da anlamlıydı.

Böylece PGI, daha küçük ve verimli modellerin, daha önce yalnızca aşırı parametreli modellerle ulaşılabilen daha yüksek doğruluk seviyelerine eğitilmesine olanak tanır.

YOLOv9 Verimlilik İçin En Son Teknolojiyi Belirliyor

YOLOv9, GELAN'ın mimari ilerlemelerini PGI'nın eğitim iyileştirmeleriyle birleştirerek benzeri görülmemiş bir verimlilik ve performans elde ediyor:

  • Önceki YOLO sürümleriyle karşılaştırıldığında YOLOv9, %10-15 daha az parametre ve %25 daha az hesaplama ile daha iyi doğruluk. Bu, model boyutları arasında hız ve yetenek açısından önemli gelişmeler sağlar.
  • YOLOv9, YOLO-MS ve RT-DETR gibi diğer gerçek zamanlı dedektörleri şu açılardan geride bırakıyor: parametre verimliliği ve FLOP'lar. Belirli bir performans düzeyine ulaşmak için çok daha az kaynak gerekir.
  • Daha küçük YOLOv9 modelleri, RT-DETR-X gibi önceden eğitilmiş daha büyük modelleri bile geride bırakıyor. Kullanılmasına rağmen %36 daha az parametreYOLOv9-E başardı daha iyi %55.6 AP daha verimli mimariler aracılığıyla

Dolayısıyla, mimari ve eğitim düzeylerinde verimliliği ele alan YOLOv9, kısıtlı kaynaklar dahilinde performansı en üst düzeye çıkarmak için yeni bir teknoloji harikası oluşturuyor.

GELAN – Verimlilik için Optimize Edilmiş Mimari

YOLOv9, minimum parametre bütçesi dahilinde doğruluğu en üst düzeye çıkaran Genel Verimli Katman Toplama Ağı (GELAN) adı verilen yeni bir mimari sunar. Önceki YOLO modellerinin üzerine inşa edilmiştir ancak çeşitli bileşenleri özellikle verimlilik için optimize eder.

https://arxiv.org/abs/2402.13616

YOLOv9: Programlanabilir Degrade Bilgilerini Kullanarak Öğrenmek İstediğinizi Öğrenme
https://arxiv.org/abs/2402.13616

CSPNet ve ELAN'ın Arka Planı

v5'ten bu yana en son YOLO sürümleri, gelişmiş verimlilik için Aşamalar Arası Kısmi Ağ'a (CSPNet) dayalı omurgaları kullanmıştır. CSPNet, minimum ek yük eklerken özellik haritalarının paralel ağ dalları arasında toplanmasına olanak tanır:

Bu, katmanları seri olarak istiflemekten daha verimlidir; bu da genellikle gereksiz hesaplamaya ve aşırı parametrelendirmeye yol açar.

YOLOv7, CSPNet'i blok yapısını basitleştiren Verimli Katman Toplama Ağı'na (ELAN) yükseltti:

ELAN, çıktıda bir toplama düğümü lehine katmanlar arasındaki kısayol bağlantılarını kaldırdı. Bu, parametreyi ve FLOP'ların verimliliğini daha da geliştirdi.

Esnek Verimlilik için ELAN'ı Genelleştirme

Yazarlar ELAN'ı daha da genelleştirerek GELANYOLOv9'da kullanılan omurga. GELAN, esnekliği ve verimliliği artırmak için önemli değişiklikler yaptı:

  • Değiştirilebilir hesaplama blokları – Önceki ELAN'da sabit evrişimli katmanlar vardı. GELAN, ResNets veya CSPNet gibi herhangi bir hesaplama bloğunun değiştirilmesine izin vererek daha fazla mimari seçenek sunar.
  • Derinlik açısından parametrelendirme – Ana dal ve toplayıcı dal için ayrı blok derinlikleri, kaynak kullanımında ince ayar yapılmasını kolaylaştırır.
  • Yapılandırmalar arasında istikrarlı performans – GELAN, farklı blok türleri ve derinlikleriyle doğruluğu koruyarak esnek ölçeklendirmeye olanak tanır.

Bu değişiklikler GELAN'ı verimliliği en üst düzeye çıkarmak için güçlü ancak yapılandırılabilir bir omurga haline getiriyor:

Deneylerde GELAN modelleri, parametre başına doğruluk açısından önceki YOLO mimarilerinden sürekli olarak daha iyi performans gösterdi:

  • 7M parametreli GELAN-Small, YOLOv7-Nano'nun 11M parametrelerini geride bıraktı
  • GELAN-Medium, daha ağır YOLOv7 orta modelleriyle eşleşti

Dolayısıyla GELAN, YOLO'yu farklı verimlilik hedeflerine göre ölçeklendirmek için optimize edilmiş bir omurga sağlar. Daha sonra PGI'nın daha iyi antrenman yapmalarına nasıl yardımcı olduğunu göreceğiz.

PGI – Tüm Model Boyutları için Geliştirilmiş Eğitim

Mimari seçimleri çıkarım zamanındaki verimliliği etkilerken, eğitim süreci de model kaynak kullanımını etkiler. YOLOv9, farklı model boyutları ve karmaşıklıkları genelinde eğitimi geliştirmek için Programlanabilir Gradyan Bilgisi (PGI) adı verilen yeni bir teknik kullanır.

Güvenilmez Gradyan Sorunu

Eğitim sırasında bir kayıp fonksiyonu, model çıktılarını temel doğruluk etiketleriyle karşılaştırır ve parametreleri güncellemek için bir hata gradyanı hesaplar. Gürültülü veya yanıltıcı eğimler zayıf yakınsamaya ve verimliliğe yol açar.

Çok derin ağlar bunu daha da şiddetlendiriyor. bilgi darboğazı – derin katmanlardan gelen gradyanlar kayıp veya sıkıştırılmış sinyaller nedeniyle bozulur.

Derin denetim Daha temiz eğimler sağlamak için kayıplı yardımcı yan dallar ekleyerek yardımcı olur. Ama çoğu zaman daha küçük modeller için bozulurfarklı dallar arasında girişime ve farklılığa neden olur.

Bu nedenle tüm model boyutlarında, özellikle de küçük modellerde işe yarayan güvenilir degradeler sağlamanın bir yoluna ihtiyacımız var.

Programlanabilir Gradyan Bilgisine (PGI) Giriş

Güvenilmez gradyanları ele almak için YOLOv9, Programlanabilir Gradyan Bilgisini (PGI) önerir. PGI'nın degrade kalitesini artırmak için tasarlanmış iki ana bileşeni vardır:

1. Yardımcı tersinir dallar

Ek şubeler sağlar tersinir bağlantılar RevCols gibi blokları kullanarak girişe geri dönün. Bu, bilgi darboğazını önleyen temiz gradyanları korur.

2. Çok seviyeli degrade entegrasyonu

Bir füzyon bloğu, ana modele geri beslenmeden önce tüm dallardaki degradeleri bir araya getirir. Bu, şubeler arasındaki farklılaşmayı önler.

PGI, daha güvenilir gradyanlar oluşturarak tüm model boyutlarında eğitim yakınsamasını ve verimliliğini artırır:

  • Hafif modeller daha önce kullanamadıkları derin denetimden faydalanabilirler
  • Daha büyük modeller daha iyi genelleme sağlayan daha temiz gradyanlar elde edin

Deneyler, PGI'nın küçük ve büyük YOLOv9 konfigürasyonları için temel GELAN'a göre doğruluğunu artırdığını gösterdi:

  • YOLOv0.1-Small için +%0.4-9 AP
  • Daha büyük YOLOv0.5 modelleri için +%0.6-9 AP

Dolayısıyla PGI'nın programlanabilir gradyanları büyük ve küçük modellerin daha verimli şekilde eğitilmesine olanak tanır.

YOLOv9 Yeni Son Teknoloji Doğruluğu Belirliyor

YOLOv9, GELAN'ın mimari iyileştirmelerini ve PGI'nın eğitim geliştirmelerini birleştirerek, gerçek zamanlı nesne algılama için yeni ve son teknoloji sonuçlar elde ediyor.

COCO veri seti üzerinde yapılan deneyler, YOLOv9'un önceki YOLO versiyonlarının yanı sıra YOLO-MS gibi diğer gerçek zamanlı dedektörleri doğruluk ve verimlilik açısından geride bıraktığını gösteriyor:

Bazı önemli noktalar:

  • YOLOv9-Small, %10 daha az parametre ve hesaplamayla YOLO-MS-Small'ı aşıyor
  • YOLOv9-Medium, kaynakların yarısından daha azını kullanarak daha ağır YOLOv7 modelleriyle eşleşir
  • YOLOv9-Large, %8 daha az parametre ve %15 daha az FLOP ile YOLOv25-X'ten daha iyi performans gösteriyor

Dikkat çekici bir şekilde, daha küçük YOLOv9 modelleri, RT-DETR-X gibi ön eğitim kullanan diğer dedektörlerin daha ağır modellerini bile geride bırakıyor. 4 kat daha az parametreye rağmen YOLOv9-E, doğruluk açısından RT-DETR-X'ten daha iyi performans gösteriyor.

Bu sonuçlar YOLOv9'un üstün verimliliğini göstermektedir. İyileştirmeler, daha gerçek dünyadaki kullanım durumlarında yüksek doğrulukta nesne algılamayı mümkün kılıyor.

YOLOv9 Yükseltmeleriyle İlgili Temel Çıkarımlar

YOLOv9'un yeni, son teknoloji performansını mümkün kılan önemli yükseltmelerden ve yeniliklerden bazılarını hızlıca özetleyelim:

  • GELAN optimize edilmiş mimari – Esnek toplama blokları aracılığıyla parametre verimliliğini artırır. Farklı hedefler için modellerin ölçeklendirilmesine izin verir.
  • Programlanabilir degrade bilgisi – Tersine çevrilebilir bağlantılar ve füzyon yoluyla güvenilir geçişler sağlar. Model boyutları genelinde eğitimi iyileştirir.
  • Daha az kaynakla daha fazla doğruluk – Parametreleri ve hesaplamaları YOLOv10'e göre %15-8 oranında daha iyi doğrulukla azaltır. Daha etkili çıkarımlara olanak sağlar.
  • Model boyutlarında üstün sonuçlar – Hafif, orta ve büyük model konfigürasyonları için son teknolojiyi ayarlar. Yoğun şekilde önceden eğitilmiş modellerden daha iyi performans gösterir.
  • Genişletilmiş uygulanabilirlik – Daha yüksek verimlilik, uç cihazlarda gerçek zamanlı algılama gibi uygulanabilir kullanım senaryolarını genişletir.

YOLOv9, doğruluğu, verimliliği ve uygulanabilirliği doğrudan ele alarak, gerçek dünyadaki çeşitli ihtiyaçları karşılamak için nesne algılamayı ileriye taşır. Yükseltmeler, bu kritik bilgisayarlı görme yeteneğinde gelecekteki yenilikler için güçlü bir temel sağlıyor.

Son beş yılımı, Makine Öğrenimi ve Derin Öğrenmenin büyüleyici dünyasına dalarak geçirdim. Tutkum ve uzmanlığım, özellikle AI/ML'ye odaklanarak 50'den fazla farklı yazılım mühendisliği projesine katkıda bulunmamı sağladı. Devam eden merakım, beni daha fazla keşfetmeye hevesli olduğum bir alan olan Doğal Dil İşleme'ye de çekti.