DE112018007730T5 - 3d objekterkennung unter verwendung von 3d konvolutionalen neuronalen netzen mit tiefenbasierten multiskalierungsfiltern - Google Patents

3d objekterkennung unter verwendung von 3d konvolutionalen neuronalen netzen mit tiefenbasierten multiskalierungsfiltern Download PDF

Info

Publication number
DE112018007730T5
DE112018007730T5 DE112018007730.6T DE112018007730T DE112018007730T5 DE 112018007730 T5 DE112018007730 T5 DE 112018007730T5 DE 112018007730 T DE112018007730 T DE 112018007730T DE 112018007730 T5 DE112018007730 T5 DE 112018007730T5
Authority
DE
Germany
Prior art keywords
filter
filters
image segment
space size
convolutional
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE112018007730.6T
Other languages
English (en)
Inventor
Zhigang Wang
Dawei Wang
Ganmei YOU
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of DE112018007730T5 publication Critical patent/DE112018007730T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/44Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
    • G06V10/443Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components by matching or filtering
    • G06V10/449Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters
    • G06V10/451Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters with interaction between the filter responses, e.g. cortical complex cells
    • G06V10/454Integrating the filters into a hierarchical structure, e.g. convolutional neural networks [CNN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/764Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/50Context or environment of the image
    • G06V20/56Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/50Context or environment of the image
    • G06V20/56Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle
    • G06V20/58Recognition of moving objects or obstacles, e.g. vehicles or pedestrians; Recognition of traffic objects, e.g. traffic signs, traffic lights or roads
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/60Type of objects
    • G06V20/64Three-dimensional objects

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Multimedia (AREA)
  • Artificial Intelligence (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Molecular Biology (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Biophysics (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Databases & Information Systems (AREA)
  • Medical Informatics (AREA)
  • Biodiversity & Conservation Biology (AREA)
  • Image Analysis (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)

Abstract

Techniken in Verbindung mit der Schulung und Umsetzung konvolutionaler neuronaler Netze für Objekterkennung sind besprochen. Solche Techniken können das Anwenden von 3D-Filtern verschiedener Raumgrößen an einer ersten konvolutionalen Schicht des konvolutionalen neuronalen Netzes auf ein 3D-Eingabebildsegment umfassen, um Mehrfachskalierungs-Merkmalskarten zu generieren, sodass jede Merkmalskarte einen Pfad zu vollständig verbundenen Schichten des konvolutionalen neuronalen Netzes aufweist, die Objekterkennungsdaten generieren, die dem 3D-Eingabebildsegment entsprechen.

Description

  • HINTERGRUND
  • Semantische Objekterkennung kann das Identifizieren von Objekten in einem Bild oder in Bildern und das korrekte Beschriften des identifizierten Objekts umfassen. Solche semantischen Objekterkennungstechniken haben eine große Reihe von Anwendungen. Beispielsweise ist die semantische Objekterkennung eine wichtige Fähigkeit für autonome Fahrtanwendungen (AD-Anwendungen) und autonome Roboteranwendungen (AR-Anwendungen). Aktuelle Objekterkennungstechniken können RGB-Bilder verwenden (wobei jeder Pixel rote, grüne und blaue Werte aufweist), um Objekte zu erkennen. In einigen Beispielen werden wesentliche Punkte von Objekten in den RGB-Bildern identifiziert, Merkmale werden von den Schlüsselpunkten extrahiert und die extrahierten Merkmale werden verwendet, um Objekte zu identifizieren. Wenn beispielsweise Schlüsselpunkte abgeglichen werden, wird das jeweilige Objekt abgeglichen und erkannt. In solchen Umsetzungen können extrahierte Merkmale von Objekten in nahen Entfernungen von der Kamera nicht verwendet werden, um Objekte in großen Abständen von der Kamera zu erkennen und umgekehrt. Weiterhin werden RGB-D-Bilddaten (wobei jeder Pixel einen Rot-, Grün- und Blauwert sowie einen Tiefenwert aufweist) leichter verfügbar, während RGB-D-Sensoren wie Tiefenkameras in AD- und AR-Anwendungen angewendet werden.
  • Es kann vorteilhaft sein, Objekterkennung mit hoher Genauigkeit und weniger Rechner- und Speicherressourcenanforderungen auszuführen. Bezüglich dieser und anderer Überlegungen waren diese vorliegenden Verbesserungen notwendig. Solche Verbesserungen können kritisch werden, wenn der Wunsch, semantische Objekterkennung auszuführen, weiter verbreitet wird.
  • Figurenliste
  • Das hierin beschrieben Material ist beispielhaft und nicht einschränkend in den beiliegenden Figuren illustriert. Um der Einfachheit und Klarheit der Illustration Willen sind die in den Figuren illustrierten Elemente nicht notwendigerweise maßstabsgetreu gezeichnet. Beispielsweise können die Abmessungen einiger Elemente im Vergleich zu anderen Elementen um der Klarheit Willen übertrieben sein. Ferner wurden, wenn dies für angemessen gehalten wird, Referenzschilder zwischen den Figuren wiederholt, um entsprechende oder analoge Elemente anzuzeigen. In den Figuren gilt:
    • 1 illustriert eine beispielhafte Vorrichtung für die Ausführung semantischer Objekterkennung unter Verwendung von 3D-Bilddaten;
    • 2A und 2B illustrieren beispielhafte Bilder, die Objekte aufweisen, die in verschiedenen Kameratiefen erkannt werden sollen;
    • 3 illustriert ein beispielhaftes konvolutionales neuronales Netz für die Objekterkennung;
    • 4 illustriert beispielhafte 3D-Eingabebildsegmente;
    • 5A und 5B illustrieren beispielhafte 3D-Filter verschiedener räumlicher Größen;
    • 6 ist ein Ablaufdiagramm, das einen beispielhaften Prozess für die Schulung eines konvolutionalen neuronalen 3D-Netzes illustriert, das Multiskalierungsfilter aufweist;
    • 7 ist ein Ablaufdiagramm, das einen beispielhaften Prozess für die Umsetzung eines konvolutionalen neuronalen 3D-Netzes illustriert, das Multiskalierungsfilter aufweist;
    • 8 illustriert ein anderes beispielhaftes konvolutionales neuronales Netz für die Objekterkennung;
    • 9 ist ein Ablaufdiagramm, das einen beispielhaften Prozess für die Ausführung der Objekterkennung illustriert;
    • 10 ist ein illustratives Diagramm eines beispielhaften Systems für die Ausführung der Objekterkennung;
    • 11 ist ein illustratives Diagramm eines beispielhaften Systems; und
    • 12 illustriert eine beispielhafte Vorrichtung, die vollständig wenigstens einigen Umsetzungen dieser Offenbarung entsprechend angeordnet ist.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Eine oder mehrere Ausführungsformen oder Umsetzungen werden nun bezüglich der beiliegenden Figuren beschrieben. Während spezifische Konfigurationen und Anordnungen besprochen sind, sollte verstanden werden, dass dies zu rein illustrativen Zwecken erfolgt. Fachleute auf dem jeweiligen Gebiet erkennen, dass andere Konfigurationen und Anordnungen eingesetzt werden können, ohne vom Geist und Umfang der Beschreibung abzuweichen. Es ist Fachleuten auf dem jeweiligen Gebiet offensichtlich, dass die Techniken und/oder Anordnungen, die hierin beschrieben sind, auch in einer Vielzahl anderer Systeme und Anwendungen als den hierin beschriebenen eingesetzt werden können.
  • Während die folgende Beschreibung verschiedene Umsetzungen darlegt, die möglicherweise nicht in Architekturen wie System-auf-einem-Chip-Architekturen (SoC-Architekturen) manifestiert sind, sind Umsetzung der hierin beschriebenen Techniken und/oder Anordnungen nicht auf bestimmte Architekturen und/oder Rechnersysteme beschränkt und können durch jede Architektur und/oder jedes Rechnersystem für ähnliche Zwecke umgesetzt sein. Beispielsweise setzen verschiedene Architekturen, die beispielsweise mehrere integrierte Schaltungschips (IC-Chips) und/oder Packages einsetzen, und/oder verschiedene Rechnervorrichtungen und/oder Verbraucherelektronikvorrichtungen (CE-Vorrichtungen) wie Set-Top-Boxen, Smartphones usw. möglicherweise die Techniken und/oder Anordnungen um, die hierin beschrieben sind. Ferner kann die folgende Beschreibung zwar zahlreiche spezifische Details wie logische Umsetzungen, Arten und Zusammenhänge zwischen Systemkomponenten, Logikpartitionierungs-/Integrationsoptionen usw. umsetzen, der beanspruchte Inhalt kann jedoch auch ohne solche spezifischen Details praktiziert werden. In anderen Fällen einige Materialien, wie beispielsweise Steuerstrukturen und volle Softwareanweisungssequenzen nicht immer im Detail gezeigt, um das hierin offenbarte Material nicht zu verschleiern.
  • Das hierin offenbarte Material kann in Hardware, Firmware, Software oder einer Kombination daraus umgesetzt sein. Das hierin offenbarte Material kann auch als Anweisungen umgesetzt sein, die auf einem maschinenlesbaren Medium gespeichert sind, die durch einen oder mehrere Prozessoren gelesen und ausgeführt werden können. Ein maschinenlesbares Medium kann jedes Medium und/oder jeden Mechanismus umfassen, um Informationen in einer durch eine Maschine lesbaren Form zu speichern oder zu übertragen (z. B. eine Rechnervorrichtung). Beispielsweise kann ein maschinenlesbares Medium Festwertspeicher (ROM); Direktzugriffspeicher (RAM); magnetische Festplattenspeichermedien; optische Speichermedien; Flashspeichervorrichtungen; elektrische, optische, akustische oder andere Formen weitergeleiteter Signale (z. B. Trägerwellen, Infrarotsignale, digitale Signale usw.), und andere umfassen.
  • Verweise in der Spezifikation auf „eine Umsetzung“, „eine beispielhafte Umsetzung“ usw. zeigen an, dass die beschriebene Umsetzung möglicherweise ein bestimmtes Merkmal, eine Struktur oder eine Eigenschaft umfasst, dass jedoch nicht jede Ausführungsform notwendigerweise das jeweilige Merkmal, die Struktur oder die Eigenschaft umfasst. Weiterhin beziehen sich solche Bezeichnungen nicht notwendigerweise auf dieselbe Umsetzung. Ferner ist es, wenn ein bestimmtes Merkmal, eine Struktur oder eine Eigenschaft in Verbindung mit einer Ausführungsform beschrieben wird, festgehalten, dass es im Wissen eines Fachmanns auf dem Gebiet liegt, ein solches Merkmal, eine solche Struktur oder Eigenschaft in Verbindung mit anderen Umsetzungen zu verwenden, egal, ob dies hierin explizit beschrieben ist oder nicht. Wie hierin verwendet, geben die Begriffe „etwa“ oder „im Wesentlichen“ eine Abweichung von +/-5 % von dem Zielwert an, sofern nichts anderes angegeben ist.
  • Verfahren, Vorrichtungen, Apparate, Rechnerplattformen und Artikel sind hierin bezüglich der 3D-Objekterkennung unter Verwendung konvolutionaler neuronaler 3D-Netzwerke mit tiefenbasiertem Multiskalierungsfilter beschrieben.
  • Wie oben beschrieben kann es vorteilhaft sein, semantische Objekterkennung in einer Vielzahl von Zusammenhängen auszuführen. Weiterhin werden 3D-Bilddaten in einer Vielzahl von Formaten, wie etwa RGB-D-Formate, verbreiteter. Wie hierin besprochen, kann ein konvolutionales neuronales Netz (CNN) für semantische Objekterkennung in 3D-Bilddaten eine erste konvolutionale Schicht des CNN umfassen, das mehrere 3D-Filter anwendet, sodass einige der 3D-Filter in der ersten konvolutionalen Schicht unterschiedliche 3D-Raumgrößen aufweisen. Wie hierin verwendet, gibt der Begriff 3D-Raumgröße bezüglich eines CNN-3D-Filters das Volumen an, auf das der Filter in räumlichen Abmessungen im 3D-Raum angewendet wird. Verschiedene 3D-Filter unterschiedlicher 3D-Raumgrößen werden daher über verschiedene räumliche Volumen und Abmessungen im 3D-Raum angewendet. In einer Ausführungsform weisen die 3D-Filter jeweils Zellen auf, die dieselbe Raumgröße aufweisen (d. h. über dieselbe Raumgröße im 3D-Raum filtern sollen), wie etwa (0,1 m)3 oder dergleichen, und die 3D-Filter verschiedener 3D-Raumgrößen umfassen unterschiedliche Anzahlen solcher Zellen. Beispielsweise kann ein größerer 3D-Filter 10×10×10 Zellen (d. h. eine Größe von 1 m3) sein, während ein kleinerer 3D-Filter 5×5×5 Zellen (d. h. eine Größe von 0,125 m3) sein kann. Eine beliebige Anzahl verschiedener Größen von 3D-Filtern kann verwendet werden (z. B. 3 verschiedene Größen oder mehr) und eine beliebige Anzahl jeder Größe kann eingesetzt werden (z. B. 10 von jeder Größe oder mehr oder andere Zahlen für jede Filtergröße). Die Anwendung jedes Filters kann eine bestimmte Merkmalskarte generieren. Weiterhin kann die erste konvolutionale Schicht des CNN eine Poolingoperation für jedes der gefilterten Ergebnisse (z. B. Filterkarten) umfassen. Beispielsweise kann jede 3D-Filtergröße eine entsprechende Poolinggröße aufweisen, die Max.-Pooling oder dergleichen ausführt, um die Merkmalskarte downzusampeln. Die Ergebnisse aus dem optionalen Pooling können auch als Merkmalskarten charakterisiert werden. Wie hierin verwendet, zeigt der Begriff konvolutionale Schicht eine Schicht eines CNN an, die ein konvolutionales Filtern sowie andere verbundene Operationen bereitstellt, wie etwa gleichgerichtete lineare Einheitenoperationen (ReLU-Operationen), Poolingoperationen, und/oder örtliche Reaktionsnormalisierungsoperationen (LRN-Operationen). In einer Ausführungsform umfasst jede konvolutionale Schicht konvolutionales Filtern und Poolingoperationen. Die Ausgabe einer konvolutionalen Schicht wird als eine Merkmalskarte gekennzeichnet. Solche Merkmalskarten zeigen oder bewerten die Wahrscheinlichkeit, dass sich bestimmte Merkmale in dem gefilterten Volumen befinden (z. B. einem 3D-Eingabebild oder Bildsegment an der ersten konvolutionalen Schicht und eine Merkmalskarte an nachfolgenden konvolutionalen Schichten) und dienen dem Finden des Merkmals innerhalb des gefilterten Volumens.
  • Die Ergebnisse einiger der 3D-Filtergrößen (z. B. eine oder mehrere größere Filtergrößen) können auf eine zweite konvolutionale Schicht des CNN angewendet werden, die ebenfalls 3D-Filter und optionales Pooling oder andere Operationen anwendet, um Merkmalskarten zu generieren. Solche entstehenden Merkmalskarten können auf eine dritte konvolutionale Schicht des CNN (oder mehr) angewendet werden und schließlich werden endgültige Merkmalskarten in dem Verarbeitungsgrad als ein Merkmalsvektoren an eine erste vollständig verbundene Schicht des CNN bereitgestellt. Weiter umgehen Ergebnisse von anderen 3D-Filtergrößen der ersten konvolutionalen Schicht (z. B. eine oder mehrere kleinere Filtergrößen) des CNN in einigen Ausführungsformen die zweite konvolutionale Schicht des CNN und sind als Merkmalsvektoren an die erste vollständig verbundene Schicht bereitgestellt. Die erste vollständig verbundene Schicht empfängt alle solchen Merkmalsvektoren (z. B. von der ersten konvolutionalen Schicht, der zweiten konvolutionalen Schicht, der dritten konvolutionalen Schicht usw.) und verarbeitet sie in eine oder mehrere weitere vollständig verbundene Schichten, um Objekterkennungsdaten bereitzustellen, die den Eingabe-3D-Bilddaten entsprechen. Die Objekterkennungsdaten können in jedem geeigneten Format vorliegen und stellen Wahrscheinlichkeiten, mit denen die Eingabe-3D-Bilddaten einem bestimmten Objekt entsprechen (z. B. Auto, Fußgänger, Motorrad, Gebäude usw. in einem automatisierten Fahrkontext), ein wahrscheinlichsten Label oder ähnliche Daten dar, die das Objekt, sofern vorhanden, angeben, das in dem 3D Bild identifiziert wurde.
  • Beispielsweise stellen die hierin besprochenen Systeme und Techniken ein distanzbasiertes 3D CNN bereit, das einen Multiskalierungsfilter nutzt, um Multiskalierungsmerkmale von einem Eingabe-3D-Bildsegment (z. B. einem RGB-D-Bildsegment) zu extrahieren. In einer Ausführungsform weist in dem Multiskalierungsfilter der ersten konvolutionalen Schicht des CNN die Größe jeder Zelle jedes 3D-Filters eine feste räumliche Auflösung oder Größe auf, sodass die Pixelzahl beim Filtern in jeder Zelle sich unterscheidet, weil die Distanz oder Tiefe des Volumens von der Kamera gefiltert wird. Für jede Skalierung oder Größe des Filters der ersten konvolutionalen Schicht gibt es einen Pfad zur ersten vollständig verbundenen Schicht des CNN. Die Merkmalsvektoren, die der ersten vollständig verbundenen Schicht des CNN bereitgestellt werden, werden verarbeitet, um die Objekterkennungsdaten zu generieren, die dem Eingabe-3D-Bildsegment entsprechen. Unter Verwendung solcher Techniken können in der CNN-Schulung extrahierte Merkmale von Objekten bei größerer Tiefe/großer Entfernung verwendet werden, um Objekte in einer kleinen Tiefe/nahen Entfernung zur Kamera und umgekehrt zu erkennen. Weiter ist in Umsetzung jedes 3D-Eingabebildsegment (z. B. jedes RGB-D Bildsegment) in einer Kategorie als durch die Objekterkennungsdaten dargestellt klassifiziert.
  • 1 illustriert eine beispielhafte Vorrichtung 100 zum Ausführen von semantischer Objekterkennung unter Verwendung von 3D-Bilddaten, die wenigstens einigen Umsetzungen dieser Offenbarung entsprechend angeordnet ist. Wie in 1 gezeigt ist, umfasst die Vorrichtung 100 eine 3D-Bildgebungsvorrichtung 101, ein Segmentierungsmodul 102 und ein konvolutionales neuronales Netzmodul (CNN-Modul) 103. Die Vorrichtung 100 kann in jeder geeigneten Formfaktorvorrichtung umgesetzt sein, wie etwa einer Motorfahrzeugplattform, einer Robotikplattform, einem Personal Computer, einem Laptopcomputer, einem Tablet, einem Phablet, einem Smartphone, einer Digitalkamera, einer Gamingkonsole, einer tragbaren Vorrichtung, einer Anzeigevorrichtung, einer All-in-One-Vorrichtung, einer Zwei-in-Eins-Vorrichtung oder dergleichen. Beispielsweise kann die Vorrichtung 100 die Objekterkennung wie hierin besprochen ausführen.
  • Wie dargestellt, erhält die 3D-Bildgebungsvorrichtung 101 3D-Bilddaten 111. Die 3D-Bildgebungsvorrichtung 101 kann jede geeignete 3D-Bildgebungsvorrichtung sein. In einer Ausführungsform umfasst die 3D-Bildgebungsvorrichtung 101 eine linke Kamera, eine rechte Kamera und einen IR-Sender, sodass der IR-Sender 106 eine IR-Texturstruktur auf eine Szene projiziert. Ein IR-Texturstrukturrest wird erfasst, wenn ein Bild oder Bilddaten der projizierten Struktur entsprechend durch die linke und die rechte Kamera erfasst werden. Unter Verwendung der entstehenden erfassten IR-Texturstrukturen kann die 3D-Bildgebungsvorrichtung 101 eine Stereoskopie ausführen, um Tiefenwerte der 3D-Bilddaten 111 zu generieren. Weiter kann die linke und/oder die rechte Kamera Farbbilddaten für die Szene erhalten. Solche Bilddaten können als 3D-Bilddaten 111 kombiniert werden, die jedes geeignete Format aufweisen können, wie etwa ein RGB-D-Format. Beispielsweise können 3D-Bilddaten 111 Eingabepixelwerte für jeden Pixel eines Eingabebilds umfassen, und die Eingabepixelwerte können für jeden Kanal eines Farbraums wie etwa die Werte R (rot), G (grün), B (blau), und D (Tiefen) für Eingabebilddaten bereitgestellt sein. Auch, wenn dies bezüglich IR-Strukturierungsprojektion Farb- und IR Bilderfassung und Stereoskopie besprochen ist, können 3D-Bilddaten unter Verwendung aller geeigneten 3D-Bildgebungstechniken wie Stereoskopie unter Verwendung von nur Farbbilddaten, Laserscannen der Szene usw. generiert werden.
  • 3D-Bilddaten 111 werden durch das Segmentierungsmodul 102 erfasst und 3D-Bilddaten 111 werden in ein oder mehrere 3D-Bildsegmente 104 segmentiert, sodass jedes Segment der 3D-Bildsegmente 104 Bilddaten für ein potenzielles Objekt in der Szene umfasst. Eine solche Segmentierung kann unter Verwendung jeder geeigneten Technik oder aller geeigneten Techniken ausgeführt werden. In einer Ausführungsform wandelt das Segmentierungsmodul 102 3D-Bilddaten 111 in eine 3D-Punkt-Clouddarstellung der 3D-Bilddaten um und Segmentierungsmodul 102 führt die Segmentierung durch 3D-Raumclustering so durch, dass Punkte der Punktclouds, die zusammen geclustert sind, in ein bestimmtes 3D Bildsegment kombiniert sind. In anderen Ausführungsformen können andere Daten, die von der Szene erhalten werden (nicht dargestellt), wie etwa Laserscandaten oder dergleichen, verwendet werden, um eine Punktcloud zu generieren, die für die Segmentierung verwendet wird, die dann auf 3D-Bilddaten 111 angewendet wird, um 3D-Bildsegmente 104 zu generieren.
  • Jedes der 3D-Bildsegmente 104 wird separat an das CNN-Modul 103 bereitgestellt, das ein CNN umgesetzt, das wie weiter hierin besprochen vorgeschult wurde. Das CNN-Modul 103 setzt ein distanzbasiertes Multiskalierungs-3D CNN um, um Objekte innerhalb der 3D-Bildsegmente 104 zu klassifizieren. In der ersten konvolutionalen Schicht des CNN, die durch CNN-Modul 103 umgesetzt ist, extrahieren Multiskalierungsfilter Multiskalierungsmerkmale aus jedem der 3D-Bildsegmente 104. Beispielsweise umfasst die erste konvolutionale Schicht mehrere Filter mehrerer verschiedener Skalierungen oder Größen. Das heißt, die erste konvolutionale Schicht setzt n Filter einer ersten Skalierung oder Größe, m Filter einer zweiten Skalierung oder Größe, und so weiter für eine beliebige Anzahl verschiedener Skalierungen oder Größen um.
  • In einigen Ausführungsformen ist für jede Filtergröße jede Zelle davon eine feste räumliche Auflösung (z. B. (0,1 m)3) sodass während des Filters von 3D-Bildsegmenten, die Pixelzahl in jeder Zelle sich abhängig von der Distanz/Tiefe des bestimmten 3D-Bildsegments von der Kamera unterscheidet. In einer Ausführungsform wendet jede hierin besprochene Zelle eine Filtergewichtung an. Das heißt, die Gewichtung jeder Zelle kann mit einem Wert des gefilterten Volumens multipliziert werden (z. B. einem Pixelwert oder einem Merkmalskartenwert) und die Summe (oder eine normalisierte Summe) der Produkte der Gewichtungen und Werte kann die Ausgabe des 3D-Filters sein. Jeder Filter der ersten konvolutionalen Schicht (z. B. bei jeder Skalierung oder Größe) weist einen Pfad zu der vollständig verbundenen Schicht des CNN auf, das durch CNN-Modul 103 umgesetzt ist. Beispielsweise kann für größere 3D-Filter der Pfad zu der vollständig verbundenen Schicht durch eine oder mehrere weitere konvolutionale Schichten führen. Für kleiner 3D-Filter kann der Pfad zu der vollständig verbundenen Schicht direkt sein, und die eine oder die mehreren weiteren konvolutionalen Schichten können umgangen werden oder der Pfad kann eine oder mehrere weitere konvolutionale Schichten und eine oder mehrere umgangene konvolutionale Schichten umfassen.
  • Wie besprochen, wird das CNN, das durch das CNN-Modul 103 umgesetzt wird, vorgeschult, um die Parametergewichtungen des CNN zu bestimmen. Während der Umsetzung (oder Objektinferenz) Klassifiziert das CNN jedes der 3D-Bildsegmente 104 in eine Kategorie zum Bereitstellen von Objekterkennungsdaten 105. Objekterkennungsdaten 105 können alle geeigneten Daten umfassen, die Objekterkennung darstellen, wie etwa eine Wahrscheinlichkeit, die jedem verfügbaren Objektlabel entspricht (z. B. einem Array von Wahrscheinlichkeiten, die für die die verfügbaren Objektlabel jeweils zwischen 0 und 1 liegen), ein wahrscheinlichstes Objektlabel usw. Unter Verwendung solcher Techniken werden Merkmale verschiedener Skalierungen aus 3D-Bildsegmenten 104 extrahiert und solche Merkmale werden verwendet, um Objekte in 3D-Bildsegmenten 104 zu klassifizieren. Beispielsweise teilen sich dieselbe Art von Objekten in verschiedenen Distanzen oder Tiefen einige Merkmale. Während der Schulung und nachfolgenden Umsetzung können extrahierte Merkmale von Objekten bei größerer Tiefe/großer Entfernung verwendet werden, um Objekte in einer kleinen Tiefe/nahen Entfernung zur Kamera und umgekehrt zu erkennen. Solche Techniken stellen genauere Objekterkennung und Klassifizierung bereit, was die Vorrichtungsleistung verbessert. Solche Verbesserungen sind in einer großen Vielzahl von Zusammenhängen kritisch, einschließlich künstlichen Intelligenzanwendungen, autonomen Fahrtanwendungen, unbemannten Luftfahrzeuganwendungen, autonomen Roboteranwendungen usw.
  • 2A und 2B illustrieren beispielhafte Bilder, die Objekte aufweisen, die in verschiedenen Kameratiefen erkannt werden sollen, die nach mindestens einigen Umsetzungen dieser Offenbarung angeordnet sind. In 2A umfasst Bild 200 ein Objekt 201 (z. B. ein Motorfahrzeug) in einer ersten Tiefe von einem Bildsensor einer Kamera (nicht dargestellt). In 2B umfasst Bild 210 Objekt 201 bei einer zweiten Tiefe, die größer als die erste Tiefe ist, aus dem Bildsensor. Wie in 2A und 2B dargestellt, sind zwar die Merkmale (z. B. Merkmalspunkte, Merkmalslinien usw.) von Objekt 201 zwischen Bild 200 und Bild 210 nicht dieselben (z. B. weisen sie unterschiedliche Größen, Ausrichtungen und Ausrichtungen zueinander auf), teilen aber dieselben oder ähnliche Strukturen. Solche Ähnlichkeiten können unter Verwendung des hierin besprochenen Muiltiskalierungsfilters während der Schulung und der Umsetzung eines CNN eingesetzt werden, um Objekt 201 genau bei unterschiedlichen Tiefen innerhalb der 3D-Bilddaten 111 zu erkennen.
  • 3 illustriert ein beispielhaftes konvolutionales neuronales Netz 300, das vollständig wenigstens einigen Umsetzungen dieser Offenbarung entsprechend angeordnet ist. Beispielsweise kann das konvolutionale neuronale Netz (CNN) 300 durch CNN-Modul 103 umgesetzt sein. Wie dargestellt, umfasst CNN 300 eine konvolutionale Schicht 307, die 3D-Bildsegmente 104 empfängt (z. B. ist konvolutionale Schicht 307 eine erste konvolutionale Schicht), eine beliebige Anzahl weiterer konvolutionaler Schichten 315, wenn vorhanden, und eine konvolutionale Schicht 314, sodass die konvolutionale Schicht 314 direkt zu den vollständig verbundenen Schichten 321, 322 benachbart ist. (z. B. ist die konvolutionale Schicht 314 eine letzte konvolutionale Schicht).
  • CNN 300 empfängt 3D-Bildsegmente 104, die von 3D Eingabebilddaten segmentiert werden können, wie hierin besprochen. Jedes der 3D-Bildsegmente 104 kann beispielsweise ein RGB-D-Formatbildsegment sein, das wie illustriert ein 3D-Segment von 3D-Bilddaten darstellt. Beispielsweise können 3D-Filter 303, 305 verschiedener Skalierungen oder Größen wie nachfolgend besprochen auf 3D-Bildsegment 104 angewendet werden, und jeder Filter kann ein bestimmtes Merkmal (z. B. eine vertikale Linie, eine horizontale Linie, eine Grenze, eine Form usw.) und seinen Ort, wenn vorhanden, im 3D-Bildsegment 104 extrahieren, um eine Mehrfachskalierungs-Merkmalserkennung bereitzustellen. Es ist anzumerken, dass erwartet werden kann, dass 3D-Bildsegmente 104 ein Objekt umfassen, das klassifiziert werden soll.
  • CNN 300 kann eine beliebige Anzahl konvolutionaler Schichten 307, 314, 315 umfassen. In der illustrierten Ausführungsform umfasst CNN 300 eine erste konvolutionale Schicht 307 und eine letzte konvolutionale Schicht 314 und eine beliebige Anzahl von dazwischenliegenden konvolutionalen Schichten 315. Es ist anzumerken, dass konvolutionale Schichten 315 3D-Filter und Poolingmodule (nicht dargestellt) umfassen können, wie bezüglich der konvolutionalen Schichten 307, 314 besprochen. Weiter sind in der illustrierten Ausführungsform Merkmalskarten 308 (wie durch den größeren 3D-Filter 303 generiert) an konvolutionalen Schichten 315 bereitgestellt, während Merkmalskarten 309 (wie durch den kleineren 3D-Filter 305 generiert) die konvolutionalen Schichten 315 und die konvolutionale Schicht 314 umgehen. Wie hierin verwendet zeigt der Begriff Merkmalskarte jede geeignete Datenstruktur an, die Merkmale innerhalb der vorherigen Merkmalskarte oder Eingabedaten anzeigt. Beispielsweise kann eine Merkmalskarte ein 3D-Array von Werten umfassen, die solche Merkmale anzeigen. Solche Merkmalskarten können als Reaktionskarten oder dergleichen charakterisiert werden. In Ausführungsformen, in denen die konvolutionale Schicht 307 3D-Filter von Größen umfasst, die kleiner sind als 3D-Filter 305, umgehen auch die entstehenden Merkmalskarten die konvolutionalen Schichten 315 und die konvolutionale Schicht 314. In Ausführungsformen, in denen die konvolutionale Schicht 307 3D-Filter umfassen, die größer sind als 3D-Filter 305 und kleiner als 3D-Filter 303, können die entstehenden Merkmalskarten die konvolutionalen Schichten 315 und die konvolutionale Schicht 314 umgehen oder können durch eine oder mehrere der weiteren konvolutionalen Schichten 315 verarbeitet werden und die konvolutionale Schicht 314 und optional eine oder mehrere der weiteren konvolutionalen Schichten 315 umgehen.
  • In jedem Fall weist jede der 3D Merkmalskarten 308, der Merkmalskarten 309 und aller anderen Merkmalskarten, die durch die konvolutionale Schicht 307 generiert wird, einen Pfad zu der vollständig verbundenen Schicht 321, der vollständig verbundenen Schicht 322 und der Ausgabeschicht 323 auf. Weiter können, weil 3D-Bildsegmente 104 vier Kanäle (z. B. R, G, B, D) aufweisen können, für jeden 3D-Filter 303, 305 in der konvolutionalen Schicht 307 vier entsprechende Fasern vorliegen. Wie dargestellt werden in einer Ausführungsform Merkmalskarten 308, die jeweils einem der Filter 303 entsprechen, durch weitere konvolutionale Schichten 315 verarbeitet. Im Betrieb wird jeder 3D-Filter 331 von 3D-Filter 303 auf ein Empfangsfeld des 3D-Bildsegments 104 angewendet, und generiert ein gefiltertes Ergebnis. Jeder 3D-Filter 331 wird dann innerhalb des 3D-Bildsegments 104 auf ein anderes jeweiliges Feld bewegt, um ein zweites gefiltertes Ergebnis zu generieren und so weiter, um 3D Merkmalskarten zu generieren, was optional gepoolt sein kann (z. B. max. gepoolt), um Merkmalskarten 308 zu bilden. Wie hierin besprochen werden Filtergewichtungen von jedem 3D-Filter 331 in einer Schulungsphase für die Umsetzung in einer Umsetzungsphase vorgeschult. Jeder 3D-Filter 331 ist eingestellt, ein bestimmtes Merkmal zu erkennen, das für die Objekterkennung innerhalb des 3D-Bildsegments 104 relevant ist. Jeder 3D-Filter 331 kann als ein Filter, Kernel, Neuron usw. charakterisiert sein. Beispielsweise ist jeder 3D-Filter 331 mit 3D-Bildsegment 104 konvolviert. Die Ergebnisse von der Anwendung jedes 3D-Filters 331 werden optional durch ein Poolingmodul oder -module 304 downgesampelt, um 3D Merkmalskarten 308 zu generieren. Das Pooling und alle hierin besprochenen Poolingoperationen können mit jeder geeigneten Größe und Schrittweite ausgeführt werden.
  • Ähnlich ist jede der 3D Merkmalskarten 308 an eine konvolutionale Schicht bereitgestellt, die mehrere 3D-Filter und entsprechende Poolingmodule konvolutionaler Schichten 315 (wenn vorhanden) zur Verarbeitung wie oben besprochen umfasst. Die entstehenden 3D Merkmalskarten (oder Merkmalskarten 308, wenn keine weiteren konvolutionalen Schichten 315 umgesetzt sind), werden für die konvolutionale Schicht 314 angewendet, die wie besprochen bezüglich der konvolutionalen Schicht 307 funktioniert, sodass jeder 3D-Filter 333 der 3D-Filter 311 auf ein jeweiliges Feld von 3D Merkmalskarten 308 angewendet wird, um ein gefiltertes Ergebnis zu generieren, und jeder 3D-Filter 333 wird innerhalb der 3D-Merkmalskarten 308 auf ein anderes Empfangsfeld bewegt, um ein zweites gefiltertes Ergebnis zu generieren und so weiter. Jeder 3D-Filter 333 ist eingestellt, ein bestimmtes Merkmal zu erkennen, das für die Objekterkennung innerhalb des 3D-Bildsegments 104 relevant ist. Es ist anzumerken, dass jeder 3D-Filter 333 abstraktere Merkmale erkennen kann als jeder 3D-Filter 331, wenn die Verarbeitung durch das CNN 300 fortschreitet. Die Ergebnisse von der Anwendung jedes-Filters 331 werden optional durch ein Poolingmodul oder -module 312 downgesampelt, um Merkmalskarten 334 zu generieren. Merkmalskarten 334 sind auf Merkmalsvektoren 345, 346 vektorisiert (von denen um der Klarheit Willen nur zwei dargestellt sind) die (zusammen mit anderen Merkmalsvektoren wie unten besprochen) auf die der ersten vollständig verbundenen Schicht 321 bereitgestellt werden. Merkmalsvektoren 345, 346 können aus Merkmalskarten 334 unter Verwendung jeder geeigneten Technik oder aller geeigneten Techniken generiert werden, wie etwa dem Übersetzen von 3D-Ergebnisse in eine lineare Reihenfolge unter Verwendung einer Scanreihenfolge wie etwa einer Rasterscanreihenfolge oder dergleichen. In einer Ausführungsform ist jeder Merkmalsvektor ein 8-Elementvektor (der 2×2×2 3D-Merkmalskarten entspricht), wobei jedoch jede Größe verwendet werden kann. Solche Merkmalsvektoren können als Merkmalskarten, neuronale Merkmale, neuronale Merkmalsvektoren oder dergleichen charakterisiert werden.
  • Ähnlich wird jeder 3D-Filter 332 von 3D-Filter 305 auf ein Empfangsfeld des 3D-Bildsegments 104 angewendet, um ein gefiltertes Ergebnis zu generieren. Jeder 3D-Filter 332 wird dann innerhalb von 3D-Bildsegment 104 auf ein anderes jeweiliges Feld bewegt, um ein zweites gefiltertes Ergebnis zu generieren und so weiter. Es ist zu beachten, dass die 3D-Raumgröße jedes der 3D-Filter 305 kleiner ist als die 3D-Raumgröße jedes der 3D-Filter 303. In der illustrierten Ausführungsform umfasst jeder der 3D-Filter 305 k12×k12×k12 Zellen, sodass jede Zelle eine bestimmte Raumgröße darstellt und jeder der 3D-Filter 303 k11×k11×k11 Zellen umfasst, sodass jede Zelle dieselbe Raumgröße aufweist. Wie illustriert ist k11 größer als k12, sodass die 3D-Raumgröße jedes der 3D-Filter 305 kleiner ist als die 3D-Raumgröße jedes der 3D-Filter 303. Jede Zelle kann jede geeignete Größe aufweisen. In einer Ausführungsform weist jede Zelle eine Raumgröße im Bereich von (0,05 m)3 bis (0,15 m)3 auf. In einer Ausführungsform weist jede Zelle eine Raumgröße von ca. (0,05 m)3 auf. In einer Ausführungsform weist jede Zelle eine Raumgröße von ca. (0,1 m)3 auf. In einer Ausführungsform weist jede Zelle eine Raumgröße von ca. (0,15 m)3 auf. Solche Zellengrößen können durch jeden 3D-Filter verwendet werden, der hierin besprochen wird. Die Anzahl der Zellen in jedem der 3D-Filter 305 und jedem der 3D-Filter 303 kann jede geeignete Anzahl sein. In einer Ausführungsform liegt die Anzahl der Zellen in jedem der 3D-Filter 303 in dem Bereich von 8 bis 15 Zellen in jeder Abmessung (z. B. liegt k11 in dem Bereich von 8 bis 15). In einer Ausführungsform liegt die Anzahl der Zellen in jedem der 3D-Filter 305 in dem Bereich von 4 bis 8 Zellen in jeder Abmessung (z. B. liegt k12 in dem Bereich von 4 bis 8).
  • Wie bei jedem 3D-Filter 331 ist jeder 3D-Filter 332 eingestellt, ein bestimmtes Merkmal zu erkennen, das für die Objekterkennung innerhalb des 3D-Bildsegments 104 relevant ist, und jeder 3D-Filter ist mit 3D-Bildsegment 104 konvolviert, um solche Merkmale zu erkennen und zu lokalisieren. Die Ergebnisse von der Anwendung jedes 3D-Filters 332 werden optional durch ein Poolingmodul oder -module 306 downgesampelt, um Merkmalskarten 309 zu generieren. Merkmalskarten 309 sind auf Merkmalsvektoren 347, 348 vektorisiert (von denen um der Klarheit Willen nur zwei dargestellt sind) die (zusammen mit anderen Merkmalsvektoren) auf die der ersten vollständig verbundenen Schicht 321 bereitgestellt werden. Merkmalsvektoren 347, 348 können aus Merkmalskarten 309 unter Verwendung jeder geeigneten Technik oder aller geeigneten Techniken generiert werden, wie etwa dem Übersetzen von 3D-Ergebnisse in eine lineare Reihenfolge unter Verwendung einer Scanreihenfolge. In einer Ausführungsform ist der Merkmalsvektor ein 8-Elementvektor (der 2×2×2 3D-Merkmalskarten entspricht), wobei jedoch jede Größe verwendet werden kann.
  • Wie besprochen, sind die Merkmalsvektoren 345, 346, 347, 348 (und andere) an vollständig verbundenen Schichten 321, 322 bereitgestellt, um Objekterkennungsdaten 105 an der Ausgabeschicht 323 zu generieren. Beispielsweise kann die vollständig verbundene Schicht 321 eine beliebige Anzahl von Merkmalsvektoren empfangen, die in einem eindimensionalen Array verkettet sind. Beispielsweise kann jeder Merkmalsvektor ein 8-Elementvektor sein und für N Merkmalsvektoren weist die vollständig verbundene Schicht 321 8×N Knoten oder Elemente auf, um die Merkmalsvektoren aufzunehmen. Auch wenn es mit zwei vollständig verbundenen Schichten 321, 322 illustriert ist, kann CNN 300 eine beliebige Anzahl von vollständig verbundenen Schichten umfassen, wie etwa drei, vier oder mehr. Jede der vollständig verbundenen Schichten 321, 322 kann eine beliebige Anzahl von Ein- und Ausgaben aufweisen. Die Ausgabeschicht 323 umfasst eine beliebige Anzahl von Ausgaben für eine beliebige Anzahl von Objektlabels (z. B. Fahrrad, Auto, LKW, Fußgänger usw. in Zusammenhang mit einem Motorfahrzeug) and Ausgabeschicht 323 kann jeweilige Wahrscheinlichkeitswerte für die Objektlabels bereitstellen. In einer Ausführungsform addieren sich die jeweiligen Wahrscheinlichkeitswerte für die Objektlabels zu eins. Beispielsweise können die vollständig verbundenen Schichten 321, 322 vollständig verbundene und gewichtete Netzwerkknoten bereitstellen und die vollständig verbundene Ausgabeschicht 323 kann eine vollständig verbundene Softmaxfunktionen oder dergleichen aufweisen. In einigen Ausführungsformen umfassen Objekterkennungsdaten 105 ein Objektlabel, das den höchsten Wahrscheinlichkeitswert der verfügbaren Objektlabelausgaben der vollständig verbundenen Schicht 323 aufweist.
  • Wie besprochen. umfasst die konvolutionale Schicht 307 3D-Filter 303 einer ersten Größe, 3D-Filter 305 einer zweiten Größe und eine beliebige Anzahl von 3D-Filtern anderer unterschiedlicher Größen. Dadurch umfasst CNN 300 tiefenbasierte Multiskalierungsfilter. 3D-Bildsegment 104 wird in CNN 300 eingegeben und verschiedene Größen von Filtern werden in jeder konvolutionalen Schicht verwendet, um Merkmale verschiedener Größen zu extrahieren. Es ist anzumerken, dass im Gegensatz zu CNNs, die Filter derselben Größe in dem ersten konvolutionalen anwenden und dadurch nur Merkmale einer Größe extrahieren, solche Merkmale durch das CNN weiterleiten und darauf beschränkt sind, Objekte eingeschränkter Größenbereiche zu erkennen, CNN 300 während der Schulung und Umsetzung Multiskalierungsmerkmale extrahiert und einen Pfad für solche Multiskalierungsmerkmale an vollständig verbundene Schichten 321, 322 bereitstellt. Solche Multiskalierungsmerkmalextrahierung und Weiterleitung durch CNN 300 stellt eine genauere Objekterkennung bereit. Das heißt, die konvolutionale Schicht 307 umfasst 3D-Filter 303 einer ersten Skalierung oder Größe und 3D-Filter 305 einer zweiten Skalierung oder Größe. Auch wenn sie so illustriert ist, dass eine erste konvolutionale Schicht 307 des CNN 300 zwei verschiedene Skalierungen oder Größen von 3D-Filtern aufweist, kann die erste konvolutionale Schicht 307 mehrere 3D-Filter umfassen, die jeweils eine beliebige Anzahl von verschiedenen Skalierungen oder Größen aufweisen, wie etwa drei verschiedene Skalierungen oder Größen, vier verschiedene Skalierungen oder Größen, oder mehr. Weiterhin kann, wie besprochen, der Pfad für Merkmalskarten von solchen 3D-Filtern verschiedener Skalierungen oder Größen die konvolutionalen Schichten 315 und die konvolutionale Schicht 314 vollständig umgehen, oder sie können durch eine oder mehrere konvolutionale Schichten 315 verarbeitet werden und nur die konvolutionale Schicht 314 umgehen, oder sie können eine oder mehrere der konvolutionalen Schichten 315 und die konvolutionale Schicht 314 umgehen.
  • In der Illustration zeigen die Parameter der 3D-Filter 303 (d. h. f11, k11, c11, s11, d11), 3D-Filter 305 (d. h. f11, k11, c11, s11, d11) und 3D-Filter 311 (d. h. fn1, kn1, cn1, sn1, dn1) eine Anzahl f Filter der bestimmten Größe, k Zellen in jeder der 3 Dimensionen, sodass jeder Filter k×k×k Zellen mit einer Summe von k3 Zellen aufweist, wobei jede Zelle dieselbe Raumgröße aufweist (z. B. (0,1 m)3), der Filter wird auf einer Schrittgröße s für c Fasern oder Kanäle der vorherigen Schicht angewendet, wobei die Mitte eines Eingabesegments sich in der Tiefe d befindet. Es ist anzumerken, dass die Tiefe der Eingabesegment verwendet wird, um Filter während der Schulung zu identifizieren und zu wählen, die Tiefe jedoch während der Umsetzungsphase nicht verwendet wird. Wie besprochen, ist k11 größer als k12. Andere solche Parameter des CNN 300 können vor der Schulung gewählt worden sein, um die Objekterkennung zu verbessern. In einer Ausführungsform ist f11 kleiner als f12, sodass die Anzahl der Filter einer größeren Größe kleiner als eine Anzahl von Filtern einer kleineren Größe ist. In einer Ausführungsform werden Filter von drei Größen eingesetzt, und die Anzahl der Filter der großen Größe ist geringer als eine Anzahl von Filtern der mittleren Größe, die wiederum geringer ist als eine Anzahl von Filtern der kleinen Größe. In einer Ausführungsform steigt die Anzahl der Filter für jeden Schritt in der Filtergröße nach unten an.
  • 4 illustriert beispielhafte 3D-Eingabebildsegmente, die nach mindestens einigen Umsetzungen dieser Offenbarung entsprechend angeordnet sind. Wie in 4 dargestellt ist, kann eine Tiefenkamera (DC) 402 angeordnet sein, um eine Szene 401 zu betrachten, einschließlich potenziell einer Vielzahl von Objekten in verschiedenen Tiefen. In dem illustrierten Beispiel befindet sich ein erstes 3D-Bildsegment 403 in einer ersten Tiefe d1 von der Tiefenkamera 402 (z. B. einem Bildsensor der Tiefenkamera 402) und ein zweites 3D-Bildsegment 404 befindet sich in einer zweiten Tiefe d2 von der Tiefenkamera 402 (z. B. einem Bildsensor der Tiefenkamera 402). In dem illustrierten Beispiel weisen beide 3D-Bildsegmente 403, 404 dieselbe Raumgröße auf (d. h. sie weisen dieselbe Größe im realen Raum auf). Wie jedoch zu erkennen sein wird, kann das 3D-Bildsegment 403 durch mehr Pixel in einem 3D-Bild dargestellt sein, das durch die Tiefenkamera 402 erfasst wird, als 3D-Bildsegment 404 dargestellt wird (siehe 2A und 2B, wo Objekt 201 in Bild 200 durch mehr Pixel dargestellt ist als in Bild 210).
  • 5A und 5B illustrieren beispielhafte 3D-Filter verschiedener Raumgrößen, die nach mindestens einigen Umsetzungen dieser Offenbarung angeordnet sind. Wie in 5A dargestellt ist, kann ein erster Filter 501 Zellen wie Zelle 510 umfassen, sodass jede Zelle 510 dieselbe Raumgröße aufweist. Beispielsweise kann jede Zelle 510 eine Höhe von 0,1 m, eine Breite von 0,1 m und eine Tiefe von 0,1 m aufweisen, sodass jede Zelle ein Volumen von (0,1 m)3 aufweist. Jede Zelle 510 kann jedoch jede hierin besprochene Abmessung aufweisen. Weiter kann jede Zelle 510 kubisch sein (wie illustriert) oder jede andere Form aufweisen, wie etwa ein rechteckiges Kuboid. In dem illustrierten Beispiel ist jede Zelle generalisiert als eine Höhe, Breite, und Tiefe a aufweisend. In 5A ist der erste Filter 501 räumlich 5×5×5 Zellen, sodass der erste Filter 501 räumliche Abmessungen 511 von 5a×5a×5a und ein Volumen von (5a)3 aufweist. Ähnlich kann, wie in 5B gezeigt, ein zweiter Filter 502 eine Anzahl von Zellen umfassen, sodass jede Zelle 510 sich in derselben Raumgröße befindet, wie bezüglich des ersten Filters 501 besprochen. In 5B stellt der zweite Filter 502 räumlich 3×3×3 Zellen dar, sodass der zweite Filter 502 räumliche Abmessungen 512 von 3a×3a×3a und ein Volumen (3a)3 aufweist.
  • Auch wenn die Illustration einen ersten Filter 501 nutzt, der 5×5×5 Zellen aufweist, und eine zweiten Filter 502, der 3×3×3 Zellen aufweist, kann der erste und der zweite Filter eine beliebige Anzahl von Zellen umfassen, sodass der erste Filter 501 mehr Zellen aufweist als der zweite Filter 502. Es ist anzumerken, dass eine beliebige Anzahl von Filtern 501, 502 (d. h. bei gleichen Größen aber zum Erkennen verschiedener Merkmale) über die erste konvolutionale Schicht 307 oder jede andere hierin besprochene konvolutionale Schichten umgesetzt sein kann. Weiter weist, wie besprochen, der erste Filter 501 eine größere Größe oder ein größeres Raumvolumen im Vergleich zu dem zweiten Filter 502 auf. Bei Anwendung auf verschiedene 3D-Bildsegmente derselben Größe aber in verschiedenen Tiefen, wie etwa 3D-Bildsegmente 403, 404, unterscheidet sich die Anzahl der Segmentpixel in jeder Zelle des Filters 501 (z. B. zwischen der Anwendung auf 3D-Bildsegment 403 und 3D-Bildsegment 404) basierend auf der Tiefendifferenz zwischen Tiefen d1 und d2 und der entsprechenden Anzahl Pixel, die jedes der 3D-Bildsegmente 403, 404 darstellen. Beispielsweise ist, je weiter oder größer die Tiefe ist, die Raumgröße jedes Pixels des 3D-Bildsegments umso größer (d. h. jeder Pixel stellt einen größeren 3D-Raum dar) und die Anzahl der Pixel in einer 3D-Zelle für eine feste räumliche Auflösung umso geringer. Umgekehrt ist, je kleiner oder geringer die Tiefe ist, die Raumgröße jedes Pixels des 3D-Bildsegments umso kleiner (d. h. jeder Pixel stellt einen kleiner 3D-Raum dar) und die Anzahl der Pixel in einer 3D-Zelle für eine feste räumliche Auflösung umso größer.
  • Wie besprochen, wendet jede besprochene Zelle eines Filters eine Filtergewichtung an, sodass die Gewichtung jeder Zelle durch einen Wert des gefilterten Volumens multipliziert werden kann (z. B. einem Pixel wert oder einem Merkmalskartenwert) und die Summe (oder eine normalisierte Summe) der Produkte der Gewichtungen und Werte kann die Ausgabe des 3D-Filters sein. Wenn eine Zelle während des Filterns mehr als einen Pixelwert umfasst oder auf mehr als einen Pixelwert angewendet wird (z. B. bei kleinen Tiefen), kann die Filtergewichtung auf jedes geeigneten Wert angewendet werden, der die mehreren Pixelwerte darstellt, wie etwa eine Durchschnitt der Pixelwerte oder einen mittleren Filterwert der Pixelwerte. Wenn mehrere Zellen während des Filterns denselben Pixelwert umfassen oder auf denselben Pixelwert angewendet werden sollen (z. B. bei großen Tiefen), kann die Filtergewichtung für die benachbarten Zellen auf dieselben Pixelwerte für benachbarte Zellen angewendet werden.
  • Wie bezüglich 3 besprochen, gibt es für jede der Merkmalskarten von den Filtern derselben Größe eines 3D-Segments einen Pfad zu den vollständig verbundenen Schichten, sodass unterschiedliche Größenfilter einen unterschiedlichen Pfad zu den vollständig verbundenen Schichten aufweisen. Weiter werden während der Schulung und Umsetzung Filter verschiedener Größen auf 3D-Bildsegmente bei unterschiedlichen Tiefen angewendet, sodass Multiskalierungsmerkmale extrahiert und analysiert werden. Solche Multiskalierungsmerkmale sind in der Schulungsphase geschult, um Gewichtungen für Filter verschiedener Größen bereitzustellen. Die Filtergrößen werden gewählt, erwartete Objekttiefen während der Umsetzung darzustellen. Beispielsweise werden größere Filtergrößen umgesetzt, um vorteilhaft Objekte zu erkennen, die in Tiefe d11 erwartet werden, und kleinere Filtergrößen werden umgesetzt, um vorteilhafte Objekte zu erkennen, die in Tiefe d12 erwartet werden, wie mit Verweis auf 3 besprochen, sodass Tiefe d11 geringer als Tiefe d12 ist. Während der Schulung und Umsetzung unterstützt die Verwendung mehrerer Filtergrößen Objekterkennung in allen Tiefen, um ein genaueres CNN bereitzustellen.
  • Wieder mit Verweis auf 3 werden, wie besprochen, Multiskalierungsmerkmale extrahiert und durch CNN 300 propagiert, sodass die konvolutionale Schicht 307 3D-Filter 303 einer ersten Skalierung oder Größe und 3D-Filter 305 einer zweiten Skalierung oder Größe umfasst. CNN 300 kann unter Verwendung jeder geeigneten Technik oder aller geeigneten Techniken geschult werden.
  • 6 ist ein Ablaufdiagramm, das einen beispielhaften Prozess 600 für die Schulung eines konvolutionalen neuronalen 3D-Netzes illustriert, das Multiskalierungsfilter aufweist, die nach mindestens einigen Umsetzungen dieser Offenbarung angeordnet sind. Prozess 600 kann eine oder mehrere Operationen 601 bis 604 umfassen, wie in 6 illustriert. Prozess 600 kann durch jede Vorrichtung oder jedes System ausgeführt werden, die hierin besprochen ist, um ein 3D-CNN zu schulen, das Multiskalierungsfilter wie hierin besprochen aufweist. Prozess 600 oder Abschnitte davon können für jede 3D-CNN-Schulung, Schulungssätze usw. umgesetzt sein. Prozess 600 kann verwendet werden, CNN 300, CNN 800 oder ein hierin besprochenes CNN zu schulen. Die Parametergewichtungen, die durch Prozess 600 generiert sind, können beispielsweise auf einen Speicher gespeichert und über einen Prozessor umgesetzt sein.
  • Prozess 600 beginnt in Operation 601, wobei ein Schulungskorpus von RGB-D Bilddaten oder ein geeignetes Format von 3D-Bilddaten erreicht werden kann. Der Schulungskorpus oder die Schulungsdaten können jedes geeigneten Korpus von 3D-Bildern umfassen, wie etwa 3D-Bilder, die Objekte aufweisen, die durch das 3D-CNN erkannt werden sollen, das mit korrekten Labels sowie falschen Objekten beschriftet ist. Die Verarbeitung fährt in Operation 602 fort, wobei ein oder mehrere 3D-Segmente von jedem der 3D-Schulungsbilder extrahiert wird. Eine solche 3D-Segmentextrahierung kann unter Verwendung jeder geeigneten Technik oder aller geeigneten Techniken erfolgen, wie etwa denen, die bezüglich Segmentierungsmodul 102 besprochen sind. In einer Ausführungsform umfassen 3D-Bilddaten, die einem Eingabe-3D-Eingabebild entsprechen, in einer 3D-Punkt-Clouddarstellungsegmentierung 3D-Raumclustering, sodass Punkte der Punktclouds, die zusammengeclustert sind, in ein bestimmtes 3D-Bildsegment kombiniert werden.
  • Die Verarbeitung fährt in Operation 603 fort, wo jedes 3D-Bildsegment, das in Operation 602 erhalten wird, verwendet wird, um das CNN zu schulen. In einer Ausführungsform werden die CNN-Parametergewichtungen für die Umsetzung des CNN, einschließlich Filtergewichtungen und vollständig verbundener Schichtgewichtungen, unter Verwendung jedes 3D-Bildsegments basierend auf Rückpropagierungsschulungstechniken generiert. Beispielsweise können CNN-Filtergrößen, Nummern, Schrittweiten und Kanäle für ein Multiskalierungs-CNN vorformatiert der gewählt werden. Beispielsweise kann eine erste konvolutionale Schicht des CNN eine Anzahl von filtern einer ersten Größe, eine Anzahl von filtern einer zweiten Größe, eine Anzahl von Filtern einer dritten Größe usw. umfassen. Bestimmte Filtergrößen können basierend auf der erwarteten Raumgröße von zu erkennenden Objekten gewählt werden. In einer Ausführungsform ist jede Filtergröße aus einer entsprechenden Anzahl von Zellen derselben Größe zusammengesetzt. Beispielsweise können große Filter 10×10×10 Zellen 10×10×10 Zellen einer festen Größe aufweisen, mittlere Filter können 6×6×6 Zellen derselben Größe aufweisen und kleine Filter können 4×4×4 Zellen derselben Größe aufweisen. Beispielsweise kann für Motorfahrzeugvisionsanwendungen jede Zelle (0,1 m)3 betragen. Es kann jedoch jede Anzahl von Zellen jeder geeigneten Größe verwendet werden. Ähnliche Eigenschaften können zum Poolen vorbestimmt sein, um Merkmalskarten, Filtern und Poolen für andere konvolutionale Schichten usw. zu generieren. Beispielsweise können alle Eigenschaften, die hierin bezüglich CNN 300, CNN 800 oder einem anderen CNN bezüglich der Filteranzahl, Größen, Poolingeigenschaften, Schrittweiten und Kanäle besprochen sind, gewählt werden.
  • Während der Schulung können solche CNN-Eigenschaften verwendet werden und CNN-Parametergewichtungen geschult werden. Beispielsweise können die CNN-Eigenschaften feststehen und die CNN-Parametergewichtungen können anfänglich randomisiert sein, um zufällige CNN-Parametergewichtungen zu bestimmen. Dann wird in jeder Schulungsphase das CNN in einem Vorwärtspass auf ein 3D-Bildsegment angewendet, das durch das gesamte CNN durchlaufen wird. Die entstehenden Objekterkennungsdaten (z. B. Wahrscheinlichkeiten jedes Labels) sind dann an eine Verlustfunktion unter Verwendung des bekannten Objektlabels bereitgestellt, um einen Verlust oder Fehler unter Verwendung jeder geeigneten Technik oder aller geeigneter Techniken wie etwa dem mittleren quadrierten Fehler zwischen den entstehenden Objekterkennungsdaten und den Zielobjekterkennungsdaten (d. h. dem bekannten Labelziel). zu definieren. Ein Rückwärtspass durch das CNN kann dann erfolgen, um Gewichtungen zu bestimmen, die zu dem größten Teil des Verlusts oder Fehlers beigetragen haben und diese zu modifizieren, um den Verlust oder Fehler zu verringern oder zu minimieren. Die CNN-Parametergewichtungen werden dadurch angepasst und die Verarbeitung fährt mit der >Addition von Schulungs-3D-Bildsegmenten fort. Weiterhin können einige oder alle Schulungs-3D-Bildsegmente erneut in einer iterativen Weise verwendet werden. Eine solche Verarbeitung kann andauern, bis das Verlustziel für einen bestimmten Untersatz von Bildern erreicht ist, nach einer festen Anzahl von Iterationen oder dergleichen.
  • Die Verarbeitung fährt mit Operation 604 fort, wo die entstehenden CNN-Parametergewichtungen ausgegeben werden. Beispielsweise können die gewählten CNN-Eigenschaften und die entstehenden CNN-Parametergewichtungen nach der Schulung in den Speicher gespeichert und/oder an eine andere Vorrichtung zur Umsetzung übertragen werden.
  • 7 ist ein Ablaufdiagramm, das einen beispielhaften Prozess 700 für die Umsetzung eines konvolutionalen neuronalen 3D-Netzes illustriert, das Multiskalierungsfilter aufweist, die nach mindestens einigen Umsetzungen dieser Offenbarung angeordnet sind. Prozess 700 kann eine oder mehrere Operationen 701 bis 704 umfassen, wie in 7 illustriert. Prozess 700 kann durch jede Vorrichtung oder jedes System ausgeführt werden, die hierin besprochen ist, wie etwa Vorrichtung 100, um ein 3D-CNN umzusetzen, das Multiskalierungsfilter wie hierin besprochen aufweist. Prozess 600 oder Abschnitte davon können für eine beliebige Anzahl von 3D-Eingabebildern wiederholt werden. Prozess 700 kann verwendet werden, um CNN 300, CNN 800 oder jedes hierin besprochene CNN umzusetzen.
  • Prozess 700 beginnt in Operation 701, wo ein Eingabe-RGB-D Bild, Eingabe-RGB-D Bilddaten oder jedes geeignete Format von 3D-Bilddaten zur Verarbeitung geladen wird. Beispielsweise kann ein Eingabe-RGB-D-Bild aus dem Speicher geladen werden. Es ist anzumerken, dass das 3D-Eingabebild repräsentativ für eine Szene sein kann, von der erwartet wird, dass sie ein Objekt umfasst, das über ein CNN umgesetzt wird, das in Operation 703 umgesetzt wird. Die Verarbeitung fährt in Operation 702 fort, wobei ein oder mehrere 3D-Segmente von dem 3D-Bild extrahiert wird, das in Operation 701 geladen wurde. Eine solche 3D-Segmentextrahierung kann unter Verwendung jeder geeigneten Technik oder aller geeigneten Techniken erfolgen, wie etwa denen, die bezüglich Segmentierungsmodul 102 und/oder Operation 602 besprochen sind.
  • Die Verarbeitung fährt in Operation 703 fort, wo jedes 3D-Bildsegment, das in Operation 703 erhalten wird, nacheinander auf ein vorgeschultes CNN zur Klassifizierung angewendet wird. Das vorgeschulte CNN kann jedes hierin besprochene CNN sein, wie etwa ein CNN, das mit Prozess 600 vorgeschult wurde. In einer Ausführungsform werden CNN-Parametergewichtungen, die unter Verwendung von Prozess 600 erhalten wurden, über ein CNN in Prozess 700 umgesetzt. In einer Ausführungsform umfasst das CNN eine erste konvolutionale Schicht, die mehrere 3D-Filter einer ersten Größe und mehrere 3D-Filter einer zweiten Größe aufweist, wie hierin besprochen. Jeder der 3D-Filter und optionalen Poolingoperationen wird auf das Eingabe-3D-Bildsegment angewendet, um entsprechende Merkmalskarten verschiedener Größen zu generieren. Jede Größe der Filterkarten weist einen Pfad zu einer vollständig verbundenen Schicht des CNN auf. Beispielsweise können Merkmalskarten von Filtern der ersten Größe (z. B. einer größeren Größe) und entsprechende Poolingoperationen an eine zweite konvolutionale Schicht des CNN bereitgestellt werden, wobei die zweite konvolutionale Schicht Filter umfasst, die auf die Größe der Merkmalskarten anwendbar sind, die unter Verwendung von Filtern der ersten Größe und Poolingoperationen erhalten wurden. Die zweite konvolutionale Schicht kann auch mehrere 3D-Filter und optionale Poolingoperationen umfassen, um weitere Merkmalskarten zu generieren, die an die vollständig verbundene Schicht als Merkmalsvektoren bereitgestellt werden können. Alternativ dazu können andere konvolutionale Schichten angewendet werden, um Merkmalskarten zu generieren, die an die vollständig verbundene Schicht als Merkmalsvektoren bereitgestellt werden können. Weiter können Merkmalskarten von Filtern einer zweiten Größe (z. B. einer kleineren Größe) und entsprechende Poolingoperationen mindestens eine letzte konvolutionale Schicht umgehen und direkt an die vollständig verbundene Schicht als Merkmalsvektoren bereitgestellt werden. Die vollständig verbundenen Schichten verarbeiten solche Merkmalsvektoren (z. B. die, die direkt von der ersten konvolutionalen Schicht empfangen werden, und die, die von dazwischenliegenden konvolutionalen Schichten empfangen werden) gleichzeitig zum Generieren einer Ausgabeschicht von Objekterkennungsdaten.
  • Die Verarbeitung fährt in Operation 704 fort, wobei die Objekterkennungsdaten oder Objektklassifizierungsdaten ausgegeben werden. Solche Objektklassifizierungsdaten können alle geeigneten Daten umfassen, wie etwa Wahrscheinlichkeiten von Wahrscheinlichkeiten, dass eine beliebige Anzahl von Objektlabels dem Eingabebildsegment entsprechen, einem Objektlabel mit der höchsten Wahrscheinlichkeit und die entsprechende Wahrscheinlichkeit usw. Solche Objekterkennungsdaten oder Objektklassifizierungsdaten können in einer Vielzahl von Anwendungen verwendet werden, wie etwa autonomen Fahrtanwendungen, autonomen Roboteranwendungen usw. In einigen Ausführungsformen kann ein Objektlabel einem Benutzer vorgelegt werden. In einigen Ausführungsformen können die Objekterkennungsdaten oder Objektklassifizierungsdaten einer Objekttrackinganwendung bereitgestellt werden.
  • 8 illustriert ein beispielhaftes konvolutionales neuronales Netz 800 zur Objekterkennung, das vollständig wenigstens einigen Umsetzungen dieser Offenbarung entsprechend angeordnet ist. Beispielsweise kann das konvolutionale neuronale Netz (CNN) 800 durch CNN-Modul 103 zur Objekterkennung in autonomen Fahrtanwendungen umgesetzt sein. Auch wenn es mit beispielhaften CNN-Eigenschaften für autonome Fahrtanwendungen illustriert und besprochen ist, kann das CNN 800 in allen geeigneten Anwendungen verwendet werden. Wie dargestellt, umfasst CNN 800 eine konvolutionale Schicht 807, die 3D-Bildsegmente 104 empfängt (z. B. ist konvolutionale Schicht 807 eine erste konvolutionale Schicht von CNN 800), eine beliebige Anzahl weiterer konvolutionaler Schichten 815 und eine konvolutionale Schicht 814, sodass die konvolutionale Schicht 814 direkt zu den vollständig verbundenen Schichten 821, 822 benachbart ist. (z. B. ist die konvolutionale Schicht 814 eine letzte konvolutionale Schicht von CNN 800).
  • CNN 800 empfängt 3D-Bildsegmente 104, die von 3D Eingabebilddaten segmentiert werden können, wie hierin besprochen. Jedes der 3D-Bildsegmente 104 kann beispielsweise ein RGB-D-Formatbildsegment sein, das wie illustriert ein 3D-Segment von 3D-Bilddaten darstellt, von denen erwartet wird, dass sie ein Objekt umfassen, das klassifiziert werden soll, das für eine autonome Fahrtanwendung relevant ist. CNN 800 kann eine beliebige Anzahl konvolutionaler Schichten 807, 814, 815 umfassen. In einer Ausführungsform umfasst CNN 800 die erste konvolutionale Schicht 807 und die letzte konvolutionale Schicht 814 ohne weitere konvolutionale Schichten 815. Es ist anzumerken, dass bei Umsetzung konvolutionale Schichten 815 3D-Filter und Poolingmodule (nicht dargestellt) umfassen können, wie bezüglich der konvolutionalen Schichten 807, 814 besprochen. In einer Ausführungsform sind Merkmalskarten 808 (wie durch große 3D-Filter 803 generiert) und Merkmalskarten 810 (wie durch mittlere 3D-Filter 835 generiert) an die konvolutionale Schicht 815 bereitgestellt, während Merkmalskarten 809 (wie durch kleine 3D-Filter 805 generiert) die konvolutionalen Schichten 815 und die konvolutionale Schicht 814 umgehen. In einer Ausführungsform sind Merkmalskarten 808 (wie durch große 3D-Filter 803 generiert) und Merkmalskarten 810 (wie durch mittlere Filter 835 generiert) an die konvolutionale Schicht 814 bereitgestellt, während Merkmalskarten 809 (wie durch kleine 3D-Filter 805 generiert) die konvolutionalen Schichten 814 umgehen.
  • Wie dargestellt weist jede der 3D Merkmalskarten 808, 809, 810 einen Pfad zu der vollständig verbundenen Schicht 821, der vollständig verbundenen Schicht 822 und der Ausgabeschicht 823 auf. Im Betrieb werden jeder 3D-Filter 831 der 3D-Filter 803, jeder 3D-Filter 832 der 3D-Filter 835, und jeder 3D-Filter 833 der 3D-Filter 805 separat auf empfängliche Felder des 3D-Bildsegments 104 angewendet und jeder 3D-Filter 831 wird innerhalb des 3D-Bildsegments 104 auf ein anderes empfängliches Feld bewegt, und so weiter, um 3D-Merkmalskarten zu generieren, die durch Poolingmodule 804, 801, 806 gepoolt werden können, um Merkmalskarten 808, 810 bzw. 809 zu bilden. Filtergewichtungen jedes 3D-Filters 831, 832, 833 sind in einer Schulungsphase für die Umsetzung in einer Umsetzungsphase vorgeschult. Jeder 3D-Filter 831, 832, 833 ist eingestellt, ein bestimmtes Merkmal zu erkennen, das für die Objekterkennung innerhalb des 3D-Bildsegments 104 relevant ist.
  • Ähnlich ist jede der 3D Merkmalskarten 808, 810 an eine konvolutionale Schicht bereitgestellt, die mehrere 3D-Filter und entsprechende Poolingmodule konvolutionaler Schichten 815 (wenn vorhanden) zur Verarbeitung wie oben besprochen umfasst. Die entstehenden 3D Merkmalskarten (oder Merkmalskarten 808, 810 wenn keine weiteren konvolutionalen Schichten 815 umgesetzt sind), werden für die konvolutionale Schicht 814 angewendet, die wie besprochen bezüglich der konvolutionalen Schicht 817 funktioniert, sodass jeder 3D-Filter 836 der 3D-Filter 811 und jeder 3D-Filter 837 der 3D-Filter 811 separat auf empfängliche Felder von 3D Merkmalskarten 808, 810 angewendet und dann innerhalb der 3D-Merkmalskarten 808, 810 bewegt wird und so weiter. Jeder 3D-Filter 836, 837 ist eingestellt, ein bestimmtes Merkmal zu erkennen, das für die Objekterkennung innerhalb des 3D-Bildsegments 104 relevant ist. Es ist anzumerken, dass jeder 3D-Filter 836, 837 abstraktere Merkmale erkennen kann, wenn die Verarbeitung durch das CNN 800 fortschreitet. Die Ergebnisse von der Anwendung jedes-Filters 836, 837 werden durch Poolingmodule 812, 813 downgesampelt, um Merkmalskarten 818, 817 zu generieren. Merkmalskarten 818, 817 sind auf Merkmalsvektoren 845, 846, 849, 850 vektorisiert (von denen um der Klarheit Willen nur zwei dargestellt sind) auf die der ersten vollständig verbundenen Schicht 821 bereitgestellt werden. Merkmalsvektoren 845, 846, 849, 850 können aus Merkmalskarten 818, 817 unter Verwendung jeder geeigneten Technik oder aller geeigneten Techniken generiert werden, wie etwa dem Übersetzen von 3D-Ergebnisse in eine lineare Reihenfolge unter Verwendung einer Scanreihenfolge wie etwa einer Rasterscanreihenfolge oder dergleichen. In einer Ausführungsform ist jeder Merkmalsvektor ein 8-Elementvektor (der 2×2×2 3D-Merkmalskarten entspricht), wobei jedoch jede Größe verwendet werden kann. Solche Merkmalsvektoren können als Merkmalskarten, neuronale Merkmale, neuronale Merkmalsvektoren oder dergleichen charakterisiert werden.
  • Wie dargestellt, sind Merkmalskarten 809 auf Merkmalsvektoren 847, 848 vektorisiert (von denen um der Klarheit Willen nur zwei dargestellt sind) die (zusammen mit anderen Merkmalsvektoren) auf die der ersten vollständig verbundenen Schicht 821 bereitgestellt werden. Es ist anzumerken, dass Merkmalskarten 809 konvolutionale Schichten 815, 814 umgehen. Weiter ist die 3D-Raumgröße jedes der 3D-Filter 805 kleiner als die 3D-Raumgröße jedes der 3D-Filter 835, die wiederum kleiner ist als die 3D-Raumgröße jedes der 3D-Filter 805. In der illustrierten Ausführungsform, umfasst jeder der 3D-Filter 805 4×4×4 Zellen, sodass jede Zelle eine bestimmte Raumgröße (z. B. (0,1 m)3) darstellt, jeder der 3D-Filter 835 6×6×6 Zellen umfasst, wobei jede Zelle dieselbe Raumgröße aufweist und jeder der 3D-Filter 803 10×10×10 Zellen umfasst, wobei jede Zelle erneut dieselbe Raumgröße aufweist. Auch wenn sie mit bestimmten Filtergrößen illustriert sind, können alle geeigneten Filtergrößen (z. B. Zellenanzahlen und Größen) verwendet werden.
  • Wie bei CNN 300 zeigen die Parameter der 3D-Filter (d. h. f, k, c, s, d), so, dass die Parameter der 3D-Filter 803 (10, 10, 4, 5, 40) sind, die Parameter der 3D-Filter 835 sind (20, 6, 4, 3, 40), die Parameter der 3D-Filter 805 sind (30, 4, 4, 2, 40), die Parameter der 3D-Filter 811 sind (13, 3, 1, 1, 40), und die Parameter der 3D-Filter 851 sind (10, 10, 4, 5, 40), die Anzahl f Filter der bestimmten Größe, Anzahl k Zellen in jeder der 3 Dimensionen, sodass jeder Filter k×k×k Zellen mit insgesamt k3 Zellen aufweist, wobei jede Zelle dieselbe Raumgröße (z. B. (0,1 m)3) aufweist, der Filter wird in einer Schrittgröße s für c Fasern oder Kanäle der vorherigen Schicht angewendet, wobei das Zentrum eines Eingabesegments sich in der Tiefe d befindet. Die Parameter oder Eigenschaften, die bezüglich CNN 800 illustriert sind, können sich beispielsweise für Automobilerkennungsanwendungen eignen.
  • Wie besprochen, sind die Merkmalsvektoren 845, 846, 847, 848, 849, 850 (und andere) an vollständig verbundenen Schichten 821, 822 bereitgestellt, um Objekterkennungsdaten 105 an der Ausgabeschicht 823 zu generieren. Beispielsweise kann die vollständig verbundene Schicht 821 eine beliebige Anzahl von Merkmalsvektoren empfangen, die in einem eindimensionalen Array verkettet sind. Beispielsweise kann jeder Merkmalsvektor ein 8-Elementvektor sein und für N Merkmalsvektoren weist die vollständig verbundene Schicht 821 8×N Knoten oder Elemente auf, um die Merkmalsvektoren aufzunehmen. Auch wenn es mit zwei vollständig verbundenen Schichten 821, 822 illustriert ist, kann CNN 800 eine beliebige Anzahl von vollständig verbundenen Schichten umfassen, wie etwa drei, vier oder mehr. Jede der vollständig verbundenen Schichten 821, 822 kann eine beliebige Anzahl von Ein- und Ausgaben aufweisen. Die Ausgabeschicht 823 umfasst eine beliebige Anzahl von Ausgaben für eine beliebige Anzahl von Objektlabels (z. B. Fahrrad, Auto, LKW, Fußgänger usw. in Zusammenhang mit einem Motorfahrzeug) and Ausgabeschicht 823 kann jeweilige Wahrscheinlichkeitswerte für die Objektlabels bereitstellen. Beispielsweise können die vollständig verbundenen Schichten 821, 822 vollständig verbundene und gewichtete Netzwerkknoten bereitstellen und die vollständig verbundene Ausgabeschicht 823 kann eine vollständig verbundene Softmaxfunktionen oder dergleichen aufweisen. In einigen Ausführungsformen umfassen Objekterkennungsdaten 105 ein Objektlabel, das den höchsten Wahrscheinlichkeitswert der verfügbaren Objektlabelausgaben der vollständig verbundenen Schicht 823 aufweist. CNN 800 kann unter Verwendung jeder geeigneten Technik oder aller geeigneten Techniken, wie etwa denen, die bezüglich 6 besprochen sind, generiert oder vorgeschult werden.
  • 9 ist ein Ablaufdiagramm, das einen beispielhaften Prozess 900 für das Ausführen der Objekterkennung, die nach mindestens einigen Umsetzungen dieser Offenbarung angeordnet sind. Prozess 900 kann eine oder mehrere Operationen 901 bis 904 umfassen, wie in 9 illustriert. Prozess 900 kann mindestens einen Abschnitt eines Objekterkennungsprozesses bilden. Mittels eines nichteinschränkenden Beispiels kann Prozess 900 mindestens einen Abschnitt eines Objekterkennungsprozesses bilden, der durch Vorrichtung 100 wie hierin besprochen während einer Umsetzungsphase ausgeführt wird. Weiter wird Prozess 900 hierin mit Verweis auf System 1000 aus 10 beschrieben.
  • 10 ist ein illustratives Diagramm eines beispielhaften Systems 1000 für das Ausführen der Objekterkennung, die nach mindestens einigen Umsetzungen dieser Offenbarung angeordnet sind. Wie in 10 dargestellt, kann System 1000 eine oder mehrere zentrale Prozessoreinheiten (CPU) 1001, eine Grafikprozessoreinheit 1002 und Speichermedien 1003 umfassen. Außerdem kann, wie dargestellt, die Grafikprozessoreinheit 1002 Segmentierungsmodul 102 und CNN-Modul 103 umfassen. Solche Module können umgesetzt sein, um Operationen wie hierin besprochen umzusetzen. In dem Beispiel von System 1000 können Speichermedien 1003 3D-Eingabebilddaten, 3D-Bildsegmentdaten, CNN-Eigenschaften und Parameterdaten, binäre neuronale Merkmale, Objektlabel, Bildschichtdaten, Objekterkennung oder alle anderen Daten oder Datenstrukturen, die hierin besprochen sind, speichern.
  • Wie in einigen Beispielen dargestellt, sind Segmentierungsmodul 102 und CNN-Modul 103 sind über die Grafikprozessoreinheit 1002 umgesetzt. In anderen Beispielen sind ein oder beide Abschnitte von Segmentierungsmodul 102 und CNN-Modul 103 über zentrale Prozessoreinheiten 1001 oder eine Bildprozessoreinheit (nicht dargestellt) von System 1000 umgesetzt. In noch einem anderen Beispiel können ein oder beide Abschnitte von Segmentierungsmodul 102 und CNN-Modul 103 über eine Bildgebungsverarbeitungspipeline, Grafikpipeline oder dergleichen umgesetzt sein.
  • Die Grafikprozessoreinheit 1002 kann eine beliebige Anzahl und Art von Grafikprozessoreinheiten umfassen, die die Operationen wie hierin besprochen bereitstellen kann. Solche Operationen können über Software oder Hardware oder eine Kombination daraus umgesetzt werden. Beispielsweise kann die Grafikprozessoreinheit 1002 Schaltungen umfassen, um 3D-Bilddaten, CNN-Daten usw. zu manipulieren, die von Speichermedien 1003 erfasst wurden. Zentrale Prozessoreinheiten 1001 können eine beliebige Anzahl und Art von Prozessoreinheiten oder Modulen umfassen, die Kontrolle und andere Funktionen auf höhere Ebene für System 1000 und/oder Operationen wie hierin besprochen bereitstellen können. Speichermedien 1003 können jede Art von Speicher sein, wie etwa flüchtiger Speicher (z. B. statischer Direktzugriffspeicher (SRAM), dynamischer Direktzugriffspeicher (DRAM) usw.) oder nichtflüchtiger Speicher (z. B. Flashspeicher usw.), und so weiter. In einem nicht einschränkenden Beispiel können Speichermedien 1003 durch Cachespeicher umgesetzt sein. In einer Ausführungsform sind eines oder beide oder Abschnitte von Segmentierungsmodul 102 und CNN-Modul 103 über eine Ausführungseinheit (EU) von Grafikprozessoreinheit 1002 umgesetzt. Die EU kann beispielsweise programmierbare Logik oder Schaltung umfassen, wie etwa einen Logikkern oder Kerne, die eine große Array programmierbarer Logikfunktionen bereitstellen können. In einer Ausführungsform sind ein oder beide Abschnitte von Segmentierungsmodul 102 und CNN-Modul 103 über dedizierter Hardware umgesetzt, wie etwa Festfunktionsschaltungen oder dergleichen. Festfunktionsschaltungen können dedizierte Logik oder Schaltungen umfassen und können einen Satz fester Funktionseintrittspunkte bereitstellen, die der dedizierten Logik für einen festen Zweck oder eine feste Funktion zugeordnet werden soll. In einigen Ausführungsformen sind ein oder beide Abschnitte von Segmentierungsmodul 102 und CNN-Modul 103 über eine anwendungsspezifische integrierte Schaltung (ASIC) umgesetzt. Die ASIC kann eine integrierte Schaltung umfassen, die angepasst ist, die hierin besprochenen Operationen auszuführen.
  • Zurück zu der Erklärung von 9, beginnt Prozess 900 in Operation 901, wo in einer ersten konvolutionalen Schicht eines konvolutionalen neuronale Netzes mehrere 3D-Filter auf ein 3D-Bildsegment angewendet werden, um mehrere Merkmalskarten zu generieren, sodass ein erster 3D-Filter der mehreren 3D-Filter eine erste 3D-Raumgröße aufweist, und ein zweiter 3D-Filter der mehreren Filter eine zweite 3D-Raumgröße aufweist, die kleiner ist als die erste 3D-Raumgröße. Der erste und der zweite 3D-Filter können alle Raumgrößen aufweisen, die hierin besprochen sind. In einer Ausführungsform umfasst der erste 3D-Filter und der zweite 3D-Filter je mehrere 3D-Zellen, die dieselbe Raumgröße aufweisen, sodass der erste 3D-Filter mehr 3D-Zellen aufweist als der zweite 3D-Filter. In einer Ausführungsform liegt dieselbe Raumgröße für jeden 3D-Zelle in dem Bereich von (0,05 m)3 bis (0,15 m)3, der erste 3D-Filter weist für jede Abmessung davon in dem Bereich von 8 bis 15 3D-Zellen auf und der zweite 3D-Filter weist für jede Abmessung davon in dem Bereich von 4 bis 8 3D-Zellen auf. In einer Ausführungsform weist das 3D-Bildsegment eine Darstellung eines 3D-Segments von einem 3D-Eingabebild auf und das 3D-Bildsegment weist ein RGB-D-Format-3D-Bildsegment auf. In einer Ausführungsform umfasst Prozess 900 ferner die Segmentierung des 3D-Bildsegments von dem 3D-Eingabebild durch Anwenden von 3D-Raumclustering auf das 3D-Bildsegment.
  • In einer Ausführungsform umfasst Prozess 900 ferner das Anwenden der mehreren 3D-Filter auf ein zweites 3D-Bildsegment zum Generieren mehrerer zweiter Merkmalskarten, sodass das zweite 3D-Bildsegment sich in einer größeren Tiefe befindet, als das 3D-Bildsegment und in Reaktion darauf, dass sich das 3D-Bildsegment in einer größeren Tiefe als das zweite 3D-Bildsegment befindet, wird jede Zelle des ersten 3D-Filters auf eine größere Anzahl Pixel des zweiten 3D-Bildsegments angewendet als des 3D-Bildsegments. In einer Ausführungsform sind das 3D-Bildsegment und das zweite 3D-Bildsegment beide ein Abschnitt eines selben 3D-Eingabebilds, und das 3D-Bildsegment, das sich in einer größeren Tiefe befindet als das zweite 3D-Bildsegment, das 3D-Bildsegment aufweist, das sich in einer größeren Distanz als das zweite 3D-Bildsegment zu einem Bildsensor befindet, der verwendet wird, um das 3D-Eingabebild zu erfassen. In einer Ausführungsform weisen die mehreren 3D-Filter eine erste Mehrzahl 3D-Filter der ersten 3D-Raumgröße, die den ersten 3D-Filter aufweisen, eine zweite Mehrzahl 3D-Filter der zweiten 3D-Raumgröße, die den zweiten 3D-Filter aufweisen, und eine dritte Mehrzahl 3D-Filter einer dritten 3D-Raumgröße auf, wobei die dritte 3D-Raumgröße geringer ist als die zweite 3D-Raumgröße.
  • Die Verarbeitung fährt in Operation 902 fort, wobei eine erste Merkmalskarte, die dem ersten 3D-Filter entspricht, einer zweiten konvolutionalen Schicht des konvolutionalen neuronalen Netzes bereitgestellt wird, um eine dritte Merkmalskarte zu generieren, sodass eine zweite Merkmalskarte, die dem zweiten 3D-Filter entspricht, die zweite konvolutionale Schicht umgeht. In einer Ausführungsform ist die zweite konvolutionale Schicht eine letzte konvolutionale Schicht des konvolutionalen neuronalen Netzes, sodass die zweite konvolutionale Schicht direkt zu einer vollständig verbundenen Schicht des konvolutionalen neuronalen Netzes benachbart ist. In einer Ausführungsform umfasst das konvolutionale neuronale Netz ferner eine oder mehrere konvolutionale Schichten zwischen der ersten und der zweiten konvolutionalen Schicht. In einer Ausführungsform weisen die erste konvolutionale Schicht und die zweite konvolutionale Schicht jeweils mindestens eine konvolutionale Filterschicht und eine Pooling-Schicht auf.
  • Die Verarbeitung fährt in Operation 903 fort, wo ein erster Merkmalsvektor, der der dritten Merkmalskarte entspricht, und ein zweiter Merkmalsvektor, der der zweiten Merkmalskarte entspricht, an eine vollständig verbundene Schicht des konvolutionalen neuronalen Netzes bereitgestellt werden. In einer Ausführungsform werden der erste und der zweite Merkmalsvektor aus der ersten bzw. der zweiten Merkmalskarte generiert, indem die 3D-Merkmalskarten mit einer Scanreihenfolge in eine lineare Reihenfolge übersetzt werden. In einer Ausführungsform ist die Scanreihenfolge eine Rasterscanreihenfolge.
  • Die Verarbeitung fährt in Operation 904 fort, wo Objekterkennungsdaten, die dem 3D-Bildsegment entsprechen, auf Grundlage der Anwendung der vollständig verbundenen Schicht auf den ersten und den zweiten Merkmalsvektor ausgegeben werden. Die vollständig verbundene Schicht und eine oder mehrere weitere vollständig verbundene Schichten können unter Verwendung jeder geeigneten Technik oder Techniken angewendet werden. Weiterhin können die Objekterkennungsdaten jedes geeignete Datenformat umfassen, wie etwa Wahrscheinlichkeiten, dass jedes aus einer Liste Objektlabel auf das 3D-Bildsegment zutreffen.
  • In einer Ausführungsform ist das konvolutionale neuronale Netz, das über Prozess 900 angewendet wird, vorgeschult. In einer Ausführungsform umfasst Prozess 900 ferner die Segmentierung mehrerer 3D-Bildsegmente von jedem aus einem Korpus von 3D-Eingabebildern, die Anwendung eines aus mehreren Objekterkennungslabels auf jedes der mehreren 3D-Bildsegmente, und die Schulung des konvolutionalen neuronalen Netzes unter Verwendung der mehreren 3D-Bildsegmente und der mehreren Objekterkennungslabels zum Bestimmen der Parametergewichtungen des konvolutionalen neuronalen Netzes.
  • Prozess 900 kann das Generieren von Objekterkennungsdaten oder Objektlabeldaten basierend auf den 3D-Eingabebildsegmenteingabebilddaten bereitstellen. Prozess 900 kann eine beliebige Anzahl von Malen entweder in Reihe oder parallel für eine beliebige Anzahl von 3D-Eingabebildsegmenten, 3D-Eingabebildern oder dergleichen wiederholt werden. Wie besprochen, kann Prozess 900 Objekterkennungsergebnisse mit hoher Qualität bereitstellen.
  • Verschiedene Komponenten des hierin beschriebenen Systems können in Software, Firmware und/oder Hardware und/oder jeder Kombination daraus umgesetzt sein. Beispielsweise können verschiedene Komponenten von Vorrichtungen oder Systemen, die hierin besprochen sind, mindestens teilweise durch Hardware eines Rechnersystems-auf-einem-Chip (Rechner-SoC) bereitzustellte sein, wie es auch etwa in Rechnersystemen wie beispielsweise einem Computer, einem Laptopcomputer, einem Tablet oder einem Smartphone zu finden ist. Beispielsweise können solche Komponenten oder Module über einen Mehrkern-SoC-Prozessor umgesetzt werden. Fachleute auf dem Gebiet erkennen möglicherweise, dass hierin beschriebenen Systeme weitere Komponenten umfassen können, die nicht in den entsprechenden Figuren dargestellt wurden.
  • Während die Umsetzung der beispielhaften Prozesse, die hierin besprochen sind, umfassen kann, alle Operationen in der illustrierten Reihenfolge auszuführen, ist diese Offenbarung diesbezüglich nicht beschränkt, und in verschiedenen Beispielen kann die Umsetzung der Beispielprozesse hierin nur einen Untersatz der dargestellten Operationen umfassen, die in einer anderen Reihenfolge ausgeführt werden als illustriert, oder weitere Operationen umfassen.
  • Außerdem können jede eine oder alle mehreren der Operationen, die hierin besprochen sind, in Reaktion auf Anweisungen ausgeführt werden, die durch ein oder mehrere Computerprogrammprodukte bereitgestellt werden. Solche Programmprodukte können Signalträgermedien umfassen, die Anweisungen bereitstellen, die bei Ausführung für beispielsweise einen Prozessor die hierin beschriebene Funktion bereitstellen können. Die Computerprogrammprodukte können in jeder Form eines oder mehrerer maschinenlesbarer Medien bereitgestellt sein. So kann beispielsweise ein Prozessor, der eine oder mehrere Grafikprozessoreinheit(en) oder einen oder mehrere Prozessorkern(e) umfasst, einen oder mehrere der Blocks der beispielhaften Prozesse hierin in Reaktion auf Programmcode und/oder Anweisungen oder Anweisungssätze ausführen, die dem Prozessor durch ein oder mehrere maschinenlesbare Medien übermittelt werden. Allgemein kann ein maschinenlesbares Medium Software in der Form von Programmcode und/oder Anweisungen oder Anweisungssätzen übermitteln, die jede der Vorrichtungen und/oder Systeme, die hierin beschrieben sind, veranlassen können, mindestens Abschnitte der besprochenen Operationen, Module oder Komponenten, die hierin besprochen sind, umzusetzen.
  • Wie in jeder hierin beschriebenen Umsetzung verwendet, bezieht sich der Begriff „Modul“ auf eine beliebige Kombination von Softwarelogik, Firmwarelogik, Hardwarelogik und/oder Schaltungen, die konfiguriert sind, die hierin beschriebene Funktion bereitzustellen. Die Software kann als ein Softwarepackage, Code und/oder Anweisungssatz oder Anweisungen verkörpert sein und „Hardware“, wie in einer hierin beschriebenen Umsetzung verwendet, kann beispielsweise einzeln oder in jeder Kombination fest verdrahtete Schaltungsanordnungen, programmierbare Schaltungsanordnungen, State-Machine-Schaltungsanordnungen, Festfunktionsschaltungsanordnungen, Ausführungseinheitenschaltungsanordnungen und/oder Firmware umfassen, die Anweisungen speichern, die durch programmierbare Schaltungsanordnungen ausgeführt werden. Die Module können kollektiv oder einzeln als Schaltungsanordnungen verkörpert sein, die einen Abschnitt eines größeren Systems bilden, beispielsweise einer integrierten Schaltung (IC), eines Systems-auf-Chip (SoC) und so weiter.
  • 11 ist ein illustratives Diagramm eines beispielhaften Systems 1100, das nach mindestens einigen Umsetzungen dieser Offenbarung angeordnet ist. In verschiedenen Umsetzungen kann System 1100 ein Rechnersystem sein, wobei jedoch System 1100 diesbezüglich nicht eingeschränkt ist. Beispielsweise kann System 1100 in einen Personal Computer (PC), einen Laptopcomputer, einen Ultralaptopcomputer, ein Tablet, ein Phablet, ein Touchpad, einen tragbaren Computer, einen Handheld-Computer, einen Palmtopcomputer, einen Personal Digital Assistant (PDA), ein Handy, ein Kombinations-Handy/PDA, einen Fernseher, eine Smart-Vorrichtung (z. B. Smartphone, Smart-Tablet oder Smart-Television), eine mobile Internetvorrichtung (MID), eine Messaging-Vorrichtung, eine Datenkommunikationsvorrichtung, eine periphere Vorrichtung, eine Gamingkonsole, eine tragbare Vorrichtung, eine Anzeigevorrichtung, eine All-in-One-Vorrichtung, eine Two-in-One-Vorrichtung und so weiter einbezogen sein.
  • In verschiedenen Umsetzungen umfasst System 1100 eine Plattform 1102, die mit einer Anzeige 1120 gekoppelt ist. Plattform 1102 kann Inhalt von einer Inhaltsvorrichtung wie einer oder mehreren Inhaltsservicevorrichtung(en) 1130 oder Inhaltsliefervorrichtung(en) 1140 oder anderen ähnliche Inhaltsquellen wie einer Kamera oder einem Kameramodul oder dergleichen empfangen. Ein Navigationscontroller 1150, der ein oder mehrere Navigationsmerkmale umfasst, kann verwendet werden, um beispielsweise mit Plattform 1102 und/oder Anzeige 1120 zu interagieren. Jede dieser Komponenten wird nachfolgend genauer beschrieben.
  • In verschiedenen Umsetzungen kann Plattform 1102 jede Kombination aus einem Chipset 1105, einem Prozessor 1110, einem Arbeitsspeicher 1112, einer Antenne 1113, einem Speicher 1114, einem Grafiksubsystem 1115, Anwendungen 1116 und/oder einem Funkgerät 1118 umfassen. Das Chipset 1105 kann Interkommunikation unter dem Prozessor 1110, dem Arbeitsspeicher 1112, dem Speicher 1114, dem Grafikuntersystem 1115, den Anwendungen 1116 und/oder dem Funkgerät 1118 umfassen. Beispielsweise kann das Chipset 1105 einen Speicheradapter (nicht dargestellt) umfassen, der in der Lage ist, Interkommunikation mit Speicher 1114 bereitzustellen.
  • Prozessor 1110 kann als Complex-Instruction-Set-Computer-Prozessoren (CISC-Prozessoren) oder ein Reduced-Instruction-Set-Computer-Prozessoren (RISC-Prozessoren), x86-anwendungssatzkompatible Prozessoren, Mehrkern, jeder andere Mikroprozessor oder zentrale Prozessoreinheit (CPU) umgesetzt sein. In verschiedenen Umsetzungen kann der Prozessor 1110 ein oder mehrere Dual-Core-Prozessor(en), mobile/r Dual-Core-Prozessor(en) und so weiter sein.
  • Der Arbeitsspeicher 1112 kann als eine flüchtige Speichervorrichtung umgesetzt sein, wie etwa unter anderem ein Direktzugriffspeicher (RAM), dynamischer Direktzugriffspeicher (DRAM) oder statischer RAM (SRAM).
  • Der Speicher 1114 kann als eine nichtflüchtige Speichervorrichtung umgesetzt sein, wie etwa unter anderem ein magnetisches Diskettenlaufwerk, ein optisches Diskettenlaufwerk, ein Bandlaufwerk, eine interne Speichervorrichtung, eine befestigte Speichervorrichtung, ein Flashspeicher, ein batteriegesicherter SDRAM (synchroner DRAM) und/oder eine über das Netzwerk zugängliche Speichervorrichtung. In verschiedenen Umsetzungen kann der Speicher 1114 Technologie umfassen, um den durch Speicherleistung verbesserten Schutz für wertvolle digitale Medien zu erhöhen, wenn beispielsweise mehrere Festplatten umfasst sind.
  • Das Graphikuntersystem 1115 kann die Verarbeitung von Bildern ausführen, wie etwa Standbildern, Grafiken oder Video zum Anzeigen. Das Graphikuntersystem 1115 kann beispielsweise eine Grafikprozessoreinheit (GPU), eine visuelle Prozessoreinheit (VPU), oder eine Bildprozessoreinheit sein. In einigen Beispielen kann das Graphikuntersystem 1115 Rendern eines gescannten Bilds wie hierin besprochen umfassen. Eine analoge oder digitale Schnittstelle kann verwendet werden, um das Graphikuntersystem 1115 und die Anzeige 1120 kommunikativ zu koppeln. Beispielsweise kann die Schnittstelle jedes aus einer High-Definition-Multimedia-Interface, einem DisplayPort, einer drahtlosen HDMI und/oder drahtloser HD-fähigen Techniken sein. Das Graphikuntersystem 1115 kann in den Prozessor 1110 oder das Chipset 1105 integriert sein. In einigen Umsetzungen kann das Graphikuntersystem 1115 eine eigenständige Vorrichtung sein, die kommunikativ mit dem Chipset 1105 gekoppelt ist.
  • Die hierin beschriebenen Bildverarbeitungstechniken können in verschiedenen Hardwarearchitekturen umgesetzt sein. Beispielsweise kann die Bildverarbeitungsfunktion in ein Chipset integriert sein. Alternativ dazu kann eine diskrete Grafik- und/oder Bildprozessor und/oder anwendungsspezifisch integrierte Schaltung verwendet werden. In noch einer weiteren Umsetzung kann die Bildverarbeitung durch einen Allgemeinzweckprozessor bereitgestellt werden, einschließlich eines Mehrkernprozessors. In weiteren Ausführungsformen können die Funktionen in einer Verbraucherelektronikvorrichtung umgesetzt werden.
  • Das Funkgerät 1118 kann ein oder mehrere Funkgeräte umfassen, die in der Lage sind, Signale unter Verwendung verschiedener drahtloser Kommunikationstechniken zu senden und zu empfangen. Solche Techniken können Kommunikation über ein oder mehrere Drahtlosnetzwerke umfassen. Beispielhafte Drahtlosnetzwerke umfassen (unter anderem) drahtlose Local-Area-Networks (WLANs), drahtlose Personal-Area-Networks (WPANs), ein drahtloses Metropolitan-Area-Network (WMANs), zelluläre Netzwerke und Satellitennetzwerke. Bei der Kommunikation über solche Netzwerke hinweg kann das Funkgerät 1118 in jeder Funktion nach einem oder mehreren anwendbaren Standards laufen.
  • In verschiedenen Umsetzungen kann die Anzeige 1120 jeden flachen Bildschirm oder jede Anzeige umfassen. Die Anzeige 1120 kann beispielsweise einen Computeranzeigebildschirm, eine Touchscreenanzeige, einen Videomonitor, eine fernsehähnliche Vorrichtung und/oder einen Fernseher umfassen. Die Anzeige 1120 kann digital und/oder analog sein. In verschiedenen Umsetzungen kann die Anzeige 1120 eine holographische Anzeige sein. Außerdem kann die Anzeige 1120 eine transparente Fläche sein, die eine visuelle Projektion empfangen kann. Solche Projektionen können verschiedene Formen von Informationen, Bildern und/oder Objekten umfassen. Beispielsweise können solche Projektionen eine rein visuelle Überlagerung für eine mobile Augmentierte-Realitäts-Anwendung (MAR-Anwendung) sein. Unter der Kontrolle einer oder mehrere Softwareanwendungen 1116 kann die Plattform 1102 Benutzerschnittstelle 1122 auf der Anzeige 1120 anzeigen.
  • In verschiedenen Umsetzungen können eine oder mehrere Inhaltsdienstvorrichtung(en) 1130 durch einen beliebigen nationalen, internationalen und/oder unabhängigen Dienst gehostet werden und daher über das Internet beispielsweise für Plattform 1102 zugänglich sein. Die Inhaltsservicevorrichtung(en) 1130 kann/können mit der Plattform 1102 und/oder der Anzeige 1120 gekoppelt sein. Die Plattform 1102 und/oder die Inhaltsdienstvorrichtung(en) 1130 können mit einem Netzwerk 1160 gekoppelt sein, um Mediainformationen an und von dem Netzwerk 1160 zu kommunizieren (z. B. zu senden und/oder zu empfangen). Die Inhaltsliefervorrichtung(en) 1140 kann/können auch mit der Plattform 1102 und/oder der Anzeige 1120 gekoppelt sein.
  • In verschiedenen Umsetzungen können die Inhaltsdienstvorrichtung(en) 1130 eine Kabelfernsehbox, einen Personal Computer, ein Netzwerk, ein Telefon, internetfähige Vorrichtungen oder Geräte, die in der Lage sind, digitale Informationen und/oder Inhalte zu liefern, und alle anderen ähnlichen Vorrichtungen umfassen, die in der Lage sind, unidirektional oder bidirektional Inhalte zwischen Inhaltsprovidern und der Plattform 1102 und/Anzeige 1120 über das Netzwerk 1160 oder direkt zu kommunizieren. Es ist zu erkennen, dass der Inhalt unidirektional und/oder bidirektional an und von jeder der Komponenten in System 1100 und einem Contentprovider über das Netzwerk 1160 kommuniziert wird. Beispiele von Inhalten können alle Mediainformationen umfassen, einschließlich beispielsweise Video, Musik, medizinische und Gaminginformationen und so weiter.
  • Inhaltsservicevorrichtung(en) 1130 können Inhalte wie ein Kabelfernsehprogramm, das Medieninformationen, digitale Informationen und/oder andere Inhalte umfasst, empfangen. Beispiele von Inhaltsprovidern können alle Kabel- oder Satellitenfernseh- oder Radio- oder Internetcontentprovider umfassen. Die bereitgestellten Beispiele sind nicht vorgesehen, Umsetzungen nach dieser Offenbarung in irgendeiner Weise einzuschränken.
  • In verschiedenen Umsetzungen kann die Plattform 1102 Steuersignale von Navigationscontroller 1150 empfangen, die ein oder mehrere Navigationsmerkmale aufweisen. Die Navigationsmerkmale des Navigationscontrollers 1150 können verwendet werden, um beispielsweise mit der Benutzerschnittstelle 1122 zu interagieren. In verschiedenen Ausführungsformen kann der Navigationscontroller 1150 eine Zeigevorrichtung sein, die eine Computerhardwarekomponente sein kann (speziell, eine Menschenschnittstellenvorrichtung), die einem Benutzer erlaubt, räumliche (z. B. fortlaufende und multidimensionale) Daten in einen Computer einzugeben. Viele Systeme, wie etwa grafische Benutzerschnittstellen (GUI) und Fernseher und Bildschirme erlauben dem Benutzer das Steuern und Bereitstellen von Daten an den Computer oder Fernseher unter Verwendung physischer Gesten.
  • Bewegungen der Navigationsmerkmale des Navigationscontrollers 1150 können auf einer Anzeige (z. B. Anzeige 1120) durch Bewegungen eines Zeigers, Cursors, Fokusrings oder anderer optischer Anzeigen, die auf der Anzeige angezeigt sind, wiedergegeben werden. Beispielsweise können unter der Steuerung von Softwareanwendungen 1116, die Navigationsmerkmale, die sich auf dem Navigationscontroller 1150 befinden, virtuellen Navigationsmerkmalen zugeordnet werden, die beispielsweise auf der Benutzerschnittstelle 1122 angezeigt werden. In verschiedenen Ausführungsformen ist der Navigationscontroller 1150 möglicherweise keine separate Komponente, sondern kann in die Plattform 1102 und/oder Anzeige 1120 integriert sein. Diese Offenbarung ist jedoch nicht auf die Elemente oder in dem Zusammenhang beschränkt, die/der hierin dargestellt sind/ist.
  • In verschiedenen Umsetzungen können Treiber (nicht dargestellt) Technologie umfassen, die Benutzer in die Lage versetzen, die die Plattform 1102 umgehend ein- und ausschalten, wie etwa beispielsweise einen Fernseher mit der Berührung einer Taste nach dem anfänglichen Hochfahren, sondern dies aktiviert ist. Die Programmlogik kann Plattform 1102 erlauben, Inhalte an Medienadaptoren oder eine oder mehrere andere Inhaltsdienstvorrichtung(en) 1130 oder eine oder mehrere Inhaltsliefervorrichtung(en) 1140 zu streamen, auch, wenn die Plattform „aus“ ist‟ Weiterhin kann das Chipset 1105 beispielsweise Hardware- und/oder Softwaresupport für 5.1 Surroundsound-Ton und/oder High Definition 10.1 Surroundsound-Ton umfassen. Treiber können einen Grafiktreiber für integrierte Grafikplattformen umfassen. In verschiedenen Ausführungsformen kann der Grafiktreiber eine Peripheral-Component-Interconnect-Express-Grafikkarte (PCI-Express-Grafikkarte) umfassen.
  • In verschiedenen Umsetzungen kann jede der in System 1100 gezeigten Komponenten integriert sein. Beispielsweise können Plattform 1102 und Inhaltsdienstvorrichtung(en) 1130 integriert sein, oder Plattform 1102 und eine oder mehrere Inhaltslieferungsvorrichtung(en) 1140 können integriert sein, oder Plattform 1102, Inhaltsdienstvorrichtung(en) 1130 und Inhaltsliefervorrichtung(en) 1140 können integriert sein. In verschiedenen Ausführungsformen können die Plattform 1102 und die Anzeige 1120 eine integrierte Einheit sein. Die Anzeige 1120 and die Inhaltsdienstvorrichtung(en) 1130 können beispielsweise integriert sein, oder die Anzeige 1120 und Inhaltsliefervorrichtung(en) 1140 können integriert sein. Diese Beispiele sollen diese Offenbarung nicht einschränken.
  • In verschiedenen Ausführungsformen kann System 1100 als ein drahtloses System, ein verkabeltes System oder eine Kombination aus beidem umgesetzt sein. Bei der Umsetzung als ein drahtloses System kann System 1100 Komponente und Schnittstellen umfassen, die sich für die Kommunikation über ein drahtloses geteiltes Medium eigenen, wie etwa eine oder mehrere Antennen, Sender, Empfänger, Transceiver, Verstärker, Filter, Steuerlogik und so weiter. Ein Beispiel für drahtlose geteilte Medien kann Abschnitte eines Drahtlosspektrums umfassen, wie etwa dem HF-Spektrum und so weiter. Bei der Umsetzung als verkabeltes System kann System 1100 Komponenten und Schnittstellen umfassen, die sich für die Kommunikation über verkabelte Kommunikationsmedien eigenen, wie etwa Eingangs-/Ausgangs-Adapter (E/A-Adapter), physische Verbinder zum Verbinden des E/A-Adapters mit einem entsprechenden verkabelten Kommunikationsmedium, einer Netzwerkschnittstellenkarte (NIC), einem Diskettencontroller, einem Videocontroller, einem Audiocontroller und dergleichen. Beispiele verkabelter Kommunikationsmedien umfassen einen Draht, ein Kabel, Metallleitungen, eine Platine (PCB), eine Backplane, ein Switch-Fabric, Halbleitermaterial, verdrillten Doppeldraht, ein Koaxialkabel, Glasfaser und so weiter.
  • Die Plattform 1102 kann einen oder mehrere logische oder physische Kanäle einrichten, um Informationen zu kommunizieren. Die Informationen können Mediainformationen und Steuerinformationen umfassen. Die Mediainformationen können sich auf alle Daten beziehen, die Inhalte darstellen, die für einen Benutzer vorgesehen sind. Inhaltsbeispiele können beispielsweise Daten aus einer Stimmkonversation, Videokonferenz, Streamingvideo, Nachricht per elektronischer Post („E-Mail“), Voicemail-Nachricht, alphanumerische Symbole, Grafiken, Bild, Video, Text und so weiter umfassen. Daten aus Stimmkonversationen können beispielsweise Sprachinformationen, Stillezeiträume, Hintergrundrauschen, Komfortgeräusche, Töne und so weiter sein. Steuerinformationen können sich auf alle Daten beziehen, die Befehle, Anweisungen oder Steuerwörter darstellen, die für ein automatisiertes System vorgesehen sind. Beispielsweise können Steuerinformationen verwendet werden, um Medieninformationen durch ein System zu routen oder einen Knoten anzuweisen, die Mediainformationen in einer vorgegebenen Weise zu verarbeiten. Die Ausführungsformen sind jedoch nicht auf die Elemente oder in dem Zusammenhang beschränkt, die/der in 11 dargestellt sind/ist.
  • Wie oben beschrieben, kann System 1100 in verschiedenen physischen Stilen oder Formfaktoren verkörpert sein. 12 illustriert eine Vorrichtung mit kleinem Formfaktor 1200, die vollständig wenigstens einigen Umsetzungen dieser Offenbarung entsprechend angeordnet ist. In einigen Beispielen kann System 1100 über Vorrichtung 1200 umgesetzt sein. In anderen Beispielen können andere Systeme, Komponenten oder Module, die hierin besprochen sind, oder Abschnitte davon über Vorrichtung 1200 umgesetzt sein. In verschiedenen Ausführungsformen kann beispielsweise Vorrichtung 1200 als eine mobile Rechnervorrichtung a umgesetzt sein, die Drahtlosfähigkeiten aufweist. Eine mobile Rechnervorrichtung kann sich auf jede Vorrichtung beziehen, die ein Verarbeitungssystem und eine mobile Energiequelle oder -Versorgung aufweist, wie etwa beispielsweise eine oder mehrere Batterien.
  • Beispiele für eine mobile Rechnervorrichtung können einen Personal Computer (PC), einen Laptopcomputer, einen Ultra-Laptopcomputer, ein Tablet, ein Touchpad, einen tragbaren Computer, einen Handheld-Computer, einen Palmtop-Computer, einen Personal Digital Assistant (PDA), ein Handy, eine Kombinations-Handy/PDA, eine Smart-Vorrichtung (z. B. Smartphone, Smart Tablet oder Smart Mobile Television), eine mobile Internetvorrichtung (MID), eine Messaging-Vorrichtung, eine Datenkommunikationsvorrichtung, Kameras (z. B. Point-and-Shoot-Kameras, Super-Zoom-Kameras, Digital-Single-Lens-Reflex-Kameras (DSLR-Kameras)) und so weiter umfassen.
  • Beispiele einer mobilen Rechnervorrichtung können ebenfalls Computer umfassen, die angeordnet sind, um durch ein Motorfahrzeug oder einen Roboter umgesetzt zu werden, oder von einer Person getragen werden, wie etwa Handgelenkscomputer, Fingercomputer, Ringcomputer, Brillencomputer, Gürtelschnallencomputer, Armbandcomputer, Schuhcomputer, Kleidungscomputer und andere tragbare Computer. In verschiedenen Ausführungsformen kann beispielsweise eine mobile Rechnervorrichtung als ein Smartphone umgesetzt werden, das in der Lage ist, Computeranwendungen sowie Stimmkommunikation und/oder Datenkommunikation auszuführen. Auch wenn einige Ausführungsformen möglicherweise beispielhaft mit einer mobilen Vorrichtung beschrieben sind, die als ein Smartphone umgesetzt ist, ist zu verstehen, dass andere Ausführungsformen unter Verwendung anderer drahtloser mobiler Rechnervorrichtungen ebenso umgesetzt werden können. Die Ausführungsformen sind diesbezüglich nicht beschränkt.
  • Wie in 12 gezeigt ist, kann die Vorrichtung 1200 ein Gehäuse mit einer Vorderseite 1201 und einer Rückseite 1202 umfassen. Die Vorrichtung 1200 kann eine Anzeige 1204, eine Eingangs-/Ausgangs-Vorrichtung (E/A-Vorrichtung) 1206, eine Farbkamera 1221, eine Farbkamera 1222, einen Infrarottransmitter 1223 und eine integrierte Antenne 1208 umfassen. Beispielsweise können die Farbkamera 1221, Farbkamera 1222 und der Infrarottransmitter 1223 3D-Bilddaten wie hierin besprochen erfassen. Die Vorrichtung 1200 kann auch Navigationsmerkmale 1212 umfassen. Die E/A-Vorrichtung 1206 kann jede geeignete E/A-Vorrichtung zum Eingeben von Informationen in eine mobile Rechnervorrichtung umfassen. Beispiele für die E/A-Vorrichtung 1206 können eine alphanumerische Tastatur, ein numerisches Keypad, ein Touchpad, Eingabetasten, Buttons, Schalter, Mikrophone, Lautsprecher, Stimmerkennungsvorrichtung und Software und so weiter umfassen. Informationen können ebenfalls in die Vorrichtung 1200 Mittels Mikrofon (nicht dargestellt) eingegeben werden, oder können durch eine Stimmerkennungsvorrichtung digitalisiert werden. Wie dargestellt, kann Vorrichtung 1200 Farbkameras 1221, 1222, Infrarottransmitter 1223 und einen Blitz 1210 umfassen, die in die Rückseite 1202 (oder anderswo) der Vorrichtung 1200 integriert sind. In anderen Beispielen können die Farbkameras 1221, 1222, der Infrarottransmitter 1223 und der Blitz 1210 in die Vorderseite 1201 der Vorrichtung 1200 integriert sein, oder vorder- und rückseitige Kameras können bereitgestellt sein. Farbkameras 1221, 1222 und ein Blitz 1210 können Bestandteile eines Kameramoduls sein, um Farbbilddaten mit IR-Texturkorrektur auszuführen, die in ein Bild oder Streamingvideo verarbeitet werden können, das an die Anzeige 1204 ausgegeben und/oder beispielsweise extern von der Vorrichtung 1200 über die Antenne 1208 kommuniziert wird.
  • Verschiedene Ausführungsformen können unter Verwendung von Hardwareelementen, Softwareelementen oder einer Kombination aus beiden umgesetzt sein. Beispiele für Hardwareelemente können Prozessoren, Mikroprozessoren, Schaltungen, Schaltungselemente (z. B. Transistoren, Widerstände, Kondensatoren, Induktoren und so weiter), integrierte Schaltungen, anwendungsspezifische integrierte Schaltungen (ASIC), programmierbare Logikvorrichtungen (PLD), digitale Signalprozessoren (DSP), ein im Feld programmierbares Gatearrays (FPGA), Logikgates, Register, eine Halbleitervorrichtung, Chips, Mikrochips, Chipsets und so weiter umfassen. Beispiele von Software können Softwarekomponenten, Programme, Anwendungen, Computerprogramme, Anwendungsprogramme, Systemprogramme, Maschinenprogramme, Betriebssystemsoftware, Middleware, Firmware, Softwaremodule, Routinen, Subroutinen, Funktionen, Methoden, Verfahren, Softwareschnittstellen, Anwendungsprogrammschnittstellen (API), Anweisungssets, Rechnercode, Computercode, Codesegmente, Computercodesegmente, Wörter, Werte, Symbole oder jede Kombination daraus umfassen. Das Bestimmen, ob eine Ausführungsform unter Verwendung von Hardwareelementen und/oder Softwareelementen umgesetzt ist, kann nach einer beliebigen Anzahl von Faktoren variieren, wie etwa der gewünschten Rechnerrate, Leitungspegel, Wärmetoleranzen, Verarbeitungszyklusbudget, Eingabedatenraten, Ausgabedatenraten, Speicherressourcen, Datenbusgeschwindigkeiten und andere Design- oder Lei stungseinschränkungen.
  • Ein oder mehrere Aspekte von mindestens einer Ausführungsform können durch repräsentative Anweisungen umgesetzt werden, die auf einem maschinenlesbaren Medium gespeichert sind, das unterschiedliche Logik innerhalb des Prozessors darstellt, was nach Lesen durch eine Maschine die Maschine veranlasst, eine Logik herzustellen, um die hierin beschriebenen Techniken auszuführen. Solche Darstellungen, die als IP-Kerne bekannt sind, können auf einem greifbaren, maschinenlesbaren Medium gespeichert und verschiedenen Kunden oder Herstellungseinrichtungen bereitgestellt werden, um auf die Herstellungsmaschinen geladen zu werden, die die Logik oder den Prozessor tatsächlich herstellen.
  • Während bestimmte hierin festgelegte Merkmale mit Verweis auf verschiedene Umsetzung beschrieben sind, soll diese Beschreibung nicht ein einem einschränkenden Sinn ausgelegt werden. So werden verschiedene Modifikationen der hierin beschriebenen Umsetzung, sowie andere Umsetzung, die für Fachleute auf dem Gebiet offensichtlich sind, auf das sich diese Offenbarung bezieht, als in den Geist und Umfang dieser Offenbarung fallend betrachtet.
  • Es ist zu erkennen, dass die Ausführungsformen nicht auf die so beschriebenen Ausführungsformen beschränkt sind, sondern mit Modifikationen und Änderungen ohne Abweichung vom Umfang der beiliegenden Ansprüche praktiziert werden können. Beispielsweise können die obigen Ausführungsformen eine spezifische Kombination von Merkmalen umfassen. Die obigen Ausführungsformen sind jedoch diesbezüglich nicht eingeschränkt, und in verschiedenen Umsetzungen können die obigen Ausführungsformen die Ausführung von nur einem Untersatz solcher Merkmale umfassen, die Ausführung einer anderen Reihenfolge solcher Merkmale, die Ausführung einer anderen Kombination solcher Merkmale und/oder die Ausführung weiterer Merkmale als der ausdrücklich aufgeführten Merkmale. Der Umfang der Ausführungsformen sollte daher mit Verweis auf die beiliegenden Ansprüche bestimmt werden, zusammen mit dem vollen Bereich der Äquivalente, auf die diese Ansprüche einen Anspruch haben.

Claims (25)

  1. System zum Ausführen von Objekterkennung, aufweisend: einen Speicher zum Speichern eines 3D-Bildsegments; und einen Prozessor, der mit dem Speicher gekoppelt ist, wobei der Prozessor dazu dient: an einer ersten konvolutionalen Schicht eines konvolutionalen neuronalen Netzes mehrere 3D-Filter auf ein 3D-Bildsegment anzuwenden, um mehrere Merkmalskarten zu generieren, wobei ein erster 3D-Filter der mehreren 3D-Filter eine erste 3D-Raumgröße aufweist und ein zweiter 3D-Filter der mehreren Filter eine zweite 3D-Raumgröße aufweist, die kleiner als die erste 3D-Raumgröße ist; mindestens eine erste Merkmalskarte, die dem ersten 3D-Filter entspricht, einer zweiten konvolutionalen Schicht des konvolutionalen neuronalen Netzes bereitzustellen, um eine dritte Merkmalskarte zu generieren, wobei eine zweite Merkmalskarte, die dem zweiten 3D-Filter entspricht, die zweite konvolutionale Schicht umgeht; einen ersten Merkmalsvektor, der der dritten Merkmalskarte entspricht, und einen zweiten Merkmalsvektor, der der zweiten Merkmalskarte entspricht, an eine vollständig verbundene Schicht des konvolutionalen neuronalen Netzes bereitzustellen; und Objekterkennungsdaten, die dem 3D-Bildsegment entsprechen, auf Grundlage der Anwendung der vollständig verbundenen Schicht auf den ersten und den zweiten Merkmalsvektor auszugeben.
  2. System nach Anspruch 1, wobei der erste 3D-Filter und der zweite 3D-Filter je mehrere 3D-Zellen aufweisen, die dieselbe Raumgröße aufweisen, wobei der erste 3D-Filter mehr 3D-Zellen aufweist als der zweite 3D-Filter.
  3. System nach Anspruch 2, wobei der erste 3D-Filter für jede Abmessung davon in dem Bereich von 8 bis 15 3D-Zellen aufweist und der zweite 3D-Filter für jede Abmessung davon in dem Bereich von 4 bis 8 3D-Zellen aufweist.
  4. System nach Anspruch 2, wobei der Prozessor dazu dient: die mehreren 3D-Filter auf ein zweites 3D-Bildsegment anzuwenden, um mehrere zweite Merkmalskarten zu generieren, wobei sich das zweite 3D-Bildsegment in einer größeren Tiefe befindet als das 3D-Bildsegment und wobei in Reaktion darauf, dass sich das 3D-Bildsegment in einer größeren Tiefe befindet als das zweite 3D-Bildsegment, jede Zelle des ersten 3D-Filters auf eine größere Anzahl Pixel des zweiten 3D-Bildsegments als des 3D-Bildsegments angewendet wird.
  5. System nach Anspruch 4, wobei das 3D-Bildsegment und das zweite 3D-Bildsegment beide ein Abschnitt eines 3D-Eingabebilds sind, und das 3D-Bildsegment, das sich in einer größeren Tiefe befindet als das zweite 3D-Bildsegment, das 3D-Bildsegment aufweist, das sich in einer größeren Distanz als das zweite 3D-Bildsegment zu einem Bildsensor befindet, der verwendet wird, um das 3D-Eingabebild zu erfassen.
  6. System nach Anspruch 1, wobei das konvolutionale neuronale Netz ferner eine oder mehrere konvolutionale Schichten zwischen der ersten und der zweiten konvolutionalen Schicht aufweist.
  7. System nach Anspruch 1, wobei die mehreren 3D-Filter eine erste Mehrzahl 3D-Filter der ersten 3D-Raumgröße, die den ersten 3D-Filter aufweisen, eine zweite Mehrzahl 3D-Filter der zweiten 3D-Raumgröße, die den zweiten 3D-Filter aufweisen, und eine dritte Mehrzahl 3D-Filter einer dritten 3D-Raumgröße aufweisen, wobei die dritte 3D-Raumgröße geringer als die zweite 3D-Raumgröße ist.
  8. System nach Anspruch 1, wobei die erste konvolutionale Schicht und die zweite konvolutionale Schicht jeweils mindestens eine konvolutionale Filterschicht und eine Pooling-Schicht aufweisen.
  9. System nach Anspruch 1, wobei das 3D-Bildsegment eine Darstellung eines 3D-Segments von einem 3D-Eingabebild aufweist und das 3D-Bildsegment ein RGB-D-Format-3D-Bildsegment aufweist.
  10. System nach Anspruch 1, wobei der Prozessor dazu dient: das 3D-Bildsegment aus dem 3D-Eingabebild durch Anwendung von 3D-Raumclustering auf das 3D-Bildsegment zu segmentieren.
  11. System nach Anspruch 1, wobei der Prozessor dazu dient: mehrere 3D-Bildsegmente aus jedem aus einem Korpus von 3D-Eingabebildern zu segmentieren; eines aus mehreren Objekterkennungslabels auf jedes der mehreren 3D-Bildsegmente anzuwenden; das konvolutionale neuronale Netz unter Verwendung der mehreren 3D-Bildsegmente und der mehreren Objekterkennungslabels zu schulen, um Parametergewichtungen des konvolutionalen neuronalen Netzes zu bestimmen.
  12. Computerumgesetztes Verfahren zum Ausführen von Objekterkennung, aufweisend: Anwenden mehrerer 3D-Filter auf ein 3D-Bildsegment an einer ersten konvolutionalen Schicht eines konvolutionalen neuronalen Netzes, um mehrere Merkmalskarten zu generieren, wobei ein erster 3D-Filter der mehreren 3D-Filter eine erste 3D-Raumgröße aufweist und ein zweiter 3D-Filter der mehreren Filter eine zweite 3D-Raumgröße aufweist, die kleiner als die erste 3D-Raumgröße ist; Bereitstellen von mindestens einer ersten Merkmalskarte, die dem ersten 3D-Filter entspricht, an eine zweite konvolutionale Schicht des konvolutionalen neuronalen Netzes, um eine dritte Merkmalskarte zu generieren, wobei eine zweite Merkmalskarte, die dem zweiten 3D-Filter entspricht, die zweite konvolutionale Schicht umgeht; Bereitstellen eines ersten Merkmalsvektors, der der dritten Merkmalskarte entspricht, und eines zweiten Merkmalsvektors, der der zweiten Merkmalskarte entspricht, an eine vollständig verbundene Schicht des konvolutionalen neuronalen Netzes; und Ausgeben von Objekterkennungsdaten, die dem 3D-Bildsegment entsprechen, auf Grundlage der Anwendung der vollständig verbundenen Schicht auf den ersten und den zweiten Merkmalsvektor.
  13. Verfahren nach Anspruch 12, wobei der erste 3D-Filter und der zweite 3D-Filter je mehrere 3D-Zellen aufweisen, die dieselbe Raumgröße aufweisen, wobei der erste 3D-Filter mehr 3D-Zellen aufweist als der zweite 3D-Filter.
  14. Verfahren nach Anspruch 13, ferner aufweisend: Anwenden der mehreren 3D-Filter auf ein zweites 3D-Bildsegment, um mehrere zweite Merkmalskarten zu generieren, wobei sich das zweite 3D-Bildsegment in einer größeren Tiefe befindet als das 3D-Bildsegment und wobei in Reaktion darauf, dass sich das 3D-Bildsegment in einer größeren Tiefe befindet als das zweite 3D-Bildsegment, jede Zelle des ersten 3D-Filters auf eine größere Anzahl Pixel des zweiten 3D-Bildsegments als des 3D-Bildsegments angewendet wird.
  15. Verfahren nach Anspruch 12, wobei das konvolutionale neuronale Netz ferner eine oder mehrere konvolutionale Schichten zwischen der ersten und der zweiten konvolutionalen Schicht aufweist.
  16. Verfahren nach Anspruch 12, wobei die mehreren 3D-Filter eine erste Mehrzahl 3D-Filter der ersten 3D-Raumgröße, die den ersten 3D-Filter aufweisen, eine zweite Mehrzahl 3D-Filter der zweiten 3D-Raumgröße, die den zweiten 3D-Filter aufweisen, und eine dritte Mehrzahl 3D-Filter einer dritten 3D-Raumgröße aufweisen, wobei die dritte 3D-Raumgröße geringer als die zweite 3D-Raumgröße ist.
  17. Mindestens ein maschinenlesbares Medium, aufweisend mehrere Anweisungen, die in Reaktion auf die Ausführung auf einer Rechnervorrichtung die Rechnervorrichtung veranlassen, Objekterkennung auszuführen durch: Anwenden mehrerer 3D-Filter auf ein 3D-Bildsegment an einer ersten konvolutionalen Schicht eines konvolutionalen neuronalen Netzes, um mehrere Merkmalskarten zu generieren, wobei ein erster 3D-Filter der mehreren 3D-Filter eine erste 3D-Raumgröße aufweist und ein zweiter 3D-Filter der mehreren Filter eine zweite 3D-Raumgröße aufweist, die kleiner als die erste 3D-Raumgröße ist; Bereitstellen von mindestens einer ersten Merkmalskarte, die dem ersten 3D-Filter entspricht, an eine zweite konvolutionale Schicht des konvolutionalen neuronalen Netzes, um eine dritte Merkmalskarte zu generieren, wobei eine zweite Merkmalskarte, die dem zweiten 3D-Filter entspricht, die zweite konvolutionale Schicht umgeht; Bereitstellen eines ersten Merkmalsvektors, der der dritten Merkmalskarte entspricht, und eines zweiten Merkmalsvektors, der der zweiten Merkmalskarte entspricht, an eine vollständig verbundene Schicht des konvolutionalen neuronalen Netzes; und Ausgeben von Objekterkennungsdaten, die dem 3D-Bildsegment entsprechen, auf Grundlage der Anwendung der vollständig verbundenen Schicht auf den ersten und den zweiten Merkmalsvektor.
  18. Maschinenlesbares Medium nach Anspruch 17, wobei der erste 3D-Filter und der zweite 3D-Filter je mehrere 3D-Zellen aufweisen, die dieselbe Raumgröße aufweisen, wobei der erste 3D-Filter mehr 3D-Zellen aufweist als der zweite 3D-Filter.
  19. Maschinenlesbares Medium nach Anspruch 18, ferner aufweisend Anweisungen, die in Reaktion auf die Ausführung auf der Rechnervorrichtung die Rechnervorrichtung veranlassen, Objekterkennung auszuführen durch: Anwenden der mehreren 3D-Filter auf ein zweites 3D-Bildsegment, um mehrere zweite Merkmalskarten zu generieren, wobei sich das zweite 3D-Bildsegment in einer größeren Tiefe befindet als das 3D-Bildsegment und wobei in Reaktion darauf, dass sich das 3D-Bildsegment in einer größeren Tiefe befindet als das zweite 3D-Bildsegment, jede Zelle des ersten 3D-Filters auf eine größere Anzahl Pixel des zweiten 3D-Bildsegments als des 3D-Bildsegments angewendet wird.
  20. Maschinenlesbares Medium nach Anspruch 17, wobei das konvolutionale neuronale Netz ferner eine oder mehrere konvolutionale Schichten zwischen der ersten und der zweiten konvolutionalen Schicht aufweist.
  21. Maschinenlesbares Medium nach Anspruch 17, wobei die mehreren 3D-Filter eine erste Mehrzahl 3D-Filter der ersten 3D-Raumgröße, die den ersten 3D-Filter aufweisen, eine zweite Mehrzahl 3D-Filter der zweiten 3D-Raumgröße, die den zweiten 3D-Filter aufweisen, und eine dritte Mehrzahl 3D-Filter einer dritten 3D-Raumgröße aufweisen, wobei die dritte 3D-Raumgröße geringer als die zweite 3D-Raumgröße ist.
  22. System, aufweisend: Mittel zum Anwenden mehrerer 3D-Filter an einer ersten konvolutionalen Schicht eines konvolutionalen neuronalen Netzes auf ein 3D-Bildsegment zum Generieren mehrerer Merkmalskarten, wobei ein erster 3D-Filter der mehreren 3D-Filter eine erste 3D-Raumgröße aufweist und ein zweiter 3D-Filter der mehreren Filter eine zweite 3D-Raumgröße aufweist, die kleiner als die erste 3D-Raumgröße ist; Mittel zum Bereitstellen von mindestens einer ersten Merkmalskarte, die dem ersten 3D-Filter entspricht, an eine zweite konvolutionale Schicht des konvolutionalen neuronalen Netzes, um eine dritte Merkmalskarte zu generieren, wobei eine zweite Merkmalskarte, die dem zweiten 3D-Filter entspricht, die zweite konvolutionale Schicht umgeht; Mittel zum Bereitstellen eines ersten Merkmalsvektors, der der dritten Merkmalskarte entspricht, und eines zweiten Merkmalsvektors, der der zweiten Merkmalskarte entspricht, an eine vollständig verbundene Schicht des konvolutionalen neuronalen Netzes; und Mittel zum Ausgeben von Objekterkennungsdaten, die dem 3D-Bildsegment entsprechen, auf Grundlage der Anwendung der vollständig verbundenen Schicht auf den ersten und den zweiten Merkmalsvektor.
  23. System nach Anspruch 22, wobei der erste 3D-Filter und der zweite 3D-Filter je mehrere 3D-Zellen aufweisen, die dieselbe Raumgröße aufweisen, wobei der erste 3D-Filter mehr 3D-Zellen aufweist als der zweite 3D-Filter.
  24. System nach Anspruch 23, ferner aufweisend: Mittel zum Anwenden der mehreren 3D-Filter auf ein zweites 3D-Bildsegment, um mehrere zweite Merkmalskarten zu generieren, wobei sich das zweite 3D-Bildsegment in einer größeren Tiefe befindet als das 3D-Bildsegment und wobei in Reaktion darauf, dass sich das 3D-Bildsegment in einer größeren Tiefe befindet als das zweite 3D-Bildsegment, jede Zelle des ersten 3D-Filters auf eine größere Anzahl Pixel des zweiten 3D-Bildsegments als des 3D-Bildsegments angewendet wird.
  25. System nach Anspruch 22, wobei die mehreren 3D-Filter eine erste Mehrzahl 3D-Filter der ersten 3D-Raumgröße, die den ersten 3D-Filter aufweisen, eine zweite Mehrzahl 3D-Filter der zweiten 3D-Raumgröße, die den zweiten 3D-Filter aufweisen, und eine dritte Mehrzahl 3D-Filter einer dritten 3D-Raumgröße aufweisen, wobei die dritte 3D-Raumgröße geringer als die zweite 3D-Raumgröße ist.
DE112018007730.6T 2018-08-31 2018-08-31 3d objekterkennung unter verwendung von 3d konvolutionalen neuronalen netzen mit tiefenbasierten multiskalierungsfiltern Pending DE112018007730T5 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2018/103645 WO2020042169A1 (en) 2018-08-31 2018-08-31 3d object recognition using 3d convolutional neural network with depth based multi-scale filters

Publications (1)

Publication Number Publication Date
DE112018007730T5 true DE112018007730T5 (de) 2021-04-01

Family

ID=69642840

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112018007730.6T Pending DE112018007730T5 (de) 2018-08-31 2018-08-31 3d objekterkennung unter verwendung von 3d konvolutionalen neuronalen netzen mit tiefenbasierten multiskalierungsfiltern

Country Status (3)

Country Link
US (2) US11880770B2 (de)
DE (1) DE112018007730T5 (de)
WO (1) WO2020042169A1 (de)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10460235B1 (en) * 2018-07-06 2019-10-29 Capital One Services, Llc Data model generation using generative adversarial networks
DE102019123455A1 (de) * 2018-09-04 2020-03-05 Nvidia Corporation Gemeinsame synthese und platzierung von objekten in szenen
US11526723B2 (en) * 2019-07-09 2022-12-13 Gyrfalcon Technology Inc. Apparatus and methods of obtaining multi-scale feature vector using CNN based integrated circuits
RU2744012C1 (ru) * 2019-12-24 2021-03-02 Общество с ограниченной ответственностью "Яндекс Беспилотные Технологии" Способы и системы для автоматизированного определения присутствия объектов
CN111294512A (zh) * 2020-02-10 2020-06-16 深圳市铂岩科技有限公司 图像处理方法、装置、存储介质及摄像装置
US20210374384A1 (en) * 2020-06-02 2021-12-02 Nvidia Corporation Techniques to process layers of a three-dimensional image using one or more neural networks
US11398095B2 (en) * 2020-06-23 2022-07-26 Toyota Research Institute, Inc. Monocular depth supervision from 3D bounding boxes
US11276434B1 (en) 2020-11-17 2022-03-15 Rovi Guides, Inc. System and method for generating personalized video trailers
US11905818B2 (en) * 2020-12-08 2024-02-20 Halliburton Energy Services, Inc. Deep learning methods for wellbore pipe inspection
US20230059007A1 (en) * 2021-08-20 2023-02-23 Adobe Inc. Generating object-based layers for digital image editing using object classification machine learning models
WO2023097423A1 (en) * 2021-11-30 2023-06-08 Intel Corporation Apparatus and method for dynamic quadruple convolution in 3d cnn
CN116636423B (zh) * 2023-07-26 2023-09-26 云南农业大学 一种茯苓菌种的高效培育方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107430677B (zh) * 2015-03-20 2022-04-12 英特尔公司 基于对二进制卷积神经网络特征进行提升的目标识别
US9633282B2 (en) * 2015-07-30 2017-04-25 Xerox Corporation Cross-trained convolutional neural networks using multimodal images
US20170076195A1 (en) 2015-09-10 2017-03-16 Intel Corporation Distributed neural networks for scalable real-time analytics
DE112015007176T5 (de) 2015-12-10 2018-08-23 Intel Corporation Visuelle Erkennung unter Verwendung von Deep Learning-Attributen
CN105975931B (zh) * 2016-05-04 2019-06-14 浙江大学 一种基于多尺度池化的卷积神经网络人脸识别方法
CN107862261A (zh) 2017-10-25 2018-03-30 天津大学 基于多尺度卷积神经网络的图像人群计数方法
KR20200015095A (ko) * 2018-08-02 2020-02-12 삼성전자주식회사 영상 처리 장치 및 그 동작방법

Also Published As

Publication number Publication date
US20240112035A1 (en) 2024-04-04
US20210209339A1 (en) 2021-07-08
WO2020042169A1 (en) 2020-03-05
US11880770B2 (en) 2024-01-23

Similar Documents

Publication Publication Date Title
DE112018007730T5 (de) 3d objekterkennung unter verwendung von 3d konvolutionalen neuronalen netzen mit tiefenbasierten multiskalierungsfiltern
DE112018002228B4 (de) Konfigurierbare faltungsmaschine für verschachtelte kanaldaten
DE102020123304A1 (de) Tiefes lernen für engmaschige semantische segmentierung in video mit automatisierter interaktivität und verbesserter zeitlicher kohärenz
DE102020129800A1 (de) Interaktive segmentierung mit hoher wiedergabetreue für videodaten mit tief faltenden tessellationen und kontextsensitiven skip-verbindungen
EP4109392A1 (de) Bildverarbeitungsverfahren und bildverarbeitungsvorrichtung
DE102020125197A1 (de) Feinkörnige objektsegmentierung in video mit tiefen merkmalen und graphischen mehrebenenmodellen
US9727775B2 (en) Method and system of curved object recognition using image matching for image processing
WO2021018163A1 (zh) 神经网络的搜索方法及装置
DE102011078662B4 (de) Erfassen und Erzeugen von Bildern mit hohem Dynamikbereich
DE102019216136A1 (de) Verfahren und system zur 3d-rekonstruktion mit volumenbasierter filterung zur bildverarbeitung
DE102019213184A1 (de) Verfahren und system zum automatischen weissabgleich auf basis von tiefem lernen
DE102021118479A1 (de) Einbetten von komplexen 3d-objekten in eine erweiterte realitätsszene unter verwendung einer bildsegmentierung
DE102020202059A1 (de) Mehrdurchgangs-zusatzwerkzeug zur kohärenten und vollständigen ansichtssynthese
CN109816612A (zh) 图像增强方法和装置、计算机可读存储介质
DE102018130086A1 (de) Mehrkameraprozessor mit merkmalsabgleich
US20210279887A1 (en) Method and system for performing image segmentation
CN111402170A (zh) 图像增强方法、装置、终端及计算机可读存储介质
CN112602088B (zh) 提高弱光图像的质量的方法、系统和计算机可读介质
DE112019007677T5 (de) Posenvorhersageverfahren, Modelltrainingsverfahren und Vorrichtung
DE112016005809T5 (de) Lichtfeld-Rendering eines Bildes unter Verwendung variabler Rechenkomplexität
CN111951195A (zh) 图像增强方法及装置
DE112016005482T5 (de) Objektdetektion mit adaptiven Kanalmerkmalen
CN114627034A (zh) 一种图像增强方法、图像增强模型的训练方法及相关设备
DE102021119882A1 (de) Videohintergrundschätzung unter verwendung von räumlich-zeitlichen modellen
DE102020200310A1 (de) Verfahren und System zur Dunstreduzierung für die Bildverarbeitung

Legal Events

Date Code Title Description
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06K0009620000

Ipc: G06V0030190000