Yolo Vision Shenzhen
Shenzhen
Şimdi katılın

En iyi 8 açık kaynaklı nesne izleme aracı ve algoritması

Gerçek zamanlı video analizi için en iyi 8 açık kaynaklı nesne izleme aracını keşfedin. Her birinin nasıl çalıştığını ve projenize en uygun olanı nasıl seçeceğinizi öğrenin.

Bir araba kırmızı ışıkta geçtiğinde sürücüye otomatik olarak ceza kesildiğinde veya bir futbolcu sahada top sürerken kamera oyunu sorunsuz bir şekilde takip ettiğinde, arka planda yapay zeka sessizce çalışıyor. Bu sistemler özellikle, makinelerin dünyadan gelen görsel bilgileri görmesini, yorumlamasını ve anlamasını sağlayan yapay zekanın bir alt alanı olan bilgisayar görüşüne dayanıyor.

Bilgisayar görüşünde, bu uygulamaların arkasındaki temel görevlerden biri nesne izlemedir. Bu, bir videonun her karesindeki nesneleri tanımlamak ve ardından bu nesnelerin hareketlerini, diğer nesnelerle çakışmalarını veya yön değiştirmelerini takip etmek için kullanılır.

Günümüzde, farklı kullanım durumları, performans ihtiyaçları ve karmaşıklık düzeyleri için tasarlanmış birçok nesne izleme aracı ve algoritması bulunmaktadır. Bazıları hıza odaklanarak track nesneyi gerçek zamanlı olarak track , diğerleri oklüzyon, hızlı hareket veya düşük ışıklandırma gibi zorlu koşullarda doğruluğu veya uzun vadeli kararlılığı önceliklendirir.

Özellikle, açık kaynaklı projeler bu alanın gelişmesinde önemli bir rol oynamıştır. Kodları açık erişime açık olduğundan, geliştiriciler ve araştırmacılar bunların nasıl çalıştığını inceleyebilir, mevcut yöntemleri iyileştirebilir ve yeni uygulamalara uyarlayabilirler. Bu açıklık, nesne izlemenin hızla gelişmesine ve gerçek dünya sistemlerine entegre edilmesinin kolaylaşmasına yardımcı olmuştur.

Bu makalede, sekiz popüler açık kaynaklı nesne izleme aracı ve algoritmasını inceleyeceğiz. Hadi başlayalım!

Nesne izleme nedir?

Bir güvenlik görevlisinin otoparkın CCTV görüntülerini izlediği bir senaryo düşünün. Güvenlik görevlisi, kırmızı bir arabayı izlemeye karar verir. Video oynatılırken, o arabayı zihninde işaretler ve diğer arabalar geçse veya insanlar önünden geçse bile, arabanın gittiği her yeri takip etmeye devam eder.

AI destekli nesne izleme de benzerdir, ancak otomatik olarak ve büyük ölçekte çalışır. Başka bir deyişle, nesne izleme, bir nesnenin video kareleri arasında hareketini takip etme ve bir kareden diğerine kimliğini tutarlı bir şekilde koruma sürecidir. 

Çoğu sistemde bu, her karede insan, araç veya yol işareti gibi nesneleri bulan ve etiketleyen nesne algılama ile başlar. Ardından, bu nesneler hareket ettikçe, göründükçe, kayboldukça veya üst üste geldikçe, izleme sistemi kareler arasındaki algılamaları birbirine bağlayarak hangi nesnenin hangisi olduğunu ve her birinin zaman içinde nereye gittiğini bilir.

Şekil 1. Nesne izlemeye bir bakış (Kaynak)

İki yaygın izleme türü vardır: tek bir ana nesneye odaklanan tek nesne izleme (SOT) (örneğin, bir spor videosunda sadece topu izlemek) ve aynı anda birçok nesneyi takip eden ve her birine benzersiz bir kimlik atayan çoklu nesne izleme (MOT) (örneğin, yoğun bir kavşakta tüm arabaları izlemek). 

İzleme türü ne olursa olsun, çoğu sistem üç temel bileşene dayanır: her karede nesneleri bulmak için bir algılayıcı, bu nesnelerin nasıl hareket edeceğini tahmin etmek için bir hareket modeli ve yeni algılamaları önceden izlenen nesnelerle ilişkilendirmek için bir eşleştirme adımı. Bu bileşenler, ham videoyu nesnelerin zaman içinde nasıl hareket ettiği ve etkileşime girdiği hakkında anlamlı bilgilere dönüştürür.

Açık kaynaklı nesne izleme araçlarına duyulan ihtiyaç

Detaylara girmeden önce, şunu merak ediyor olabilirsiniz: Açık kaynaklı nesne izleme araçları ve algoritmaları neden bu kadar özel?

Açık kaynaklı araçlar, nesne izlemeyi daha kolay ve daha yaygın hale getirmede büyük rol oynamıştır. Kod açık olduğundan, geliştiriciler ve araştırmacılar izleyicinin nasıl çalıştığını tam olarak görebilir, ondan öğrenebilir ve onu bir kara kutu gibi ele almak yerine kendi projelerine uyarlayabilirler.

Ayrıca güçlü topluluklardan da faydalanırlar. Birçok açık kaynaklı izleme aracı, yeni özellikler ekleyen, hız ve doğruluğu artıran, hataları düzelten ve araçları en son araştırmalarla uyumlu hale getiren aktif katkıcılar tarafından sürdürülmektedir. Bu sürekli işbirliği, farklı uygulamalarda güvenilir ve kullanışlı kalmalarına yardımcı olur.

Maliyet, bunların önemli olmasının bir başka büyük nedenidir. Açık kaynaklı araçlar ücretsiz olduğundan, öğrenciler, yeni kurulan şirketler ve küçük ekipler lisans ücretleri veya abonelik maliyetleri konusunda endişelenmeden denemeler yapabilir, prototipler oluşturabilir ve gerçek sistemler kurabilirler.

En iyi 8 açık kaynaklı nesne izleme aracı ve algoritması

Günümüzde izleme sistemleri oluşturmak için çok çeşitli açık kaynak seçenekleri mevcuttur. Bazıları doğrudan boru hattınıza takabileceğiniz izleme algoritmaları veya modelleriyken, diğerleri bu modelleri çalıştırmayı, yönetmeyi ve entegre etmeyi kolaylaştıran kütüphaneler ve çerçevelerdir. Birlikte, gerçek bir projede ihtiyaç duyduğunuz temel izleme mantığından çevredeki araçlara kadar her şeyi kapsarlar. 

Şimdi, sekiz popüler açık kaynaklı nesne izleme aracı ve algoritmasına bir göz atalım.

1. Ultralytics YOLO ve Ultralytics Python

Nesne izleme için en kolay ve pratik seçeneklerden biri, Ultralytics Python ile birlikte Ultralytics YOLO kullanmaktır. Ultralytics YOLO gibi Ultralytics YOLO11 ve yakında çıkacak olan Ultralytics gibi Ultralytics YOLO modelleri, nesne algılama, örnek segmentasyonu, poz tahmini ve nesne izleme gibi bir dizi görme görevini destekleyen bilgisayar görme modelleridir.

Şekil 2. YOLO11 track detect track YOLO11 kullanma örneği. (Kaynak)

İlginç bir şekilde, modellerin kendisi kareler arasında track etmez. Bunun yerine, Ultralytics YOLO çalıştırılmasını ve dağıtılmasını basitleştiren bir kütüphane olan Ultralytics Python , YOLOkare kare algılamalarını BoT-SORT ve ByteTrack gibi özel çoklu nesne takip algoritmalarıyla birleştirerek takibi mümkün kılar. 

Yerleşik izleme özelliği sayesinde, Ultralytics ve Ultralytics YOLO , her karedeki detect ve ardından tutarlı kimlikler atamak için kullanılabilir. Böylece nesneler hareket ederken, üst üste binerken, kareden çıkarken ve daha sonra tekrar girerken takip edilebilir. Bu yaklaşım, imalat ve perakende gibi sektörlerde giderek daha fazla benimsenmekte ve kusur denetimi iş akışları, envanter akışı izleme ve mağaza içi müşteri izleme gibi uygulamaları mümkün kılmaktadır.

2. OpenCV

OpenCV , nesne izleme algoritmaları koleksiyonunu içeren geniş bir bilgisayar görme kütüphanesidir. Bu kütüphane, 1999 yılından beri OpenCV tarafından geliştirilmekte ve sürdürülmektedir. 

Derin öğrenmeye güvenmek yerine, bu izleyicilerin çoğu, korelasyon filtreleri ve çekirdek tabanlı teknikler gibi geleneksel bilgisayar görme yöntemlerini kullanır (bu yöntemler, sinir ağlarını kullanarak özellikleri öğrenmek yerine, bir kareden diğerine renk ve doku gibi görsel görünümü eşleştirerek nesneyi takip eder). 

Bu algoritmaları kullanırken, genellikle önce track istediğiniz nesneyi seçersiniz ve izleyici, nesne hareket ederken sonraki karelerde en benzer görsel bölgeyi sürekli olarak arar. 

Şekil 3. OpenCV kullanarak nesneleri izleme OpenCV Kaynak)

Bu yöntemler, karmaşık veya kalabalık sahnelerde modern derin öğrenme tabanlı izleme sistemleri kadar sağlam olmasa da, hafif, hızlı ve çalıştırması kolay olduğu için hala yaygın olarak kullanılmaktadır. Ayrıca, bu izleyiciler CPU'larda verimli bir şekilde çalışır ve genellikle GPU gerektirmez, bu nedenle hızlı deneyler, sınıf öğrenimi ve hobi projeleri için çok uygundur. 

3. ByteTrack

ByteTrack, çoklu nesne izleme için en popüler açık kaynaklı algoritmalardan biridir. Model, yalnızca tespitlerden emin olduğu eşleşmeleri yapmak yerine, birçok sistemin normalde göz ardı ettiği düşük güvenilirlikli tespitleri de kullanır. 

Bu, kısmen engellenmiş, uzakta veya hızlı hareket eden nesneler gibi kısa süreliğine görülmesi zor track yardımcı olur. Hızlı ve güvenilir olması nedeniyle ByteTrack, gerçek zamanlı performans ve tutarlı kimliklerin önemli olduğu trafik analizi, yaya takibi ve perakende izleme gibi uygulamalarda yaygın olarak kullanılır. 

Daha önce de belirtildiği gibi, algılama için Ultralytics YOLO kullanıyorsanız, Ultralytics Python aracılığıyla ByteTrack'i kolayca etkinleştirebilirsiniz. Ancak, özel boru hatlarında bağımsız olarak da kullanılabilir, bu da onu araştırma prototiplerinden C++ ile yazılmış üretim sistemlerine kadar her şey için uygun hale getirir.

4. DeepSORT

Çoklu nesne izleme için yaygın olarak kullanılan bir diğer algoritma ise DeepSORT'tur. DeepSORT, Deep Simple Online and Real-Time Tracking (Derin Basit Çevrimiçi ve Gerçek Zamanlı İzleme) ifadesinin kısaltmasıdır. Bu algoritma, SORT (Simple Online and Real-Time Tracking - Basit Çevrimiçi ve Gerçek Zamanlı İzleme) algoritmasının gelişmiş bir versiyonudur.

ByteTrack'e benzer şekilde, SORT da algılama yoluyla izleme yaklaşımını izler. Ancak SORT, her bir nesnenin bir sonraki hareketini tahmin etmek için, nesnenin geçmiş hareketlerine dayanarak gelecekteki konumunu tahmin eden bir matematiksel model olan Kalman filtresini kullanır.

Ardından, yeni algılamaları mevcut izlerle eşleştirir; bu eşleştirme, esas olarak konum ve sınırlayıcı kutu çakışmasına dayalıdır. Bu, SORT'u hızlı ve hafif hale getirir, ancak nesneler çakıştığında, yolları kesiştiğinde veya kısa süreliğine görüş alanından kaybolduğunda zorluk yaşayabilir.

DeepSORT, izleme sürecine görünüm bilgilerini ekleyerek SORT'u geliştirir. Hareket ve konuma ek olarak, nesnelerin nasıl göründüğünü öğrenen derin öğrenme tabanlı bir yeniden tanımlama veya yeniden kimlik belirleme modeli kullanır. Bu, izleyiciye, hareket diğerlerinden ayırt etmek için yeterli olmasa bile, kareler arasında aynı nesneyi tanımasını sağlar.

Bu nedenle DeepSORT, insanların sık sık üst üste geldiği veya kısa süreliğine görüşün engellendiği gözetim ve kalabalık izleme gibi uygulamalarda yaygın olarak kullanılmaktadır. Ancak, günümüzde klasik bir temel olarak kabul edilmektedir ve daha yeni izleme yöntemleri genellikle daha zorlu sahnelerde daha iyi performans göstermektedir.

5. Norfair

Norfair, sizi sabit bir izleme sürecine zorlamak yerine esnek olacak şekilde tasarlanmış hafif bir izleme kütüphanesidir. Dedektör çıktıları sınır kutusu merkezleri, anahtar noktalar veya özel koordinat verileri gibi bir dizi nokta olarak temsil edilebildiği sürece, neredeyse tüm dedektörlerin üzerine izleme ekleyebilir.

Şekil 4. Norfair kullanarak gerçek dünyadaki nesnelerin izlenmesi (Kaynak)

Bu esneklik, standart çoklu nesne izleme araçlarının yetersiz kalabileceği olağandışı girdiler veya dinamik hareket kalıpları içeren projeler için özellikle etkili olmasını sağlar. Kitaplık ayrıca, algılamaların kareler arasında nasıl eşleştirileceğini kontrol etmek için yerleşik mesafe işlevleri de sağlar. 

Bu mesafe fonksiyonları, iki nokta veya nesnenin ne kadar benzer olduğunu ölçer ve kullanıcılara izleme mantığı üzerinde tam kontrol sağlar. Norfair, robotik, spor hareket analizi, drone navigasyonu ve poz işaretlerini veya kilit noktaları izlemeye büyük ölçüde dayanan uygulamalarda sıklıkla kullanılır.

6. MM Takibi

MMTracking, MMDetection gibi yaygın olarak kullanılan bilgisayar görme kütüphanelerinin de arkasındaki OpenMMLab ekibinin geliştirdiği açık kaynaklı bir izleme araç kutusudur. MMDetection üzerine inşa edilmiş olan bu araç, izleme sistemleri geliştirmek ve denemek için esnek bir çerçeve sunar.

En büyük güçlerinden biri modüler tasarımıdır. MMTracking, sizi tek bir boru hattına kilitlemek yerine, dedektörler, izleme modülleri ve bazı kurulumlarda yeniden tanımlama modelleri gibi farklı bileşenleri yapılandırmanıza ve değiştirmenize olanak tanır. Bu esnekliği sayesinde, ekipler yöntemleri karşılaştırmak, yeni fikirleri test etmek veya izleme boru hatlarını ince ayarlamak istediği araştırma ve ileri düzey projelerde özellikle popülerdir.

7. FairMOT

FairMOT, aynı anda track nesneyi track için tasarlanmış çoklu nesne izleme çerçevesidir. Önce algılamayı çalıştıran ve ardından nesneleri ayrı bir adım olarak kareler arasında bağlayan geleneksel algılama yoluyla izleme süreçlerinden farklı olarak, FairMOT tek bir ağda algılama ve yeniden tanımlamayı birlikte öğrenir. 

Şekil 5. FairMOT çerçevesinin çalışma şekli (Kaynak)

Bu ortak yapı, özellikle insanların sık sık üst üste geldiği veya hızlı hareket ettiği kalabalık sahnelerde daha tutarlı kimlikler sürdürülmesine yardımcı olur. FairMOT, yayaların izlenmesi ve kalabalığın izlenmesi gibi senaryolarda yaygın olarak kullanılır ve aynı zamanda birçok hedefi gerçek zamanlı olarak izlemenin önemli olduğu perakende analizi ve trafik izleme gibi ortamlarda da uygulanır.

8. SiamMask

SiamMask, sınırlayıcı kutu ile birlikte segmentasyon maskesi üreterek birçok izleyiciden bir adım öteye geçen tek nesne izleme yöntemidir. Basitçe söylemek gerekirse, hedef nesnenin etrafına sadece bir dikdörtgen çizmekle kalmaz. Aynı zamanda nesnenin şeklini piksel düzeyinde de özetler, bu da hedef nesnenin şekli değiştiğinde, döndüğünde veya kısmen gizlendiğinde yararlı olabilir. 

Şekil 6. SiamMask kullanarak bir nesneyi izleme ve bölümlere ayırma (Kaynak)

Bu yaklaşım, Siamese izleme tasarımını kullanır. Bu tasarımda, izleyici önce ilk kareden hedefin küçük bir referans görüntüsünü alır; bu genellikle şablon olarak adlandırılır. Ardından, her yeni karede daha geniş bir alanı arar ve bu şablona en çok benzeyen noktayı bulur. 

SiamMask, bu eşleştirme tabanlı fikri temel alır. Ayrıca hedef için piksel düzeyinde bir maske tahmin eder, böylece video oynatılırken hem nesnenin konumunu hem de daha kesin bir dış hatlarını elde edersiniz.

Nesne izleme aracı seçiminde önemli faktörler

Günümüzde yapay zeka alanında çeşitli açık kaynaklı nesne izleme araçları mevcut olduğundan, bilgisayar görme projeniz için en iyi seçenek, özel kullanım durumunuzun gereksinimlerine bağlıdır. Dikkate alınması gereken bazı faktörler şunlardır:

  • Doğruluk: Bu, kalabalık veya görsel olarak karmaşık sahnelerde, görme sisteminin üst üste binme, örtülme veya hızlı hareket sırasında bile sabit kimlikleri koruması gereken durumlarda en önemli faktördür.
  • Hız: Robotik, trafik izleme ve spor analitiği gibi gerçek zamanlı uygulamalarda, tepki hızı mükemmel hassasiyetten daha önemli olabilir.
  • Entegrasyon kolaylığı: Bazı nesne izleme araçları tak ve çalıştır özelliğine sahiptir ve sadece birkaç satır kodla çalışırken, diğerleri daha fazla kurulum, yapılandırma veya özel boru hattı çalışması gerektirir.
  • Dağıtım kısıtlamaları: GPU , uç cihazlar veya mobil donanımlar gibi hedef ortam, hangi izleme yaklaşımının pratik olacağını belirleyebilir.
  • Ölçeklenebilirlik: Sisteminizin aynı anda track nesneyi track veya birden fazla video akışını işlemesi gerekiyorsa , izleyici performansında büyük bir düşüş olmadan verimli bir şekilde ölçeklenmelidir.

Her nesne izleme aracı veya algoritması farklı bir amaca hizmet eder. Nihayetinde, doğru seçim, özel gereksinimleriniz, çalışma süresi kısıtlamaları, performans ölçütleri ve projenizin izleme yaklaşımının ne kadar özelleştirilebilir olması gerektiğine bağlıdır. 

Önemli çıkarımlar

Nesne izleme, eski el yapımı tekniklerden günümüzün hareket, kimlik ve davranışları etkileyici bir doğrulukla yorumlayan son teknoloji derin öğrenme sistemlerine kadar gelişmiştir. Açık kaynaklı araçlar, bu ilerlemenin arkasındaki itici güç olmuştur. Bu araçlar, güçlü algoritmalara erişimi demokratikleştirir, denemeleri teşvik eder ve araştırmacıların kısıtlayıcı lisanslar veya ağır altyapılar olmadan sofistike izleme süreçleri oluşturmalarını sağlar. 

AI hakkında daha fazla bilgi edinmek için topluluğumuzu ve GitHub deposunu inceleyin. Tarımda AI ve imalatta bilgisayar görüşü ile ilgili çözüm sayfalarımızı keşfedin. Lisans seçeneklerimizi inceleyin ve kendi görüş modelinizi oluşturmaya başlayın.

Gelin, yapay zekanın geleceğini
birlikte inşa edelim!

Makine öğreniminin geleceği ile yolculuğunuza başlayın

Ücretsiz başlayın