Personenerkennung von oben


16

Ich versuche eine Methode zu finden, um Leute mit nur einer Kamera 3 Meter über dem Boden zu erkennen. Dies ist ein von der Kamera zurückgegebener Frame:

Bildbeschreibung hier eingeben

UPDATE: Videotest -> http://dl.dropbox.com/u/5576334/top_head_shadow.avi

Dazu verstehe ich zunächst, dass ich eine Hintergrund-Vordergrund-Segmentierung durchführen muss. Das ist der einfache Teil.

Mit der Vordergrundmaske kann ich einfache Operationen wie die Hough-Transformation ausführen, um Kreise zu finden. Auf diese Weise werden jedoch nur 60% der Köpfe erkannt, einschließlich vieler falsch positiver Ergebnisse.

Ich könnte einige andere einfache Techniken wie die Farbsegmentierung verwenden, aber ich fand heraus, dass die Köpfe der Menschen von oben gesehen sehr unterschiedlich sind, aufgrund ihrer Frisur, Farbe, Haarmenge, ...

Eine andere Möglichkeit, die ich habe, ist die Möglichkeit, HOG-Deskriptoren oder Haar-ähnliche Funktionen zu verwenden, aber ich würde eine umfangreiche Datenbank von Personen benötigen, die von oben gesehen werden, um die Modelle zu trainieren. Ich habe so etwas nicht gefunden.

Ich dachte, dies wäre ein sehr häufiges Problem, aber ich kann nicht viel darüber in der Literatur oder im Internet finden. Jede Hilfe zur Lösung dieser Aufgabe wird gebeten :-)

UPDATE: Weitere Informationen erhalten Sie, wenn Sie eine generische Methode zum Verfolgen des Fußgängerflusses implementieren. Der erste Prototyp wird in einer Mall getestet.


1
Wenn Sie einige Videos posten können, besteht die Möglichkeit, dass jemand einen Prototyp schreibt. Kannst du bitte posten?
Andrey Rubshtein

@Andrey, ich habe einen Videotest hochgeladen, der das Problem zeigt.
emepetres

@emepetres Wenn Sie Ressourcen zum Testen dieses Problems haben, haben Sie möglicherweise auch Ressourcen, um eine sekundäre Kamera zu finden? Das Kombinieren von Ansichten von zwei Kameras (eine von oben und eine von vorne oder von einem Winkel) und das Verwenden von Informationen von beiden klingt interessant und nach einem plausiblen Ansatz für die Verfolgung des Flusses von Fußgängern (abhängig von der Genauigkeit, die Sie benötigen)
penelope

4
Diese Aufgabe wird in der Literatur als "Personenzählung" bezeichnet.
Mrgloom

Können Sie einen Link für dieses Video bereitstellen? Es ist nicht mehr unter dem angegebenen Link verfügbar
Garvita Tiwari 20.11.18

Antworten:


11

Gibt es noch andere Gegenstände, die sich neben Menschen bewegen können? Wenn dies nicht der Fall ist, finden Sie die Blobs (verbundenen Komponenten) in Ihrer Vordergrundmaske. Dies sind Ihre Mitarbeiter.

Sie können auch miteinander "kollidieren" und so einen Tropfen anstelle von zwei erzeugen. In diesem Fall können Sie eine Bewegungsverfolgung durchführen und die Mehrdeutigkeit beheben, indem Sie die Tatsache verwenden, dass die Flugbahn und die Geschwindigkeit glatt sind.

Wenn es andere Objekte gibt (wie Hunde, Autos), sollten Sie einen Klassifikator erstellen, der Blob-Parameter wie folgt erhält:

  • Blob-Statistiken (Größe, Solidität usw.)
  • Farbe
  • Kanteninformationen
  • Geschwindigkeit (bei Tracking)

Und gibt die richtige Klasse zurück (Human / No Human).


1
Ich suche eine robuste Methode, die auch zwischen Mensch und Nicht-Mensch unterscheiden kann. Nachdem ich über Ihre Antwort nachgedacht habe, denke ich, dass die Verwendung der von Ihnen vorgeschlagenen Blob-Parameter in Kombination mit der Verfolgung einiger Funktionen und einigen statistischen Informationen des Blobs robust genug sein sollte.
emepetres

8

Ich war in der "Um gut erprobte Methoden anwenden zu können, bräuchte ich eine umfangreiche Datenbank mit Beispielen, die ich nicht habe". Position in einem sehr kleinen Unternehmen, das "es sich nicht leisten konnte". Ich bedaure sehr, dass ich nicht einfach alles getan habe, um so viele Daten wie möglich zu erhalten. Ich denke, es hätte am Ende einen großen Unterschied für sie bewirkt.

Jede Art von realer Sichterkennung hat eine Million Dinge, an die Sie erst gedacht haben, als Sie es ausprobiert haben und die fehlgeschlagen sind. Es ist ein altes Problem, das um ein Vielfaches schwieriger ist, als es den Anschein hat. Ich würde empfehlen, sich an die Newton-Methode zu halten, "auf den Schultern von Riesen zu stehen" (oder, fast genauso gut, auf einem großen Haufen von Zwergen). Verwenden Sie also eine Methode, von der Sie bereits wissen, dass sie funktioniert und robust ist. Alles, was so klingt, wird "gut genug" sein und kläglich scheitern.

Stand der Technik in Fußgängererkennung letzt , was ich wusste , war , HOG , die ursprünglich in genau dieser Einstellung getestet. Sie möchten Tracking, also müssen Sie ein bisschen in Google Scholar herumspielen, um das zu finden. Ich war in einer ähnlichen Position und würde daher empfehlen, dass Sie sich Ihre Datenbank besorgen, was auch immer Sie tun müssen, und etwas verwenden, von dem Sie wissen, dass es funktioniert. Es wurde bereits mit einer bekannten Fehlerrate getestet, nicht mit einer solchen Hört sich einfach gut an. Der 40-jährige Todesmarsch von Computer-Vision-Algorithmen, bei dem es so klingt, als würden sie funktionieren, ist etwas, an dem Sie nicht teilnehmen möchten.

PS Nicht versuchen, Computer Vision zu kritisieren. Es ist eines meiner Lieblingsgebiete. Aber die Geschichte zeigt, dass es tausend falsche und nicht sehr viele richtige Schritte gibt. Es ist besser, jemandem zu folgen, der bereits einige der richtigen Schritte gefunden hat.


Vielleicht haben Sie recht, und ich sollte einige Zeit damit verbringen, eine gute Datenbank zu erstellen, um einen HOG-Deskriptor zu trainieren und zu testen. Wissen Sie auf diese Weise, welche Mindestgröße diese Datenbank haben würde, um das Training korrekt durchzuführen?
emepetres

1
Ich weiß nicht. So vielfältig wie möglich. HOG ist auch ein Detektor, der für ein Bild die Antwort "Ja, es gibt eine Person" oder "Keine Person" zurückgibt und sonst nichts. Es sagt nichts darüber aus, wo die Person ist (Ort) oder welche Pixel die Person sind (Segmentierung) oder ob es mehrere Personen gegenüber einer Person gibt. Ich denke, einige Anpassungen an HOG wurden vorgenommen (einige sind patentiert), aber der Punkt, den Sie wollen, ist die Personenverfolgung , und HOG in seiner jetzigen Form handelt nur von Erkennung , nicht einmal von Ortung. Ich habe es noch nie gemacht, aber Personenverfolgung ist ein langjähriges Thema. Lesen Sie die Unterlagen zur Personenverfolgung.
John Robertson

1
@ John Robertson HOG ist kein Detektor, sondern nur ein Deskriptor, der mit einem Klassifikator (z. B. SVM + HOG) verwendet wird und den Standort des Objekts zurückgeben kann.
Mrgloom

1
@mrgloom Du hast recht. Die Position wird durch eine Fenstersuche zurückgegeben. Mit einer von einem großen Unternehmen patentierten Methode geht das allerdings nur schnell. Ich wollte das Wort Detektor hier nicht im technischen Sinne verwenden, nur im einfachen englischen Sinne, dass es etwas ist, das erkennt. Es gibt nur in losem Sinne einen Ort an, an dem sich in diesem Fenster jemand befindet, der ungefähr 80-90% des Maßstabs des Fensters einnimmt, ohne jedoch zu identifizieren, welche Teile des Fensters der Person gehören könnten. Ich kenne die technische Unterscheidung zwischen Deskriptor und Detektor.
John Robertson

3

Ich denke, Sie könnten anfangen, indem Sie ein paar Antworten von hier aus kombinieren.

In dieser Antwort werden zwei verschiedene Ansätze genannt , mit dem Hauptunterschied, dass Sie keine Gesichtserkennung durchführen können, da Sie keine Gesichter sehen. Der andere Ansatz ist jedoch weiterhin anwendbar: Entscheiden Sie, ob etwas ein Fußgänger ist oder nicht, basierend auf seinen Aktionen (Bewegungen) .

Dies würde, wie Sie vorausgesagt haben, die Verwendung einer Vordergrund-Hintergrund-Segmentierung vorschlagen. Ein sehr schneller Googler fand diesen kürzlich erschienenen Artikel ziemlich vielversprechend, aber da ich das nie persönlich gemacht habe, haben Sie oder jemand anderes möglicherweise bessere Vorschläge für einen bestimmten Algorithmus, der in diesem Schritt verwendet werden kann.

Die erste Antwort, die ich verlinkt habe, gibt nur einen sehr allgemeinen Ansatz. Diese Antwort kann Ihnen jedoch einen Eindruck über Ihre nächsten Schritte vermitteln: Verfolgen Sie die Objekte und versuchen Sie, sie anhand der Geschwindigkeit oder der Bewegungsrichtung zu unterscheiden .

Schließlich habe ich das Problem, das Sie hatten, nie angegangen, daher bin ich wahrscheinlich nicht sehr hilfreich, aber vielleicht können Ihnen die Antworten, auf die ich verweise, eine allgemeine Vorstellung davon geben, wo Sie anfangen sollen. Es überraschte mich auch, dass ich bei der Suche nach einer Antwort auf Ihr Problem keine früheren Werke und Artikel finden konnte, aber dann brauchen Sie vielleicht nur jemanden, der Ihnen die richtigen Stichwörter zur Beschreibung dieses Problems mitteilt .


Vielen Dank für Ihre Antwort. Der Artikel über die Vordergrundsegmentierung sieht sehr interessant aus. Wie Sie und @Andrey vorgeschlagen haben, werde ich den Ansatz der Blob-Analyse verfolgen, um die Anzahl der Menschen in jedem Blob zu bestimmen.
emepetres

@emepetres Es wäre schön, wenn Sie uns Ihre Ergebnisse mitteilen und wie erfolgreich der Ansatz war, wenn Sie ihn einmal ausprobiert und getestet haben
penelope

1

Ich habe eine Aufgabe wie hier beschrieben, zähle Leute. Meine Anforderung ist jedoch, dass die Kamera von links / rechts auf Personen gerichtet ist und nicht über dem Kopf.

Da ich nach einer möglichen Lösung für meinen Fall suche, stoße ich auf eine interessante Methode für Ihren Fall (Overhead-Erkennung). Bei diesen Lösungen wird eine Stereokamera verwendet, damit Sie mit Blobs (Personen, die sich zu nahe beieinander bewegen) umgehen können, indem Sie die Tiefe anzeigen (z. B. sehen Sie nur Blobs in der durchschnittlichen Kopfhöhe von Personen).

Dieses Produkt könnte Ihnen eine bessere Erklärung geben: digiop . Weitere technische Erläuterungen finden Sie in der Broschüre.

PS Ich vertrete nicht das Unternehmen, sondern zeige nur eine gut dokumentierte Lösung


Vielen Dank für das Teilen. Es scheint eine interessante Möglichkeit zu sein, das Problem zu lösen.
emepetres
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.