-
GEBIET
-
Hier beschriebene Ausführungsformen betreffen allgemein die Datenverarbeitung und insbesondere die Erleichterung der Echtzeit-Multi View-Detektion von Objekten in Multi Camera-Umgebungen.
-
HINTERGRUND
-
Es sind derzeit einige Objektdetektionstechniken auf dem Markt, diese sind jedoch nicht ohne Herausforderungen. Zum Beispiel ist bei den meisten herkömmlichen Techniken die Objektokklusion inhärent, wodurch solche Techniken unzuverlässig und fehleranfällig werden. Ferner weisen die meisten herkömmlichen Techniken keinen tatsächlichen Echtzeitbetrieb oder keine tatsächliche Echtzeitleistung auf, und sie sind auch nicht imstande, Kamerasysteme mit großen Maßstab zu unterstützen.
-
Figurenliste
-
Ausführungsformen werden als Beispiele und nicht als Einschränkung in den Figuren der beigeschlossenen Zeichnungen veranschaulicht, in denen sich ähnliche Bezugszahlen auf ähnliche Elemente beziehen.
- 1 veranschaulicht eine Rechnervorrichtung, die einen Multi Camera-Echtzeit-Objektdetektionsmechanismus gemäß einer Ausführungsform verwendet.
- 2 veranschaulicht einen Multi Camera-Echtzeit-Objektdetektionsmechanismus gemäß einer Ausführungsform.
- 3A veranschaulicht eine geografische Beziehung zwischen Hauptlinien gemäß einer Ausführungsform.
- 3B veranschaulicht ein Mapping von einer Hauptlinie und Objektgruppen gemäß einer Ausführungsform.
- 3C veranschaulicht eine endgültige Ausgabe gemäß einer Ausführungsform.
- 4 veranschaulicht eine Ausführungsform eines Verfahrens zum Vornehmen einer Echtzeit-Multi View-Multi Camera-Detektion von Objekten gemäß einer Ausführungsform.
- 5 veranschaulicht eine Computervorrichtung, die imstande ist, eine oder mehrere Ausführungsformen zu unterstützen und zu implementieren, gemäß einer Ausführungsform.
- 6 veranschaulicht eine Ausführungsform einer Rechnerumgebung, die imstande ist, eine oder mehrere Ausführungsformen zu unterstützen und zu implementieren, gemäß einer Ausführungsform.
-
DETAILLIERTE BESCHREIBUNG
-
In der folgenden Beschreibung werden zahlreiche spezifische Details angegeben. Ausführungsformen, wie hier beschrieben, können jedoch ohne diese spezifischen Details praktiziert werden. In anderen Fällen wurden wohlbekannte Schaltungen, Strukturen und Techniken nicht detailliert gezeigt, um das Verständnis dieser Beschreibung nicht zu verdecken.
-
Ausführungsformen stellen eine neue Technik für die Echtzeit-Objektdetektion in Multi Camera-Systemen bereit. In einer Ausführungsform wird eine Multi Camera-Detektionstechnik auf der Basis eines Linien-Fusing verwendet, um zu gestatten, alle Objekte, die von verschiedenen Kameras detektiert werden, zu assoziieren und sie auf eine Standebene zu mappen. Diese neue Technik ermöglicht auch, alle Detektionsfehler, wie falsche Detektionen und fehlerhafte Detektionen usw., zu verhindern oder zu lösen.
-
Es wird vorgesehen und ist anzumerken, dass Ausführungsformen nicht auf irgendeine Form oder irgendeinen Typ von Objekten begrenzt sind, und dass sie für alle Objekte, einschließlich Lebewesen und nicht lebendiger Dinge, gelten. In diesem gesamten Dokument wird der Ausdruck „Objekt“ so bezeichnet, dass er alle lebendigen und nicht lebendigen Dinge umfasst, und wird austauschbar mit „Mensch“, „Person“, „Mann“, „Frau“, „Kind“ usw. verwendet. Zum Beispiel sind Ausführungsformen auf alle Objekte anwendbar, wie Menschen, Tiere, Bäume, geografische Objekte, Himmelsobjekte, Wettersysteme, Gebäude, Sportstadien, Nahrungsmittel, Fahrzeuge, Ausrüstung, Werkzeuge, Straßen, Berge, Meere und/oder dgl. Der Kürze, Klarheit und des einfachen Verständnisses halber involvieren Beispiele, die in diesem gesamten Dokument angegeben werden, Menschen und Sportveranstaltungen; wie im Vorstehenden angegeben, sind Ausführungsformen jedoch nicht darauf beschränkt.
-
Es wird vorgesehen, dass Ausdrücke wie „Anforderung“, „Anfrage“, „Job“, „Arbeit“, „Arbeitsaufgabe“ und „Arbeitslast“ in diesem gesamten Dokument austauschbar bezeichnet werden können. Ähnlich kann sich eine „Anwendung“ oder ein „Agent“ auf ein Computerprogramm, eine Software-Anwendung, ein Spiel, eine Arbeitsstationanwendung usw. beziehen oder diese umfassen, die durch eine Anwendungsprogrammierungsschnittstelle (API) angeboten werden, wie eine Free Rendering API, wie Open Graphics Library (OpenGL®), DirectX® 11, DirectX® 12 usw., wobei „Dispatch“ austauschbar als „Arbeitseinheit“ oder „Draw“ bezeichnet werden kann, und ähnlich kann „Anwendung“ austauschbar als „Arbeitsfluss“ oder einfach „Agent“ bezeichnet werden. Zum Beispiel kann eine Arbeitslast, wie jene eines dreidimensionalen (3D) Spiels, eine beliebige Anzahl und einen beliebigen Typ von „Rahmen“ umfassen und ausgeben, wobei jeder Rahmen ein Bild (z.B. Segelboot, menschliches Gesicht) darstellen kann. Ferner kann jeder Rahmen eine beliebige Anzahl und einen beliebigen Typ von Arbeitseinheiten umfassen und bieten, wobei jede Arbeitseinheit einen Teil (z.B. Mast eines Segelboots, Stirn eines menschlichen Gesichts) des Bilds (z.B. Segelboot, menschliches Gesicht) darstellen kann, der von seinem entsprechenden Rahmen dargestellt wird. Der Konsistenz halber kann jedoch jedes Element mit einem einzelnen Ausdruck (z.B. „Dispatch“, „Agent“ usw.) in diesem gesamten Dokument bezeichnet werden.
-
In einigen Ausführungsformen können Ausdrücke wie „Anzeigebildschirm“ und „Anzeigefläche“ austauschbar verwendet werden, wobei sie sich auf einen sichtbaren Abschnitt einer Anzeigevorrichtung beziehen, während der Rest der Anzeigevorrichtung in einer Rechnervorrichtung eingebettet sein kann, wie einem Smartphone, einer am Körper tragbaren Vorrichtung usw. Es wird vorgesehen und ist anzumerken, dass Ausführungsformen nicht auf irgendeine bestimmte Rechnervorrichtung, Software-Anwendung, Hardware-Komponente, Anzeigevorrichtung, einen Anzeigebildschirm oder eine Anzeigefläche, ein Protokoll, einen Standard usw. beschränkt sind. Zum Beispiel können Ausführungsformen mit einer beliebigen Anzahl und einem beliebigen Typ von Echtzeit-Anwendungen auf einer beliebigen Anzahl und einem beliebigen Typ von Computern angewendet und verwendet werden, wie Desktops, Laptops, Tabletcomputern, Smartphones, am Kopf zu tragenden Anzeigen und anderen am Körper tragbaren Vorrichtungen und/oder dgl. Ferner können zum Beispiel Rendering-Szenarien für eine effiziente Leistung unter Verwendung dieser neuen Technik von einfachen Szenarien, wie Desktop-Zusammenstellungen, zu komplexen Szenarien, wie 3D Spielen, Anwendungen mit erweiterter Realität usw. reichen.
-
Es ist anzumerken, dass Ausdrücke oder Akronyme, wie Convolutional Neural Network (CNN), CNN, neuronales Netz (NN), NN, tiefes neuronales Netz (DNN), DNN, rekurrentes neuronales Netz (RNN), RNN, und/oder dgl., austauschbar in diesem gesamten Dokument bezeichnet werden können. Ferner können Ausdrücke wie „autonome Maschine“ oder einfach „Maschine“, „autonomes Fahrzeug“ oder einfach „Fahrzeug“, „autonomer Agent“ oder einfach „Agent“, „autonome Vorrichtung“ oder „Rechnervorrichtung“, „Roboter“ und/oder dgl. austauschbar in diesem gesamten Dokument bezeichnet werden.
-
1 veranschaulicht eine Rechnervorrichtung 100, die einen Multi Camera-Echtzeit-Objektdetektionsmechanismus („Detektionsmechanismus“) 110 gemäß einer Ausführungsform verwendet. Die Rechnervorrichtung 100 stellt eine Kommunikations- und Datenverarbeitungsvorrichtung dar, die umfasst oder darstellt (ohne Einschränkungen): smarte Sprachbefehlsvorrichtungen, intelligente persönliche Assistenten, Heim/Büroautomatisierungssysteme, Haushaltsgeräte (z.B. Waschmaschinen, Fernsehgeräte usw.), mobile Vorrichtungen (z.B. Smartphones, Tablet-Computer usw.), Spielvorrichtungen, Handvorrichtungen, am Körper tragbare Vorrichtungen (z.B. Smartwatches, smarte Armbänder usw.), Virtual Reality (VR) Vorrichtungen, am Kopf zu tragende Anzeigen (HMDs), Internet of Things (IoT) Vorrichtungen, Laptop Computer, Desktop Computer, Server Computer, Set-top Boxes (z.B. Internet-basierte Kabel-TV Set-top-Boxen usw.), Vorrichtungen auf der Basis des Global Positioning Systems (GPS), Auto-Infotainment-Vorrichtungen usw.
-
In einigen Ausführungsformen umfasst die Rechnervorrichtung 100 oder arbeitet mit oder ist eingebettet in oder erleichtert eine beliebige Anzahl und einen beliebigen Typ anderer smarter Vorrichtungen, wie (ohne Einschränkung) autonome Maschinen oder Agenten mit künstlicher Intelligenz, wie mechanische Agenten oder Maschinen, elektronische Agenten oder Maschinen, virtuelle Agenten oder Maschinen, elektromechanische Agenten oder Maschinen usw. Beispiele von autonomen Maschinen oder Agenten mit künstlicher Intelligenz können umfassen (ohne Einschränkung): Roboter, autonome Fahrzeuge (z.B. selbstfahrende Autos, selbstfliegende Flugzeuge, selbstsegelnde Boote usw.), autonome Ausrüstung (selbstbetriebene Konstruktionsfahrzeuge, selbstbetriebene medizinische Ausrüstung usw.) und/oder dgl. Ferner sind „autonome Fahrzeuge“ nicht auf Autos beschränkt, sondern sie können auch eine beliebige Anzahl und einen beliebigen Typ von autonomen Maschinen umfassen, wie Roboter, autonome Ausrüstung, autonome Haushaltsgeräte und/oder dgl., und eine oder mehrere beliebige Aufgaben oder Betriebe in Bezug auf solche autonomen Maschinen können mit autonomem Antrieb austauschbar bezeichnet werden.
-
Ferner kann zum Beispiel eine Rechnervorrichtung 100 eine Computer-Plattform umfassen, die eine integrierte Schaltung („IC“) hostet, wie ein Systemon-Chip („SoC“ oder „SOC“), wobei verschiedene Hardware- und/oder Software-Komponenten der Rechnervorrichtung 100 auf einem einzelnen Chip integriert werden.
-
Wie veranschaulicht, kann in einer Ausführungsform die Rechnervorrichtung 100 eine beliebige Anzahl und einen beliebigen Typ von Hardware- und/oder Software-Komponenten umfassen, wie (ohne Einschränkung) eine Grafikverarbeitungseinheit („GPU“ oder einfach „Grafikprozessor“) 114, einen Grafiktreiber (auch als „GPU Treiber“, „Grafiktreiberlogik“, „Treiberlogik“, Benutzermodustreiber (UMD), UMD, Benutzermodus-Treiberrahmen (UMDF), UMDF, oder einfach „Treiber“ bezeichnet) 116, eine Zentraleinheit („CPU“ oder einfach „Anwendungsprozessor“) 112, einen Speicher 108, Netzvorrichtungen, Treiber oder dgl. sowie Eingabe/Ausgabe- (I/O) Quellen 104, wie Berührungsbildschirme, Berührungsfelder, Touch Pads, virtuelle oder reguläre Tastaturen, virtuelle oder reguläre Mäuse, Ports, Anschlüsse usw. Die Rechnervorrichtung 100 kann ein Betriebssystem (OS) 106 umfassen, das als Schnittstelle zwischen Hardware und/oder physischen Ressourcen der Rechnervorrichtung 100 und einem Benutzer dient.
-
Es ist klar, dass ein weniger oder besser ausgestattetes System als das im Vorstehenden beschriebene Beispiel für bestimmte Implementierungen bevorzugt werden kann. Daher kann die Auslegung der Rechnervorrichtung 100 von Implementierung zu Implementierung in Abhängigkeit von zahlreichen Faktoren variieren, wie Preiseinschränkungen, Leistungsanforderungen, technologischen Verbesserungen oder anderen Umständen.
-
Ausführungsformen können implementiert werden als eine beliebige oder eine Kombination von: einem oder mehreren Mikrochips oder integrierten Schaltungen, die miteinander verbunden sind unter Verwendung einer Mutterplatine, festverdrahteter Logik, Software, die von einer Speichervorrichtung gespeichert wird und von einem Mikroprozessor ausgeführt wird, Firmware, einer anwendungsspezifischen integrierten Schaltung (ASIC) und/oder einem feldprogrammierbaren Gate-Array (FPGA). Die Ausdrücke „Logik“, „Modul“, „Komponente“, „Maschine“, „Schaltungen“, „Element“ und „Mechanismus“ können als Beispiel Software, Hardware und/oder eine Kombination davon, wie Firmware, umfassen.
-
In einer Ausführungsform, wie veranschaulicht, kann der Detektionsmechanismus 110 von einem Speicher 108 in Kommunikation mit einer I/O Quelle(n) 104 gehostet werden, wie Mikrofonen, Lautsprechern usw. der Rechnervorrichtung 100. In einer anderen Ausführungsform kann der Detektionsmechanismus 110 ein Teil des Betriebssystems 106 sein oder davon gehostet werden. In noch einer anderen Ausführungsform kann der Detektionsmechanismus 110 durch den Grafiktreiber 116 gehostet oder erleichtert werden. In noch einer anderen Ausführungsform kann der Detektionsmechanismus 110 von der Grafikverarbeitungseinheit („GPU“ oder einfach „Grafikprozessor“) 114 oder der Firmware des Grafikprozessors 114 gehostet werden oder ein Teil davon sein. Zum Beispiel kann der Detektionsmechanismus 110 in der Verarbeitungs-Hardware des Grafikprozessors 114 eingebettet sein oder als Teil davon implementiert sein. Ähnlich kann in noch einer anderen Ausführungsform der Detektionsmechanismus 110 von der Zentraleinheit („CPU“ oder einfach „Anwendungsprozessor“) 112 gehostet werden oder ein Teil davon sein. Zum Beispiel kann der Detektionsmechanismus 110 in der Verarbeitungs-Hardware des Anwendungsprozessors 112 eingebettet sein oder als Teil davon implementiert sein.
-
In noch einer weiteren Ausführungsform kann der Detektionsmechanismus 110 von einer beliebigen Anzahl und einem beliebigen Typ von Komponenten der Rechnervorrichtung 100 gehostet werden oder ein Teil davon sein, z.B. kann ein Abschnitt des Detektionsmechanismus 110 von dem Betriebssystem 116 gehostet werden oder ein Teil davon sein, ein anderer Abschnitt kann von dem Grafikprozessor 114 gehostet werden oder ein Teil davon sein, ein anderer Abschnitt kann von dem Anwendungsprozessor 112 gehostet werden oder ein Teil davon sein, während ein oder mehrere Abschnitte des Detektionsmechanismus 110 von dem Betriebssystem 116 und/oder einer beliebigen Anzahl und einem beliebigen Typ von Vorrichtungen der Rechnervorrichtung 100 gehostet werden können oder ein Teil davon sein können. Es wird vorgesehen, dass Ausführungsformen nicht auf eine bestimmte Implementierung oder ein Hosting des Detektionsmechanismus 110 beschränkt sind, und dass ein oder mehrere Abschnitte oder Komponenten des Detektionsmechanismus 110 als Hardware, Software oder eine beliebige Kombination davon, wie Firmware, verwendet oder implementiert werden können.
-
Die Rechnervorrichtung 100 kann eine Netzschnittstellenvorrichtung(en) hosten, um einen Zugriff auf ein Netz bereitzustellen, wie ein LAN, ein Weitverkehrsnetz (WAN), ein Metropolitan Area Network (MAN), ein persönliches Netz (PAN), Bluetooth, ein Cloud-Netz, ein mobiles Netz (z.B. 3rd Generation (3G), 4th Generation (4G) usw.), ein Intranet, das Internet usw. Eine Netzschnittstelle(n) kann zum Beispiel eine drahtlose Netzschnittstelle mit einer Antenne umfassen, die eine oder mehrere Antennen repräsentieren kann. Die Netzschnittstelle(n) kann auch zum Beispiel eine verdrahtete Netzschnittstelle umfassen, um mit entfernten Vorrichtungen über ein Netzkabel zu kommunizieren, das zum Beispiel ein Ethernet Kabel, ein Koaxialkabel, ein faseroptisches Kabel, ein serielles Kabel oder ein paralleles Kabel sein kann.
-
Ausführungsformen können zum Beispiel als Computerprogrammprodukt bereitgestellt werden, das ein oder mehrere maschinenlesbare Medien mit darauf gespeicherten maschinenausführbaren Instruktionen umfassen kann, die, wenn sie von einer oder mehreren Maschinen, wie einem Computer, einem Netz von Computern oder anderen elektronischen Vorrichtungen, ausgeführt werden, dazu führen können, dass die eine oder die mehreren Maschinen Operationen gemäß hier beschriebenen Ausführungsformen durchführen. Ein maschinenlesbares Medium kann umfassen, ist jedoch nicht beschränkt auf Floppy Disketten, optische Platten, CD-ROMs (Compact Disk-Read Only Memories) und magnetooptische Platten, ROMs, RAMs, EPROMs (löschbare programmierbare Nurlesespeicher), EEPROMs (elektrisch löschbare programmierbare Nurlesespeicher), Magnet- oder optische Karten, Flash-Speicher oder einen anderen Typ eines medien/maschinenlesbaren Mediums, das zum Speichern maschinenausführbarer Instruktionen geeignet ist.
-
Ferner können Ausführungsformen als Computerprogrammprodukt heruntergeladen werden, wobei das Programm von einem entfernten Computer (z.B. einem Server) auf einen anfordernden Computer (z.B. einen Client) durch eines oder mehrere Datensignale transferiert werden kann, die in einer Trägerwelle oder einem anderen Ausbreitungsmedium verkörpert werden und/oder davon moduliert werden, über eine Kommunikationsverbindung (z.B. ein Modem und/oder eine Netzverbindung).
-
In diesem gesamten Dokument kann der Ausdruck „Benutzer“ austauschbar als „Betrachter“, „Beobachter“, „Sprecher“, „Person“, „Individuum“, „Endverbraucher“ und/oder dgl. bezeichnet werden. Es ist anzumerken, dass in diesem gesamten Dokument Ausdrücke wie „Grafikdomäne“ austauschbar mit „Grafikverarbeitungseinheit“, „Grafikprozessor“ oder einfach „GPU“ und ähnlichem bezeichnet werden können, „CPU Domäne“ oder „Host Domäne“ können austauschbar mit „Computerverarbeitungseinheit“, „Anwendungsprozessor“ oder einfach „CPU“ bezeichnet werden.
-
Es ist anzumerken, dass Ausdrücke wie „Knoten“, „Rechnerknoten“, „Server“, „Servervorrichtung“, „Cloud-Computer“, „Cloud-Server“, „Cloud-Server Computer“, „Maschine“, „Host Maschine“, „Vorrichtung“, „Rechnervorrichtung“, „Computer“, „Rechnersystem“ und dgl. austauschbar in diesem gesamten Dokument verwendet werden können. Ferner ist anzumerken, dass Ausdrücke wie „Anwendung“, „Software-Anwendung“, „Programm“, „Software-Programm“, „Paket“, „Software-Paket“ und dgl. austauschbar in diesem gesamten Dokument verwendet werden können. Auch Ausdrücke wie „Job“, „Eingabe“, „Anforderung“, „Nachricht“ und dgl. können austauschbar in diesem gesamten Dokument verwendet werden.
-
2 veranschaulicht den Multi Camera-Echtzeit-Objektdetektionsmechanismus 110 von 1 gemäß einer Ausführungsform. Der Kürze halber werden viele der Details, die mit Bezugnahme auf 1 bereits diskutiert wurden, hier im Nachstehenden nicht wiederholt oder diskutiert. In einer Ausführungsform kann der Detektionsmechanismus 110 eine beliebige Anzahl und einen beliebigen Typ von Komponenten umfassen, wie (ohne Einschränkungen): die Detektions- und Überwachungslogik 201; die Mapping- und Sortierungslogik 203; die Erstellungs- und Zuordnungslogik 205; die Berechnungs-, Auflösungs- und Ausgabelogik 207; die Kommunikations/Kompatibilitätslogik 209.
-
Von der Rechnervorrichtung 100 ist ferner gezeigt, dass sie die Benutzerschnittstelle 219 umfasst (z.B. eine Benutzerschnittstelle auf der Basis einer grafischen Benutzerschnittstelle (GUI), einen Web Browser, eine Cloudbasierte Plattformbenutzerschnittstelle, eine Benutzerschnittstelle auf der Basis einer Software-Anwendung, eine andere Benutzer- oder Anwendungsprogrammierungsschnittstelle (APIs) usw.). Die Rechnervorrichtung 100 kann ferner eine I/O Quelle(n) 108 mit einer Eingabekomponente(n) 231 umfassen, wie eine Kamera 1 242A, Kamera 2 242B und Kamera N 242N (z.B. Intel® RealSense™ Kamera), Sensoren, ein Mikrofon(e) 241 usw., und einer Ausgabekomponente(n) 233, wie eine Anzeigevorrichtung(en) oder einfach eine Anzeige(n) 244 (z.B. integrale Anzeigen, Tensoranzeigen, Projektionsbildschirme, Anzeigebildschirme usw.), eine Lautsprechervorrichtung(en) oder einfach (einen) Lautsprecher usw.
-
Ferner ist von der Rechnervorrichtung 100 veranschaulicht, dass sie einen Zugriff auf eine oder mehrere Datenbanken 225 und/oder eine oder mehrere andere Rechnervorrichtungen über ein oder mehrere Kommunikationsmedien 230 (z.B. Netze, wie ein Proximitätsnetz, ein Cloud-Netz, das Internet usw.) aufweist oder damit in Kommunikation ist.
-
In einigen Ausführungsformen kann die Datenbank(en) 225 eines oder mehrere von Speichermedien oder -vorrichtungen, Archiven, Datenquellen usw. mit einer beliebigen Menge und einem beliebigen Typ von Informationen umfassen, wie Daten, Metadaten usw., die sich auf eine beliebige Anzahl und einen beliebigen Typ von Anwendungen beziehen, wie Daten und/oder Metadaten, die sich beziehen auf einen oder mehrere Benutzer, physische Orte oder Bereiche, anwendbare Gesetze, Strategien und/oder Vorschriften, Benutzerpräferenzen und/oder -profile, Sicherheits- und/oder Authentifizierungsdaten, Verlaufs- und/oder bevorzugte Details und/oder dgl.
-
Wie im Vorstehenden angeführt, kann die Rechnervorrichtung 100 I/O Quellen 108 hosten, die eine Eingabekomponente(n) 231 und Ausgabekomponente(n) 233 umfassen. In einer Ausführungsform kann die Eingabekomponente(n) 231 ein Sensor-Array umfassen, das umfasst, jedoch nicht beschränkt ist auf ein Mikrofon(e) 241 (z.B. Ultraschallmikrofone), eine Kamera 1 242A, 2 242B, N 242N (z.B. zweidimensionale (2D) Kameras, dreidimensionale (3D) Kameras, Infrarot- (IR) Kameras, Kameras mit Tiefensensor usw.), Kondensatoren, Funkkomponenten, Radarkomponenten, Scanner und/oder Akzelerometer usw. Ähnlich kann eine Ausgabekomponente(n) 233 eine beliebige Anzahl und einen beliebigen Typ von einer Anzeigevorrichtung(en) 244, Projektoren, lichtemittierenden Dioden (LEDs), einem Lautsprecher(n) 243 und/oder Vibrationsmotoren usw. umfassen.
-
Wie im Vorstehenden angeführt, können Ausdrücke wie „Logik“, „Modul“, „Komponente“, „Maschine“, „Schaltungen“, „Element“ und „Mechanismus“ als Beispiel Software und Hardware und/oder eine Kombination davon, wie Firmware, umfassen. Zum Beispiel kann die Logik selbst Schaltungen an einer oder mehreren Vorrichtungen sein oder umfassen oder damit assoziiert sein, wie ein Anwendungsprozessor 112 und/oder Grafikprozessor 114 von 1, um die entsprechende Logik zu erleichtern oder auszuführen, um bestimmte Aufgaben vorzunehmen.
-
Zum Beispiel kann, wie veranschaulicht, die Eingabekomponente(n) 231 eine beliebige Anzahl und einen beliebigen Typ von einem Mikrofon(en) 241 umfassen, wie mehrere Mikrofone oder ein Mikrofon-Array, wie Ultraschallmikrophone, dynamische Mikrophone, faseroptische Mikrofone, Lasermikrofone usw. Es wird vorgesehen, dass eines oder mehrere der Mikrophone 241 als eine oder mehrere Eingabevorrichtungen für die Annahme oder den Empfang von Audioeingängen (wie der menschlichen Stimme) in die Rechnervorrichtung 100 und für die Umwandlung dieses Audio oder Tons in elektrische Signale dient. Ähnlich wird vorgesehen, dass eine oder mehrere von der Kamera 1 242A, 2 242B, N 242N als ein oder mehrere Eingabevorrichtungen zur Detektion und Aufnahme von Bild und/oder Videos von Szenen, Objekten usw. dienen und die aufgenommenen Daten als Videoeingaben in die Rechnervorrichtung 100 liefern.
-
Wie im Vorstehenden beschrieben, gibt es einige Herausforderungen bei herkömmlichen Multi Camera-Objektdetektionstechniken, wie die Okklusion von Objekten, was dazu führt, dass solche Techniken unzuverlässig, fehleranfällig und weniger genau sind. Ferner werden solche herkömmlichen Techniken nicht wirklich in Echtzeit betrieben oder vorgenommen und sie sind auch nicht imstande, große Kamerasysteme zu unterstützen.
-
Ausführungsformen stellen eine neue Technik bereit, welche die Multi Camera-Detektion von Objekten unterstützt, welche in Echtzeit betrieben oder vorgenommen wird und zuverlässige, fehlerfreie und genaue Ergebnisse liefert. Ferner ermöglicht diese neue Technik die Unterstützung von Kamerasystemen mit großem Maßstab, wie in diesem gesamten Dokument weiter beschrieben wird.
-
Wie veranschaulicht, können mehrere Kameras dieser neuen Multi Camera-Technik eine beliebige Anzahl und einen beliebigen Typ von Kameras umfassen, wie die Kameras 242A, 242B, 242N. Ferner, wie veranschaulicht, können diese Kameras 242A, 242B, 242N mit der Rechnervorrichtung 100 auf verschiedene Weise in Kommunikation stehen, wie die Kamera 242A, die als Teil der Rechnervorrichtung 100 oder darin eingebettet gezeigt ist, während die Kameras 242B und 242N direkt mit der Rechnervorrichtung 100 gekoppelt sein können oder mit der Rechnervorrichtung 100 über ein Kommunikationsmedium(medien) 230 in Kommunikation stehen können, wie ein Cloud-Netz, das Internet, ein Proximitätsnetz usw. Ausführungsformen sind nicht auf die veranschaulichte Struktur oder den Aufbau von 2 beschränkt, und diese Systemstruktur oder der Architekturaufbau kann auf verschiedene Weise verwendet oder gebildet werden.
-
Ausführungsformen stellen eine neue Technik für eine hochauflösende Videodatenaufnahme von Szenen mit mehreren Kameras bereit, wie den Kameras 1 242A, 2 242B, N 242N, um volumetrische dreidimensionale (3D) Modelle zu generieren, die eine immersive Benutzererfahrung bieten können, wie im Fall von Sportveranstaltungen. Diese neue Technik stellt eine Echtzeit-Kamerawegsteuerung, automatische Objektdatenanaylse usw. bereit, während Objekte, wie Personen, von mehreren hochauflösenden Kameras detektiert werden. Ferner ermöglicht diese neue Technik die Detektion, Aufnahme und Analyse aller Objekte, wie Personen, von mehreren hochauflösenden Kameras ohne irgendeine der normalen Okklusionen oder Störungen.
-
In einer Ausführungsform kann die Multi Camera-Objektdetektion Multi Camera-Geometrieeinschränkungen und eine Analyse auf Fusing-Basis involvieren. Multi Camera-Geometrieeinschränkungen basieren auf geometrischen Einschränkungen unter Verwendung eines Mapping zwischen einer Standebene und Kameraansichten. Die gemeinsam genutzten Merkmale sind Punkt, Linie, binäre Maske und Pixelwerte, wobei sie normalerweise eine paarweise Kameraentsprechungsassoziation vornehmen und dann paarweise Ergebnisse verschmelzen. Ferner werden im Fall der Multi View-Detektion auf der Basis von Deep Learning Multi View-Informationen verwendet, um die Objektdetektionsergebnisse zu verbessern, wobei beliebige äußere Schichten auf eine gemeinsame Detektion auf der Basis von Multi View-Auftritten trainiert werden.
-
Einige der herkömmlichen Techniken sind zu sehr darauf fokussiert, wie die Detektionsleistung in einer einzelnen Ansicht einer Person verbessert werden kann, indem Multi View-Daten genützt werden, dies verbessert jedoch die Anwesenheit der Person über mehrere Ansichten nicht oder bearbeitet keine Okklusionsprobleme. Ferner kann eine solche herkömmliche Technik stattdessen eher kostspielig sein aufgrund der Inferenzzeiten usw.
-
Andere herkömmliche Techniken berücksichtigen nur eine paarweise Kameraentsprechung für eine geringe Anzahl von Kameraeinstellungen (z.B. normalerweise weniger als 10) und eine paarweise Kameraverarbeitung, die zu späteren Stufen führt. Solche herkömmlichen Techniken skalieren nicht gut und arbeiten nicht gut mit Multi Camera-Settings mit großem Maßstab. Ferner sind die Rechnerkosten für solche herkömmlichen Techniken eher hoch und erzeugen eine Zweideutigkeit beim Standebenen-Personen-Mapping, wobei die Verfahren nicht imstande sind, globale optimale Ergebnisse zu erhalten. Außerdem verwenden solche Techniken nur Merkmale in Bezug auf detektierte Bindungsboxen, wobei die Bindungsboxenzentren nicht die Fußmitten sind, was zu zusätzlichen Multi Camera-Personendetektionsfehlern führt.
-
Ausführungsformen stellen eine neue Technik bereit, um eine Multi Camera-Objektdetektionstechnik auf der Basis eines Hauptlinien-Fusing zu gestatten, wobei Objekte (z.B. Personen, Dinge usw.) miteinander und anderen Objekten in der Szene, die aus unterschiedlichen Kameraansichten detektiert werden, assoziiert werden, wie unter Verwendung der Kameras 242A, 242B, 242N und durch Mappen der Objekte, auf der Basis der Assoziation, auf eine Standebene, wie durch den Detektionsmechanismus 110 erleichtert wird. Diese neue Technik gestattet ferner das Lösen beliebiger Objektdetektionsfehler, die falsche Detektionen, ausgelassene Detektionen usw. involvieren.
-
In einer Ausführungsform, wie durch den Detektionsmechanismus 110 erleichtert, werden Objekte in einer Standebene gruppiert, und eine beliebige Distanz zwischen einer Hauptlinie und einer Objektgruppe wird als Metrik verwendet, um eine Entsprechung zwischen Objekten, wie Personen, zu bestimmen. Im Gegensatz zur Verwendung der herkömmlichen paarweisen Kameratechniken stellen ferner Ausführungsformen die Auswahl einer Beobachtung einer einzelnen Kamera der Kameras, wie der Kamera 242B, und dann das Addieren der Beobachtungen anderer Kameras, wie der Kameras 242A, 242C und 242N, einzeln in einem Detektionsprozess bereit. Ferner wird das globale Optimum erzielt, indem eine Paarsumme der entsprechenden Distanz für verschiedene Paare der Hauptlinien und der Objektgruppen minimiert wird, wie durch den Detektionsmechanismus 110 erleichtert.
-
Diese neue Technik stellt die Unterstützung und genaue Bearbeitung von Multi Camera-Systemen mit großem Maßstab gegenüber herkömmlichen Techniken dar. Ferner sind Ausführungsformen nicht auf irgendeinen Typ oder irgendeine Anzahl von Kameras beschränkt, und die Kameras 242A, 242C und 242N werden nur der Kürze halber veranschaulicht, und Ausführungsformen sind nicht auf sie als solche beschränkt. Zum Beispiel kann die CRO Logik 207 eine O(N) Rechenkomplexität verwenden, wobei sich N auf die Anzahl von Kameras bezieht, was eine schnelle Berechnung ermöglicht.
-
Ferner ermöglicht diese neue Multi Camera-Detektion die automatische Multi Camera-Verfolgung von Objekten in einer Szene, wie Personen, durch die Detektions- und Überwachungslogik 201, während neue Verwendungen und Anwendungen ermöglicht werden, wie die Echtzeit-Kamerawegsteuerung, komplexe Spielanalytik usw.
-
Wie veranschaulicht und mit Bezugnahme auf das Verfahren 400 von 4 beschrieben, können in Block 401 jeweils mehrere Kameraeingänge 401, 403 und 405 von den Kameras 242A, 242B, 242N empfangen werden, wie durch die Detektions- und Überwachungslogik 201 erleichtert, wobei sich jeder Eingang der Eingänge 401, 403, 405 auf eine Beobachtung und Aufnahme einer Szene durch eine entsprechende Kamera der Kameras 242A, 242B, 242N bezieht, wobei die Szene Objekte umfasst, die von Lebewesen (z.B. Menschen) bis zu nicht lebendigen Dingen (z.B. Felsen) und von Indoor (z.B. innerhalb eines Raums) bis Outdoor (z.B. im offenen Raum) usw. reichen.
-
Sobald in einer Ausführungsform die Eingaben 401, 403, 405 von der Detektions- und Überwachungslogik 201 empfangen werden, werden dann beliebige Sätze von Daten, die durch diese Eingaben 401, 403, 405 aufgenommen werden, addiert, bis alle Kameraeingänge 401, 403, 405 in Block 407 von 4 verarbeitet werden, wie durch die Detektions- und Überwachungslogik 201 erleichtert.
-
In einer Ausführungsform wird dann die Mapping- und Sortierungslogik 203 ausgelöst, um vertikale Körperlinien auf die Standebene zu mappen, wie in Block 409 von 4 veranschaulicht. Wie ferner mit Bezugnahme auf 3A veranschaulicht, wird eine vertikale Linie als vertikaler Weg quer durch den Mittelpunkt eines Objekts definiert, wie vom Kopf nach unten bis zur Fußmitte einer Person für jede Person in jeder Kameraansicht, wie durch die Mapping- und Sortierungslogik 203 erleichtert. Ferner stellt in einer Ausführungsform jede Hauptlinie, die jeder vertikalen Linie entspricht, ein vertikales Linien-Mapping auf eine Standebene dar, wie nach einer Homografietransformation, wie durch die Mapping- und Sortierungslogik 203 erleichtert. Wenn zum Beispiel die Füße einer Person auf dem Boden sind, wären dann die Fußmitten auch auf dem Boden, und in einem solchen Fall werden alle Fußmitten, die mit allen Personen assoziiert sind, wie von verschiedenen Kameras, wie den Kameras 242A, 242B, 242N, gesehen, auf denselben Punkt in der Standebene gemappt, wie von der Mapping- und Sortierungslogik 203 erleichtert, die anzeigt, dass die Hauptlinien in der Standebene einander in demselben Punkt oder in derselben Position schneiden, der als Schnittpunkt bezeichnet wird, wie in Bezug auf 3A gezeigt.
-
In einer Ausführungsform wird die Mapping- und Sortierungslogik 203 ausgelöst, um zu bestimmen, ob alle Hauptlinien Personengruppen schneiden, wie in Bezug auf den Block 411 von 4 gezeigt. Nachdem die Kameras 242A, 242B, 242N zum Beispiel verwendet werden, um eine Hauptlinienkorrelation mit M Personen zu erstellen, die eine Standebene gruppieren. Nun wird angenommen, dass NPersonen mit Hauptlinien Pj I, ...., Pj N in der Kamera j (z.B. Kamera 242B) sind, dann wird bestimmt, ob eine Hauptlinie von der Kamera j eine Korrelation mit einer Personengruppe aufweist, diese Hauptlinie bildet eine Linienkreuzung mit allen bestehenden Hauptlinien in dieser Personengruppe. Wenn beide Linienpaare einen Schnittpunkt aufweisen, wird dann bestimmt, dass eine Entsprechung zu dieser Personengruppe vorliegt, wie durch die Mapping- und Sortierungslogik 203 erleichtert.
-
In einer Ausführungsform wird zuerst eine Kamera, wie die Kamera 2 242B, für die Eingabe gewählt, und dann werden Eingaben von allen Kameras, wie der Kamera 1 242A, Kamera N 242N, einzeln zur Gesamtsumme addiert. Unter der Annahme, dass es M Personen mit der Hauptlinie Pi I, ...., Pi M in der ersten Kamera i gibt, dann können diese Hauptlinien M Personengruppen in der Standebene generieren, wobei der Fußpunkt in jeder Personengruppe als Fußmitte jeder Hauptlinie angesehen wird.
-
Ferner hat die Mapping- und Sortierungslogik 203 Distanzen der Hauptlinien zu jedem Gruppenmittelpunkt zu sortieren und ein Linien-Gruppen-Mapping vorzunehmen, wie in Bezug auf Block 413 von 4 gezeigt. Zum Beispiel wird jede Entsprechungsdistanz zwischen Hauptlinien und Personengruppen von der CRO Logik 207 berechnet, wenn eine Hauptlinie von der Kamera j (z.B. Kamera 2 242B) eine Entsprechung zu einigen Personengruppen aufweisen kann, wird dann eine Liste von p Paaren der Hauptlinie Pi m und Personengruppe Gj n von der CRO Logik 207 berechnet.
-
Ferner wird die Mapping- und Sortierungslogik
203 verwendet, um Mapping-Paare zu finden (wie Paare zwischen Hauptlinien und Personengruppen), wenn eine Paarsumme der Entsprechungsdistanz ein Minimum ist, wird sie unter Verwendung der folgenden Formel dargestellt, wobei jede Hauptlinie nur in einer bestehenden Personengruppe oder einer neuen Personengruppe zugeordnet werden kann (z.B. verwendet D für eine neue Personengruppenzuordnung einen Festwert):
-
Ferner, wie mit Bezugnahme auf den Schnittpunkt 340 von 3B veranschaulicht, ist von einer Hauptlinie Pj I 341 von der Kamera j (z.B. Kamera 2 242B) gezeigt, dass sie mehrere Personengruppen schneidet, wie zwei Personengruppen GI 351 und G2 353. Ferner ist, wie in 3B gezeigt, die Entsprechungsdistanz von [GI, Pj I] kleiner als [G2, Pj I], wobei [GI, Pj I] die Entsprechung aufweist und dieselbe Person in diesen beiden Kameras darstellt, und Pj I in der neuen Gruppe GI ist (bestehend aus zwei Hauptlinien). Der Mittelpunkt 351 der neuen Gruppe GI kann unter Verwendung von Mittelwerten aller Schnittpunkte in derselben Personengruppe aktualisiert werden.
-
Ferner erfolgt in Block 415 von 4 eine weitere Bestimmung dahingehend, ob eine Hauptlinie vorliegt, die als isoliert angesehen wird. An diesem Punkt wird in einer Ausführungsform die Erstellungs- und Zuordnungslogik 205 ausgelöst, wie wenn es zum Beispiel keine isolierten Linien mehr gibt, wird dann eine Hauptlinie von jeder der Kameras 242A, 242B, 242N der Personengruppe zugeordnet, wie durch die Erstellungs- und Zuordnungslogik 205 erleichtert und wie in Bezug auf den Block 419 von 4 veranschaulicht.
-
Wenn jedoch in einer anderen Ausführungsform irgendwelche isolierten Hauptlinien vorliegen, wird dann die Erstellungs- und Zuordnungslogik 205 ausgelöst, um eine neue Personengruppe zu erstellen, wie in Bezug auf Block 417 von 4 veranschaulicht. Wenn irgendwelche isolierten Hauptlinien von einer bestimmten Kamera vorliegen, wie der Kamera 2 242B, ohne jeden Schnittpunkt mit irgendeiner der bestehenden Personengruppen, wird zum Beispiel zusätzlich dann als Vorgabe die Erstellungs- und Zuordnungslogik 205 ausgelöst, um eine neue Personengruppe zu bilden.
-
In jedem Fall, wie egal ob eine Hauptlinie von jeder Kamera 242A, 242B, 242N jeder Personengruppe zugeordnet wird, oder neue Personengruppen in Block 417 bzw. Block 419 von 4 erstellt werden, wird dann die CRO Logik 207 verwendet, um den Personengruppenmittelpunkt in Block 421 von 4 erneut zu berechnen. Dies wird von der Bereinigung von Personengruppen und dem Lösen irgendwelcher Multi Camera-Ambiguitäten durch die CRO Logik 207 und in Block 423 von 4 gefolgt. Anschließend können dann Bilder (z.B. zweidimensionale (2D) Bilder), Objektpositionen auf der Basis der Kameraansicht usw. als Ergebnisse von der CRO Logik 207 und in Block 425 von 4 ausgegeben werden.
-
Zusätzlich zu Bereinigungs- und Lösungsprozessen in Block 423 von 4 nimmt die CRO Logik 207 in einer Ausführungsform, nachdem alle Objektgruppen (z.B. Personengruppen in Bezug auf Personen) bereit sind, eine Nachverarbeitung auf der Basis von irgendwelchen früheren oder Verlaufskenntnissen vor. Wenn zum Beispiel jede Person (z.B. Spieler auf einem Fußballfeld, Leute in Sitzen in einem Theater, Verkäufer auf einem Markt usw.) von mindestens 3 Kameras beobachtet wird und die hohe Genauigkeit dieser neuen Technik hinsichtlich sowohl Abruf als auch Präzision erhält, können alle Personengruppen mit weniger als einer vorherbestimmten Schwellengenauigkeit (z.B. 2 Hauptlinien) eliminiert werden, wie durch die CRO Logik 207 erleichtert. Dieser Filter- oder Bereinigungsprozess reduziert oder eliminiert sogar jeden falsch positiven Detektionseinfluss. Wenn ähnlich, für Okklusionsfälle, bestimmte Kameras nicht imstande sind, genaue Ergebnisse zu liefern, kann die CRO Logik 207 ausgelöst werden, um bessere Ergebnisse aus einer beliebigen gegebenen Zuordnung und Multi Camera-Detektion zu erhalten, wie durch korrektes Schätzen der Positionen der Personen in der 2D Standebene, wie in 3B gezeigt.
-
Wie im Vorstehenden beschrieben, sind Ausführungsformen nicht auf irgendeinen Typ oder eine Anzahl von Kameras beschränkt. Zum Beispiel kann eine Sportfläche, wie ein Fußballstadium, variierende Typen von einigen zehn Kameras rund um die Einrichtung verwenden, wo jede Kamera eine einzigartige Ansicht oder Perspektive eines Objekts, wie eines Spielers auf dem Feld usw., liefern kann, wie durch die Detektions- und Überwachungslogik 201 erleichtert. Ähnlich kann die Detektions- und Überwachungslogik 201 verwendet werden, um alle Landmarkenpunkte, wie 14 Landmarkenpunkte, für jede Person unter Verwendung einer beliebigen Anzahl von Techniken zu detektieren. Ferner kann zum Beispiel eine Landmarke zwischen dem linken Knöchel und dem rechten Knöchel einer Person als Mittelposition für den gesamten Körper dieser Person verwendet werden.
-
Es wird vorgesehen, dass Ausführungsformen nicht auf irgendeine Anzahl oder irgendeinen Typ von einem Mikrofon(en) 241, Kameras 1 242A, 2 242B, N 242N, einem Lautsprecher(n) 242, einer Anzeige(n) 244 usw. beschränkt ist. Wie durch die Detektions- und Überwachungslogik 201 erleichtert, kann oder können zum Beispiel ein oder mehrere Mikrofone 241 verwendet werden, um Sprache oder Ton gleichzeitig von Benutzern zu detektieren, wie Lautsprechern. Wie durch die Detektions- und Überwachungslogik 201 erleichtert, kann oder können ähnlich eine oder mehrere Kameras 242 verwendet werden, um Bilder oder Videos eines geografischen Orts (egal ob das Indoor oder Outdoor ist) und seiner assoziierten Inhalte (z.B. Möbel, elektronische Vorrichtungen, Menschen, Tiere, Bäume, Berge usw.) aufzunehmen und einen Satz von Bildern oder einen Video-Stream zu bilden.
-
Ähnlich, wie veranschaulicht, kann oder können die Ausgabekomponente(n) 233 eine beliebige Anzahl und einen beliebigen Typ von einem Lautsprecher(n) oder einer Lautsprechervorrichtung(en) 243 umfassen, um als Ausgabevorrichtungen zur Ausgabe oder zum Ausgeben von Audio aus der Rechnervorrichtung 100 aus einer beliebigen Anzahl oder einem beliebigen Typ von Gründen zu dienen, wie menschliches Hören oder Konsum. Zum Beispiel arbeitet oder arbeiten der oder die Lautsprecher 243 gegenüber dem oder den Mikrofonen 241, wobei der oder die Lautsprecher 243 elektrische Signale in Ton umwandelt oder umwandeln.
-
Ferner kann oder können die Eingabekomponente(n) 231 eine beliebige Anzahl und einen beliebigen Typ von Kameras 1 242A, 2 242B, N 242N umfassen, wie Kameras mit Tiefensensor oder Aufnahmevorrichtungen (z.B. Intel® RealSense™ Kamera mit Tiefensensor), die dafür bekannt sind, unbewegte und/oder Video-rot-grün-blau- (RGB) und/oder RGB-Tiefen- (RGB-D) Bilder für Medien aufnehmen, wie persönliche Medien. Solche Bilder mit Tiefeninformationen wurden effektiv für verschiedene Computer Vision und computergestützte Fotografieeffekte verwendet, wie (ohne Einschränkungen) Szenenverständnis, Refokussierung, Komposition, Cinemagraphs usw. Ähnlich können zum Beispiel Anzeigen eine beliebige Anzahl und einen beliebigen Typ von Anzeigen umfassen, wie integrierte Anzeigen, Tensoranzeigen, stereoskopische Anzeigen usw., umfassend (jedoch nicht beschränkt auf) eingebettete oder verbundene Anzeigebildschirme, Anzeigevorrichtungen, Projektoren usw.
-
Die Eingabekomponente(n) 231 kann oder können ferner eines oder mehrere von Vibrationskomponenten, Berührungskomponenten, Leitungselementen, biometrischen Sensoren, chemischen Detektoren, Signaldetektoren, Elektroencephalographie, funktioneller Nahinfrarot-Spektroskopie, Wellendetektoren, Kraftsensoren (z.B. Akzelerometern), Illuminatoren, einem Augenverfolgungs- oder Blickverfolgungssystem, einem Kopfverfolgungssystem usw. umfassen, die verwendet werden können zur Aufnahme einer beliebigen Menge und eines beliebigen Typs von visuellen Daten, wie Bildern (z.B. Fotos, Videos, Filmen, Audio/Video-Streams usw.), und nicht visuellen Daten, wie Audio-Streams oder Signalen (z.B. Ton, Rauschen, Vibration, Ultraschall usw.), Funkwellen (z.B. drahtlosen Signalen, wie drahtlosen Signalen mit Daten, Metadaten, Zeichen usw.), chemischen Veränderungen oder Eigenschaften (z.B. Feuchtigkeit, Körpertemperatur usw.), biometrischen Messwerten (z.B. Fingerabdrücken usw.), Gehirnwellen, dem Gehirnkreislauf, Umwelt/ Wetterbedingungen, Landkarten usw. Es wird vorgesehen, dass „Sensor“ und „Detektor“ in diesem gesamten Dokument austauschbar bezeichnet werden können. Ferner wird vorgesehen, dass eine oder mehrere Eingabekomponenten 231 ferner eines oder mehrere von unterstützenden oder ergänzenden Vorrichtungen zur Aufnahme und/oder Erfassung von Daten umfassen können, wie Illuminatoren (z.B. IR Illuminator), Beleuchtungskörper, Generatoren, Schallblocker usw.
-
Ferner wird vorgesehen, dass in einer Ausführungsform die Eingabekomponente(n) 231 ferner eine beliebige Anzahl und einen beliebigen Typ von Kontextsensoren (z.B. lineares Akzelerometer) zur Erfassung oder Detektion einer beliebigen Anzahl und eines beliebigen Typs von Kontexten (z.B. Horizontschätzung, lineare Beschleunigung, usw. in Bezug auf eine mobile Rechnervorrichtung usw.) umfassen kann oder können. Zum Beispiel kann oder können die Eingabekomponente(n) 231 eine beliebige Anzahl und einen beliebigen Typ von Sensoren umfassen, wie (ohne Einschränkungen): Akzelerometer (z.B. lineares Akzelerometer zur Messung einer linearen Beschleunigung usw.), Trägheitsvorrichtungen (z.B. Inertialakzelerometer, Inertialgyroskope, Micro-Electro-Mechanical System- (MEMS) Gyroskope, Inertialnavigatoren usw.); und Schwerkraftgradiometer, um Variationen der Gravitationsbeschleunigung aufgrund der Schwerkraft zu untersuchen und zu messen usw.
-
Ferner kann oder können die Eingangskomponente(n) 231 (ohne Einschränkungen) umfassen: Audio/visuelle Vorrichtungen (z.B. Kameras, Mikrofone, Lautsprecher usw.), kontextbewusste Sensoren (z.B. Temperatursensoren, Gesichtsaudruck- und Merkmalmesssensoren, die mit einer oder mehreren Kameras von Audio/visuellen Vorrichtungen arbeiten, Umgebungssensoren (wie um Hintergrundfarben, Lichter usw. zu erfassen); biometrische Sensoren (wie um Fingerabdrücke usw. zu detektieren), Kalenderpflege- und -lesevorrichtungen) usw.; Global Positionierung System-(GPS) Sensoren; Ressourcenanforderer; und/oder TEE Logik. Die TEE Logik kann getrennt verwendet werden oder ein Teil des Ressourcenanforderers und/oder eines I/O Subsystems usw. sein. Die Eingabekomponente(n) 231 kann oder können ferner Spracherkennungsvorrichtungen, Fotoerkennungsvorrichtungen, Gesichts- und andere Körpererkennungskomponenten, Sprach-in-Text-Umwandlungskomponenten usw. umfassen.
-
Ähnlich kann oder können die Ausgabekomponente(n) 233 dynamische taktile Berührungsbildschirme mit taktilen Effektoren als Beispiel der Präsentation der Visualisierung einer Berührung umfassen, wobei eine Ausführungsform davon Ultraschallgeneratoren sein können, die Signale im Raum senden können, welche, wenn sie zum Beispiel menschliche Finger erreichen, eine Berührungsempfindung oder ein ähnliches Gefühl an den Fingern bewirken können. Ferner kann oder können die Ausgabekomponente(n) 233 zum Beispiel in einer Ausführungsform (ohne Einschränkung) eines oder mehrere von Lichtquellen, Anzeigevorrichtungen und/oder Bildschirmen, Audio-Lautsprechern, Berührungskomponenten, Konduktanzelementen, knochenleitenden Lautsprechern, visuellen und/oder nicht visuellen olfaktorischen oder Geruchspräsentationsvorrichtungen, visuellen und/oder nicht visuellen haptischen oder Berührungspräsentationsvorrichtungen, Animationsanzeigevorrichtungen, biometrischen Anzeigevorrichtungen, Röntgenanzeigevorrichtungen, hochauflösenden Anzeigen, Anzeigen mit hohem Dynamikbereich, Multi View-Anzeigen und am Kopf zu tragenden Anzeigen (HMDs) für mindestens eine von virtueller Realität (VR) und erhöhter Realität (AR) usw. umfassen.
-
Es wird vorgesehen, dass die Ausführungsformen nicht auf eine beliebige Anzahl oder einen beliebigen Typ von Anwendungsfallszenarien, Architekturplatzierungen oder Komponenten-Set-ups beschränkt sind; der Kürze und Klarheit halber werden jedoch Illustrationen und Beschreibungen in diesem gesamten Dokument für Beispielzwecke angeboten und diskutiert, diese Ausführungsformen sind jedoch an sich nicht beschränkt. Ferner kann sich in diesem gesamten Dokument „Benutzer“ auf jemanden beziehen, der Zugriff auf eine oder mehrere Rechnervorrichtungen hat, wie die Rechnervorrichtung 100, und kann austauschbar mit „Person“, „Individuum“, „Mensch“, „er“, „sie“, „Kind“, „Erwachsener“, „Zuseher“, „Spieler“, „Gamer“, „Entwickler“, „Programmierer“ und/oder dgl. bezeichnet werden.
-
Die Kommunikations/Kompatiblitätslogik 209 kann verwendet werden, um die dynamische Kommunikation und Kompatibilität zwischen verschiedenen Komponenten, Netzen, Rechnervorrichtungen, Datenbank(en) 225 und/oder Kommunikationsmedium(medien) 230 usw. zu erleichtern, und einer beliebigen Anzahl und einem beliebigen Typ von anderen Rechnervorrichtungen (wie am Körper zu tragenden Rechnervorrichtungen, mobilen Rechnervorrichtungen, Desktop Computern, Server-Rechnervorrichtungen usw.), Verarbeitungsvorrichtungen (z.B. Zentraleinheit (CPU), Grafikverarbeitungseinheit (GPU) usw.), Aufnahme/ Erfassungskomponenten (z.B. nicht visuellen Datensensoren/Detektoren, wie Audio-Sensoren, olfaktorischen Sensoren, haptischen Sensoren, Signalsensoren, Vibrationssensoren, chemischen Detektoren, Funkwellendetektoren, Kraftsensoren, Wetter/Temperatursensoren, Körper/biometrischen Sensoren, Scannern usw., und visuellen Datensensoren/Detektoren, wie Kameras usw.), benutzer/ kontextbewussten Komponenten und/oder Identifikations/Verifikationssensoren/ Vorrichtungen (wie biometrischen Sensoren/Detektoren, Scannern usw.), Memory- oder Speichervorrichtungen, Datenquellen und/oder Datenbank(en) (wie Datenspeichervorrichtungen, Festplatten, Solid State-Laufwerken, Hard Disks, Speicherkarten oder -vorrichtungen, Speicherschaltungen usw.), Netz(en) (z.B. Cloud-Netz, Internet, Internet der Dinge, Intranet, Zellularnetz, Proximitätsnetzen, wie Bluetooth, Bluetooth Low Energy (BLE), Bluetooth Smart, Wi-Fi Proximität, Funkfrequenzidentifikation, Nahfeldkommunikation, einem körpernahen Netz usw.), drahtlosen oder verdrahteten Kommunikationen und relevanten Protokollen (z.B. Wi-Fi®, WiMAX, Ethernet usw.), Konnektivitäts- und Ortsverwaltungstechniken, Software-Anwendungen/Websites (z.B. sozialen und/oder Businessnetz-Websites, Geschäftsanwendungen, Spielen und anderen Unterhaltungsanwendungen usw.), Programmiersprachen usw., während eine Kompatibilität mit sich ändernden Technologien, Parametern, Protokollen, Standards usw. sichergestellt wird.
-
In diesem gesamten Dokument können Ausdrücke wie „Logik“, „Komponente“, „Modul“, „Rahmen“, „Maschine“, „Werkzeug“, „Schaltungen“ und/oder dgl. austauschbar bezeichnet werden und umfassen als Beispiel Software, Hardware und/oder eine beliebige Kombination von Software und Hardware, wie Firmware. In einem Beispiel kann sich „Logik“ auf eine Software-Komponente beziehen oder diese umfassen, die mit einem oder mehreren von einem Betriebssystem, einem Grafiktreiber usw. einer Rechnervorrichtung, wie der Rechnervorrichtung 100, arbeitet. In einem anderen Beispiel kann sich „Logik“ auf eine Hardware-Komponente beziehen oder diese umfassen, die imstande ist, physisch zusammen mit oder als Teil von einem oder mehreren System-Hardware-Elementen installiert zu werden, wie einem Anwendungsprozessor, einem Grafikprozessor usw. einer Rechnervorrichtung, wie der Rechnervorrichtung 100. In noch einer weiteren Ausführungsform kann sich „Logik“ auf eine Firmware-Komponente beziehen oder diese umfassen, die imstande ist, ein Teil einer System-Firmware zu sein, wie Firmware eines Anwendungsprozessors oder eines Grafikprozessors usw. einer Rechnervorrichtung, wie der Rechnervorrichtung 100.
-
Ferner ist irgendeine Verwendung einer bestimmten Marke, eines Worts, eines Ausdrucks, einer Phrase, eines Namens und/oder eines Akronyms, wie „Objektdetektion“, „Multi Camera“, „Echtzeitdetektion“, „vertikale Linie“, „Hauptlinie“, „Personengruppe“, „Personengruppenmittelpunkt“, „Schnittpunkt“, „Standebene“, „Liniengruppen-Mapping“, „RealSense™ Kamera“, „Echtzeit“, „automatisch“, „dynamisch“, „Benutzerschnittstelle“, „Kamera“, „Sensor“, „Mikrofon“, „Anzeigebildschirm“, „Lautsprecher“, „Verifikation“, „Authentifizierung“, „Privatsphäre“, „Benutzer“, „Benutzerprofil“, „Benutzerpräferenz“, „Sender“, „Empfänger“, „persönliche Vorrichtung“, „smarte Vorrichtung“, „mobiler Computer“, „am Körper zu tragende Vorrichtung“, „IoT Vorrichtung“, „Proximitätsnetz“, „Cloud-Netz“, „Server Computer“ usw., nicht als Einschränkung der Ausführungsformen auf Software oder Vorrichtungen zu lesen, die diese Bezeichnung in Produkten oder in der Literatur außerhalb dieses Dokuments tragen.
-
Es wird vorgesehen, dass eine beliebige Anzahl und ein beliebiger Typ von Komponenten zu dem Detektionsmechanismus 110 hinzugefügt und/oder davon entfernt werden können, um verschiedene Ausführungsformen zu erleichtern, umfassend das Hinzufügen, Entfernen und/oder Erweitern bestimmter Merkmale. Für Zwecke der Kürze, Klarheit und des einfachen Verständnisses des Detektionsmechanismus 110 werden viele der Standard- und/oder bekannten Komponenten, wie jene einer Rechnervorrichtung, hier nicht gezeigt oder diskutiert. Es wird vorgesehen, dass Ausführungsformen, wie hier beschrieben, nicht auf irgendeine Technologie, Topologie, ein System, eine Architektur und/oder einen Standard beschränkt sind und dynamisch genug sind, um beliebige zukünftige Veränderungen aufzunehmen und sich daran anzupassen.
-
3A veranschaulicht eine geografische Beziehung zwischen Hauptlinien 321, 323, 325, 327 gemäß einer Ausführungsform. Der Kürze halber können viele der Details, die zuvor mit Bezugnahme auf 1 bis 2 diskutiert wurden, hier im Nachstehenden nicht diskutiert oder wiederholt werden. Beliebige Prozesse oder Transaktionen mit dieser und anderen Illustrationen können vorgenommen werden, indem Logik verarbeitet wird, die Hardware (z.B. Schaltungen, dedizierte Logik, programmierbare Logik usw.), Software (wie Instruktionen, die auf einer Verarbeitungsvorrichtung laufen) oder eine Kombination davon umfassen kann, wie durch den Detektionsmechanismus 110 von 1 erleichtert. Beliebige Prozesse oder Transaktionen, die mit dieser und anderen Illustrationen assoziiert sind, können in linearen Sequenzen der Kürze und klaren Präsentation halber veranschaulicht oder angegeben werden, es wird jedoch vorgesehen, dass eine beliebige Anzahl davon parallel, asynchron oder in verschiedenen Reihenfolgen vorgenommen werden kann.
-
Die veranschaulichte Ausführungsform veranschaulicht vier Kameraansichten 301, 303, 305 und 307 derselben Person, wobei vertikale Linien V1 311, V2 313, V3 315 und V4 317 als gerade Linien definiert werden, die durch die Mitte der Person von der Oberseite des Kopfs der Person bis zur Mitte des Fußes der Person verlaufen. Ferner, wie veranschaulicht, werden die vertikalen Linien V1 311, V2 313, V3 315 und V4 317 entsprechend auf die Hauptlinien P1 321, P2 323, P3 325 und P4 327 auf der Standebene 333 gemappt, wobei die Hauptlinien P1 321, P2 323, P3 325 und P4 327 einen Cluster bilden, der an einem Punkt schneidet, wie dem Schnittpunkt C 331.
-
Wenn zum Beispiel die Füße einer Person auf dem Boden sind, mappen dann alle verschiedenen Ansichtspunkte 301, 303, 305, 307 wahrscheinlich auf denselben Punkt in der Standebene 33, wie den Schnittpunkt C 331, der derselbe Punkt ist, wo alle Hauptlinien P1 321, P2 323, P3 325 und P4 327 einander schneiden. Diese vier einander schneidenden Hauptlinien P1 321, P2 323, P3 325 und P4 327 bilden eine Personengruppe in der Standebene 333. Es wird vorgesehen, dass es immer einige Ineffizienzen bei der Detektion und homografischen Schätzungen gibt, die wahrscheinlich einige Schnittpunkte sind, welche mit verschiedenen Kameras assoziiert sind. In einer Ausführungsform werden solche Ineffizienzen mit der Berechnung eines Mittelwerts aller solchen Schnittpunkte behandelt, wie durch die COR Logik 207 von 2 erleichtert, wobei dieser Mittelwert verschiedener Schnittpunkte dann als Gruppenmittelpunkt angesehen werden kann.
-
Ferner kann zum Beispiel eine entsprechende Distanz als Distanz zwischen der Fußmitte der Hauptlinie und dem Gruppenmittelpunkt, geteilt durch die Länge der Hauptlinie, angesehen werden. Dies kann auch verwendet werden, um die Beziehung zwischen jeder teilnehmenden Hauptlinie und der entsprechenden Personengruppe zu evaluieren. Je kleiner die Distanz zwischen einer Hauptlinie und einer Personengruppe, desto wahrscheinlicher gehört die Hauptlinie zu der Personengruppe.
-
Wie im Vorstehenden beschrieben, sind Ausführungsformen nicht auf Personen oder Personengruppen beschränkt, und sie können andere Objekte, wie Bäume, und ihre entsprechenden Objektgruppen, wie Baumgruppen, involvieren.
-
3B veranschaulicht ein Mapping 340 der Hauptlinie 341 und Objektgruppen 351, 353 gemäß einer Ausführungsform. Der Kürze halber können viele der Details, die zuvor mit Bezugnahme auf 1 bis 3A diskutiert wurden, hier im Nachstehenden nicht diskutiert werden. Wie in dem Mapping 340 veranschaulicht, schneidet eine einzelne Hauptlinie Pj I 341 von einer Kamera, wie der Kameraj, zwei andere Objektgruppen, wie die Personengruppen GI 351 und G2 353. Die Entsprechungsdistanz von [GI, Pj I] zwischen der Gruppe 351 und der Hauptlinie 341 ist kleiner als [G2, Pj I] zwischen der Gruppe 353 und der Hauptlinie 341, und somit hat [GI, Pj I] die Entsprechung und stellt dasselbe Objekt dar, wie eine Person, in Ansichten von diesen beiden Kameras, und demgemäß wird die Hauptlinie 341 Pj I als mit der neuen Gruppe GI 351 assoziiert angesehen, die nun aus zwei Hauptlinien besteht. Ferner wird der neue Gruppenmittelpunkt für GI 351 unter Verwendung des Mittelwerts aller Schnittpunkte in derselben Gruppe aktualisiert. Wenn irgendwelche isolierten Hauptlinien von einer zweiten Kamera ohne jedes Schneiden mit bestehenden Gruppen vorliegen, kann dies außerdem als Vorgabe eine neue Gruppe bilden.
-
3C veranschaulicht eine endgültige Ausgabe 360 gemäß einer Ausführungsform. Der Kürze halber können viele der Details, die zuvor mit Bezugnahme auf 1 bis 3B diskutiert wurden, hier im Nachstehenden nicht diskutiert oder wiederholt werden. Die veranschaulichte Ausführungsform zeigt die Ergebnisse 360, wobei alle Personen, wie Spieler, Schiedsrichter usw., auf einem Fußballfeld gemäß ihren exakten Positionen auf dem Boden identifiziert werden. Der Kürze halber werden drei Schnittpunkte 361, 363, 365 ausgewählt, um die Positionen verschiedener Individuen zu zeigen, z.B. kann der Schnittpunkt 361 die exakte Position eines Schiedsrichters in dem Fußballspiel darstellen, der Schnittpunkt 363 stellt einen Torhüter dar, während der Schnittpunkt 365 einen Spieler darstellt. In einer Ausführungsform stellt jeder der Schnittpunkte 361, 363, 365 auch einen Cluster von Hauptlinien, wie mit Bezugnahme auf 2 und 3A weiter beschrieben, in einer Multi Camera-Multi View-Objektdetektionstechnik dar, wie durch den Detektionsmechanismus 110 von 1 erleichtert.
-
4 veranschaulicht eine Ausführungsform eines Verfahrens 400 zur Durchführung einer Echtzeit-Multi View-Multi Camera-Detektion von Objekten gemäß einer Ausführungsform. Da 4 bereits im Vorstehenden mit Bezugnahme auf 2 beschrieben wurde, werden der Kürze halber diese Details hier im Nachstehenden nicht diskutiert oder wiederholt. Es ist jedoch anzumerken, dass irgendwelche Prozesse oder Transaktionen, die mit dieser und anderen Veranschaulichungen assoziiert sind, durch Verarbeitungslogik vorgenommen werden können, die Hardware (z.B. Schaltungen, dedizierte Logik, programmierbare Logik usw.), Software (wie Instruktionen, die auf einer Verarbeitungsvorrichtung laufen) oder eine Kombination davon umfassen, wie durch den Detektionsmechanismus 110 von 1 erleichtert. Ferner können beliebige Prozesse oder Transaktionen, die mit dieser und anderen Veranschaulichungen assoziiert sind, in linearen Sequenzen der Kürze und klaren Präsentation halber veranschaulicht oder angegeben werden; es wird jedoch vorgesehen, dass eine beliebige Anzahl davon parallel, asynchron oder in verschiedener Reihenfolge vorgenommen werden kann.
-
5 veranschaulicht eine Rechnervorrichtung 500 gemäß einer Implementierung. Die veranschaulichte Rechnervorrichtung 500 kann gleich oder ähnlich sein wie die Rechnervorrichtung 100 von 1. Die Rechnervorrichtung 500 beherbergt eine Systemplatine 502. Die Platine 502 kann eine Anzahl von Komponenten umfassen, umfassend, jedoch nicht beschränkt auf einen Prozessor 504 und mindestens ein Kommunikationspaket 506. Das Kommunikationspaket ist mit einer oder mehreren Antennen 516 gekoppelt. Der Prozessor 504 ist physisch und elektrisch mit der Platine 502 gekoppelt.
-
In Abhängigkeit von ihren Anwendungen kann die Rechnervorrichtung 500 andere Komponenten umfassen, die physisch und elektrisch mit der Platine 502 gekoppelt sein können oder nicht. Diese anderen Komponenten umfassen, sind jedoch nicht beschränkt auf den flüchtigen Speicher (z.B. DRAM) 508, den nicht flüchtigen Speicher (z.B. ROM) 509, einen Flash-Speicher (nicht gezeigt), einen Grafikprozessor 512, einen digitalen Signalprozessor (nicht gezeigt), einen Kryptoprozessor (nicht gezeigt), einen Chipsatz 514, eine Antenne 516, eine Anzeige 518, wie eine Bildschirmanzeige, eine Bildschirmanzeigensteuereinheit 520, eine Batterie 522, einen Audio-Codec (nicht gezeigt), einen Video-Codec (nicht gezeigt), einen Leistungsverstärker 524, eine Global Positioning System-(GPS) Vorrichtung 526, einen Kompass 528, ein Akzelerometer (nicht gezeigt), ein Gyroskop (nicht gezeigt), einen Lautsprecher 530, Kameras 532, ein Mikrofon-Array 534 und eine Massenspeichervorrichtung (wie ein Festplattenlaufwerk) 510, eine Compact Disk (CD) (nicht gezeigt), eine Digital Versatile Disk (DVD) (nicht gezeigt) usw.). Diese Komponenten können mit der Systemplatine 502 verbunden sein, auf der Systemplatine montiert oder mit einer beliebigen der anderen Komponenten kombiniert werden.
-
Das Kommunikationspaket 506 ermöglicht drahtlose und/oder verdrahtete Kommunikationen für den Transfer von Daten zu und von der Rechnervorrichtung 500. Der Ausdruck „drahtlos“ und seine Ableitungen können verwendet werden, um Schaltungen, Vorrichtungen, Systeme, Verfahren, Techniken, Kommunikationskanäle usw. zu beschreiben, die Daten durch die Verwendung modulierter elektromagnetischer Strahlung durch ein nicht festes Medium kommunizieren können. Der Ausdruck impliziert nicht, dass die assoziierten Vorrichtungen keine Drähte enthalten, obwohl dies in einigen Ausführungsformen so sein kann. Das Kommunikationspaket 506 kann eine beliebige Anzahl von drahtlosen oder verdrahteten Standards oder Protokollen implementieren, umfassend, jedoch nicht beschränkt auf Wi-Fi (IEEE 802.11 Familie), WiMAX (IEEE 802.16 Familie), IEEE 802.20, Long Term Evolution (LTE), Ev-DO, HSPA+, HSDPA+, HSUPA+, EDGE, GSM, GPRS, CDMA, TDMA, DECT, Bluetooth, Ethernet-Derivate davon, sowie beliebige andere drahtlose und verdrahtete Protokolle, die als 3G, 4G, 5G und darüber hinaus bezeichnet werden. Die Rechnervorrichtung 500 kann eine Vielzahl von Kommunikationspaketen 506 umfassen. Zum Beispiel kann ein erstes Kommunikationspaket 506 für drahtlose Kommunikationen mit kürzerer Reichweite dediziert sein, wie Wi-Fi und Bluetooth, und ein zweites Kommunikationspaket 506 kann für drahtlose Kommunikationen mit längerer Reichweite dediziert sein, wie GPS, EDGE, GPRS, CDMA, WiMAX, LTE, Ev-DO u.a.
-
Die Kameras 532, die irgendwelche Tiefensensoren oder Proximitätssensoren umfassen, sind mit einem optionalen Bildprozessor 536 gekoppelt, um Umwandlungen, eine Analyse, Rauschreduktion, Vergleiche, eine Tiefen- oder Distanzanalyse, ein Bildverstehen und andere Prozesse vorzunehmen, wie hier beschrieben. Der Prozessor 504 ist mit dem Bildprozessor gekoppelt, um den Prozess mit Unterbrechungen, eingestellten Parametern und Steueroperationen des Bildprozessors und der Kameras zu treiben. Die Bildverarbeitung kann stattdessen in dem Prozessor 504, der Grafik-CPU 512, den Kameras 532 oder in irgendeiner anderen Vorrichtung vorgenommen werden.
-
In verschiedenen Implementierungen kann die Rechnervorrichtung 500 ein Laptop, ein Netbook, ein Notebook, ein Ultrabook, ein Smartphone, ein Tablet, ein Personal Digital Assistant (PDA), ein ultramobiler PC, ein Mobiltelefon, ein Desktop Computer, ein Server, eine Set-top Box, eine Unterhaltungssteuereinheit, eine digitale Kamera, ein tragbarer Music Player oder ein digitaler Videorecorder sein. Die Rechnervorrichtung kann fest, tragbar oder am Körper tragbar sein. In weiteren Implementierungen kann die Rechnervorrichtung 500 eine beliebige andere elektronische Vorrichtung sein, die Daten verarbeitet oder Daten für eine Verarbeitung an einem anderen Ort aufzeichnet.
-
Ausführungsformen können unter Verwendung eines oder mehrerer Speicherchips, Steuereinheiten, CPUs (Zentraleinheit), Mikrochips oder integrierter Schaltungen, die unter Verwendung einer Mutterplatine miteinander verbunden sind, einer anwendungsspezifischen integrierten Schaltung (ASIC) und/oder eines feldprogrammierbaren Gate-Arrays (FPGA) implementiert werden. Der Ausdruck „Logik“ kann als Beispiel Software oder Hardware und/oder Kombinationen von Software und Hardware umfassen.
-
Bezugnahmen auf „eine einzelne Ausführungsform“, „eine Ausführungsform“, „ein Beispiel einer Ausführungsform“, „verschiedene Ausführungsformen“ usw. zeigen an, dass die so beschriebene(n) Ausführungsform(en) bestimmte Merkmale, Strukturen oder Charakteristiken umfassen kann oder können, aber nicht jede Ausführungsform unbedingt die bestimmten Merkmale, Strukturen oder Charakteristiken umfasst. Ferner können einige Ausführungsformen alle oder keine der für andere Ausführungsformen beschriebenen Merkmale aufweisen.
-
In der folgenden Beschreibung und den Ansprüchen kann der Ausdruck „gekoppelt“ zusammen mit seinen Ableitungen verwendet werden. „Gekoppelt“ wird verwendet, um anzuzeigen, dass zwei oder mehr Elemente zusammenwirken oder miteinander interagieren, sie können jedoch dazwischenliegende physische oder elektrische Komponenten dazwischen aufweisen oder nicht.
-
Wie in den Ansprüchen verwendet, wenn nichts anderes spezifiziert wird, zeigt die Verwendung der Zahlenadjektive „erste/r/s“, „zweite/r/s“, „dritte/r/s“ usw. zur Beschreibung eines gemeinsamen Elements nur an, dass auf verschiedene Fälle gleicher Elemente Bezug genommen wird, und es soll nicht impliziert werden, dass die so beschriebenen Elemente in einer gegebenen Sequenz sein müssen, entweder zeitlich, räumlich, im Rang oder auf irgendeine andere Weise.
-
Die Zeichnungen und die vorstehende Beschreibung geben Beispiele von Ausführungsformen. Für Fachleute ist klar, dass eines oder mehrere der beschriebenen Elemente gut in ein einzelnes funktionelles Element kombiniert werden kann oder können. Alternativ dazu können bestimmte Elemente in mehrere funktionelle Elemente geteilt werden. Elemente von einer Ausführungsform können zu einer anderen Ausführungsform hinzugefügt werden. Zum Beispiel können Reihenfolgen von hier beschriebenen Prozessen geändert werden und sind nicht auf die hier beschriebene Weise beschränkt. Außerdem müssen die Aktionen irgendeines Flussdiagramms nicht in der gezeigten Reihenfolge implementiert werden; und alle der Handlungen müssen auch nicht unbedingt vorgenommen werden. Jene Handlungen, die nicht von anderen Handlungen abhängig sind, können auch parallel mit anderen Handlungen vorgenommen werden. Der Umfang der Ausführungsformen wird durch diese spezifischen Beispiele keinesfalls eingeschränkt. Zahlreiche Variationen, egal ob explizit in der Spezifikation angegeben oder nicht, wie Unterschiede in der Struktur, Abmessung und Verwendung von Material, sind möglich. Der Umfang der Ausführungsformen ist mindestens so breit wie durch die folgenden Ansprüche angegeben.
-
Ausführungsformen können zum Beispiel als Computerprogrammprodukt bereitgestellt werden, das ein oder mehrere transitorische oder nicht transitorische maschinenlesbare Speichermedien mit darauf gespeicherten maschinenlesbaren Instruktionen umfassen kann, die, wenn sie von einer oder mehreren Maschinen ausgeführt werden, wie einem Computer, einem Netz von Computern oder anderen elektronischen Vorrichtungen, dazu führen können, dass die eine oder die mehreren Maschinen Operationen gemäß hier beschriebenen Ausführungsformen durchführen. Ein maschinenlesbares Medium kann umfassen, ist jedoch nicht beschränkt auf Floppy Disketten, optische Platten, CD-ROMs (Compact Disk-Read Only Memories) und magnetooptische Platten, ROMs, RAMs, EPROMs (löschbare programmierbare Nurlesespeicher), EEPROMs (elektrisch löschbare programmierbare Nurlesespeicher), Magnet- oder optische Karten, Flash-Speicher oder einen anderen Typ eines medien/maschinenlesbaren Mediums, das zum Speichern maschinenausführbarer Instruktionen geeignet ist.
-
6 veranschaulicht eine Ausführungsform einer Rechnerumgebung 600, die imstande ist, die im Vorstehenden diskutierten Operationen zu unterstützen. Die Module und Systeme können in verschiedensten unterschiedlichen Hardware-Architekturen und Formfaktoren implementiert werden, einschließlich der in 5 gezeigten.
-
Das Befehlsausführungsmodul 601 umfasst eine Zentraleinheit, um Befehle zu cachen und auszuführen, und um Aufgaben unter den anderen gezeigten Modulen und Systemen zu verteilen. Es kann einen Instruktionsstapel, einen Cache-Speicher zum Speichern von Zwischen- und Endergebnissen und einen Massenspeicher zum Speichern von Anwendungen und Betriebssystemen umfassen. Das Befehlsausführungsmodul kann auch als zentrale Koordinations- und Aufgabenzuweisungseinheit für das System dienen.
-
Das Bildschirm-Rendering-Modul 621 zeichnet Objekte auf dem einen oder den mehreren Bildschirmen, damit der Benutzer sie sehen kann. Es kann geeignet sein, um die Daten von dem im Nachstehenden beschriebenen virtuellen Objektverhaltensmodul 604 zu empfangen, und um das virtuelle Objekt und irgendwelche anderen Objekte und Kräfte auf dem geeigneten Bildschirm oder den Bildschirmen zu rendern. Somit würden die Daten von dem virtuellen Objektverhaltensmodul zum Beispiel die Position und Dynamik des virtuellen Objekts und assoziierter Gesten, Kräfte und Objekte bestimmen, und das Bildschirm-Rendering-Modul würde das virtuelle Objekt und assoziierte Objekte und die Umgebung auf einem Bildschirm entsprechend darstellen. Das Bildschirm-Rendering-Modul könnte ferner geeignet sein, um Daten von dem im Nachstehenden beschriebenen benachbarten Bildschirmperspektivenmodul 607 zu empfangen, entweder um einen Ziellandungsbereich für das virtuelle Objekt darzustellen, wenn das virtuelle Objekt zu der Anzeige der Vorrichtung bewegt werden könnte, mit der das benachbarte Bildschirmperspektivenmodul assoziiert ist. Wenn somit zum Beispiel das virtuelle Objekt von einem Hauptbildschirm zu einem Hilfsbildschirm bewegt wird, könnte das benachbarte Bildschirmperspektivenmodul 2 Daten an das Screen-Rendering-Modul senden, um zum Beispiel in der Form eines Schattens einen oder mehrere Landungsbereiche für das virtuelle Objekt auf dieser Spur für die Handbewegungen oder Augenbewegungen eines Benutzers vorzuschlagen.
-
Das Objekt- und Gestenerkennungsmodul 622 kann geeignet sein, um Hand- und Armgesten eines Benutzers zu erkennen. Ein solches Modul kann verwendet werden, um Hände, Finger, Fingergesten, Handbewegungen und einen Ort der Hände relativ zu Anzeigen zu erkennen. Zum Beispiel könnte das Objekt- und Gestenerkennungsmodul zum Beispiel bestimmen, dass ein Benutzer eine Körperteilgeste gemacht hat, um ein virtuelles Objekt auf einen oder den anderen der mehreren Bildschirme fallen zu lassen oder zu werfen, oder dass der Benutzer eine Körperteilgeste gemacht hat, um das virtuelle Objekt zu einem Rahmen des einen oder des anderen der mehreren Bildschirme zu bewegen. Das Objekt- und Gestenerkennungssystem kann mit einer Kamera oder einem Kamera-Array, einem Mikrofon oder einem Mikrofon-Array, einem Berührungsbildschirm oder einer Berührungsfläche oder einer Zeigervorrichtung oder irgendeiner Kombination dieser Elemente gekoppelt sein, um Gesten und Befehle von dem Benutzer zu detektieren.
-
Der Berührungsbildschirm oder die Berührungsfläche des Objekt- und Gestenerkennungssystems kann einen Berührungsbildschirmsensor umfassen. Daten von dem Sensor können Hardware, Software, Firmware oder einer Kombination derselben zugeführt werden, um die Berührungsgeste der Hand eines Benutzers auf dem Bildschirm oder der Fläche auf ein entsprechendes dynamisches Verhalten eines virtuellen Objekts zu mappen. Die Sensordaten können für Drehmoment- und Trägheitsfaktoren verwendet werden, um verschiedenstes Drehmomentverhalten für ein virtuelles Objekt auf der Basis der Eingabe durch die Hand des Benutzers zu gestatten, wie einer Wischrate des Fingers eines Benutzers relativ zu dem Bildschirm. Kneifgesten können als Befehl interpretiert werden, um ein virtuelles Objekt von dem Anzeigebildschirm aufzuheben, oder um zu beginnen, eine virtuelle Bindung zu generieren, die mit dem virtuellen Objekt assoziiert ist, oder um auf einer Anzeige hineinzuzoomen oder hinauszuzoomen. Ähnliche Befehle können von dem Objekt- und Gestenerkennungssystem unter Verwendung einer oder mehrerer Kameras ohne den Vorteil einer Berührungsfläche generiert werden.
-
Das Aufmerksamkeitsrichtungsmodul 623 kann mit Kameras oder anderen Sensoren ausgestattet sein, um die Position oder Orientierung des Gesichts oder der Hände eines Benutzers zu verfolgen. Wenn eine Geste oder ein Sprachbefehl ausgegeben wird, kann das System den geeigneten Bildschirm für die Geste bestimmen. In einem Beispiel ist eine Kamera nahe bei jeder Anzeige montiert, um zu detektieren, ob der Benutzer dieser Anzeige zugewandt ist. Wenn dies so ist, wird dann die Richtung der Aufmerksamkeitsmodulinformation an das Objekt- und Gestenerkennungsmodul 622 geliefert, um sicherzustellen, dass die Gesten oder Befehle mit der geeigneten Bibliothek für eine aktive Anzeige assoziiert werden. Wenn der Benutzer von allen Bildschirmen wegsieht, können ähnlich dann Befehle ignoriert werden.
-
Das Vorrichtungsproximitätsdetektionsmodul 625 kann Proximitätssensoren, Kompasse, GPS (Global Positioning System) Empfänger, persönlichen Netzfunk und andere Typen von Sensoren verwenden, zusammen mit einer Triangulation und anderen Techniken, um die Proximität anderer Vorrichtungen zu bestimmen. Sobald eine Vorrichtung in der Nähe detektiert wird, kann sie in das System registriert werden, und ihr Typ kann als Eingabevorrichtung oder als Anzeigevorrichtung oder beides bestimmt werden. Für eine Eingabevorrichtung können dann empfangene Daten auf das Objekt- und Gestenerkennungsmodul 622 angewendet werden. Für eine Anzeigevorrichtung können sie von dem benachbarten Bildschirmperspektivenmodul 607 berücksichtigt werden.
-
Das virtuelle Objektverhaltensmodul 604 ist geeignet, um eine Eingabe von dem Objektgeschwindigkeits- und -richtungsmodul zu empfangen, und um eine solche Eingabe auf ein virtuelles Objekt anzuwenden, das in der Anzeige gezeigt wird. Somit würde zum Beispiel das Objekt- und Gestenerkennungssystem eine Geste eines Benutzers interpretieren, und durch ein Mapping der aufgenommenen Bewegungen der Hand eines Benutzers auf erkannte Bewegungen würde das virtuelle Objektverfolgermodul die Position und Bewegungen des virtuellen Objekts mit den Bewegungen assoziieren, wie sie von dem Objekt- und Gestenerkennungssystem erkannt werden, das Objektgeschwindigkeits- und -richtungsmodul würde die Dynamik der Bewegungen des virtuellen Objekts aufnehmen, und das virtuelle Objektverhaltensmodul würde die Eingabe von dem Objektgeschwindigkeits- und -richtungsmodul empfangen, um Daten zu generieren, welche die Bewegungen des virtuellen Objekts ausrichten würden, um der Eingabe von dem Objektgeschwindigkeits- und -richtungsmodul zu entsprechen.
-
Das virtuelle Objektverfolgermodul 606 kann hingegen geeignet sein, um zu verfolgen, wo ein virtuelles Objekt in einem dreidimensionalen Raum in der Nähe einer Anzeige angeordnet sein sollte, und welcher Körperteil des Benutzers das virtuelle Objekt hält, auf der Basis der Eingabe von dem Objekt- und Gestenerkennungsmodul. Das virtuelle Objektverfolgermodul 606 kann zum Beispiel ein virtuelles Objekt verfolgen, während es sich quer über und zwischen Bildschirmen bewegt, und verfolgen, welcher Körperteil des Benutzers das virtuelle Objekt hält. Die Verfolgung des Körperteils, der das virtuelle Objekt hält, gestattet ein kontinuierliches Bewusstsein der Luftbewegungen des Körperteils und somit ein letztliches Bewusstsein, ob das virtuelle Objekt auf einen oder mehrere Bildschirme freigegeben wurde.
-
Das Gesten-Ansicht- und Bildschirmsynchronisationsmodul 608 empfängt die Auswahl der Ansicht und des Bildschirms oder beides von dem Aufmerksamkeitsrichtungsmodul 623 und in einigen Fällen Sprachbefehle, um zu bestimmen, welche Ansicht die aktive Ansicht ist, und welcher Bildschirm der aktive Bildschirm ist. Es veranlasst dann, dass die relevante Gestenbibliothek für das Objekt- und Gestenerkennungsmodul 622 geladen wird. Verschiedene Ansichten einer Anwendung auf einem oder mehreren Bildschirmen können mit alternativen Gestenbibliotheken oder einem Setz von Gestenschablonen für eine gegebene Ansicht assoziiert werden. Als Beispiel startet in 1A eine Kneiffreigabegeste ein Torpedo, in 1B startet jedoch dieselbe Geste eine Tiefenladung.
-
Ein benachbartes Bildschirmperspektivenmodul 607, welches das Vorrichtungsproximitätsdetektionsmodul 625 umfassen kann oder damit gekoppelt sein kann, kann geeignet sein, um einen Winkel und eine Position einer Anzeige relativ zu einer anderen Anzeige zu bestimmen. Eine projizierte Anzeige umfasst zum Beispiel ein Bild, das auf eine Wand oder einen Bildschirm projiziert wird. Die Fähigkeit, eine Proximität eines Bildschirms in der Nähe und einen entsprechenden Winkel oder eine Orientierung einer davon projizierten Anzeige zu detektieren, kann zum Beispiel entweder mit einem Infrarot-Emitter und -Empfänger oder einer elektromagnetischen oder Fotodetektions-Sensorfähigkeit erzielt werden. Für Technologien, die projizierte Anzeigen mit einer Berührungseingabe ermöglichen, kann das ankommende Video analysiert werden, um die Position einer projizierten Anzeige zu bestimmen, und um hinsichtlich der Verzerrung eine Korrektur vorzunehmen, die durch das Anzeigen unter einem Winkel verursacht wird. Ein Akzelerometer, ein Magnetometer, ein Kompass oder eine Kamera kann verwendet werden, um den Winkel zu bestimmen, unter dem eine Vorrichtung gehalten wird, während Infrarot-Emitter und -Kameras gestatten könnten, die Orientierung der Bildschirmvorrichtung in Bezug auf die Sensoren auf einer benachbarten Vorrichtung zu bestimmen. Das benachbarte Bildschirmperspektivenmodul 607 kann auf diese Weise Koordinaten eines benachbarten Bildschirms relativ zu seinen eigenen Bildschirmkoordinaten bestimmen. Somit kann das benachbarte Bildschirmperspektivenmodul bestimmen, welche Vorrichtungen einander naheliegen, und ferner potentielle Ziele für die Bewegung eines oder mehrerer virtueller Objekte quer über den Bildschirm. Das benachbarte Bildschirmperspektivenmodul kann ferner gestatten, dass die Position der Bildschirme mit einem Modell eines dreidimensionalen Raums korreliert wird, der alle der bestehenden Objekte und virtuellen Objekte darstellt.
-
Das Objekt- und Geschwindigkeits- und Richtungsmodul 603 kann geeignet sein, um die Dynamik eines virtuellen Objekts zu schätzen, das bewegt wird, wie seine Bahn, seine Geschwindigkeit (ob linear oder winkelmäßig), sein Drehmoment (ob linear oder winkelmäßig) usw., durch Empfangen der Eingabe von dem virtuellen Objektverfolgermodul. Das Objekt- und Geschwindigkeits- und Richtungsmodul kann ferner geeignet sein, um die Dynamik irgendwelcher physikalischen Kräfte zu schätzen, zum Beispiel durch Schätzen der Beschleunigung, der Ablenkung, des Streckgrads einer virtuellen Bindung usw. und des dynamischen Verhaltens eines virtuellen Objekts, sobald es von einem Körperteil eines Benutzers freigegeben wird. Das Objekt- und Geschwindigkeits- und Richtungsmodul kann auch eine Bildbewegung, Größen- und Winkelveränderungen verwenden, um die Geschwindigkeit von Objekten zu schätzen, wie die Geschwindigkeit von Händen und Fingern.
-
Das Drehmoment- und Trägheitsmodul 602 kann eine Bildbewegung, Bildgröße und Winkelveränderungen von Objekten in der Bildebene oder in einem dreidimensionalen Raum verwenden, um die Geschwindigkeit und Richtung von Objekten in dem Raum oder auf einer Anzeige zu schätzen. Das Drehmoment- und Trägheitsmodul ist mit dem Objekt- und Gestenerkennungsmodul 622 gekoppelt, um die Geschwindigkeit von Gesten zu schätzen, die von Händen, Fingern und anderen Körperteilen vorgenommen werden, und um dann diese Schätzungen anzuwenden, um das Drehmoment und Geschwindigkeiten zu virtuellen Objekten zu bestimmen, die von der Geste beeinflusst werden.
-
Das 3D Bildinteraktions- und -effektemodul 605 verfolgt die Benutzerinteraktion mit 3D Bildern, die aufscheinen, um sich aus einem oder mehreren Bildschirmen zu erstrecken. Der Einfluss von Objekten in der z-Achse (zu und weg von der Ebene des Bildschirms) kann zusammen mit dem relativen Einfluss dieser Objekte aufeinander berechnet werden. Zum Beispiel kann ein Objekt, das von einer Benutzergeste geworfen wird, von 3D Objekten im Vordergrund beeinflusst werden, bevor das virtuelle Objekt an der Ebene des Bildschirms ankommt. Diese Objekte können die Richtung oder Geschwindigkeit des Projektils ändern oder es gänzlich zerstören. Das Objekt kann von dem 3D Bildinteraktions- und -effektemodul 605 im Vordergrund auf einer oder mehreren der Anzeigen gerendert werden. Wie veranschaulicht, sind verschiedene Komponenten, wie die Komponenten 601, 602, 603, 604, 605, 606, 607 und 608 über eine Zwischenverbindung oder einen Bus verbunden, wie den Bus 609.
-
Die folgenden Absätze und/oder Beispiele gehören zu weiteren Ausführungsformen oder Beispielen. Spezifische Details in den Beispielen können an beliebiger Stelle in einer oder mehreren Ausführungsformen verwendet werden. Die verschiedenen Merkmale der verschiedenen Ausführungsformen oder Beispiele können verschieden mit Merkmalen kombiniert werden, wobei einige eingeschlossen und andere ausgeschlossen werden, um zu verschiedenen unterschiedlichen Anwendungen zu passen. Beispiele können einen Gegenstand umfassen, wie ein Verfahren, Mittel zur Vornahme von Handlungen des Verfahrens, mindestens ein maschinenlesbares Medium, das Instruktionen umfasst, die, wenn sie von einer Maschine ausgeführt werden, bewirken, dass die Maschine Handlungen des Verfahrens vornimmt, oder eine Vorrichtung oder ein System zur Erleichterung hybrider Kommunikation gemäß Ausführungsformen und Beispielen, die hier beschrieben werden.
-
Einige Ausführungsformen gehören zu Beispiel 1, das eine Vorrichtung zur Erleichterung der Echtzeit-Multi View-Detektion von Objekten in Multi Camera-Umgebungen umfasst, wobei die Vorrichtung umfasst: einen oder mehrere Prozessoren, um: erste Linien, die mit Objekten assoziiert sind, auf eine Standebene zu mappen; und Cluster zweiter Linien, die den ersten Linien entsprechen, derart zu bilden, dass ein Schnittpunkt in einem Cluster eine Position eines Objekts auf der Standebene darstellt.
-
Beispiel 2 umfasst den Gegenstand von Beispiel 1, wobei der eine oder die mehreren Prozessoren ferner die ersten Linien derart zu generieren haben, um die Objekte darzustellen, dass eine erste Linie vertikal von der Oberseite zur Unterseite eines Objekts verläuft, wobei die ersten Linien vertikale Linien umfassen, und wobei die Objekte eines oder mehrere von Personen, anderen Lebewesen und nicht lebendigen Dingen umfassen.
-
Beispiel 3 umfasst den Gegenstand von Beispiel 1-2, wobei der Schnittpunkt zweiter Linien Cluster mit Schnittpunkten zu generieren hat, wobei jeder Cluster eine Objektgruppe darstellt, und wobei die zweiten Linien Hauptlinien umfassen.
-
Beispiel 4 umfasst den Gegenstand von Beispiel 1-3, wobei der eine oder die mehreren Prozessoren ferner es den Kameras zu erleichtern haben, Szenen mit Bildern der Objekte aufzunehmen, wobei eine Kamera eine Eingabe auf der Basis ihrer Aufnahme einer Szene eines oder mehrerer der Objekte anbietet, wobei die Eingabe eine Ansicht des einen oder der mehreren Objekte aus der Perspektive der Kamera darstellt.
-
Beispiel 5 umfasst den Gegenstand von Beispiel 1-4, wobei der eine oder die mehreren Prozessoren ferner: zu detektieren haben, ob die zweiten Linien eine isolierte zweite Linie umfassen; wenn die isolierte zweite Linie detektiert wird, eine neue Objektgruppe zu erstellen haben, um zuzuordnen, dass die isolierte zweite Linie der neuen Objektgruppe zugeordnet wird; und wenn die isolierte zweite Linie nicht detektiert wird, die zweiten Linien Objektgruppen zuzuordnen haben.
-
Beispiel 6 umfasst den Gegenstand von Beispiel 1-5, wobei der eine oder die mehreren Prozessoren ferner: Gruppenmittelpunkte für die Objektgruppen zu berechnen haben; und Positionen der Objekte innerhalb der Gruppenebene auf der Basis der Gruppenmittelpunkte auszugeben haben.
-
Beispiel 7 umfasst den Gegenstand von Beispiel 1-6, wobei der eine oder die mehreren Prozessoren einen oder mehrere von einem Grafikprozessor und einem Anwendungsprozessor umfassen, wobei der Grafikprozessor und der Anwendungsprozessor zusammen auf einer gemeinsamen Halbleiterpackung angeordnet sind.
-
Einige Ausführungsformen gehören zu Beispiel 8, das ein Verfahren zur Erleichterung der Echtzeit-Multi View-Detektion von Objekten in Multi Camera-Umgebungen umfasst, wobei das Verfahren umfasst: Mappen erster Linien, die mit Objekten assoziiert sind, auf eine Standebene; und Bilden von Clustern zweiter Linien, die den ersten Linien entsprechen, derart, dass ein Schnittpunkt in einem Cluster eine Position eines Objekts auf der Standebene darstellt.
-
Beispiel 9 umfasst den Gegenstand von Beispiel 8, ferner umfassend das Generieren der ersten Linien, um die Objekte darzustellen, derart, dass eine erste Linie vertikal von der Oberseite zur Unterseite eines Objekts verläuft, wobei die ersten Linien vertikale Linien umfassen, und wobei die Objekte eines oder mehrere von Personen, anderen Lebewesen oder nicht lebendigen Dingen umfassen.
-
Beispiel 10 umfasst den Gegenstand von Beispiel 8-9, wobei der Schnittpunkt zweiter Linien Cluster mit Schnittpunkten zu generieren hat, wobei jeder Cluster eine Objektgruppe darstellt, und wobei die zweiten Linien Hauptlinien umfassen.
-
Beispiel 11 umfasst den Gegenstand von Beispiel 8-10, ferner umfassend das Erleichtern von Kameras, Szenen mit Bildern der Objekte aufzunehmen, wobei eine Kamera eine Eingabe auf der Basis ihrer Aufnahme einer Szene eines oder mehrerer der Objekte anbietet, wobei die Eingabe eine Ansicht des einen oder der mehreren Objekte aus der Perspektive der Kamera darstellt.
-
Beispiel 12 umfasst den Gegenstand von Beispiel 8-11, ferner umfassend: Detektieren, ob die zweiten Linien eine isolierte zweite Linie umfassen; wenn die isolierte zweite Linie detektiert wird, Erstellen einer neuen Objektgruppe, um zuzuordnen, dass die isolierte zweite Linie der neuen Objektgruppe zugeordnet wird; und wenn die isolierte zweite Linie nicht detektiert wird, Zuordnen der zweiten Linien zu Objektgruppen.
-
Beispiel 13 umfasst den Gegenstand von Beispiel 8-12, ferner umfassend: Berechnen von Gruppenmittelpunkten für die Objektgruppen; und Ausgeben von Positionen der Objekte innerhalb der Gruppenebene auf der Basis der Gruppenmittelpunkte.
-
Beispiel 14 umfasst den Gegenstand von Beispiel 8-13, wobei das Verfahren durch einen oder mehrere Prozessoren erleichtert wird, umfassend einen oder mehrere von einem Grafikprozessor und einem Anwendungsprozessor, wobei der Grafikprozessor und der Anwendungsprozessor zusammen auf einer gemeinsamen Halbleiterpackung angeordnet sind.
-
Einige Ausführungsformen gehören zu Beispiel 15, das ein Datenverarbeitungssystem umfasst, umfassend eine Verarbeitungsvorrichtung, um: erste Linien, die mit Objekten assoziiert sind, auf eine Standebene zu mappen; und Cluster zweiter Linien, die den ersten Linien entsprechen, derart zu bilden, dass ein Schnittpunkt in einem Cluster eine Position eines Objekts auf der Standebene darstellt.
-
Beispiel 16 umfasst den Gegenstand von Beispiel 15, wobei die Verarbeitungsvorrichtung ferner die ersten Linien derart zu generieren hat, um die Objekte darzustellen, dass eine erste Linie vertikal von der Oberseite zur Unterseite eines Objekts verläuft, wobei die ersten Linien vertikale Linien umfassen, und wobei die Objekte eines oder mehrere von Personen, anderen Lebewesen und nicht lebendigen Dingen umfassen.
-
Beispiel 17 umfasst den Gegenstand von Beispiel 15-16, wobei der Schnittpunkt zweiter Linien Cluster mit Schnittpunkten zu generieren hat, wobei jeder Cluster eine Objektgruppe darstellt, und wobei die zweiten Linien Hauptlinien umfassen.
-
Beispiel 18 umfasst den Gegenstand von Beispiel 15-17, wobei die Verarbeitungsvorrichtung ferner es den Kameras zu erleichtern hat, Szenen mit Bildern der Objekte aufzunehmen, wobei eine Kamera eine Eingabe auf der Basis ihrer Aufnahme einer Szene eines oder mehrerer der Objekte anbietet, wobei die Eingabe eine Ansicht des einen oder der mehreren Objekte aus der Perspektive der Kamera darstellt.
-
Beispiel 19 umfasst den Gegenstand von Beispiel 15-18, wobei die Verarbeitungsvorrichtung ferner: zu detektieren hat, ob die zweiten Linien eine isolierte zweite Linie umfassen; wenn die isolierte zweite Linie detektiert wird, eine neue Objektgruppe zu erstellen hat, um zuzuordnen, dass die isolierte zweite Linie der neuen Objektgruppe zugeordnet wird; und wenn die isolierte zweite Linie nicht detektiert wird, die zweiten Linien Objektgruppen zuzuordnen hat.
-
Beispiel 20 umfasst den Gegenstand von Beispiel 15-19, wobei die Verarbeitungsvorrichtung ferner: Gruppenmittelpunkte für die Objektgruppen zu berechnen hat; und Positionen der Objekte innerhalb der Gruppenebene auf der Basis der Gruppenmittelpunkte auszugeben hat.
-
Beispiel 21 umfasst den Gegenstand von Beispiel 15-20, wobei die Verarbeitungsvorrichtung einen oder mehrere von einem Grafikprozessor und einem Anwendungsprozessor umfasst, wobei der Grafikprozessor und der Anwendungsprozessor zusammen auf einer gemeinsamen Halbleiterpackung angeordnet sind.
-
Einige Ausführungsformen gehören zu Beispiel 22, das eine Vorrichtung zur Erleichterung der Echtzeit-Multi View-Detektion von Objekten in Multi Camera-Umgebungen umfasst, wobei die Vorrichtung umfasst: Mittel zum Mappen erster Linien, die mit Objekten assoziiert sind, auf eine Standebene; und Mittel zum Bilden von Clustern zweiter Linien, die den ersten Linien entsprechen, derart, dass ein Schnittpunkt in einem Cluster eine Position eines Objekts auf der Standebene darstellt.
-
Beispiel 23 umfasst den Gegenstand von Beispiel 22 ferner umfassend Mittel zum Generieren der ersten Linien, um die Objekte darzustellen, derart, dass eine erste Linie vertikal von der Oberseite zur Unterseite eines Objekts verläuft, wobei die ersten Linien vertikale Linien umfassen, und wobei die Objekte eines oder mehrere von Personen, anderen Lebewesen oder nicht lebendigen Dingen umfassen.
-
Beispiel 24 umfasst den Gegenstand von Beispiel 22-23, wobei der Schnittpunkt zweiter Linien Cluster mit Schnittpunkten zu generieren hat, wobei jeder Cluster eine Objektgruppe darstellt, und wobei die zweiten Linien Hauptlinien umfassen.
-
Beispiel 25 umfasst den Gegenstand von Beispiel 22-24, ferner umfassend das Erleichtern von Kameras, Szenen mit Bildern der Objekte aufzunehmen, wobei eine Kamera eine Eingabe auf der Basis ihrer Aufnahme einer Szene eines oder mehrerer der Objekte anbietet, wobei die Eingabe eine Ansicht des einen oder der mehreren Objekte aus der Perspektive der Kamera darstellt.
-
Beispiel 26 umfasst den Gegenstand von Beispiel 22-25, ferner umfassend: Mittel zum Detektieren, ob die zweiten Linien eine isolierte zweite Linie umfassen; wenn die isolierte zweite Linie detektiert wird, Mittel zum Erstellen einer neuen Objektgruppe, um zuzuordnen, dass die isolierte zweite Linie der neuen Objektgruppe zugeordnet wird; und wenn die isolierte zweite Linie nicht detektiert wird, Mittel zum Zuordnen der zweiten Linien zu Objektgruppen.
-
Beispiel 27 umfasst den Gegenstand von Beispiel 22-26, ferner umfassend: Mittel zum Berechnen von Gruppenmittelpunkten für die Objektgruppen; und Mittel zum Ausgeben von Positionen der Objekte innerhalb der Gruppenebene auf der Basis der Gruppenmittelpunkte.
-
Beispiel 28 umfasst den Gegenstand von Beispiel 22-27, ferner umfassend einen oder mehrere Prozessoren, umfassend einen oder mehrere von einem Grafikprozessor und einem Anwendungsprozessor, wobei der Grafikprozessor und der Anwendungsprozessor zusammen auf einer gemeinsamen Halbleiterpackung angeordnet sind.
-
Beispiel 29 umfasst mindestens ein nicht transitorisches oder materielles maschinenlesbares Medium, umfassend eine Vielzahl von Instruktionen, um, wenn sie auf einer Rechnervorrichtung ausgeführt werden, ein Verfahren nach einem der Ansprüche oder Beispiele 8 bis 14 zu implementieren oder vorzunehmen.
-
Beispiel 30 umfasst mindestens ein maschinenlesbares Medium, umfassend eine Vielzahl von Instruktionen, um, wenn sie auf einer Rechnervorrichtung ausgeführt werden, ein Verfahren nach einem der Ansprüche oder Beispiele 8 bis 14 zu implementieren oder vorzunehmen.
-
Beispiel 31 umfasst ein System, umfassend einen Mechanismus, um ein Verfahren nach einem der Ansprüche oder Beispiele 8 bis 14 zu implementieren oder vorzunehmen.
-
Beispiel 32 umfasst eine Vorrichtung, umfassend Mittel zum Vornehmen eines Verfahrens nach einem der Ansprüche oder Beispiele 8 bis 14
-
Beispiel 33 umfasst eine Rechnervorrichtung, welche eingerichtet ist, um ein Verfahren nach einem der Ansprüche oder Beispiele 8 bis 14 zu implementieren oder vorzunehmen.
-
Beispiel 34 umfasst eine Kommunikationsvorrichtung, welche eingerichtet ist, um ein Verfahren nach einem der Ansprüche oder Beispiele 8 bis 14 zu implementieren oder vorzunehmen.
-
Beispiel 35 umfasst mindestens ein maschinenlesbares Medium, umfassend eine Vielzahl von Instruktionen, um, wenn sie auf einer Rechnervorrichtung ausgeführt werden, ein Verfahren zu implementieren oder vorzunehmen, oder eine Vorrichtung zu realisieren, nach einem der vorhergehenden Ansprüche.
-
Beispiel 36 umfasst mindestens ein nicht transitorisches oder materielles maschinenlesbares Medium, umfassend eine Vielzahl von Instruktionen, um, wenn sie auf einer Rechnervorrichtung ausgeführt werden, ein Verfahren zu implementieren oder vorzunehmen, oder eine Vorrichtung zu realisieren, nach einem der vorhergehenden Ansprüche.
-
Beispiel 37 umfasst ein System, umfassend einen Mechanismus, um ein Verfahren zu implementieren oder vorzunehmen, oder eine Vorrichtung zu realisieren, nach einem der vorhergehenden Ansprüche.
-
Beispiel 38 umfasst eine Vorrichtung, umfassend Mittel zum Vornehmen eines Verfahrens nach einem der vorhergehenden Ansprüche.
-
Beispiel 39 umfasst eine Rechnervorrichtung, welche eingerichtet ist, um ein Verfahren zu implementieren oder vorzunehmen, oder eine Vorrichtung zu realisieren, nach einem der vorhergehenden Ansprüche.
-
Beispiel 40 umfasst eine Kommunikationsvorrichtung, welche eingerichtet ist, um ein Verfahren zu implementieren oder vorzunehmen, oder eine Vorrichtung zu realisieren, nach einem der vorhergehenden Ansprüche.
-
Die Zeichnungen und die vorstehende Beschreibung geben Beispiele von Ausführungsformen. Für Fachleute ist klar, dass eines oder mehrere der beschriebenen Elemente gut in ein einzelnes funktionelles Element kombiniert werden kann oder können. Alternativ dazu können bestimmte Elemente in mehrere funktionelle Elemente geteilt werden. Elemente von einer Ausführungsform können zu einer anderen Ausführungsform hinzugefügt werden. Zum Beispiel können Reihenfolgen von hier beschriebenen Prozessen geändert werden und sind nicht auf die hier beschriebene Weise beschränkt. Außerdem müssen die Aktionen irgendeines Flussdiagramms nicht in der gezeigten Reihenfolge implementiert werden; und alle der Handlungen müssen auch nicht unbedingt vorgenommen werden. Jene Handlungen, die nicht von anderen Handlungen abhängig sind, können auch parallel mit anderen Handlungen vorgenommen werden. Der Umfang der Ausführungsformen wird durch diese spezifischen Beispiele keinesfalls eingeschränkt. Zahlreiche Variationen, egal ob explizit in der Spezifikation angegeben oder nicht, wie Unterschiede in der Struktur, Abmessung und Verwendung von Material, sind möglich. Der Umfang der Ausführungsformen ist mindestens so breit wie durch die folgenden Ansprüche angegeben.