AI Geliştirme] Derin öğrenmeye dayalı çok hedefli video izlemenin uygulanması

Birden fazla hedefi takip etmenin kabaca iki yolu vardır:

Seçenek 1

İlk karenin izlenmesine bağlı olarak, videonun ilk karesinde hedefinizi seçin ve ardından hedef takibi gerçekleştirmek için onu izleme algoritmasına verin. Temel olarak, bu yöntem yalnızca ilk karede seçtiğiniz hedefi izleyebilir, sonraki karede yeni bir nesne belirirse, algoritma onu izleyemez. Bu yöntemin avantajı, nispeten hızlı olmasıdır. Eksiklikler açıktır, yeni ortaya çıkan hedefleri takip etmek imkansızdır.

Seçenek 2

Hedef algılamaya dayalı izleme, önce videonun her karesinde ilgilenilen tüm hedef nesneleri algılar ve ardından bunları izleme efektini elde etmek için önceki karede tespit edilen hedefle ilişkilendirir. Bu yöntemin avantajı, video boyunca herhangi bir zamanda görünen yeni hedefleri izleyebilmenizdir.Elbette, bu yöntem iyi bir "hedef tespit" algoritmasına sahip olmanızı gerektirir.

Bu makale temel olarak, Algılayarak İzleme'nin izleme yöntemi olan Seçenek2'nin gerçekleştirme ilkesini açıklamaktadır. Bu makalenin kaynak koduna bir bağlantısı yok. "Hedef algılama" algoritmasının kaynak kodu için lütfen önceki makaleme bakın. "Yörünge izleme" algoritmasının kaynak kodu uygulaması çok basittir, herkesin bu makaleyi okuduktan sonra yazabileceğine inanıyorum. Python uygulaması yaklaşık 200 satırdır. Daha az.

Takip sürecini tespit ederek takip

Aşama 1: Her çerçevede ilgilenilen hedefi tespit etmek için hedef tespit algoritmasını kullanın ve tespit edilen hedeflerin sayısının M olduğunu varsayarak karşılık gelen (konum koordinatları, sınıflandırma, güvenilirlik) elde edin;

Adım 2: Bir şekilde, Adım 1'deki tespit sonuçları, önceki çerçevedeki tespit hedefleri ile ilişkilendirilir (önceki çerçevedeki tespit hedeflerinin sayısının N olduğu varsayılır). Diğer bir deyişle, M * N çiftleri arasında en benzer çifti bulmaktır.

Adım 2'deki "bir yol" için, iki karedeki iki hedef arasındaki Öklid mesafesinin ortak hesaplanması (düzlemdeki iki nokta arasındaki düz çizgi mesafesi) gibi, hedef ilişkisini elde etmenin aslında birçok yolu vardır. En kısa mesafe aynı hedef olarak kabul edilir ve Macar algoritması en uygun Çifti bulmak için kullanılır. Evet olduğunda, iki hedef kutusunun (konum boyutu kutuları) kesişme oranını hesaplamak için kullandığım IOU gibi diğer değerlendirme koşullarını da ekleyebilirsiniz, değer 1'e ne kadar yakınsa, aynı hedef anlamına gelir. İki hedefin benzer olup olmadığına karar vermek gibi başka yöntemler de vardır, bu da karşılaştırma için daha uzun sürebilecek bir görünüm modeli gerektirir.

İlişkilendirme sürecinde üç durum olacaktır:

1) Bu sefer tespit edilen hedef, önceki çerçevede N hedef arasında bulunur ve bu, hedefin normal olarak izlendiğini gösterir;

2) Bu kez tespit edilen hedef, önceki çerçevede N hedef arasında bulunmaz, bu da bu hedefin bu çerçevede yeni olduğunu gösterir, bu nedenle bir sonraki izleme korelasyonu için kaydetmemiz gerekir;

3) Önceki karede bir hedef var ve bu çerçevede onunla ilişkilendirilmiş bir hedef yok, o zaman hedef görüş alanından kaybolmuş olabilir ve onu kaldırmamız gerekiyor. (Buradaki olasılığı not edin, çünkü hedefin bu çerçevede tespit edilmemiş olması algılama hatalarından kaynaklanıyor olabilir)

Sorun

Yukarıda bahsedilen izleme yöntemi normal şartlar altında iyi çalışabilir ancak videodaki hedef çok hızlı hareket ediyorsa ve hareketten önceki ve sonraki iki karede aynı hedef çok uzakta ise bu izleme yönteminde sorun yaşanacaktır.

Yukarıdaki şekilde gösterildiği gibi, düz çizgi kutusu, hedefin birinci çerçevedeki konumunu belirtir ve noktalı çerçeve, hedefin ikinci çerçevedeki konumunu belirtir. Hedef koşu hızı nispeten yavaş olduğunda, (A, A ) ve (B, B), önceki izleme yöntemiyle doğru bir şekilde ilişkilendirilebilir. Ancak hedef hızlı koştuğunda (veya diğer her kare algılamasında), ikinci karede, A, ilk karede B konumuna hareket edecek ve B diğer konumlara hareket edecektir. Şu anda, yukarıdaki ilişkilendirme yöntemini kullanmak yanlış sonucu alacaktır.

Öyleyse onu nasıl daha doğru bir şekilde izleyebiliriz?

Yörünge tahminine dayalı izleme yöntemi

İkinci çerçevenin konumu ile ilk çerçevenin konumu arasındaki ilişkide hatalar olacağından, karşılaştırma yapmadan önce hedefin sonraki çerçevede nerede görüneceğini tahmin etmenin bir yolunu bulabilir ve ardından tahmin edilen konumla karşılaştırabiliriz. İlişkili. Bu durumda, tahmin yeterince doğru olduğu sürece, çok hızlı hız nedeniyle yukarıda bahsedilen neredeyse hiçbir hata olmayacaktır.

Yukarıdaki şekilde gösterildiği gibi, karşılaştırmadan ve ilişkilendirmeden önce, ilk önce bir sonraki çerçevede A ve B'nin konumlarını tahmin ediyoruz ve ardından gerçek tespit edilen konumu tahmin edilen konumla karşılaştırıp ilişkilendiriyoruz, bu da yukarıda belirtilen sorunu mükemmel şekilde çözebilir. Teorik olarak, hedef ne kadar hızlı olursa olsun bağlanabilir. Öyleyse soru şu, bir sonraki karede hedefin konumu nasıl tahmin edilir?

Kullanmanın birçok yolu var Kalman filtresi Önceki karelerin yörüngesine göre sonraki karede hedefin konumunu tahmin etmek için, şunu da kullanabilirsiniz: Kendi kendinize takılan işlev Sonraki karenin konumunu tahmin etmek için. Gerçek süreçte, bir sonraki çerçevede hedefin konumunu tahmin etmek için yerleştirme işlevini kullanıyorum.

Yukarıdaki şekilde görüldüğü gibi bir parça (T- > XY) eğrisi (şekilde düz bir çizgi olmadığına dikkat edin) ve ardından hedefin T + 1 çerçevesindeki konumunu tahmin edin. Spesifik uygulama çok basittir ve Python'daki numpy kütüphanesinde benzer işlevler vardır.

Kalan eksiklikler

O kadar mükemmel olsa bile, hala eksiklikler var.

Yörünge tahmininin öncülü, hedeften önceki birkaç çerçevenin yörünge bilgisini bilmektir Bu nedenle, başlangıçta, hedefin yörüngesi tahmin edilemez veya tahmin doğru değildir. Dolayısıyla, ilk birkaç karede, karşılaştırma ve ilişkilendirme için hala orijinal yöntemi kullanmamız gerekiyor.

Yazar: Zhou Jian Zhi

Kaynak:

Hangi köpek türlerinin sıcak çarpmasına yatkın olduğunu biliyor musunuz? Kürek memurları dikkat ediyor ~
önceki
Bilgisayarla görme teknolojisinin kişisel ilgisinin en son gelişimi
Sonraki
Dil modelinden Bert'in kararsızlığını ve GPT'nin ısrarını görmek için
PCB-RPP ve SGGNN Modellerinde Yüz Tanıma-Tartışmanın Yaya Tanıma
En kısa yolu bulmak için grafik sinir ağını (GNN) kullanın
Odak analizi | yalnız Zhou Hongyi, salıncak 360
Sıcak yaz aylarında köpekleri nasıl düzgün bir şekilde soğutabilirim?
Köpeğin vücudunun garip davranışları olduğunda, boktan kürek memurunu görmezden gelmeyin ~
AAAI 2019 Gaussian Transformer: doğal dil çıkarımı için hafif bir yöntem
Kediler size sevgi gösterdiklerinde genellikle ne yaparlar?
Milyar düzeyindeki siparişlerin siparişlerini senkronize etmenin keşfi ve uygulaması
Sentetik verilere dayalı sahne metninin derinlik gösterimi yöntemi
Kukla kedi gerçekten de kediler arasında gerçek bir "peri" dir!
Karmaşık açık sahnelerde metin anlama
To Top