-
VERWANDTE ANMELDUNG
-
Diese Anmeldung beansprucht die Priorität der am 13. November 2015 eingereichten vorläufigen US-Anmeldung Nr. 62/255,289, welche „METHOD AND SYSTEM FOR MOVING OBJECT DETECTION WITH SINGLE CAMERA” betitelt ist, deren Inhalt hiermit durch Bezugnahme in seiner Gesamtheit aufgenommen wird.
-
GEBIET DER OFFENBARUNG
-
Aspekte der vorliegenden Offenbarung betreffen ein Verfahren und ein System zum Erfassen sich bewegender Objekte durch Segmentieren von sich bewegenden Objekten in einem Streaming-Video, das von einer einzelnen monokularen Kamera aufgenommen wird. Insbesondere betreffen Aspekte der vorliegenden Offenbarung ein Erhalten und Analysieren einer Eingangsbildsequenz, die eine Vielzahl von Zeitrahmen bzw. Zeitframes {I1, I2, I3...It} enthält, und ein Bestimmen und Ausgeben einer binären Maske Yt für jeden It, wobei jedes Element in Yt anzeigt, ob ein entsprechendes Pixel zu einem sich bewegenden Objekt gehört oder nicht.
-
ÜBERSICHT DER OFFENBARUNG
-
Die vorliegende Offenbarung kann Punktmerkmale online verfolgen und einen Satz von Punkttrajektorien beibehalten. Für jede Punkttrajektorie kann die Wahrscheinlichkeit gemessen werden, um zu bestimmen, ob sie zu einem sich bewegenden Objekt gehören kann, unter Verwendung von Beschränkungen aus der Mehrfachsichtgeometrie. Ferner kann basierend auf den von den Punkttrajektorien empfangenen Antworten ein bedingtes Zufallsfeld (CRF) auf einem gesamten Frame formuliert werden, um eine Bewegungsobjektsegmentierung zu erhalten.
-
Zusätzliche Vorteile und neuartige Merkmale dieser Aspekte der Offenbarung werden zum Teil in der folgenden Beschreibung dargelegt und werden zum Teil für Fachleute auf dem Gebiet bei der Untersuchung des Folgenden oder beim Lernen durch die Praxis aus der Offenbarung deutlicher.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
Verschiedene beispielhafte Aspekte der Systeme und Verfahren werden im Detail unter Bezugnahme auf die folgenden Figuren beschrieben, in welchen:
-
1 ein Beispiel veranschaulicht für das Verfolgen und Erfassen verschiedener sich bewegender Objekte, einschließlich eines sich bewegenden Vans, eines Fahrradfahrers und eines gehenden Fußgängers auf einer öffentlichen Straße gemäß verschiedenen Aspekten der vorliegenden Offenbarung;
-
2 das Konzept der epipolaren Beschränkung und der zugehörigen mathematischen Gleichungen gemäß verschiedenen Aspekten der vorliegenden Offenbarung veranschaulicht;
-
3 einen beispielhaften optischen Fluss zwischen aufeinanderfolgenden Frames zum Erzeugen von Punkttrajektorien gemäß verschiedenen Aspekten der vorliegenden Offenbarung veranschaulicht;
-
4 ein beispielhaftes Diagramm einer epipolaren Bewegungsobjektkennzahl (Epipolar Moving Objectness Score) (EMS) für Punkttrajektorien gemäß verschiedenen Aspekten der vorliegenden Offenbarung veranschaulicht;
-
5 ein beispielhaftes Diagramm und eine Tabelle von EMSen für verschiedene Punkttrajektorien gemäß verschiedenen Aspekten der vorliegenden Offenbarung veranschaulicht;
-
6(a)–(e) beispielhafte Screenshots sind, die epipolare Beschränkungsergebnisse (epipolar constraint results) gemäß verschiedenen Aspekten der vorliegenden Offenbarung zeigen;
-
7 ein beispielhaftes Diagramm eines entarteten Falles einer epipolaren Beschränkung gemäß verschiedenen Aspekten der vorliegenden Offenbarung veranschaulicht;
-
8 das Konzept einer trifokalen Beschränkung und zugehöriger mathematischer Gleichungen gemäß verschiedenen Aspekten der vorliegenden Offenbarung veranschaulicht;
-
9(a)–(e) beispielhafte Screenshots sind, die trifokale Beschränkungsergebnisse gemäß verschiedenen Aspekten der vorliegenden Offenbarung zeigen;
-
10 ein beispielhaftes Ergebnis einer Bildung eines bedingten Zufallsfeldes (CRF) auf Superpixeln gemäß verschiedenen Aspekten der vorliegenden Offenbarung veranschaulicht;
-
11(a)–(b) beispielhafte Bewegungssegmentierungsergebnisse gemäß verschiedenen Aspekten der vorliegenden Offenbarung veranschaulichen;
-
12(a)–(i) beispielhafte Screenshots sind, die zusätzliche qualitative Ergebnisse gemäß verschiedenen Aspekten der vorliegenden Offenbarung zeigen;
-
13 ein beispielhaftes Ablaufdiagramm eines Verfahrens zum Erfassen von sich bewegenden Objekten gemäß verschiedenen Aspekten der vorliegenden Offenbarung zeigt;
-
14 ein beispielhaftes Systemdiagramm verschiedener Hardwarekomponenten und anderer Merkmale gemäß verschiedenen Aspekten der vorliegenden Offenbarung darlegt; und
-
15 ein beispielhaftes Blockdiagramm verschiedener beispielhafter Systemkomponenten gemäß verschiedenen Aspekten der vorliegenden Offenbarung ist.
-
DETAILLIERTE BESCHREIBUNG
-
Diese und andere Merkmale und Vorteile dieser Offenbarung sind in der folgenden detaillierten Beschreibung von verschiedenen beispielhaften Aspekten beschrieben oder sind aus dieser ersichtlich. Es kann jedoch offensichtlich sein, dass solche Aspekte ohne diese spezifischen Details praktiziert werden können.
-
Bezugnehmend auf 1 erfasst die vorliegende Offenbarung, unter anderen Merkmalen, sich bewegende Objekte in einem durch eine einzelne Kamera erfassten Streaming-Video, z. B. sich bewegende Fahrzeuge, Fußgänger und im Wesentlichen jedes sich bewegende Objekt. Eine Erfassung von sich bewegenden Objekten und eine bewegungsbasierte Verfolgung bzw. Tracking sind wichtig für eine Aktivitätserkennung, eine Verkehrsüberwachung und eine Fahrzeugsicherheit. Beispielsweise sind beim Fahren sich bewegende Objekte normalerweise in Bezug auf Sicherheitsbedenken wichtig. Außerdem können Okklusionen auftreten, wenn die Ansicht eines sich bewegenden Objekts ganz oder teilweise durch andere Objekte blockiert wird. Wenn es eine Teil-Okklusion gibt, kann es schwierig sein, das sich bewegende Objekt aus Standbildern zu erfassen. Wenn jedoch die sich bewegenden Teile in einem Video erkannt werden können, könnte dies dazu beitragen, das Okklusionsproblem zu lösen. Wie in 1 gezeigt, kann für jeden Frame eines von einer Monokularkamera aufgenommenen Videos eine Binärmaske oder ein Satz von Segmenten für jedes sich bewegende Objekt (z. B. der sich bewegende Van links, der Radfahrer in der Mitte und der Fußgänger rechts) ausgegeben werden, um anzuzeigen, ob ein Pixel zu einem sich bewegenden Objekt gehört oder nicht. Hier kann sich eine binäre Maske auf ein binäres Bild mit der gleichen Größe wie das zu verarbeitende Bild beziehen, und die Maske kann 1'en für alle Pixel enthalten, die Teil des interessierenden Bereichs sind, und 0'en überall sonst. Gemäß Aspekten der vorliegenden Offenbarung kann eine binäre Maske eines gesamten Frames ausgegeben werden, wobei jedes Pixel als beweglich oder statisch gekennzeichnet sein kann. Um dieses Ziel am Frame t zu erreichen, kann das vordere und hintere optische Flussfeld bis zum Frame t berechnet werden, und es kann ein Satz von Langzeitpunkttrajektorien gebildet werden. Jede Trajektorie kann durch einen Satz von Punkten dargestellt werden. Jede Trajektorie im aktuellen Satz kann am aktuellen Frame t enden. Jeder Trajektorie kann eine Bewegungsobjektkennzahl zugewiesen werden, die auf der Geometrie basiert, die anzeigt, ob sich eine Trajektorie auf einem sich bewegenden Objekt befindet oder nicht. Die Kennzahlen auf jeder Trajektorie können verwendet werden, um das Bild in sich bewegende und statische Objektbereiche zu unterteilen.
-
Der Bewegungszustand (austauschbar hierin als sich bewegende Objektheit bzw. Bewegungsobjektheit bzw. Bewegungsobjekt (moving objectness) bezeichnet) eines Objekts kann unter Verwendung von Geometrie gemessen werden. Wenn sich im einfachsten Falle beispielsweise eine Kamera in einer strikt nach vorne gerichteten Richtung bewegt, sieht eine Person im Allgemeinen alle statischen Punkte, die sich von dem Kamerazentrum weg bewegen, und weist einen Fokus der Erweiterung in einer Mitte eines Bildes auf. Anhaltspunkte zum Erfassen sich bewegender Objekte können ein Aussehen und eine Kompaktheit umfassen, unter anderen Anhaltspunkten. Beispielsweise können im Umgang mit einer Bewegungssegmentierung Punkttrajektorien extrahiert werden und ein Clustering auf diesen Trajektorien durchgeführt werden, basierend auf Eigenschaften wie einer Geschwindigkeit. Allerdings, während dieser Ansatz Clustering durchführt, kann es ein Mangel an Verständnis darüber geben, welche Cluster realen sich bewegenden Objekten entsprechen. Alternativ kann eine Nachverarbeitung durchgeführt werden, um sich bewegende Objekte zu extrahieren, indem unter anderem die Farbe untersucht wird. Eine Subraumverfolgung kann auch basierend auf der Annahme durchgeführt werden, dass ein orthographisches Kameramodell verwendet wird, wobei alle Hintergrundpunkttrajektorien in einem niederdimensionalen Raum liegen. Darüber hinaus kann eine eigenbewegungskompensierte Hintergrundsubtraktion bei der Bewegungsobjektdetektion durchgeführt werden durch Anwenden lokaler affiner Transformationen bei einem vorherigen Frame, um die Kamerabewegung zu kompensieren, gefolgt von einer Hintergrundsubtraktion, um eine sich bewegende Maske bzw. Bewegungsmaske zu erhalten.
-
Gemäß Aspekten der vorliegenden Offenbarung können ausgewählte geometrische Beschränkungen verwendet werden, um Bewegungshinweise zu erhalten, insbesondere unter Berücksichtigung, dass ein Objekt von einem Stillstand zu einer Bewegung oder umgekehrt übergehen kann. Lass I: D ⊂ R2 × Z+ → R+; (x, t) → It(x) eine auf einen Bereich D festgelegte Bildsequenz sein, und It bezeichnet den Frame zum Zeitpunkt t. Merkmalspunkte in der Bildsequenz I können verfolgt werden, und es kann ein Satz von Trajektorien Zt = {Z t / i,τ} N / i=1 konstruiert werden, wobei für jede Trajektorie τ der Anfangsframe ist und t der finale oder aktuelle Frame ist. Die Trajektorie z t / i,τ kann durch einen Satz von Punkten {x τ / i, x τ+1 / i, ..., x t / i} dargestellt werden. Für jeden Frame kann diesen Trajektorien eine Punktzahl, ein Wert oder eine Kennzahl zugewiesen werden, um zu bestimmen, ob sie sich auf einem sich bewegenden oder einem statischen Objekt befinden. Bewegungsobjektkennzahlen (moving objectness scores) können zusätzlich verwendet werden, um den Bildbereich in Bereiche von statischen und sich bewegenden Objekten zu unterteilen. In einer Bildsequenz I können Trajektorien an statischen Objekten geometrischen Beschränkungen folgen, die durch eine Kamerabewegung induziert werden.
-
Geometrische Bewegungsbeschränkungen können unter anderem informativer als Hinweise wie Aussehen sein. Reale Bewegungshinweise können erforderlich sein, um beispielsweise den Übergang eines Fahrzeugs von einem Bewegungszustand in einen Ruhezustand zu erfassen.
-
Wenn eine Kamera statisch ist, können 3D-Punkte auf denselben Punkt in der Bildebene projiziert werden, während sich die Kamera bewegt, kann sich die Projektion der statischen 3D-Punkte aufgrund der Kamerabewegung auf der Bildebene bewegen und kann bestimmten Beschränkungen folgen. Als solches, um ein sich bewegendes Objekt zu erfassen oder, um genauer zu sein, um die Bewegung von Punkttrajektorien zu messen, können zwei Arten von Mehrfachsicht-Geometrieinformationen verwendet werden, nämlich die epipolare Beschränkung zwischen zwei Ansichten und die trifokalen Beschränkungen von drei Ansichten. Die Verschiebungen der Projektionen eines Standpunktes in einer Szene in verschiedenen Ansichten können durch die Kamerabewegung verursacht werden. Unter der Annahme, dass die meisten von den Punkten in der Szene bewegungslos sind, können relative Kamerapositionsänderungen von den Punktkorrespondenzen abgeschätzt werden. Die Punkte auf den sich bewegenden Objekten können im Allgemeinen die Ausreißer solcher Schätzungen sein, und die Bewegung eines Punktes kann somit gemessen werden, wie er zu dem Modell passt.
-
Epipolare Beschränkung
-
Wie in
2 gezeigt, beschreibt eine epipolare Beschränkung (epipolar constraint) die Beziehung zwischen den Projektionen eines bewegungslosen dreidimensionalen Punktes zwischen zwei Ansichten durch Erstellen einer Kartierung zwischen Punkten in einem linken Bild und Linien in einem rechten Bild und umgekehrt. Epipolare Beschränkungen werden durch die Essenzielle Matrix oder die Fundamentalmatrix zwischen zwei Kameras beschrieben. Unter der Annahme von m Punktkorrespondenzen von Ruhepunkten in zwei Frames wird die folgende Gleichung stratifiziert:
wobei f
ij die Koeffizienten der Fundamentalmatrix bezeichnet. In der vorliegenden Offenbarung, wie in
3 gezeigt, kann ein optischer Fluss zwischen aufeinanderfolgenden Frames berechnet werden, um eine Punktkorrespondenz zu erhalten und dichte Langzeitpunkttrajektorien zu erzeugen. Bei zwei beliebigen Frames in einer Bildsequenz wird für jeden stationären Hintergrundpunkt in der Szene die folgende Gleichung stratifiziert:
x τ / iF τ' / τx τ' / i = 0 (1) wobei
x τ / i und x τ' / i die Projektionen des 3D-Punktes sind im Frame τ bzw. τ', und
F τ' / τ die Fundamentalmatrix ist, die die relativen Haltungsveränderungen der Kamera zwischen den beiden Frame codiert. Für zwei beliebige Frames, die Korrespondenzen von Punkttrajektorien gegeben, kann F abgeschätzt werden unter Verwendung eines kleinsten Medians von Quadraten (Least Median of Squares) (LMEDS). Am Frame t, können Fundamentalmatrizen zwischen jedem Framepaar vom Frame τ bis t geschätzt werden. Geometrisch kann die Projektion eines Standpunktes in einer Ansicht auf der epipolaren Linie liegen, die sich aus der Projektion in der anderen Ansicht ergibt. Für ein sich bewegendes Objekt kann die Gleichung (1) im Allgemeinen nicht gelten, außer für einen entarteten Fall, der weiter unten ausführlicher diskutiert wird. Gemäß Aspekten der vorliegenden Offenbarung, wie in
4 gezeigt, kann eine epipolare Bewegungsobjektkennzahl für ein Paar von Punktkorrespondenzen auf der Grundlage der epipolaren Beschränkung wie folgt berechnet werden:
ϕ(x τ / i, x τ' / i) = dpl(F τ' / τx τ' / i, x τ / i) + dpl(x τ' / i, x τ / iF τ' / τ) (2) wobei
F τ' / τx τ' / i und x τ / iF τ' / τ die relativen epipolaren Linien in jeder Ansicht definieren und die Funktion d
pl(·) die Punkt-zu-Linien-Distanz berechnet. Je größer der Abstand ist, desto eher gehört die Trajektorie zu einem sich bewegenden Objekt. Im Frame t, den gegenwärtigen Satz an Punkttrajektorien Z
t gegeben, können die Fundamentalmatrizen unter Verwendung von LMEDS und des 8-Punkt-Algorithmus zwischen einem aktuellen Frame T und allen vorherigen Frames geschätzt werden, solange eine ausreichende Anzahl an Punkttrajektorien zwischen diesem Frame und I
t existiert. Für jede Trajektorie
z t / i,τ, kann man die epipolare Bewegungsobjektkennzahl zwischen
x t / i auf dem aktuellen Frame und allen vorherigen Punkten auf der Trajektorie
{x τ / i, x τ+1 / i, ..., x t-1 / i} berechnen.
-
Um eine Historie einer Trajektorie zu berücksichtigen, können, wie in
5 gezeigt, zwei Maßnahmen basierend auf einer gegenwärtigen epipolaren Bewegungskennzahl (epipolar moving score) (EMS) und einer vorherigen EMS definiert werden. Die erste Maßnahme kann einen gewichteten Mittelwert über alle EMSen einer Trajektorie, nämlich einen gewichteten Mittelwert von EMS (EMS
avg) verwenden, der wie folgt definiert ist:
-
Hier ist β ∊ [0, 1] ein Dämpfungsfaktor, der ein geringeres Gewicht auf eine EMS aus den vorhergehenden Frames setzt und
ist ein Normalisierungsfaktor, so dass die ältere EMS weniger Gewicht erhält.
-
Zusätzlich zur mittleren epipolaren Bewegungsobjektkennzahl kann die Änderung des Zeitfehlers ϕ auch analysiert werden, um zu messen, wie wahrscheinlich eine Trajektorie auf einem sich bewegenden Objekt liegt. Gemäß Aspekten der vorliegenden Offenbarung kann die Annahme gemacht werden, dass
ϕ(x τ / i, x τ' / i) > ϕ(x τ / i, x τ' / i) wenn τ > τ' > τ''. Diese Ungleichung kann speziell gelten, wenn das Zielobjekt sich fortlaufend von seiner ursprünglichen Position entfernt. Obwohl diese Annahme als einschränkend angesehen werden kann, ist sie häufig der Fall in Stadtfahrtszenarien, bei denen Zielobjekte, die beobachtet werden, normalerweise nicht an den Anfangsort zurückkehren. Unter dieser Voraussetzung sind sowohl
[ϕ(x t / i, x t-1 / i), ϕ(x t / i, x t-2 / i), ..., ϕ(x t / i, x τ / i)] als auch ϕ(x τ+1 / i, x τ / i), ϕ(x τ+2 / i, x τ / i), ..., ϕ(x t / i, x τ / i)] wachsende Sequenzen für t > τ. Um diese Intuition zu erfassen, kann eine andere epipolare Bewegungsobjektkennzahl wie folgt definiert werden:
wobei [·] eine Indikatorfunktion ist, die 1 ist, wenn die Eingangsungleichung gilt, und andernfalls 0 ist, v eine Toleranzvariable ist und
ρ(z t / i,τ) = (t – τ)(t – τ – 1)/2 der Normalisierungsfaktor ist.
-
6(a)–(e) veranschaulichen eine Anzahl von beispielhaften epipolaren Beschränkungsergebnissen beim Erfassen sich bewegender Objekte gemäß Aspekten der vorliegenden Offenbarung. Beispielsweise können in 6(a) das sich bewegende Fahrzeug auf der linken Seite und der Radfahrer auf der rechten Seite erfasst und identifiziert werden unter Verwendung der oben diskutierten epipolaren Beschränkung. Ferner werden in jeder der 6(b)–(e) nicht nur die sich bewegenden Objekte im Gegensatz zum Hintergrund identifiziert, sondern die Bewegung jedes sich bewegenden Objekts wird auch in Echtzeit verfolgt.
-
Trifocale Beschränkung
-
Eine epipolare Beschränkung (epipolar constraint) kann jedoch eine bestimmte Art von Bewegung nicht detektieren, d. h. wenn sich ein Objekt in die gleiche Richtung wie eine Kamera bewegt, oder allgemeiner, wenn sich das Objekt in der epipolaren Ebene bewegt. In solchen Fällen kann sich ein bestimmter Punkt entlang der Epipolarlinie bewegen und kann daher nicht durch die epipolare Beschränkung festgestellt werden. Dies wird als der entartete Fall bezeichnet, wie in
7 gezeigt. Um die Probleme in dem entarteten Fall zu überwinden, kann eine trifokale Beschränkung (trifocal constraint) zwischen drei Ansichten, wie in
8 gezeigt, verwendet werden, indem eine Beziehung der Vorsprünge eines stehenden Punktes oder einer Linie in drei Frames codiert wird, und kann durch einen Tensor T dargestellt werden. Für drei Punktkorrespondenzen sind die folgenden Beschränkungen erfüllt:
-
Hier codieren die Subskripts drei Koordinaten des Punktes und die Gleichung gilt für alle i, j = 1, 2, 3. Anders als bei dem Zwei-Sicht-Fall kann die Position des Punktes in der dritten Ansicht bestimmt werden angesichts seiner Positionen in zwei Ansichten.
-
Angesichts der Drei-Blickpunkt-Korrespondenz
(x m / i, x n / i, x p / i), wobei t ≥ p > n > m ≥ τ ist auf der Trajektorie
z t / i,τ, kann eine trifokale Bewegungsobjektkennzahl (trifocal moving objectness score) (TMS) wie folgt definiert werden:
γ(x m / i, x n / i, x p / i) = dpp(x p / i, x ^ p / i) (5) wobei
x ^ p / i die geschätzte Position ist in der dritten Ansicht unter Verwendung von x
m und x
n und d
pp(·) den Euklidischen Abstand zwischen den Punkten berechnet. Ein trifokaler Tensor kann unter Verwendung von LMEDS geschätzt werden, aber eine solche Abschätzung des trifokalen Tensors ist anfällig für Störungen. Um dieses Problem zu lösen, können zunächst die Epipole von den Fundamentalmatrizen abgeschätzt werden und eine Beschränkung der Epipole von dem trifokalen Tensor kann nicht weit von diesen Schätzungen entfernt sein. Anders als im epipolaren Beschränkungsfall kann der trifokale Tensor zwischen dem aktuellen Frame t und t – η und t – 2η, wobei η die Framelücke ist, zum Erzeugen einer trifokalen Bewegungsobjektkennzahl für jede Trajektorie
z t / i,τ abgeschätzt werden. Darüber hinaus kann eine zeitliche Unterstützung der Trajektorie verwendet werden, um den gewichteten Mittelwert zu berechnen, um die Historie zu berücksichtigen, wie folgt:
wobei β ∊ [0, 1].
-
9(a)–(e) veranschaulichen eine Anzahl von beispielhaften trifokalen Beschränkungsergebnissen bei der Erfassung von sich bewegenden Objekten gemäß Aspekten der vorliegenden Offenbarung. In 9(a) können beispielsweise das sich bewegende Fahrzeug auf der linken Seite und der Radfahrer auf der rechten Seite unter Verwendung der oben diskutierten trifokalen Beschränkung erfasst und identifiziert werden. Ferner werden in jeder der 9(b)–(e) nicht nur die sich bewegenden Objekte im Gegensatz zum Hintergrund identifiziert, sondern die Bewegung jedes sich bewegenden Objekts wird auch in Echtzeit verfolgt.
-
Bewegungsobjekt-Segmentierung
-
Angesichts der obigen Diskussion bezüglich Bewegungsobjekt-/Bewegungskennzahlen für Punkttrajektorien können derartige Informationen auf einen gesamten Frame übertragen werden. Dies kann erreicht werden, indem zuerst ein Frame segmentiert wird, um Superpixel zu erhalten und Superpixel mit 0/1 Labels zu kennzeichnen, wobei 1 anzeigt, dass das Superpixel zu einem sich bewegenden Objekt gehört und 0 ein statisches Objekt anzeigt. Nachfolgend kann eine paarweise CRF über die Superpixel konstruiert werden, wie in
10 gezeigt. Indem jedes Superpixel im aktuellen Frame t als s
i und sein entsprechendes Label als y
i ∊ y bezeichnet wird, kann das CRF-Ziel wie folgt definiert werden:
wobei ε der Satz aller benachbarten Superpixelpaare ist und E
u, E
p jeweils die unären bzw. paarweisen Merkmale bezeichnen. Für E
u können die obigen Gleichungen (1)–(6) für einen aktuellen Frame verbunden werden. Als nächstes kann die Antwort von Punkttrajektorien auf Superpixel übertragen werden, indem der Median zwischen allen Trajektorien innerhalb des Superpixels genommen wird und mit ”0” gekennzeichnet wird, wenn es keine Trajektorie innerhalb des Superpixels für jedes Merkmal gibt. Um die Kennzeichnung zeitlich konsistent zu halten, kann ein weiteres Merkmal zu dem unären Term hinzugefügt werden, der die Historie einer Punkttrajektorienkennzeichnung codiert. Im Frame t – 1 können nach der Superpixel-Kennzeichnung die Labels für Punkttrajektorien erhalten werden, indem das Label des Superpixels allen Punkttrajektorien darin zugewiesen wird. Im Frame t kann für jedes Superpixel der Prozentsatz der Vordergrundpunkttrajektorien in ihm berechnet werden, um eine problemlose Kennzeichnung zeitlich sicherzustellen. Alternativ kann eine temporäre CRF gebildet werden, in der Superpixel über Frames verknüpft werden können. Die paarweisen Merkmale E
p zwischen zwei Superpixeln können aus den Bhattacharyya-Koeffizienten zwischen den Farb- und optischen Flußhistogrammen der beiden Superpixel bestehen. In diesem Optimierungsproblem können Gewichtsvektoren w
u und w
p über die strukturelle Unterstützungsvektormaschine (structural Support Vector Machine) (SVM) erlernt werden, und das Optimierungsproblem kann durch Doppelzerlegung gelöst werden.
-
Die 11(a)–(b) veranschaulichen eine Anzahl von beispielhaften Bewegungsobjekt-Segmentierungsergebnissen zum Erfassen von sich bewegenden Objekten gemäß Aspekten der vorliegenden Offenbarung. Zusätzlich sind die 12(a)–(i) beispielhafte Screenshots, die qualitative Ergebnisse bei der Erfassung von sich bewegenden Objekten gemäß Aspekten der vorliegenden Offenbarung zeigen. Ein Tracking-Datensatz bzw. Verfolgungsdatensatz kann in Verbindung mit verschiedenen Eingangsbildsequenzen etabliert werden. Die vorliegende Offenbarung kann ein binäres Label für jedes Objekt hinzufügen, um zu helfen, anzuzeigen, ob es sich bewegt oder nicht.
-
13 ist ein beispielhaftes Flussdiagramm, das ein Verfahren 1400 zum Erfassen von sich bewegenden Objekten gemäß verschiedenen Aspekten der vorliegenden Offenbarung veranschaulicht. In 13 beginnt das Verfahren im Block 1302 damit, ein von einer Kamera aufgenommenes Streaming-Video zu erhalten. Das Verfahren umfasst auch im Block 1304, eine Eingangsbildsequenz zu extrahieren, die eine Serie von Bildern aus dem Streaming-Video enthält; im Block 1306 Punktmerkmale zu verfolgen und einen Satz von Punkttrajektorien für mindestens eine der Serien von Bildern beizubehalten; im Block 1308 eine Wahrscheinlichkeit für jede Punkttrajektorie zu messen, um zu bestimmen, ob sie zu einem sich bewegenden Objekt gehört, unter Verwendung von Beschränkungen aus der Mehrfachsichtgeometrie; und im Block 1310 ein bedingtes Zufallsfeld (CRF) auf einem gesamten Frame zu bestimmen, um eine Bewegungsobjektsegmentierung zu erhalten.
-
14 stellt ein beispielhaftes Systemdiagramm verschiedener Hardwarekomponenten und anderer Merkmale zur Verwendung gemäß einem Aspekt der vorliegenden Offenbarung dar. Die vorliegende Offenbarung kann unter Verwendung von Hardware, Software oder einer Kombination davon implementiert sein und kann in einem oder mehreren Computersystemen oder anderen Verarbeitungssystemen implementiert sein. In einem Aspekt betrifft die Offenbarung ein oder mehrere Computersysteme, die in der Lage sind, die hier beschriebene Funktionalität auszuführen. Ein Beispiel eines solchen Computersystems 1400 ist in 14 gezeigt, und die Computersysteme 1400 können implementiert sein, um das Verfahren 1300 von 13 auszuführen.
-
Das Computersystem 1400 umfasst einen oder mehrere Prozessoren, wie zum Beispiel einen Prozessor 1404. Der Prozessor 1404 ist mit einer Kommunikationsinfrastruktur 1406 (z. B. einem Kommunikationsbus, einer Cross-Over-Leiste oder einem Netzwerk) verbunden. Verschiedene Softwareaspekte werden in Bezug auf dieses beispielhafte Computersystem beschrieben. Nach dem Lesen dieser Beschreibung wird es dem Fachmann klar werden, wie die Offenbarung unter Verwendung anderer Computersysteme und/oder Architekturen implementiert werden kann.
-
Das Computersystem 1400 kann eine Anzeigeschnittstelle 1402 umfassen, die Grafiken, Text und andere Daten von der Kommunikationsinfrastruktur 1406 (oder von einem nicht dargestellten Framepuffer) zur Anzeige auf einer Anzeigeeinheit 1430 weiterleitet. Das Computersystem 1400 umfasst auch einen Hauptspeicher 1408, vorzugsweise einen Speicher mit wahlfreiem Zugriff (RAM), und kann auch einen Sekundärspeicher 1410 umfassen. Der Sekundärspeicher 1410 kann beispielsweise ein Festplattenlaufwerk 1412 und/oder ein Wechselspeicherlaufwerk 1414, das ein Diskettenlaufwerk, ein Magnetbandlaufwerk, ein optisches Plattenlaufwerk und dergleichen darstellt, umfassen. Das Wechselspeicherlaufwerk 1414 liest von und/oder schreibt auf eine Wechselspeichereinheit 1418 in einer wohlbekannten Weise. Die Wechselspeichereinheit 1418 stellt eine Diskette, ein Magnetband, eine optische Platte und dergleichen dar, die von dem Wechselspeicherlaufwerk 1414 gelesen und beschrieben wird. Wie ersichtlich ist, enthält die Wechselspeichereinheit 1418 ein computerverwendbares Speichermedium, in dem Computersoftware und/oder Daten gespeichert sind.
-
In alternativen Aspekten kann der Sekundärspeicher 1410 andere ähnliche Einrichtungen umfassen, um zu ermöglichen, dass Computerprogramme oder andere Befehle in das Computersystem 1400 geladen werden. Solche Einrichtungen können beispielsweise eine Wechselspeichereinheit 1422 und eine Schnittstelle 1420 umfassen. Beispiele dafür können eine Programmkassette und eine Kassettenschnittstelle (wie die, die in Videospieleinrichtungen gefunden wird), einen Wechselspeicherchip (wie z. B. einen löschbaren programmierbaren Nur-Lese-Speicher (EPROM) oder einen programmierbaren Nur-Lese-Speicher (PROM)) und einen zugeordneten Sockel und andere Wechselspeichereinheiten 1422 und Schnittstellen 1420 umfassen, die es ermöglichen, dass Software und Daten von der Wechselspeichereinheit 1422 zu dem Computersystem 1400 übertragen werden.
-
Das Computersystem 1400 kann auch eine Kommunikationsschnittstelle 1424 umfassen. Die Kommunikationsschnittstelle 1424 ermöglicht die Übertragung von Software und Daten zwischen dem Computersystem 1400 und externen Geräten. Beispiele der Kommunikationsschnittstelle 1424 können ein Modem, eine Netzwerkschnittstelle (wie eine Ethernet-Karte), einen Kommunikationsanschluss, einen Personal Computer Memory Card International Association(PCMCIA)-Steckplatz und eine Karte und dergleichen umfassen. Software und Daten, die über die Kommunikationsschnittstelle 1424 übertragen werden, haben die Form von Signalen 1428, die elektronische, elektromagnetische, optische oder andere Signale sein können, die von der Kommunikationsschnittstelle 1424 empfangen werden können. Diese Signale 1428 werden der Kommunikationsschnittstelle 1424 über einen Kommunikationsweg (z. B. Kanal) 1426 bereitgestellt. Dieser Weg 1426 überträgt Signale 1428 und kann unter Verwendung eines Drahts oder Kabels, einer Faseroptik, einer Telefonleitung, einer Mobilfunkverbindung, einer Funkfrequenz(RF)-Verbindung und/oder anderen Kommunikationskanälen implementiert sein. In diesem Dokument werden die Begriffe „Computerprogrammmedium” und „computerverwendbares Medium” verwendet, um allgemein auf Medien zu verweisen, wie ein Wechselspeicherlaufwerk 1480, eine auf dem Festplattenlaufwerk 1470 installierte Festplatte und Signale 1428. Diese Computerprogrammprodukte stellen Software für das Computersystem 1400 bereit. Die Offenbarung ist auf solche Computerprogrammprodukte gerichtet.
-
Computerprogramme (die auch als Computersteuer-/regellogik bezeichnet werden) sind in dem Hauptspeicher 1408 und/oder dem Sekundärspeicher 1410 gespeichert. Computerprogramme können auch über die Kommunikationsschnittstelle 1424 empfangen werden. Solche Computerprogramme ermöglichen es, wenn sie ausgeführt werden, dass das Computersystem 1400 die Merkmale der vorliegenden Offenbarung ausführt, wie hierin diskutiert. Insbesondere ermöglichen die Computerprogramme, wenn sie ausgeführt werden, dem Prozessor 1410, die Merkmale der vorliegenden Offenbarung auszuführen. Entsprechend repräsentieren solche Computerprogramme Steuer-/Regeleinrichtungen des Computersystems 1400.
-
In einem Aspekt, in welchem die Offenbarung unter Verwendung von Software implementiert wird, kann die Software in einem Computerprogrammprodukt gespeichert und unter Verwendung eines Wechselspeicherlaufwerks 1414, einer Festplatte 1412 oder einer Kommunikationsschnittstelle 1420 in das Computersystem 1400 geladen werden. Die Steuer-/Regellogik (Software) veranlasst, wenn sie durch den Prozessor 1404 ausgeführt wird, den Prozessor 1404, die hierin beschriebenen Funktionen der Offenbarung auszuführen. In einem weiteren Aspekt ist die Offenbarung hauptsächlich in Hardware implementiert beispielsweise unter Verwendung von Hardware-Komponenten, wie anwendungsspezifischen integrierten Schaltungen (ASICs). Die Implementierung der Hardware-Zustandsmaschine, um die hierin beschriebenen Funktionen auszuführen, wird Fachleuten des relevanten Stands der Technik ersichtlich sein.
-
In noch einem weiteren Aspekt wird die Offenbarung unter Verwendung einer Kombination sowohl von Hardware als auch Software implementiert.
-
15 ist ein Blockdiagramm verschiedener beispielhafter Systemkomponenten gemäß einem Aspekt der vorliegenden Offenbarung. 15 zeigt ein Kommunikationssystem 1500, das in Übereinstimmung mit der vorliegenden Offenbarung verwendbar ist. Das Kommunikationssystem 1500 umfasst einen oder mehrere Zugriffsberechtigte 1560, 1562 (austauschbar hierin auch als ein oder mehrere ”Benutzer” bezeichnet) und ein oder mehrere Terminals 1542, 1566. In einem Aspekt werden Daten zur Verwendung gemäß der vorliegenden Offenbarung beispielsweise von Zugriffsberechtigten 1560, 1562 über Terminals 1542, 1566 eingegeben und/oder auf diese zugegriffen, wie z. B. Personalcomputer (PCs), Minicomputer, Großrechner, Mikrocomputer, Telefongeräte oder drahtlose Geräte, wie z. B. persönliche digitale Assistenten („PDAs”) oder handgehaltene drahtlose Geräte, die mit einem Server 1543 gekoppelt sind, wie z. B. einem PC, einem Minicomputer, einem Großrechner, einem Mikrocomputer oder einem anderen Gerät mit einem Prozessor und einem Datenspeicher und/oder einer Verbindung zu einem Datenspeicher, beispielsweise über ein Netzwerk 1544, wie das Internet oder ein Intranet, und Kopplungen 1545, 1546, 1564. Die Kopplungen 1545, 1546, 1564 umfassen beispielsweise drahtgebundene, drahtlose oder faseroptische Verbindungen. In einem anderen Aspekt arbeiten das Verfahren und das System der vorliegenden Offenbarung in einer eigenständigen Umgebung, beispielsweise auf einem einzelnen Terminal.
-
Während Aspekte dieser Offenbarung in Verbindung mit den vorstehend skizzierten beispielhaften Merkmalen beschrieben worden sind, können verschiedene Alternativen, Modifikationen, Variationen, Verbesserungen und/oder substantielle Äquivalente, ob diese nun bekannt sind oder noch nicht vorhersehbar sind, für den Fachmann offensichtlich werden. Dementsprechend sollen die beispielhaften Aspekte der Offenbarung, wie oben dargelegt, erläuternd und nicht beschränkend sein. Verschiedene Änderungen können vorgenommen werden, ohne vom Geist und davon abzuweichen. Daher sollen Aspekte der Offenbarung alle bekannten oder später entwickelten Alternativen, Modifikationen, Variationen, Verbesserungen und/oder substantiellen Äquivalente umfassen.
-
Es werden Systeme und Verfahren zum Erfassen von sich bewegenden Objekten offenbart. Ein computerimplementiertes Verfahren zum Erfassen von sich bewegenden Objekten umfasst das Erhalten eines von einer Kamera aufgenommenen Streaming-Videos; Extrahieren einer Eingangsbildsequenz, die eine Serie von Bildern aus dem Streaming-Video enthält; Verfolgen von Punktmerkmalen und Beibehalten eines Satzes von Punkttrajektorien für mindestens eine der Serien von Bildern; Messen einer Wahrscheinlichkeit für jede Punkttrajektorie, um zu bestimmen, ob sie zu einem sich bewegenden Objekt gehört, unter Verwendung von Beschränkungen aus der Mehrfachsichtgeometrie; und Bestimmen eines bedingten Zufallsfeldes (CRF) an einem gesamten Frame, um eine Segmentierung eines sich bewegenden Objekts zu erhalten.