Ich denke, SIFT und SURF Algorithmen sind für diesen Zweck am besten geeignet. SIFT oder SURF kann wie jeder andere Feature-Detektor und Extraktor verwendet werden:
%Vor%Verwenden Sie openCv, um mehr zu erfahren. Und natürlich kann Ihr Weg Lösungen dafür finden. Versuche es weiter.
Ich schlage vor, anstelle von RGB Graustufen zu verwenden, so wie es normalerweise bei der Bildverarbeitung geschieht, so dass Ihre Berechnung auf 1 statt auf 3 Matrix reduziert wird.
Wenn Sie nach Farbe suchen müssen, verwenden Sie einfach rgb, wenn es benötigt wird, aber nicht die gesamte Berechnung.
Das Tracking schnell bewegter Objekte ist immer schwierig. Versuchen Sie es mit einer Kamera, die mehr Bilder pro Sekunde aufnehmen kann, obwohl Sie mehr Bilder verarbeiten müssen und vermutlich auf einem mobilen Gerät sind
Sie können auch die zu verarbeitende Bildgröße auf der Grundlage der vorherigen Objektposition auf ein kleineres Fenster reduzieren. Sie können die nächste Position schätzen und auf eine bestimmte Größe beschränken und nur diese Bildteile verarbeiten. Kurz gesagt, führe den optischen Fluss nur in bestimmten Bereichen des Bildes aus (benutze Graustufen).
Ich arbeite an einem Augment Reality-Spiel, das ein sich schnell bewegendes Objekt erkennen und verfolgen soll. Ich habe folgende Bildverarbeitungsbibliotheken ausprobiert,
1. Opencv
2. BoofCv
3. FastCv
Ich habe den TLD-Algorithmus versucht, das Objekt zu verfolgen, das Tracking war erfolgreich, aber die Performance musste wirklich verbessert werden. Wenn sich das Objekt schneller bewegt, benötigt das Ergebnis aufgrund der von den Algorithmen benötigten Verarbeitungszeit Zeit. Ich habe auch circallant, Mittelwert-Verschiebung wie Algorithmen mit boofcv versucht.
Überprüfen Sie diese Demos:
Die Objektverfolgung in diesen beiden Demos scheint gut zu sein, aber die Berechnung braucht Zeit.
Kann ich mit dem folgenden Szenario schneller vorgehen,
?Extrahiere die r, g, b Matrix des zu verfolgenden Objekts
Nimm Kamera-Frames und konvertiere sie in eine r, g, b Matrix und suche die getrackte Objekt-Matrix im Kamerarahmen.
Gibt es einen besseren Weg, dies zu tun?