DE202018000408U1 - Face detection, pose estimation, and estimation of a distance from a camera using a single network - Google Patents

Face detection, pose estimation, and estimation of a distance from a camera using a single network Download PDF

Info

Publication number
DE202018000408U1
DE202018000408U1 DE202018000408.1U DE202018000408U DE202018000408U1 DE 202018000408 U1 DE202018000408 U1 DE 202018000408U1 DE 202018000408 U DE202018000408 U DE 202018000408U DE 202018000408 U1 DE202018000408 U1 DE 202018000408U1
Authority
DE
Germany
Prior art keywords
face
region
image
camera
distance
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.)
Active
Application number
DE202018000408.1U
Other languages
German (de)
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.)
Apple Inc
Original Assignee
Apple Inc
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 Apple Inc filed Critical Apple Inc
Priority to DE202018000408.1U priority Critical patent/DE202018000408U1/en
Publication of DE202018000408U1 publication Critical patent/DE202018000408U1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/16Human faces, e.g. facial parts, sketches or expressions
    • G06V40/161Detection; Localisation; Normalisation
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Health & Medical Sciences (AREA)
  • Multimedia (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Software Systems (AREA)
  • Medical Informatics (AREA)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • Oral & Maxillofacial Surgery (AREA)
  • Human Computer Interaction (AREA)
  • Image Analysis (AREA)

Abstract

Vorrichtung, umfassend:- Mittel zum Aufnehmen von mindestens einem Bild unter Verwendung einer Kamera, welche auf einer Vorrichtung angeordnet ist, wobei die Vorrichtung einen Computerprozessor und einen Speicher umfasst, wobei das mindestens eine Bild ein Bild umfasst, welches aufgenommen wurde während Subjekte in dem Bild mit einer Beleuchtung, die auf der Vorrichtung angeordnet ist, beleuchtet wurden;- Mittel zum Kodieren, unter Verwendung eines Kodierungsmoduls, das auf der Vorrichtung angeordnet ist, des mindestens einen Bildes um Merkmalsvektoren zu erzeugen, welche Merkmale von Subjekten in dem Bild in einem Merkmalsraum definieren, wobei der Merkmalsraum eine Vielzahl von Regionen umfasst, wobei jeder Merkmalsvektor Merkmale für eine Region in dem Merkmalsraum definiert;- Mittel zum Beurteilen der erzeugten Merkmalsvektoren für jede Region in dem Merkmalsraum unter Verwendung des Computerprozessors, um zu bestimmen ob ein Gesicht in der Region präsent ist;- wobei, falls das Gesicht bestimmt ist in der Region zu sein, eine oder mehrere Eigenschaften von dem Gesicht in der Region beurteilt werden, wobei mindestens eine von den Eigenschaften ein Abstand von der Kamera von dem Gesicht in der Region ist; und- Mittel zum Bereitstellen einer Ausgabe von dem Computerprozessor, falls das Gesicht in der Region präsent ist, wobei die Ausgabe aufweist, einen Hinweis, dass das Gesicht in der Region präsent ist, die beurteilte Position von dem Gesicht relativ zu der Mitte der Region, die beurteilte Pose von dem Gesicht in der Region, und der beurteilte Abstand von der Kamera von dem Gesicht in der Region.An apparatus comprising: - means for capturing at least one image using a camera disposed on a device, the apparatus comprising a computer processor and a memory, the at least one image comprising an image taken while subjects in the Image with illumination positioned on the device; - means for encoding, using a coding module disposed on the device, to generate the at least one image by feature vectors, which include features of subjects in the image in one image Defining feature space, wherein the feature space comprises a plurality of regions, each feature vector defining features for a region in the feature space; means for evaluating the generated feature vectors for each region in the feature space using the computer processor to determine if a face in the feature space Region is present; - where, if that Face is determined to be in the region, one or more properties of the face in the region are assessed, wherein at least one of the properties is a distance from the camera of the face in the region; and means for providing an output from the computer processor if the face is present in the region, the output comprising an indication that the face is present in the region, the judged position of the face relative to the center of the region, the judged pose of the face in the region, and the judged distance from the camera from the face in the region.

Description

HINTERGRUNDBACKGROUND

Technisches GebietTechnical area

Ausführungsformen, die hierin beschrieben sind, beziehen sich auf Systeme für Gesichtserfassung in Bildern, welche durch eine Kamera auf einer Vorrichtung aufgenommen wurden. Insbesondere beziehen sich Ausführungsformen, die hierin beschrieben sind, auf die Verwendung von neuralen Netzwerken zum Erkennen von Gesichtern in aufgenommenen Bildern.Embodiments described herein relate to face detection systems in images captured by a camera on a device. In particular, embodiments described herein relate to the use of neural networks to recognize faces in captured images.

Beschreibung des verwandten Stands der TechnikDescription of the Related Art

Gesichtserkennungsprozesse können im Allgemeinen verwendet werden um Individuen in einem Bild zu identifizieren. Gesichtserfassung kann verwendet werden um Gesichter in einem Bild zur Verwendung in dem Gesichtserkennungsprozess zu erfassen. Kopfpose wird oft zusätzlich zur Gesichtserfassung abgeschätzt. Der traditionelle Ansatz um sowohl Gesichtserfassung als auch Posenabschätzung zu erreichen, ist ein Gesicht zu identifizieren (erfassen) und einen Begrenzungsrahmen um das Gesicht zu setzen und, nachdem der Begrenzungsrahmen identifiziert ist, auf dem Gesicht in dem Begrenzungsrahmen zu operieren um eine Posenabschätzung zu bestimmen.Face recognition processes can generally be used to identify individuals in an image. Face detection can be used to capture faces in an image for use in the face recognition process. Head pose is often estimated in addition to face detection. The traditional approach to achieving both face detection and pose estimation is to identify a face and place a bounding box around the face and, after the bounding frame is identified, to operate on the face in the bounding box to determine a pose estimate.

ZUSAMMENFASSUNGSUMMARY

Ein einzelnes Netzwerk auf einer Vorrichtung wird verwendet um Bilder zu kodieren und zu dekodieren, welche unter Verwendung einer Kamera auf der Vorrichtung (zum Beispiel eine mobile Vorrichtung oder Computersystem) aufgenommen wurden. Das Netzwerk kann beurteilen ob ein Gesicht in den Bildern ist und, falls ein Gesicht erkannt wurde, die Position von dem Gesicht, die Pose von dem Gesicht, und Abstand von dem Gesicht von der Kamera beurteilen. Die Kamera nimmt Infrarotbilder von Benutzern, welche entweder mit Flut-Infrarotbeleuchtung oder mit Speckle (Punkt) Muster Infrarotbeleuchtung beleuchtet wurden, auf. Das einzelne Netzwerk kann ein Kodierungsmodul, welches verwendet wird um Merkmalsvektoren von dem Bild in einem Merkmalsraum zu erzeugen, und ein Dekodierungsmodul, welches verwendet wird um die Merkmalsvektoren zu dekodieren (klassifizieren), um zu Bestimmen ob ein Gesicht in irgendeiner von den Regionen erkannt ist und um die zusätzlichen Eigenschaften von dem erkannten Gesicht zu beurteilen, einschließen.A single network on a device is used to encode and decode images taken using a camera on the device (eg, a mobile device or computer system). The network can judge whether there is a face in the images and, if a face has been detected, judge the position of the face, the pose of the face, and the distance from the face of the camera. The camera captures infrared images of users who have been illuminated with either flood-infrared lighting or speckle pattern infrared lighting. The single network may include a coding module used to generate feature vectors from the image in a feature space and a decoding module used to decode (classify) the feature vectors to determine if a face is recognized in any of the regions and to assess the additional characteristics of the recognized face.

Figurenlistelist of figures

Merkmale und Vorteile der Vorrichtungen von den Ausführungsformen, welche in dieser Offenlegung beschrieben sind, werden erst unter Bezugnahme auf die folgende detaillierte Beschreibung von gegenwärtig bevorzugten, aber nichtsdestotrotz anschaulichen Ausführungsformen im Einklang mit den Ausführungsformen, welche in dieser Offenlegung beschrieben sind, voll wahrgenommen, wenn sie im Zusammenhang mit den beigefügten Zeichnungen berücksichtigt werden, in welchen:

  • 1 eine Darstellung von einer Ausführungsform von einer Vorrichtung zeigt, welche eine Kamera einschließt.
  • 2 eine Darstellung von einer Ausführungsform von einer Kamera zeigt.
  • 3 eine Darstellung von einer Ausführungsform von einem Prozessor auf einer Vorrichtung zeigt.
  • 4 eine Darstellung von einer Ausführungsform von einem neuralen Netzwerkmodul zeigt.
  • 5 ein Flussdiagramm für eine Ausführungsform von einem Trainingsprozess für ein neurales Netzwerkmodul zeigt.
  • 6 eine Darstellung von einer Ausführungsform von einem Prozessor mit einem neuralen Netzwerkmodul zeigt.
  • 7 ein Beispiel von einer Ausführungsform von einem Merkmalsraum mit Regionen zeigt.
  • 8 ein Flussdiagramm für eine Ausführungsform von einem Testprozess für ein neurales Netzwerkmodul zeigt.
  • 9 ein Flussdiagramm für eine Ausführungsform von einem Gesichtserfassungsprozess, welcher durch Verwendung eines neuralen Netzwerkmoduls auf einer Vorrichtung implementiert ist, zeigt.
  • 10 ein Flussdiagramm für eine Ausführungsform von einem Abstandsmessungsanpassungsprozess zeigt.
  • 11 ein Beispiel von einem Abstand zeigt, welcher von Flut-IR Beleuchtungsbildern bestimmt wird, welche während eines Anmeldevorgangs aufgenommen wurden (y-Achse), gegen Abstand, welcher von entsprechenden Tiefenmap Bildern bestimmt wird, welche während des Anmeldevorgangs aufgenommen wurden (x-Achse).
  • 12 ein Beispiel von einem Abstand zeigt, welcher von Flut-IR Beleuchtungsbildern bestimmt wird, welche während eines Anmeldevorgangs aufgenommen wurden (y-Achse), gegen Abstand, welcher von entsprechenden Tiefenmap Bildern bestimmt wird, welche während des Anmeldevorgangs aufgenommen wurden (x-Achse), wobei eine Kalibrierungsgleichung nicht gewünscht sein kann.
  • 13 ein Blockdiagramm von einer Ausführungsform von einem beispielhaften Computersystem zeigt.
  • 14 ein Blockdiagramm von einer Ausführungsform von einem computerzugänglichen Speichermedium zeigt.
Features and advantages of the devices of the embodiments described in this disclosure will be fully appreciated only with reference to the following detailed description of presently preferred, but nonetheless illustrative embodiments, in accordance with the embodiments described in this disclosure they are considered in conjunction with the attached drawings, in which:
  • 1 shows an illustration of an embodiment of a device that includes a camera.
  • 2 a representation of an embodiment of a camera shows.
  • 3 shows an illustration of an embodiment of a processor on a device.
  • 4 shows an illustration of one embodiment of a neural network module.
  • 5 FIG. 10 shows a flowchart for one embodiment of a training process for a neural network module. FIG.
  • 6 shows an illustration of an embodiment of a processor with a neural network module.
  • 7 shows an example of one embodiment of a feature space with regions.
  • 8th FIG. 10 shows a flow chart for one embodiment of a neural network module testing process. FIG.
  • 9 a flow chart for an embodiment of a face detection process, which is implemented by using a neural network module on a device shows.
  • 10 FIG. 10 shows a flowchart for one embodiment of a distance measurement adjustment process. FIG.
  • 11 shows an example of a distance determined by flood IR illumination images taken during a logon process (y axis) versus distance determined by corresponding depth map images taken during the logon process (x axis) ,
  • 12 shows an example of a distance determined by flood IR illumination images taken during a logon process (y axis) versus distance determined by corresponding depth map images taken during the logon process (x axis) where a calibration equation may not be desired.
  • 13 a block diagram of one embodiment of an exemplary computer system shows.
  • 14 shows a block diagram of one embodiment of a computer-accessible storage medium.

Während Ausführungsformen, die in dieser Offenlegung beschrieben sind, für diverse Modifikationen und alternative Formen empfänglich sein können, sind spezifische Ausführungsformen davon als Beispiele in den Zeichnungen gezeigt und werden hierin im Detail beschrieben. Es sollte jedoch verstanden werden, dass die Zeichnungen und detaillierte Beschreibung dazu nicht die Ausführungsformen zu der bestimmten Form, die offenbart ist, einschränken sollen, sondern im Gegenteil sollen alle Modifikationen, Äquivalente und Alternativen im Geiste und im Umfang der angehangenen Ansprüche abgedeckt sein. Die Überschriften, die hierin verwendet werden, sind nur für organisatorische Zwecke und sollen nicht verwendet werden um den Umfang der Beschreibung einzuschränken. Wie durchgehend in dieser Anmeldung verwendet, ist das Wort „kann“ in einem permissiven Sinne verwendet (d.h., bedeutend das Potenzial zu haben), anstatt in einem obligatorischen Sinne (d.h., bedeutend ein Muss). Ebenso, bedeuten die Wörter „einschließen“, „einschließend“, und „schließt ein“ einschließend, aber nicht darauf beschränkt.While embodiments described in this disclosure may be susceptible to various modifications and alternative forms, specific embodiments thereof are shown by way of example in the drawings and will be described in detail herein. It should be understood, however, that the drawings and detailed description thereof are not intended to limit the embodiments to the particular form disclosed, but on the contrary, all modifications, equivalents, and alternatives are intended to be included within the spirit and scope of the appended claims. The headings used herein are for organizational purposes only and should not be used to limit the scope of the description. As used throughout this application, the word "may" is used in a permissive sense (i.e., meaningful to have the potential) rather than in a mandatory sense (i.e., a must). Likewise, the words "include", "include" and "include" include, but are not limited to.

Diverse Einheiten, Schaltungen, oder andere Komponenten können als „konfiguriert zum“ Durchführen einer Aufgabe oder von Aufgaben beschrieben sein. In solchen Kontexten, ist „konfiguriert zum“ eine breite Rezitation von Struktur, welche generell „Schaltkreisanordnung aufweisend, welche“ die Aufgabe oder die Aufgaben während des Betriebs durchführt, bedeutet. Als solches, können die Einheit/Schaltung/Komponente konfiguriert sein die Aufgabe durchzuführen, selbst wenn die Einheit/Schaltung/Komponente gegenwärtig nicht eingeschaltet ist. Generell kann die Schaltung, welche die Struktur bildet, entsprechend dem „konfiguriert zum“, Hardwareschaltungen und/oder Speicher einschließen, welcher Programminstruktionen speichert, die ausführbar sind um den Betrieb umzusetzen. Der Speicher kann flüchtigen Speicher, wie zum Beispiel statischen oder dynamischen Speicher mit wahlweisem Zugriff und/oder nichtflüchtigen Speicher, wie zum Beispiel optischen oder magnetischen Festplattenspeicher, Flash Speicher, programmierbaren Nur-Lese-Speicher, usw. einschließen. Die Hardwareschaltungen können irgendeine Kombination von kombinatorischen Logikschaltungen, getakteten Speichervorrichtungen, wie zum Beispiel Flops, Register, Zwischenspeicher, usw., endliche Automaten, Speicher, wie zum Beispiel statischen Speicher mit wahlweisem Zugriff oder eingebetteten dynamischen Speicher mit wahlweisem Zugriff, individuell entworfene Schaltungen, programmierbare logische Felder, usw. einschließen. Ebenso können diverse Einheiten/Schaltungen/Komponenten als eine Aufgabe oder Aufgaben durchführend beschrieben werden, zweckmäßigerweise in der Beschreibung. Solche Beschreibungen sollten als den Ausdruck „konfiguriert zum“ einschließend interpretiert werden. Rezitieren einer Einheit/Schaltung/Komponente, welche konfiguriert ist zum Durchführen einer oder mehrerer Aufgaben, ist ausdrücklich nicht bestimmt 35 U.S.C. § 112(f) Interpretation für diese Einheit/Schaltung/Komponente geltend zu machen.Various units, circuits, or other components may be described as "configured to perform a task or tasks. In such contexts, "configured for" is a broad recitation of structure, which generally means "having circuitry that performs the task or tasks during operation. As such, the unit / circuit / component may be configured to perform the task even if the unit / circuit / component is not currently powered up. In general, the circuit that forms the structure may include "configured for" hardware circuits and / or memory that stores program instructions that are executable to implement the operation. The memory may include volatile memory, such as static or dynamic random access memory and / or nonvolatile memory, such as optical or magnetic hard disk memory, flash memory, programmable read only memory, and so on. The hardware circuits may be any combination of combinational logic circuits, clocked memory devices such as flops, registers, latches, etc., finite state machines, memory such as static random access memory or embedded random access dynamic memory, custom designed circuits, programmable memory include logical fields, etc. Likewise, various units / circuits / components may be described as performing a task or tasks, conveniently in the specification. Such descriptions should be interpreted as including the term "configured for". Reciting a unit / circuit / component configured to perform one or more tasks is expressly not intended. 35 U.S.C. § 112 (f) to assert interpretation for this unit / circuit / component.

In einer Ausführungsform können Hardwareschaltungen im Einklang mit dieser Offenbarung implementiert werden indem die Beschreibung der Schaltung in einer Hardwarebeschreibungssprache (hardware description language, HDL) wie Verilog oder VHDL kodiert wird. Die HDL-Beschreibung kann gegen eine Bibliothek von Zellen synthetisiert sein, welche für eine gegebene integrierte Schaltungsherstellungstechnologie konstruiert wurden, und können für Takten, Leistung, und andere Gründe modifiziert werden um in einer finalen Designdatenbank zu resultieren, welche an eine Fertigungsanlage übertragen werden können um Masken zu erzeugen und letztendlich die integrierte Schaltung zu produzieren. Manche Hardwareschaltungen oder Teile davon können auch in einem Schaltplaneditor maßgeschneidert werden und in den integrierten Schaltungsentwurf zusammen mit synthetisierter Schaltung aufgenommen werden. Die integrierten Schaltungen können Transistoren einschließen und können ferner andere Schaltungselemente einschließen (zum Beispiel passive Elemente wie Kondensatoren, Widerstände, Induktivitäten, usw.) und zwischen den Transistoren und Schaltungselementen zusammenschalten. Manche Ausführungsformen können mehrere integrierte Schaltungen implementieren, welche zusammengekoppelt sind um die Hardwareschaltungen zu implementieren, und/oder diskrete Elemente können in manchen Ausführungsformen verwendet werden.In one embodiment, hardware circuits may be implemented in accordance with this disclosure by encoding the description of the circuit in a hardware description language (HDL) such as Verilog or VHDL. The HDL description may be synthesized against a library of cells constructed for a given integrated circuit manufacturing technology and may be modified for clocks, performance, and other reasons to result in a final design database that can be transferred to a manufacturing facility Create masks and ultimately produce the integrated circuit. Some hardware circuits or parts thereof may also be tailored in a schematic editor and incorporated into the integrated circuit design along with synthesized circuitry. The integrated circuits may include transistors and may further include other circuit elements (eg, passive elements such as capacitors, resistors, inductors, etc.) and interconnect between the transistors and circuit elements. Some embodiments may implement multiple integrated circuits coupled together to implement the hardware circuits, and / or discrete elements may be used in some embodiments.

Der Umfang der vorliegenden Offenlegung schließt jedes Merkmal oder Kombination von Merkmalen, welche hierin offenbart sind (entweder explizit oder implizit), oder jede Verallgemeinerung davon ein, unbeachtet dessen ob es eines oder alle der Probleme löst, welche hierin adressiert sind. Dementsprechend können neue Ansprüche während der Rechtsverfolgung dieser Anmeldung formuliert werden (oder bei jeder Anmeldung, welche diese als Priorität beansprucht), entsprechend irgendeiner solchen Kombination von Merkmalen. Insbesondere, mit Bezug auf die angehängten Ansprüche, können Merkmale aus abhängigen Ansprüchen mit denen der unabhängigen Ansprüche kombiniert werden und Merkmale von jeweiligen unabhängigen Ansprüchen können in jeder angemessenen Art und Weise kombiniert werden und nicht nur in der spezifischen Kombination, wie sie in den angehängten Ansprüchen aufgezählt sind.The scope of the present disclosure includes any feature or combination of features disclosed herein (either explicit or implicit), or any generalization thereof, regardless of whether it solves any or all of the problems addressed herein. Accordingly, new claims may be formulated during the prosecution of this application (or any application claiming them as a priority) corresponding to any such combination of features. In particular, with reference to the appended claims, features of the dependent claims may be combined with those of the independent claims, and features of respective independent claims may be combined in any appropriate manner and not only in the appended claims specific combination as enumerated in the appended claims.

DETAILLIERTE BESCHREIBUNG DER AUSFÜHRUNGSFORMENDETAILED DESCRIPTION OF THE EMBODIMENTS

Die Beschreibung schließt Referenzen auf „eine Ausführungsform“ ein. Die Erscheinungen der Phrasen „in einer Ausführungsform“ müssen sich nicht zwangsläufiger Weise auf dieselbe Ausführungsform beziehen, obwohl Ausführungsformen, welche irgendeine Kombination der Merkmale einschließen, generell vorgesehen sind, es sei denn es wird hierin ausdrücklich abgelehnt. Spezielle Merkmale, Strukturen, oder Charakteristiken können in jeder angemessenen Art und Weise kombiniert werden, die mit dieser Offenbarung im Einklang steht.The description includes references to "one embodiment". The appearances of the phrases "in one embodiment" are not necessarily related to the same embodiment, although embodiments incorporating any combination of the features are generally intended unless expressly disclaimed herein. Special features, structures, or characteristics may be combined in any reasonable manner consistent with this disclosure.

Die vorliegende Offenbarung sieht ferner vor, dass die Entitäten, welche für die Sammlung, die Analyse, die Offenbarung, den Transfer, die Speicherung, oder andere Nutzung von solchen persönlichen Informationsdaten verantwortlich sind, den etablierten Datenschutzrichtlinien und/oder dem Datenschutz genügen. Insbesondere sollten solche Entitäten Datenschutzrichtlinien und Datenschutz implementieren und einheitlich verwenden, welche generell die industriellen oder gesetzlichen Anforderungen einhalten oder übertreffen um persönliche Informationsdaten privat und sicher zu erhalten. Zum Beispiel, in dem Fall des Entsperrens und/oder Autorisierung von Vorrichtungen unter Verwendung von Gesichtserkennung, sollten persönliche Informationen von den Benutzern für legitime und vernünftige Verwendungen von der Entität gesammelt werden, und nicht außerhalb dieser legitimen Verwendungen geteilt oder verkauft werden. Ferner sollte solche Sammlung nur vorkommen, nachdem die bewusste Zustimmung des Benutzers erhalten wurde. Zusätzlich würden solche Entitäten alle notwendigen Schritte zum Absichern und Schützen des Zugriffs auf solche persönlichen Informationsdaten vornehmen und sicherstellen, dass andere mit Zugriff auf die persönlichen Informationsdaten die Datenschutzrichtlinien und Prozeduren einhalten. Ferner können sich solche Entitäten selbst der Evaluierung durch Dritte aussetzen um ihr Einhalten der allgemein akzeptierten Datenschutzrichtlinien und des Datenschutzes zu zertifizieren.The present disclosure further contemplates that the entities responsible for collecting, analyzing, disclosing, transferring, storing, or otherwise using such personal informational information comply with established privacy policies and / or privacy. In particular, such entities should implement and consistently use privacy policies and privacy policies that generally comply with or exceed industry or legal requirements to keep personal information private and secure. For example, in the case of unlocking and / or authorizing devices using face recognition, personal information from the users should be collected for legitimate and reasonable uses by the entity, and not shared or sold outside of these legitimate uses. Further, such collection should occur only after the user's conscious consent has been obtained. In addition, such entities would take all necessary steps to secure and protect access to such personal informational information and to ensure that others with access to the personal informational information comply with privacy policies and procedures. Further, such entities may themselves suspend third party evaluation to certify their compliance with generally accepted privacy policies and data protection.

Trotz des Vorangegangenen sieht die vorliegende Offenbarung auch Ausführungsformen vor in welchen die Benutzer die Verwendung von, oder den Zugriff auf, persönliche Informationsdaten wahlweise blockieren können. D. h. die vorliegende Offenbarung sieht vor, dass Hardware und/oder Softwareelemente bereitgestellt werden können um Zugriff auf solche persönlichen Informationsdaten zu verhindern oder zu blockieren. Zum Beispiel kann die vorliegende Technologie konfiguriert sein um es Benutzern zu ermöglichen auszuwählen ob an der Sammlung von persönlichen Informationsdaten während der Registrierung für Dienste teilgenommen werden sollte („opt in“), oder ob nicht („opt out“).Notwithstanding the foregoing, the present disclosure also contemplates embodiments in which users may selectively block the use of, or access to, personal information data. Ie. the present disclosure provides that hardware and / or software elements may be provided to prevent or block access to such personal information data. For example, the present technology may be configured to allow users to select whether to participate in the collection of personal information data during the registration for services ("opt in") or not ("opt out").

1 veranschaulicht eine Darstellung einer Ausführungsform von einer Vorrichtung, welche eine Kamera einschließt. In gewissen Ausführungsformen schließt die Vorrichtung 100 die Kamera 102, den Prozessor 104, den Speicher 106, und die Anzeige 108 ein. Die Vorrichtung 100 kann eine kleine Rechenvorrichtung sein, welche in einigen Fällen klein genug ist um in der Hand gehalten zu werden (und somit auch allgemein als ein handgeführter Computer oder ein Taschencomputer bekannt ist). In gewissen Ausführungsformen ist Vorrichtung 100 irgendeine von verschiedenen Typen von Computersystemvorrichtungen, welche mobil oder tragbar sind und welche drahtlose Kommunikationen unter Verwendung von WLAN Kommunikation durchführen (zum Beispiel ein „Mobilgerät“). Beispiele von tragbaren Vorrichtungen schließen Mobiltelefone oder Smartphones und Tabletcomputer ein. Verschiedene andere Typen von Vorrichtungen können in diese Kategorie fallen, falls sie drahtlose oder funkbasierte Kommunikationsmöglichkeiten (zum Beispiel WiFi, zellular und/oder Bluetooth) einschließen, wie zum Beispiel Laptop Computer, tragbare Spielvorrichtungen, tragbare Internetvorrichtungen, und oder andere in der Hand gehaltene Vorrichtungen, als auch am Körper tragbare Vorrichtungen wie zum Beispiel intelligente Uhren, intelligente Brillen, Kopfhörer, Anhänger, Ohrhörer, usw. Im Allgemeinen kann der Begriff „mobile Vorrichtung“ weit definiert sein um jede elektronische, Rechen-, und/oder Telekommunikationsvorrichtung (oder Kombinationen von Vorrichtungen) zu umfassen, welche einfach durch einen Benutzer transportiert werden kann und zur drahtlosen Kommunikation unter Verwendung von, zum Beispiel, WLAN, WiFi, zellular, und/oder Bluetooth in der Lage ist. In gewissen Ausführungsformen schließt Vorrichtung 100 jede Vorrichtung ein, die durch einen Benutzer verwendet wird und einen Prozessor 104, Speicher 106, und Anzeige 108 aufweist. Anzeige 108 kann zum Beispiel ein LCD Bildschirm oder ein Berührungsbildschirm sein. In manchen Ausführungsformen schließt Anzeige 108 eine Benutzereingabeschnittstelle für Vorrichtung 100 ein (zum Beispiel ermöglicht die Anzeige dem Benutzer interaktive Eingabe). 1 FIG. 12 illustrates an illustration of an embodiment of a device that includes a camera. FIG. In certain embodiments, the device includes 100 the camera 102 , the processor 104 , the memory 106 , and the ad 108 one. The device 100 may be a small computing device, which in some cases is small enough to be held in the hand (and thus also commonly known as a hand-held computer or a pocket computer). In certain embodiments, the device is 100 any of various types of computer system devices that are mobile or portable and that perform wireless communications using WLAN communication (eg, a "mobile device"). Examples of portable devices include mobile phones or smartphones and tablet computers. Various other types of devices may fall into this category if they include wireless or wireless communication capabilities (e.g., WiFi, cellular, and / or Bluetooth), such as laptop computers, portable gaming devices, wearable Internet devices, and or other hand-held devices As well as body-wearable devices such as smart watches, smart glasses, headphones, tags, earphones, etc. In general, the term "mobile device" may be broadly defined to include any electronic, computing, and / or telecommunications device (or combinations of devices) which can be easily transported by a user and is capable of wireless communication using, for example, WLAN, WiFi, cellular, and / or Bluetooth. In certain embodiments, device includes 100 any device used by a user and a processor 104 , Storage 106 , and display 108 having. display 108 For example, it may be an LCD screen or a touch screen. In some embodiments, advertisements will close 108 a user input interface for device 100 (for example, the display allows the user interactive input).

Kamera 102 kann verwendet werden um Bilder von der externen Umgebung der Vorrichtung 100 aufzunehmen. In gewissen Ausführungsformen ist Kamera 102 positioniert um Bilder vor der Anzeige 108 aufzunehmen. Kamera 102 kann positioniert sein um Bilder von dem Benutzer aufzunehmen (zum Beispiel das Gesicht des Benutzers) während der Benutzer mit der Anzeige 108 interagiert. 2 veranschaulicht eine Darstellung von einer Ausführungsform der Kamera 102. In gewissen Ausführungsformen schließt Kamera 102 eine oder mehrere Linsen und einen oder mehrere Bildsensoren 103 zum Aufnehmen digitaler Bilder ein. Digitale Bilder, die durch Kamera 102 aufgenommen wurden, können beispielsweise Standbilder, bewegte Bilder, und/oder Rahmen-nach-Rahmen Bilder einschließen.camera 102 Can be used to take pictures of the external environment of the device 100 take. In certain embodiments, camera is 102 positioned around pictures in front of the display 108 take. camera 102 may be positioned to capture images of the user (e.g., the user's face) while the user is viewing the ad 108 interacts. 2 illustrates a representation of one Embodiment of the camera 102 , In certain embodiments, camera closes 102 one or more lenses and one or more image sensors 103 to record digital pictures. Digital pictures taken by camera 102 For example, still images, moving images, and / or frame-by-frame may include images.

In gewissen Ausführungsformen schließt Kamera 102 Bildsensor 103 ein. Bildsensor 103 kann beispielsweise eine Anordnung von Sensoren sein. Sensoren in der Sensoranordnung können ladungsträgergekoppelte Bauelemente (charge coupled device, CCD) und/oder Metalloxid Halbleiter (complementary metal oxide semiconductor, CMOS) Sensorelemente einschließen, aber sind nicht darauf beschränkt, um Infrarotbilder (infrared, IR) oder andere nicht sichtbare elektromagnetische Strahlung aufzunehmen. In manchen Ausführungsformen schließt Kamera 102 mehr als einen Bildsensor ein um mehrere Typen von Bildern aufzunehmen. Zum Beispiel kann Kamera 102 sowohl IR Sensoren als auch RGB (rot grün blau, RGB) Sensoren einschließen. In gewissen Ausführungsformen schließt Kamera 102 Beleuchtungen 105 zum Beleuchten von Oberflächen (oder Subjekten) mit verschiedenen Typen von Licht, welches durch den Bildsensor 103 detektiert wird, ein. Zum Beispiel kann Kamera 102 eine Beleuchtung für sichtbares Licht einschließen (zum Beispiel eine „Blitzbeleuchtung“) und/oder Beleuchtungen für Infrarotlicht (zum Beispiel eine IR-Flut-Quelle und ein Speckle Musterprojektor). In manchen Ausführungsformen haben die IR-Flut-Quelle und der Speckle Musterprojektor andere Wellenlängen von Licht (zum Beispiel nicht Infrarot). In gewissen Ausführungsformen schließen Beleuchtungen 105 eine Anordnung von Lichtquellen wie zum Beispiel VCSELs (vertical-cavity surface-emitting lasers, oberflächenemittierende Laserdioden) ein, sind aber nicht darauf beschränkt. In manchen Ausführungsformen sind Bildsensoren 103 und Beleuchtungen 105 in einem einzelnen Chipgehäuse enthalten. In manchen Ausführungsformen sind Bildsensoren 103 und Beleuchtungen 105 auf separaten Chipgehäusen untergebracht.In certain embodiments, camera closes 102 image sensor 103 one. Image sensor 103 may be, for example, an array of sensors. Sensors in the sensor array may include charge coupled device (CCD) and / or metal oxide semiconductor (CMOS) sensor elements, but are not limited to receiving infrared (IR, IR) or other non-visible electromagnetic radiation , In some embodiments, camera closes 102 more than one image sensor to capture multiple types of images. For example, camera can 102 Both IR sensors and RGB (red green blue, RGB) include sensors. In certain embodiments, camera closes 102 lightings 105 for illuminating surfaces (or subjects) with different types of light transmitted through the image sensor 103 is detected, a. For example, camera can 102 include visible light illumination (eg, "flash illumination") and / or infrared light illumination (eg, an IR flood source and a speckle pattern projector). In some embodiments, the IR flood source and the speckle pattern projector have different wavelengths of light (for example, not infrared). In certain embodiments, lights close 105 an array of light sources such as, but not limited to, VCSELs (vertical-cavity surface-emitting lasers). In some embodiments, image sensors are 103 and lights 105 contained in a single chip package. In some embodiments, image sensors are 103 and lights 105 housed on separate chip housings.

In gewissen Ausführungsformen ist Bildsensor 103 ein IR Bildsensor, welcher zum Aufnehmen von Infrarotbildern verwendet wird, welche für Gesichtserfassung und/oder Tiefenerkennung verwendet werden. Zur Gesichtserfassung kann Beleuchtung 105A IR-Flutbeleuchtung bereitstellen um das Subjekt mit IR Beleuchtung zu fluten (zum Beispiel ein IR Blitzlicht) und Bildsensor 103 kann Bilder von dem IRflutbeleuchteten Subjekt aufnehmen. IR-Flutbeleuchtungsbilder können zum Beispiel zweidimensionale Bilder von dem Subjekt sein, welches durch IR Licht leuchtet wird. Für Tiefenerkennung oder Erzeugen eines Tiefenmapbildes kann Beleuchtung 105B IR-Beleuchtung mit einem Speckle Muster bereitstellen. Das Speckle Muster kann ein Muster von Lichtpunkten (zum Beispiel ein Muster von Punkten) mit einer bekannten und steuerbaren Konfiguration und Muster sein, welches auf ein Subjekt projiziert wird. Beleuchtung 105B kann eine VCSEL Anordung einschließen, die konfiguriert ist das Speckle Muster auszubilden oder eine Lichtquelle und gemusterte Transparentfolie, konfiguriert zum Ausbilden des Speckle Musters. Die Konfiguration und das Muster des Speckle Musters, die von Beleuchtung 105B bereitgestellt werden, können zum Beispiel basierend auf einer gewünschten Speckle Musterdichte (zum Beispiel Punktdichte) auf dem Subjekt ausgewählt werden. Bildsensor 103 kann Bilder von dem Subjekt, welches durch das Speckle Muster beleuchtet wird, aufnehmen. Das aufgenommene Bild von dem Speckle Muster auf dem Subjekt kann durch ein Abbildungs- und Verarbeitungssystem (zum Beispiel ein Bildsignal Prozessor (image signal processor, ISP), wie hierin beschrieben) beurteilt werden (zum Beispiel kann es analysiert und/oder verarbeitet werden) um eine dreidimensionale Map von dem Subjekt zu produzieren oder zu schätzen (zum Beispiel eine Tiefenmap oder ein Tiefenmapbild von dem Subjekt). Beispiele von Tiefenmap Abbildung sind in U.S. Patent No. 8,150,142 von Freedman et al., U.S. Patent No. 8,749,796 von Pesach et al., und U.S. Patent No. 8,384,997 von Shpunt et al. beschrieben, welche hierin durch Bezugnahme eingeschlossen sind, als ob sie hierin vollständig dargelegt wären, als auch in U.S. Patentanmeldung mit der Veröffentlichungsnummer 2016/0178915 von Mor et al., auf die hierin Bezug genommen wird, als ob sie hierin vollständig dargelegt wäre. In gewissen Ausführungsformen können Bilder, welche durch Kamera 102 aufgenommen wurden, Bilder mit dem Gesicht des Benutzers einschließen (zum Beispiel ist das Gesicht des Benutzers in den Bildern enthalten). Ein Bild mit dem Gesicht des Benutzers kann jedes digitale Bild mit dem Gesicht des Benutzers innerhalb des Rahmens des Bildes angezeigt einschließen. Solch ein Bild kann lediglich das Gesicht des Benutzers einschließen, oder kann das Gesicht des Benutzers in einem kleineren Teil oder Bereich des Bildes einschließen. Das Gesicht des Benutzers kann mit ausreichender Auflösung in dem Bild aufgenommen werden um Bildverarbeitung von einem oder von mehreren Merkmalen von dem Gesicht des Benutzers in dem Bild zu ermöglichen.In certain embodiments, image sensor is 103 an IR image sensor used to capture infrared images used for face detection and / or depth detection. For face detection can be lighting 105A Provide IR flood lighting to flood the subject with IR lighting (for example an IR flash) and image sensor 103 can take pictures of the IR flood-lit subject. IR flood illumination images may be, for example, two-dimensional images of the subject illuminated by IR light. For depth detection or creating a Tiefenmapbildes lighting can 105B Provide IR lighting with a speckle pattern. The speckle pattern may be a pattern of spots of light (for example a pattern of dots) with a known and controllable configuration and pattern projected onto a subject. lighting 105B may include a VCSEL array configured to form the speckle pattern or a light source and patterned transparency configured to form the speckle pattern. The configuration and pattern of the speckle pattern made by lighting 105B may be selected based on a desired speckle pattern density (e.g., dot density) on the subject, for example. image sensor 103 can capture images of the subject illuminated by the speckle pattern. The captured image of the speckle pattern on the subject may be evaluated (eg, analyzed and / or processed) by an imaging and processing system (eg, an image signal processor (ISP) as described herein) to produce or estimate a three-dimensional map of the subject (for example, a depth map or a depth map image of the subject). Examples of depth map mapping are in US Pat. 8,150,142 by Freedman et al. US Pat. 8,749,796 by Pesach et al., and US Pat. 8,384,997 by Shpunt et al. which are incorporated herein by reference as if fully set forth herein, as well as in US Pat US Patent Application Publication No. 2016/0178915 by Mor et al., incorporated herein by reference, as if fully set forth herein. In certain embodiments, images taken by camera 102 include images with the user's face (for example, the user's face is included in the images). An image with the user's face may include any digital image with the user's face displayed within the frame of the image. Such an image may only include the user's face, or may include the user's face in a smaller portion or area of the image. The user's face may be captured in the image with sufficient resolution to allow image processing of one or more features of the user's face in the image.

Bilder, welche durch Kamera 102 aufgenommen wurden, können durch Prozessor 104 verarbeitet werden. 3 zeigt eine Darstellung von einer Ausführungsform von Prozessor 104, welche in Vorrichtung 100 eingeschlossen ist. Prozessor 104 kann Schaltungen einschließen, welche konfiguriert sind um Instruktionen auszuführen, welche in Befehlssatzarchitektur definiert sind, die durch den Prozessor implementiert ist. Prozessor 104 kann die Hauptsteuersoftware von Vorrichtung 100 ausführen, wie zum Beispiel ein Betriebssystem. Allgemein kann Software, welche durch Prozessor 104 während Verwendung ausgeführt wird, die anderen Komponenten von Vorrichtung 100 steuern um die gewünschte Funktionalität der Vorrichtung zu realisieren. Die Prozessoren können auch andere Software ausführen. Diese Anwendungen können Benutzerfunktionalität bereitstellen, und können von dem Betriebssystem für Vorrichtungssteuerung auf niedrigerer Ebene, Planung, Speicherverwaltung, usw. abhängig sein.Pictures taken by camera 102 can be recorded by processor 104 are processed. 3 shows a representation of an embodiment of processor 104 which in device 100 is included. processor 104 may include circuits configured to execute instructions defined in instruction set architecture implemented by the processor. processor 104 can the main control software of device 100 run, such as an operating system. General can Software, which by processor 104 while running, the other components of device 100 control to realize the desired functionality of the device. The processors can also run other software. These applications may provide user functionality and may be dependent on the operating system for lower level device control, scheduling, memory management, and so on.

In gewissen Ausführungsformen schließt Prozessor 104 Bildsignalprozessor (image signal processor, ISP) 110 ein. ISP 110 kann Schaltungen einschließen, welche für Verarbeitung von Bildern geeignet sind (zum Beispiel eine Bildsignalverarbeitungsschaltung), welche von Kamera 102 empfangen wurden. ISP 110 kann jede Hardware und/oder Software (zum Beispiel Programminstruktionen) einschließen, welche geeignet ist Bilder, welche durch Kamera 102 aufgenommen wurden, zu verarbeiten oder zu analysieren.In certain embodiments, processor includes 104 Image signal processor (ISP) 110. ISP 110 may include circuits which are suitable for processing images (for example, an image signal processing circuit), which are provided by the camera 102 were received. ISP 110 may include any hardware and / or software (e.g., program instructions) that is suitable for use by cameras 102 been recorded, processed or analyzed.

In gewissen Ausführungsformen schließt Prozessor 104 secure enclave Prozessor (SEP) 112 ein. In manchen Ausführungsformen ist SEP 112 in einem Gesichtserkennungsauthentifizierungsprozess beteiligt, welcher Bilder einbezieht, die durch Kamera 102 aufgenommen und durch ISP 110 verarbeitet wurden. SEP 112 kann eine sichere Schaltung sein, welche konfiguriert ist einen aktiven Benutzer als autorisiert Vorrichtung 100 zu verwenden zu authentifizieren (zum Beispiel der Benutzer, welcher derzeitig Vorrichtung 100 verwendet). Eine „sichere Schaltung“ kann eine Schaltung sein, welche eine isolierte interne Ressource vor direktem Zugriff durch eine externe Schaltung schützt. Die interne Ressource kann Speicher sein (zum Beispiel Speicher 106), welcher sensible Daten wie persönliche Informationen (zum Beispiel biometrische Informationen, Kreditkarteninformationen, usw.), Verschlüsselungsschlüssel, Zufallszahlgeneratorstartwerte usw. speichert. Die interne Ressource kann auch Schaltung sein, welche Dienste/Operationen, welche mit sensiblen Daten assoziiert sind, ausführt. Wie hierin beschrieben, kann SEP 112 jede Hardware und/oder Software (zum Beispiel Programminstruktionen) einschließen, welche dazu in der Lage sind einen Benutzer mithilfe des Gesichtserkennungsauthentifizierungsprozesses zu authentifizieren. Der Gesichtserkennungsauthentifizierungsprozess kann einen Benutzer authentifizieren indem Bilder von dem Benutzer mit Kamera 102 aufgenommen werden und die aufgenommenen Bilder mit früher gesammelten Bildern von einem autorisierten Benutzer für Vorrichtung 100 verglichen werden. In manchen Ausführungsformen können die Funktionen von ISP 110 und SEP 112 durch einen einzelnen Prozessor ausgeführt werden (zum Beispiel kann entweder ISP 110 oder SEP 112 beide Funktionalitäten ausführen und der andere Prozessor kann weggelassen werden).In certain embodiments, processor includes 104 secure enclave processor (SEP) 112. In some embodiments, SEP 112 involved in a face recognition authentication process involving images taken by camera 102 recorded and by ISP 110 were processed. September 112 may be a secure circuit that is configured to authorize an active user as an authorized device 100 to use to authenticate (for example, the user currently using the device 100 used). A "secure circuit" may be a circuit that protects an isolated internal resource from direct access by an external circuit. The internal resource can be memory (for example memory 106 ) which stores sensitive data such as personal information (for example, biometric information, credit card information, etc.), encryption keys, random number generator start values, and so on. The internal resource may also be circuitry that performs services / operations associated with sensitive data. As described herein, SEP 112 include any hardware and / or software (e.g., program instructions) that are capable of authenticating a user using the face recognition authentication process. The face recognition authentication process can authenticate a user by taking pictures of the user with the camera 102 and the captured images with previously collected images from an authorized user for device 100 be compared. In some embodiments, the functions of ISP 110 and SEP 112 be executed by a single processor (for example, either ISP 110 or SEP 112 perform both functions and the other processor can be omitted).

In gewissen Ausführungsformen führt Prozessor 104 einen Anmeldevorgang (zum Beispiel einen Bildanmeldevorgang oder einen Registrierungsvorgang) aus, um Bilder für einen autorisierten Benutzer von Vorrichtung 100 aufzunehmen und zu speichern (zum Beispiel die früher gesammelten Bilder). Während des Anmeldevorgangs kann Kameramodul 102 Bilder und/oder Bilddaten von einem autorisierten Benutzer aufnehmen (zum Beispiel sammeln) um anschließend den Benutzer mithilfe des Gesichtserkennungsauthentifizierungsprozesses zu authentifizieren. In manchen Ausführungsformen sind die Bilder und/oder Bilddaten (zum Beispiel Merkmalsdaten von den Bildern) von dem Anmeldevorgang in einer Vorlage in Vorrichtung 100 gespeichert. Die Vorlage kann zum Beispiel in einem Vorlageraum in Speicher 106 von Vorrichtung 100 gespeichert sein. In manchen Ausführungsformen kann der Vorlageraum durch das Hinzufügen und/oder Entfernen von Bildern von der Vorlage aktualisiert werden. Ein Vorlageaktualisierungsprozess kann durch Prozessor 104 ausgeführt werden um Vorlagebilder von dem Vorlageraum hinzuzufügen und/oder zu entfernen. Zum Beispiel kann der Vorlageraum mit zusätzlichen Bildern aktualisiert werden um sich an Veränderungen des Aussehens des autorisierten Benutzers und/oder an Änderungen der Hardwareleistungsfähigkeit im Laufe der Zeit anzupassen. Bilder können von dem Vorlageraum entfernt werden um das Hinzufügen von Bildern zu kompensieren, wenn der Vorlageraum zum Speichern von Vorlagebildern voll ist.In certain embodiments, the processor performs 104 a logon process (e.g., an image logon process or a registration process) to view images for an authorized user of the device 100 record and save (for example, the previously collected images). During the registration process, camera module 102 Capture (for example, collect) images and / or image data from an authorized user to subsequently authenticate the user using the face recognition authentication process. In some embodiments, the images and / or image data (for example, feature data from the images) from the sign up process are in a template in the device 100 saved. For example, the template may be stored in a storage room in memory 106 of device 100 be saved. In some embodiments, the template space may be updated by adding and / or removing images from the template. A template update process may be by processor 104 be executed to add template images of the Vorlageraum and / or remove. For example, the template room may be updated with additional images to accommodate changes in the appearance of the authorized user and / or changes in hardware performance over time. Images can be removed from the template space to compensate for the addition of images when the template space is full for storing template images.

In manchen Ausführungsformen nimmt Kameramodul 102 mehrere Paare von Bildern für eine Gesichtserkennungssitzung auf. Jedes Paar kann ein Bild einschließen, welches unter Verwendung eines zweidimensionalen Aufnahmemoduses (zum Beispiel ein Flut-IR Bild) aufgenommen wurde als auch ein Bild einschließen, welches unter Verwendung eines dreidimensionalen Aufnahmemoduses (zum Beispiel ein Tiefenmap Bild) aufgenommen wurde. In gewissen Ausführungsformen verarbeiten ISP 110 und/oder SEP 112 die Flut-IR Bilder und Tiefenmap Bilder unabhängig voneinander bevor eine abschließende Authentifizierungsentscheidung für den Benutzer getroffen wird. Zum Beispiel kann ISP 110 die Bilder unabhängig verarbeiten um Eigenschaften von jedem Bild separat zu bestimmen. SEP 112 kann dann die separaten Bildeigenschaften mit den gespeicherten Vorlagebildern für jeden Typ von Bild vergleichen um eine Authentifizierungsbewertung für jedes separate Bild zu erzeugen (zum Beispiel eine Übereinstimmungsbewertung, oder andere Einstufung von Übereinstimmung des Benutzers in dem gespeicherten Bild und in den gespeicherten Vorlagebildern). Die Authentifizierungsbewertungen für die separaten Bilder (zum Beispiel die Flut-IR und die Tiefenmap Bilder) können kombiniert werden um eine Entscheidung hinsichtlich der Identität von dem Benutzer zu treffen und um, wenn authentifiziert, dem Benutzer die Verwendung von Vorrichtung 100 zu erlauben (zum Beispiel die Vorrichtung entsperren).In some embodiments, the camera module takes 102 several pairs of images for a face recognition session. Each pair may include an image captured using a two-dimensional capture mode (eg, a flood IR image) as well as an image captured using a three-dimensional capture mode (eg, a depth map image). In certain embodiments, ISPs process 110 and / or SEP 112 the flood IR images and depth map images independently from each other before a final authentication decision is made for the user. For example, ISP 110 process the images independently to determine properties of each image separately. September 112 can then compare the separate image properties with the stored template images for each type of image to generate an authentication score for each separate image (e.g., a match score, or other rating of user compliance in the stored image and in the saved template images). The authentication scores for the separate images (for example, the flood IR and the depth map images) may be combined to make a decision as to the identity of the user and, if authenticated, to the user User the use of device 100 to allow (for example, unlock the device).

In einigen Ausführungsformen kombinieren ISP 110 und/oder SEP 112 die Bilder in jedem Paar um ein zusammengesetztes Bild bereitzustellen, welches für Gesichtserkennung verwendet wird. In einigen Ausführungsformen verarbeitet ISP 110 das zusammengesetzte Bild um Eigenschaften von dem Bild zu bestimmen, welche SEP 112 mit den gespeicherten Vorlagebildern vergleichen kann um eine Entscheidung hinsichtlich der Identität des Benutzers zu treffen und um, wenn authentifiziert, dem Benutzer die Verwendung von Vorrichtung 100 zu erlauben.In some embodiments, ISPs combine 110 and / or SEP 112 to provide the images in each pair with a composite image used for face recognition. In some embodiments, ISP processes 110 the composite image to determine properties of the image which SEP 112 can compare with the stored template images to make a decision as to the identity of the user and, when authenticated, to the user using the device 100 to allow.

In einigen Ausführungsformen kann die Kombination von Flut-IR Bilddaten und Tiefenmap Bilddaten es SEP 112 ermöglichen Gesichter in einem dreidimensionalen Raum zu vergleichen. In einigen Ausführungsformen kommuniziert Kameramodul 102 Bilddaten an SEP 112 über einen sicheren Kanal. Der sichere Kanal kann zum Beispiel entweder ein dedizierter Pfad zur Kommunikation von Daten (zum Beispiel ein Pfad, welcher nur von den vorgesehenen Beteiligten geteilt wird) oder ein dedizierter Pfad zur Kommunikation verschlüsselter Daten unter Verwendung kryptografischer Schlüssel, welche nur den vorgesehenen Beteiligten bekannt sind, sein. In einigen Ausführungsformen kann Kameramodul 102 und/oder ISP 110 verschiedene Verarbeitungsoperationen auf Bilddaten ausführen bevor die Bilddaten an SEP 112 bereitgestellt werden um den Vergleich, welcher durch den SEP durchgeführt wird, zu vereinfachen.In some embodiments, the combination of flood IR image data and depth map image data may be SEP 112 allow to compare faces in a three-dimensional space. In some embodiments, the camera module communicates 102 Image data to SEP 112 over a secure channel. For example, the secure channel may either be a dedicated path for communicating data (eg, a path shared only by the intended parties) or a dedicated path for communicating encrypted data using cryptographic keys known only to the intended parties. be. In some embodiments, camera module 102 and / or ISP 110 perform various processing operations on image data before applying the image data to SEP 112 to facilitate the comparison performed by the SEP.

In gewissen Ausführungsformen betreibt Prozessor 104 eines oder mehrere Modelle von maschinellem Lernen. Maschinenlernmodelle können unter Verwendung jeder Kombination von Hardware und/oder Software (zum Beispiel Programminstruktionen) betrieben werden, welche in Prozessor 104 und/oder in Vorrichtung 100 angeordnet sind. In einigen Ausführungsformen wird eines oder werden mehrere neurale Netzwerkmodule 114 verwendet um die Maschinenlernmodelle auf Vorrichtung 100 zu betreiben. Neurale Netzwerkmodule 114 können in ISP 110 und/oder SEP 112 angeordnet sein.In certain embodiments, the processor operates 104 one or more models of machine learning. Machine learning models may be operated using any combination of hardware and / or software (e.g. program instructions) included in processor 104 and / or in device 100 are arranged. In some embodiments, one or more neural network modules will become 114 used around the machine learning models on device 100 to operate. Neural network modules 114 can in ISP 110 and / or SEP 112 be arranged.

4 zeigt eine Darstellung von einer Ausführungsform von neuralem Netzwerkmodul 114. Neurales Netzwerkmodul 114 kann jede Kombination von Hardware und/oder Software einschließen (zum Beispiel Programminstruktionen), welche sich in Prozessor 104 und/oder auf Vorrichtung 100 befinden. In einigen Ausführungsformen ist neurales Netzwerkmodul 114 ein mehrskaliges neurales Netzwerk oder ein anderes neurales Netzwerk bei dem die Skalierung von Kerneln, welche in dem Netzwerk verwendet werden, variieren kann. In einigen Ausführungsformen ist neurales Netzwerkmodul 114 ein rekurrentes neurales Netzwerk (RNN) wie zum Beispiel, aber nicht darauf beschränkt, ein gattergesteuertes rekurrentes Einheit (gated recurrent unit, GRU) rekurrentes neurales Netzwerk oder ein langes Kurzzeitgedächtnis (long short-term memory, LSTM) rekurrentes neurales Netzwerk. 4 shows a representation of an embodiment of neural network module 114 , Neural network module 114 may include any combination of hardware and / or software (e.g., program instructions) which may be in processor 104 and / or on device 100 are located. In some embodiments, neural network module is 114 a multi-scale neural network or other neural network in which the scaling of kernels used in the network may vary. In some embodiments, neural network module is 114 a recurrent neural network (RNN) such as, but not limited to, a gated recurrent unit (GRU) recurrent neural network or a long short-term memory (LSTM) recurrent neural network.

Neurales Netzwerkmodul 114 kann neurale Netzwerkschaltungen einschließen, welche mit Betriebsparametern installiert oder konfiguriert sind, welche von dem neuralen Netzwerkmodul oder einem ähnlichen neuralen Netzwerkmodul (zum Beispiel ein neurales Netzwerkmodul, welches auf einem unterschiedlichen Prozessor oder einer unterschiedlichen Vorrichtung betrieben wird) gelernt wurden. Zum Beispiel kann ein neurales Netzwerkmodul trainiert werden unter Verwendung von Trainingsbildern (zum Beispiel Referenzbilder) und/oder anderen Trainingsdaten um Betriebsparameter für die neuralen Netzwerkschaltungen zu erzeugen. Die Betriebsparameter, welche durch das Training erzeugt wurden, können dann dem neuralen Netzwerkmodul 114, welches auf Vorrichtung 100 installiert ist, bereitgestellt werden. Bereitstellen der Betriebsparameter, welche durch Training erzeugt wurden, an neurales Netzwerkmodul 114 auf Vorrichtung 100 erlaubt dem neuralen Netzwerkmodul unter Verwendung von Trainingsinformationen, welche in das neuralen Netzwerkmodul programmiert sind, zu operieren (zum Beispiel die Trainingserzeugten Betriebsparameter können durch das neurale Netzwerkmodul verwendet werden um Bilder, welche durch die Vorrichtung aufgenommen wurden, zu beurteilen und auf ihnen basierend zu operieren).Neural network module 114 may include neural network circuits installed or configured with operating parameters learned from the neural network module or similar neural network module (eg, a neural network module operating on a different processor or device). For example, a neural network module may be trained using training images (eg, reference images) and / or other training data to generate operational parameters for the neural network circuits. The operating parameters generated by the training may then be sent to the neural network module 114 which is on device 100 is installed. Provide the operating parameters generated by training to neural network module 114 on device 100 allows the neural network module to operate using training information programmed into the neural network module (e.g., the training generated operational parameters may be used by the neural network module to judge and operate on images captured by the device ).

In gewissen Ausführungsformen schließt neurales Netzwerkmodul 114 in Kodierungsmodul 116 und Dekodierungsmodul 118 ein. Kodierungsmodul 116 und Dekodierungsmodul 118 können Maschinenlernmodelle sein, welche innerhalb von neuralem Netzwerkmodul 114 betrieben werden (zum Beispiel werden das Kodierungsmodul und das Dekodierungsmodul im neuralen Netzwerkmodul ausgeführt). Kodierungsmodul 116 kann Bilder kodieren, welche in das Kodierungsmodul eingegeben werden, und kann Merkmale in den Bildern als Merkmalsvektoren in einem Merkmalsraum definieren (wie hierin beschrieben). Dekodierungsmodul 118 kann die Merkmalsvektoren in dem Merkmalsraum dekodieren, welche durch Kodierungsmodul 116 kodiert wurden, und kann eine Ausgabe erzeugen (wie hierin beschrieben).In certain embodiments, neural network module completes 114 in coding module 116 and decoding module 118 one. coding module 116 and decoding module 118 may be machine learning models, which are within neural network module 114 (for example, the coding module and the decoding module are executed in the neural network module). coding module 116 may encode images input to the encoding module and may define features in the images as feature vectors in a feature space (as described herein). decoding module 118 can decode the feature vectors in the feature space, which by coding module 116 and can generate an output (as described herein).

5 zeigt ein Flussdiagramm für eine Ausführungsform von einem Trainingsprozess 200 für ein neurales Netzwerkmodul. In gewissen Ausführungsformen ist Trainingsprozess 200 unter Verwendung eines neuralen Netzwerkmoduls implementiert (zum Beispiel ein neurales Netzwerkmodul zum Trainieren), welches sich auf einem anderen Computer Prozessor als Prozessor 104 befindet. 6 zeigt eine Darstellung von einer Ausführungsform von Prozessor 120 mit neuralem Netzwerkmodul 122, welches für Training verwendet werden kann (zum Beispiel das neurale Netzwerkmodul zum Trainieren). Neurales Netzwerkmodul 122 kann Kodierungsmodul 124 und Dekodierungsmodul 126 einschließen. In gewissen Ausführungsformen werden Bilder, welche früher aufgenommen wurden, dem neuralen Netzwerkmodul 122 als Trainingsbilder bereitgestellt. Bekannte Eigenschaften von den Trainingsbildern können zusammen mit den Trainingsbildern dem neuralen Netzwerkmodul 122 bereitgestellt werden (zum Beispiel können die Trainingsbilder um die bekannten Eigenschaften erweitert werden). In einigen Ausführungsformen kann Kamera 102 an Prozessor 120 und/oder neurales Netzwerkmodul 122 gekoppelt sein. Kamera 102 kann verwendet werden um Bilder von den Trainingsbildern aufzunehmen und um dem neuralen Netzwerkmodul 122 die von der Kamera aufgenommenen Bilder bereitzustellen. 5 shows a flowchart for an embodiment of a training process 200 for a neural network module. In certain embodiments, training process is 200 implemented using a neural network module (eg, a neural network module for training) residing on another computer Processor as a processor 104 located. 6 shows a representation of one embodiment of processor with neural network module 122 which can be used for training (for example, the neural network module for training). Neural network module 122 may be coding module 124 and decoding module 126 lock in. In certain embodiments, images captured earlier are the neural network module 122 provided as training images. Known properties of the training images, along with the training images, can be used by the neural network module 122 (for example, the training images can be extended by the known properties). In some embodiments, camera 102 to processor 120 and / or neural network module 122 be coupled. camera 102 can be used to take pictures of the training images and the neural network module 122 to provide the pictures taken by the camera.

Kodierungsmodul 124 und Dekodierungsmodul 126 können im Wesentlichen ähnlich oder im Wesentlichen gleich wie jeweils Kodierungsmodul 116 und Dekodierungsmodul 118 sein. Kodierungsmodul 124 und Dekodierungsmodul 126 können sich in neuralem Netzwerkmodul 122 auf Prozessor 120 befinden um durch Trainingsprozess 200 trainiert zu werden. Ausgegebene Betriebsparameter, welche vom „trainierten“ neuralen Netzwerkmodul 122 erzeugt wurden, können dann in neuralem Netzwerkmodul 114 auf Vorrichtung 100 zum Implementieren des „trainierten“ neuralen Netzwerkmodul auf der Vorrichtung verwendet werden.coding module 124 and decoding module 126 can be essentially similar or substantially the same as each coding module 116 and decoding module 118. coding module 124 and decoding module 126 can be in a neural network module 122 on processor 120 to move around through training process 200 to be trained. Output operating parameters derived from the "trained" neural network module 122 can then be generated in neural network module 114 on device 100 to implement the "trained" neural network module on the device.

In einigen Ausführungsformen ist Prozessor 120 ein GPU-befähigter Computer Prozessor. Neurales Netzwerkmodul zum Trainieren 122 auf dem GPU-befähigten Computer Prozessor kann Betriebsparameter unter Verwendung eines Gleitkommazahl-Darstellungsmodus ausgeben. Zum Beispiel können Betriebsparameter, welche von „trainiertem“ neuralen Netzwerkmodul 122 erzeugt wurden, Gewichtungen oder Kernel einschließen, welche unter Verwendung von Gleitkommazahlen beschrieben werden. In solchen Ausführungsformen kann es notwendig sein die Gleitkommabetriebsparameter in Gleitzahldarstellungen umzuwandeln bevor sie auf neuralem Netzwerkmodul 114 auf Vorrichtung 100 verwendet werden. Jeder im Fach bekannte Umwandlungsprozess kann verwendet werden um die Betriebsparameter von dem Gleitkommazahldarstellungsmodus in den Ganzzahlendarstellungsmodus umzuwandeln.In some embodiments, the processor is 120 a GPU-enabled computer processor. Neural network module for training 122 The GPU-enabled computer processor may output operating parameters using a floating-point representation mode. For example, operating parameters derived from "trained" neural network module 122 , weights or kernels described using floating point numbers. In such embodiments, it may be necessary to convert the floating point operation parameters to glide ratio representations before going to the neural network module 114 on device 100 be used. Any conversion process known in the art may be used to convert the operating parameters from the floating point number representation mode to the integer representation mode.

In gewissen Ausführungsformen, wie in 5 gezeigt, beginnt Trainingsprozess 200 mit Bereitstellen von Bildeingabe 202. Bildeingabe 202 kann Trainingsbilder einschließen, welche dem Trainingsprozess 200 bereitgestellt wurden (zum Beispiel Trainingsbilder, welche um die bekannten Informationen, wie oben beschrieben, erweitert wurden, oder welche mit diesen als Anmerkung versehen wurden (zum Beispiel beschriftet wurden), werden dem Trainingsprozess bereitgestellt). In einigen Ausführungsformen schließt Bildeingabe 202 Trainingsbilder, die mit Kamera 102 aufgenommen wurden, ein. Trainingsbilder können Referenzbilder oder andere Beispielbilder, welche von einer Datenbank von Bildern erhalten wurden, einschließen. Zum Beispiel können Trainingsbilder vom ImageNet oder einer anderen ähnlichen Bilderdatenbank erhalten werden. In gewissen Ausführungsformen ist Trainingsprozess 200 auf Flut-IR Beleuchtungsbilder implementiert, um das neurale Netzwerkmodul zur Gesichtserfassung in solchen Bildern zu trainieren. In einigen Ausführungsformen ist Trainingsprozess 200 auf Tiefenmap Bildern implementiert, um das neurale Netzwerkmodul für Gesichtserfassung in solchen Bildern zu trainieren. Bildeingabe 202 kann eine Vielzahl von Trainingsbilder mit einer breiten Palette von verschiedenen Benutzern und/oder Gesichtern in den Bildern einschließen. Die Gesichter in den Bildern können variierende Positionen in den Bildern und/oder Posen in den Bildern aufweisen. Die Positionen und/oder Posen von den Gesichtern in den Trainingsbildern können bekannt sein (zum Beispiel haben die Bilder Beschriftungen oder andere Indizien, welche die bekannten Information der Position und Posen identifizieren). Die bekannten Informationen von Position und Posen können in dem Trainingsprozess 200 als bekannte Daten 204 bereitgestellt werden. In einigen Ausführungsformen sind Trainingsbilder um bekannte Daten 204 erweitert.In certain embodiments, as in 5 Training process 200 begins by providing image input 202 , image input 202 may include training images which the training process 200 (for example, training images which have been augmented (for example, labeled) with the known information as described above, or which have been annotated with them, are provided to the training process). In some embodiments, image input completes 202 Training pictures taken with camera 102 were included. Training images may include reference images or other example images obtained from a database of images. For example, training images can be obtained from ImageNet or another similar image database. In certain embodiments, training process is 200 implemented on flood IR illumination images to train the neural network module for face detection in such images. In some embodiments, training process is 200 implemented on depth map images to train the facial neural network module in such images. image input 202 can include a variety of training images with a wide range of different users and / or faces in the images. The faces in the images may have varying positions in the images and / or poses in the images. The positions and / or poses of the faces in the training images may be known (for example, the images have captions or other indicia identifying the known position information and poses). The known information of position and poses can be used in the training process 200 as known data 204 to be provided. In some embodiments, training images are known data 204 extended.

In einigen Ausführungsformen werden die Trainingsbilder (zum Beispiel durch die Kamera aufgenommen) mit variierenden Abständen von der Kamera eingegeben. Der Wert des Abstands für jedes aufgenommene Bild kann bekannt sein und die bekannten Informationen können in bekannten Daten 204 zusammen mit den bekannten Informationen für Position und Posen bereitgestellt sein. Somit sind die bekannten Informationen von diesen Eigenschaften (Positionen und/oder Posen von dem Gesicht und Abstand zwischen dem Gesicht und Kamera) in bekannten Daten 204 eingeschlossen.In some embodiments, the training images (for example, captured by the camera) are input at varying distances from the camera. The value of the distance for each captured image may be known, and the known information may be in known data 204 be provided along with the known information for position and poses. Thus, the known information of these characteristics (positions and / or poses of the face and distance between the face and camera) are in known data 204 locked in.

Bildeingabe 202 kann dem Kodierungsprozess 206 bereitgestellt werden. Kodierungsprozess 206 kann zum Beispiel durch Kodierungsmodul 124, in 6 gezeigt, ausgeführt werden. In Kodierungsprozess 206, in 5 gezeigt, kann das Kodierungsmodul Bilder kodieren, die in dem Kodierungsprozess eingegeben werden, und kann Merkmale in den Bildern als Merkmalsvektoren in einem Merkmalsraum definieren. Zum Beispiel kann das Kodierungsmodul Gesichtsmerkmale im Gesicht eines Benutzers (und andere Merkmale in den Bildern) als Merkmalsvektoren in dem Merkmalsraum definieren. Kodierungsprozess 206 kann Merkmalsvektoren 208 ausgeben. Merkmalsvektoren 208 (zum Beispiel die Ausgabe von Kodierungsprozess 206 (und das Kodierungsmodul)) schließen Merkmalsvektoren in dem Merkmalsraum ein, welche die Gesichtsmerkmale des Benutzers repräsentieren (und/oder andere Merkmale in den Bildern). Ein Merkmalsraum kann ein N-dimensionaler Merkmalsraum sein. Ein Merkmalsvektor kann ein n-dimensionaler Vektor von numerischen Werten sein, welche Merkmale in den Bildern für einen Bereich in dem Merkmalsraum definieren, der einem Bereich in dem Bild entspricht. Zum Beispiel, in einigen Ausführungsformen, kann der Merkmalsvektor ein 1024-dimensionaler Vektor sein. Jede Anzahl an Dimensionen kann in verschiedenen Ausführungsformen implementiert werden.image input 202 can the coding process 206 to be provided. coding process 206 can for example by coding module 124 , in 6 shown to be executed. In coding process 206 , in 5 As shown, the coding module may encode images input in the encoding process and may define features in the images as feature vectors in a feature space. For example, the coding module may define facial features in the face of a user (and other features in the images) as feature vectors in the feature space. coding process 206 can feature vectors 208 output. feature vectors 208 (For example, the output of encoding process 206 (and the coding module)) includes feature vectors in the feature space that represent the facial features of the user (and / or other features in the images). A feature space may be an N-dimensional feature space. A feature vector may be an n-dimensional vector of numerical values defining features in the images for an area in the feature space corresponding to an area in the image. For example, in some embodiments, the feature vector may be a 1024-dimensional vector. Any number of dimensions may be implemented in various embodiments.

7 kennzeichnet ein Beispiel von einer Ausführungsform von Merkmalsraum 130 mit Regionen 132. Regionen 132 in Merkmalsraum 130 können, zum Beispiel, Zellen in einem Raster sein, wobei das Raster den Merkmalsraum darstellt. Im Beispiel von 7 ist Merkmalsraum 130 ein 8x8 Raster von Regionen 132. Merkmalsraum 130 kann jedoch wie benötigt ein anders dimensioniertes Raster aufweisen. Punkte 134 stellen Merkmalsvektoren in jeder der Regionen 132 dar. Regionen 132 in Merkmalsraum 130 können Regionen oder Bereichen in den Eingabebildern entsprechen. Somit ist im Beispiel von 7 das Eingabebild in 64 Regionen (8x8 Regionen) in Merkmalsraum 130 geteilt, wobei jede Region 132 eine andere Region des Eingabebildes darstellt. 7 indicates an example of one embodiment of feature space 130 with regions 132 , regions 132 in feature space 130 For example, cells may be in a grid, where the grid represents the feature space. In the example of 7 is feature space 130 an 8x8 grid of regions 132 , feature space 130 however, may have a different sized grid as needed. Points 134 represent feature vectors in each of the regions 132 Regions 132 in feature space 130 can correspond to regions or areas in the input screens. Thus, in the example of 7 the input image in 64 regions (8x8 regions) in feature space 130 shared, with each region 132 represents a different region of the input image.

In gewissen Ausführungsformen ist das Kodierungsmodul, welches beim Kodierungsprozess 206 verwendet wird (zum Beispiel Kodierungsmodul 124, gezeigt in 6) ein neurales Netzwerk. Zum Beispiel kann das Kodierungsmodul ein mehrskaliges neurales Netzwerk oder ein anderes neurales Netzwerk sein, bei dem die Skalierung von Kerneln, welche in dem Netzwerk verwendet werden, variieren kann. In gewissen Ausführungsformen ist das Kodierungsmodul ein mehrskaliges faltendes neuronales Netzwerk. Unter Verwendung eines mehrskaligen faltenden neuronalen Netzwerks kann Kodierungsprozess 206 eine Darstellung von Bildeingabe 202 mit Merkmalsvektoren in dem Merkmalsraum auf hoher Ebene auf hoher Ebene erzeugen. Zum Beispiel kann Kodierungsprozess 206 eine 32×32 Rasterdarstellung mit einem Merkmalsvektor in jeder Region (Zelle) von dem Raster erzeugen, wohingegen das Eingabebild eine höhere Auflösung aufweisen kann (zum Beispiel kann Bildeingabe 202 ein 256×256 Bild sein).In certain embodiments, the coding module involved in the coding process 206 is used (for example, coding module 124 , shown in 6 ) a neural network. For example, the coding module may be a multi-scale neural network or other neural network in which the scaling of kernels used in the network may vary. In certain embodiments, the coding module is a multi-scale convolutional neural network. Using a multiscale folding neural network, encoding process 206 a representation of image input 202 with feature vectors in the high-level feature space. For example, coding process 206 generate a 32x32 raster representation with a feature vector in each region (cell) of the raster, whereas the input image may have a higher resolution (for example, image input 202 may be a 256x256 image).

Wie in 5 gezeigt können Merkmalsvektoren 208 in dem Dekodierungsprozess 210 bereitgestellt werden. Dekodierungsprozess 210 kann, zum Beispiel, durch Dekodierungsmodul 126, gezeigt in 6, ausgeführt werden. In Dekodierungsprozess 210 kann das Dekodierungsmodul die Merkmalsvektoren in dem Merkmalsraum von Merkmalsvektoren 208, welche in Kodierungsprozess 206 erzeugt wurden, dekodieren. Dekodieren der Merkmalsvektoren kann Operieren auf den Merkmalsvektoren mit einem oder mehrerer Klassifizierern oder einem klassifikationsbefähigten Netzwerk einschließen, um Ausgabedaten 212 von Bildeingabe 202 zu bestimmen (zum Beispiel zu extrahieren). Ausgabedaten 212 können, zum Beispiel, Informationen oder Eigenschaften über Gesichter in Bildeingabe 202 einschließen.As in 5 feature vectors can be shown 208 provided in the decoding process 210. decoding process 210 can, for example, by decoding module 126 , shown in 6 to be executed. In decoding process 210 For example, the decoding module may include the feature vectors in the feature space of feature vectors 208 which in coding process 206 were generated, decode. Decoding the feature vectors may include operating on the feature vectors with one or more classifiers or a classification-enabled network to provide output data 212 from image input 202 to determine (for example, to extract). output data 212 can, for example, information or features about faces in image input 202 lock in.

In gewissen Ausführungsformen ist das Dekodierungsmodul, welches in Dekodierungsprozess 210 verwendet wird (zum Beispiel Dekodierungsmodul 126) ein neurales Netzwerk. Zum Beispiel kann das Dekodierungsmodul ein rekurrentes neurales Netzwerk (RNN) sein. In gewissen Ausführungsformen, ein gattergesteuertes rekurrentes Einheit (gated recurrent unit, GRU) rekurrentes neurales Netzwerk. Andere rekurrente neurale Netzwerke können jedoch auch verwendet werden, wie zum Beispiel ein langes Kurzzeitgedächtnis (long short-term memory, LSTM) rekurrentes neurales Netzwerk.In certain embodiments, the decoding module is in decoding process 210 is used (for example, decoding module 126 ) a neural network. For example, the decoding module may be a recurrent neural network (RNN). In certain embodiments, a gated recurrent unit (GRU) recurrent neural network. However, other recurrent neural networks may also be used, such as a long short-term memory (LSTM) recurrent neural network.

In gewissen Ausführungsformen schließt Dekodierungsprozess 210 Dekodieren von Merkmalsvektoren für jede Region in dem Merkmalsraum ein (zum Beispiel jede Region 132 in Merkmalsraum 130, gezeigt in dem Beispiel von 7). Merkmalsvektoren von jeder von den Regionen von dem Merkmalsraum können in nicht überlappende Boxen in Ausgabedaten 212 dekodiert werden. In gewissen Ausführungsformen schließt Dekodieren des Merkmalsvektors (zum Beispiel Extrahieren von Informationen von dem Merkmalsvektor) für eine Region Bestimmen (zum Beispiel Erkennen), ob eines oder mehrerer Gesichter in der Region präsent sind, ein. In Trainingsprozess 200 ist die Präsenz von Gesichtern in der Bildeingabe 202 bekannt und kann mit den dekodierten Merkmalsvektoren korreliert werden. Während Dekodierungsprozess 210 auf jeder Region in dem Merkmalsraum operiert, kann das Dekodierungsmodul eine Gesichtserfassungsbewertung für jede Region in dem Merkmalsraum bereitstellen (zum Beispiel eine Vorhersage basierend auf einem Vertrauenswert bezüglich dessen ob ein Gesicht oder Teil von einem Gesicht in der Region erkannt/präsent ist). In einigen Ausführungsformen, unter Verwendung des RNN, können mehrere Vorhersagen ob ein oder mehrere Gesichter präsent sind für jede Region des Merkmalsraums mit den Vorhersagen bereitgestellt werden, welche Vorhersagen über sowohl Gesichter in der Region als auch Gesichter um die Region einschließen (zum Beispiel in angrenzenden Regionen). Diese Vorhersagen können in Form einer finalen Entscheidung über die Präsenz von einem oder mehrerer Gesichter in Bildeingabe 202 reduziert werden. Ausgabedaten 212 können die Entscheidung über die Präsenz von einem oder mehrerer Gesichter in Bildeingabe 202 einschließen.In certain embodiments, decoding process concludes 210 Decode feature vectors for each region in the feature space (eg, each region 132 in feature space 130 shown in the example of 7 ). Feature vectors of each of the regions of the feature space may be in non-overlapping boxes in output data 212 be decoded. In certain embodiments, decoding the feature vector (eg, extracting information from the feature vector) for a region includes determining (e.g., detecting) whether one or more faces are present in the region. In training process 200 is the presence of faces in the image input 202 and can be correlated with the decoded feature vectors. During decoding process 210 on each region in the feature space, the decoding module may provide a face detection score for each region in the feature space (eg, a prediction based on a confidence score as to whether a face or part of a face is recognized / present in the region). In some embodiments, using the RNN, multiple predictions of whether one or more faces are present may be provided for each region of the feature space with the predictions including predictions about both faces in the region and faces around the region (eg, adjacent ones) regions). These predictions can take the form of a final decision on the presence of one or more faces in image input 202 be reduced. output data 212 can make the decision on the presence of one or more faces in image input 202 lock in.

In gewissen Ausführungsformen wird ein Gesicht in einer Region ohne große Überlappung mit angrenzenden Regionen erkannt während die Regionen als nicht überlappende Boxen dekodiert werden. In einigen Ausführungsformen können jedoch mehrere Regionen in Dekodierungsprozess 210 dasselbe Gesicht erkennen. Falls dasselbe Gesicht in mehreren Regionen erkannt wird, kann dann Vertrauen für diese Regionen in einer Reihenfolge eingestuft werden. Die mehreren Vorhersagen können verwendet werden um ein Vertrauen zu bestimmen, dass ein Gesicht, oder ein Teil von einem Gesicht, in jeder Region präsent ist (zum Beispiel können die Vorhersagen verwendet werden um Vertrauen für die Regionen einzustufen). Die Region bzw. die Regionen mit dem höchsten Vertrauen für das erkannte Gesicht können dann als die Region ausgewählt werden, welche in Trainingsprozess 200 verwendet werden.In certain embodiments, a face in a region that does not overlap with adjacent regions is recognized while the regions are being decoded as non-overlapping boxes. However, in some embodiments, multiple regions may be in decoding process 210 recognize the same face. If the same face is recognized in multiple regions, trust for those regions can then be ranked. The multiple predictions may be used to establish confidence that a face, or part of a face, is present in each region (for example, the predictions may be used to rank confidence for the regions). The region (s) with the highest confidence for the recognized face can then be selected as the region involved in the training process 200 be used.

In gewissen Ausführungsformen, wenn die Präsenz von einem oder mehreren Gesichtern in einer Region erkannt wird, schließen die Vorhersagen, welche durch Dekodierungsprozess 210 erzeugt werden, Beurteilungen (zum Beispiel Bestimmungen) von einer oder mehreren Eigenschaften des erkannten Gesichtes bzw. der erkannten Gesichter in der Region ein. Die beurteilten Eigenschaften können eine Position des Gesichtes im Verhältnis zu einer Mitte von der Region (zum Beispiel Versatz von dem Gesicht von der Mitte von der Region), eine Pose von dem Gesicht in der Region, und einen Abstand zwischen dem Gesicht in der Region und der Kamera einschließen. Pose des Gesichts kann Neigung, Gierung, und/oder Rollen des Gesichts einschließen. Die beurteilten Eigenschaften können in Ausgabedaten 212 zusammen mit der Entscheidung zu der Präsenz von einem oder mehreren Gesichtern in Bildeingabe 202 eingeschlossen sein.In certain embodiments, when the presence of one or more faces in a region is detected, the predictions made by the decoding process close 210 generated, judgments (for example, determinations) of one or more characteristics of the recognized face (s) in the region. The judged features may include a position of the face relative to a center of the region (for example, offset from the face of the center of the region), a pose of the face in the region, and a distance between the face in the region and include the camera. Pose of the face may include tilt, yaw, and / or rolling of the face. The assessed properties can be in output data 212 along with the decision to the presence of one or more faces in image input 202 be included.

In Trainingsprozess 200 können die Werte von den Eigenschaften von dem Gesicht bzw. von den Gesichtern bestimmt werden, indem dekodierte Merkmalsvektoren mit bekannten Daten 204 korreliert werden. Zum Beispiel können Bekannte Daten 204 bekannte Eigenschaften von dem Gesicht bzw. von den Gesichtern in Bildeingabe 202 mit den bekannten Eigenschaften, welche die Eigenschaften definieren, die durch Dekodierungsprozess 210 beurteilt werden, bereitstellen. In gewissen Ausführungsformen, während Trainingsprozess 200, schließt Korrelieren dekodierter Merkmalsvektoren mit bekannten Daten 204 ein, dass das Dekodierungsmodul für Dekodierungsprozess 210 Unterschiede zwischen dekodierten Merkmalsvektoren und bekannten Daten 204 beurteilt. Das Erkennungsmodul kann, zum Beispiel, Fehlerfunktionsanalyse (oder ähnliche Analysen) auf den Unterschieden zwischen den dekodierten Merkmalsvektoren und bekannten Daten 204 durchführen und den Merkmalsvektordekodierungsprozess verfeinern bis der Merkmalsvektordekodierungsprozess die bekannten Daten genau bestimmt. Während mehrere Trainingsbilder in Trainingsprozess 200 verarbeitet werden, kann somit Dekodierungsprozess 210 (und Kodierungsprozess 206) durch die Trainingsbilder in Bildeingabe 202 und durch die bekannten Daten 204 trainiert werden, um die Präsenz von Gesicht bzw. von Gesichtern genau zu erkennen und um Werte von Eigenschaften von dem Gesicht bzw. von den Gesichtern zu beurteilen.In training process 200 For example, the values of the characteristics of the face (s) may be determined by decoded feature vectors with known data 204 be correlated. For example, known data 204 known characteristics of the face or faces in image input 202 with the known properties defining the properties by decoding process 210 be judged. In certain embodiments, during training process 200 , concludes correlating decoded feature vectors with known data 204 a that the decoding module for decoding process 210 Differences between decoded feature vectors and known data 204 assessed. The recognition module may, for example, perform error function analysis (or similar analyzes) on the differences between the decoded feature vectors and known data 204 and refine the feature vector decoding process until the feature vector decoding process accurately determines the known data. While several training images in training process 200 can be processed thus decoding process 210 (and coding process 206 ) through the training images in image input 202 and by the known data 204 be trained to accurately recognize the presence of face (s) and to judge values of facial features (faces).

In gewissen Ausführungsformen werden Ausgaben für Pose des Gesichts und/oder Abstand zwischen dem Gesicht und der Kamera diskretisiert (zum Beispiel als diskrete Ausgaben bereitgestellt). Zum Beispiel Neigungs-, Gierungs- und Rollwerte können als Gleitkommawerte dekodiert werden. In einigen Ausführungsformen können die Gleitkommawerte positive oder negative Gleitkommawerte sein. Anstatt eine Regression auf den Gleitkommawerten durchzuführen, können Gleitkommawertausgaben diskretisiert werden indem ein minimaler und ein maximaler Wertebereich gewählt wird und dann die Gleitkommaausgaben in K Fächer (engl.: bins) geteilt werden, wobei K eine positive ganze Zahl ist. Unter Verwendung der Fächer und falls die Ausgabe in ein Fach fällt, wird eine 1 zugeordnet, und falls die Ausgabe nicht in ein Fach fällt, wird eine o zugeordnet. Falls der Gleitkommawert nicht in dem Wertebereich liegt, welcher durch die Fächer abgebildet wird, kann er zuerst zu dem nächsten Wert in dem Wertebereich angeklammert werden. Somit können die Gleitkommaausgaben von einem Gleitkommawert zu einem diskreten Vektor aus oen und 1en transformiert werden (zum Beispiel ist ein Merkmalsvektor ein diskreter Vektor aus oen und 1en). Das Netzwerk (zum Beispiel das Kodierungsmodul) kann dann trainiert werden, um die K-dimensionalen Vektoren anstatt eines einzelnen Gleitkommawerts vorherzusagen. Während der Laufzeit (zum Beispiel während Betrieb auf einer Vorrichtung) kann ein einzelner Gleitkommawert von diesen K-dimensionalen Ausgaben wiederhergestellt werden, indem die Aktivierung für jedes Fach des Netzwerks als eine Gewichtung behandelt wird. Dann die gewichtete Summe von den mittleren Werten von jedem Fach zu verwenden, kann einen einzelnen Gleitkommawert ergeben.In certain embodiments, facial pose cost and / or distance between the face and the camera are discretized (for example, provided as discrete outputs). For example, slope, yaw, and roll values can be decoded as floating-point values. In some embodiments, the floating point values may be positive or negative floating point values. Instead of performing a regression on the floating point values, floating-point value outputs can be discretized by selecting a minimum and a maximum value range and then dividing the floating-point outputs into K bins, where K is a positive integer. Using the trays and if the output falls into a bin, a 1 is assigned, and if the output does not fall into a bin, an o is assigned. If the floating point value is not within the range of values represented by the bins, it can first be clipped to the next value in the range of values. Thus, the floating point outputs can be transformed from a floating point value to a discrete vector of oen and 1en (for example, a feature vector is a discrete vector of oen and 1en). The network (eg, the coding module) may then be trained to predict the K-dimensional vectors rather than a single floating-point value. During runtime (for example, during operation on a device), a single floating-point value of these K-dimensional outputs can be recovered by treating the activation as a weight for each compartment of the network. Then using the weighted sum of the mean values of each bin can yield a single floating-point value.

Als Beispiel kann der minimale und maximale Wertebereich 0 bis 10 sein, und es kann zehn Fächer geben. Wenn dann ein Gleitkommatrainingsziel zwischen 0 und 1 liegt, wird es dem ersten Fach zugeordnet, falls es zwischen 1 und 2 liegt, wird es dem zweiten Fach zugeordnet, und so weiter. Werte unter null werden dem ersten Fach zugeordnet, und Werte über zehn werden dem letzten Fach zugeordnet. Mit dieser Prozedur würde ein Trainingswert von 2,4 in den Vektor (0010000000) transformiert werden, ein Trainingswert von -1,3 würde in den Vektor (10000000 00) transformiert werden und ein Trainingswert von 11,9 würde in den Vektor (0000 000001) transformiert werden. Während der Laufzeit, falls der Netzwerkausgabevektor (0011000000) ist, würde die gewichtete Summenprozedur in dem Wert 3,0 resultieren.As an example, the minimum and maximum value range 0 to 10 and there can be ten subjects. Then, if a floating point training target is between 0 and 1, it will be assigned to the first bin, if it is between 1 and 2, it will be assigned to the second bin, and so on. Values below zero are assigned to the first bin, and values over ten are assigned to the last bin. With this procedure would add a training value of 2.4 to the vector ( 0010000000 ), a training value of -1.3 would be in the vector ( 10000000 00) and a training value of 11.9 would be transformed into the vector ( 0000 000001) are transformed. During runtime, if the network output vector ( 0011000000 ), the weighted sum procedure would result in the value 3.0.

In einigen Ausführungsformen, während des Trainings, kann der K-dimensionale Vektor auf „weichen“ Zuordnungen mithilfe jedem geeigneten Algorithmus oder jeder geeigneten Formel basieren. Zum Beispiel, wenn eine Startfachzuordnung wie oben gegeben ist, kann den benachbarten Fächern auch ein Wert gegeben werden, welcher sich auf die Differenz zwischen dem Ziel und dem Mittelwert des Fachs bezieht. Als ein Beispiel kann der Trainingswert von 2,4 in dem obigen Beispiel stattdessen basierend auf einer einfachen exponentiellen Gleichung in den Vektor (0.671.54000000) transformiert werden.In some embodiments, during training, the K-dimensional vector may be based on "soft" assignments using any suitable algorithm or formula. For example, if a starter mapping is given as above, the adjacent bins may also be given a value related to the difference between the target and the mean of the bin. As an example, the training value of 2.4 in the above example may instead be transformed into the vector (0.671.54000000) based on a simple exponential equation.

Transformieren der Gleitkommawerte zu diskreten Vektoren erlaubt es Dekodierungsprozess 200 (und dem Dekodierungsmodul) auf Werten für Pose des Gesichts und/oder Abstand zwischen dem Gesicht und der Kamera zu operieren, indem klassifiziert wird in welchem Fach die Werte sind, anstatt eine Regressionslösung zu verwenden, welche für Gleitkommawerte benötigt wird. Nach dem Klassifizieren kann Dekodierungsprozess 210 Mapping von einer gewichteten Summe von welchem Gleitkommawert die Mitte von einem Fach darstellt einschließen (zum Beispiel gewichteter Durchschnitt vom Buckel des Fachs). Das Klassifizieren und Mappen des diskreten Vektors und der Fächer kann Ausgabe von Pose und/oder Positionsbeurteilungen bereitstellen, welche relativ genau sind.Transforming floating-point values to discrete vectors allows decoding process 200 (and the decoding module) to operate on pose-for-face values and / or distance between the face and the camera by classifying in which pocket the values are, rather than using a regression solution needed for floating-point values. After classifying can decoding process 210 Mapping a weighted sum of which floating-point value represents the center of a bin (for example, weighted average of the hump of the bin). Classifying and mapping the discrete vector and the trays may provide output of pose and / or position judgments that are relatively accurate.

Verwenden von Klassifizierungen auf diskrete Vektoren anstatt von Regression von Gleitkommawerten kann es Dekodierungsprozess 210 erlauben einfacher zu lernen (zum Beispiel in Trainingsprozess 200 trainiert zu werden), da neurale Netzwerke typischerweise besser sind Klassifizierungen statt Regressionen vorzunehmen. Zusätzlich können Fehlerfunktionssignale für Regressionen relativ groß sein, da Fehlerfunktionssignale in Regressionen umso größer sind desto größer der Unterschied ist, wohingegen Fehlerfunktionssignale für diskrete Vektoren und Fächer im Wesentlichen gleich sind, unabhängig davon wie groß ein Unterschied in einem Fehler ist. Somit kann Verwenden diskreter Vektoren und Fächer in Dekodierungsprozess 210 zum Beurteilen von Pose und/oder Position für das Dekodierprozesslernen effizienter sein als das Verwenden von Gleitkommawerten.Using declarations on discrete vectors instead of regression of floating point values, it may decode process 210 allow easier learning (for example in training process 200 training), since neural networks are typically better at classifying rather than regressing. Additionally, error function signals for regressions may be relatively large, since error function signals in regressions are larger the greater the difference, whereas error function signals for discrete vectors and fans are substantially the same regardless of how large a difference in error is. Thus, using discrete vectors and compartments in decoding process 210 to evaluate pose and / or position for decoding process learning more efficiently than using floating-point values.

Wie beschrieben kann Trainingsprozess 200 Trainingskodierprozess 206 und Dekodierprozess 210 (und ihre entsprechenden Kodierungs- und Dekodierungsmodule) auf einer Vielzahl von Trainingsbildern mit einer Vielzahl von verschiedenen Benutzern und/oder Gesichtern in den Bildern zusammen mit variierenden Eigenschaften von den Gesichtern in den Bildern einschließen. Nachdem Trainingsprozess 200 auf einem Satz von Trainingsbildern abgeschlossen ist, können Betriebsparameter 214 durch den Trainingsprozess basierend auf der Korrelation zwischen den dekodierten Merkmalsvektoren und bekannten Daten 204 erzeugt werden. Betriebsparameter 214 schließen Parameter ein, welche in neuralem Netzwerkmodul 122 genutzt werden können (zum Beispiel Kodierungsmodul 124 und Dekodierungsmodul 126), gezeigt in 6, um Gesicht bzw. um Gesichter zu erkennen, welche in das neurale Netzwerkmodul von Kamera 102 eingegeben werden und um Werte von Eigenschaften von dem Gesicht beziehungsweise von den Gesichtern zu beurteilen (zum Beispiel eine Position von dem Gesicht, eine Pose von dem Gesicht, und ein Abstand zwischen dem Gesicht und der Kamera). In einigen Ausführungsformen schließen Betriebsparameter 214 Klassifizierungsparameter ein, welche in Dekodierungsmodul 126 verwendet werden. Klassifizierungsparameter können Parameter einschießen, welche zum Klassifizieren der dekodierten Merkmalsvektoren verwendet werden, welche mit bekannten Daten 204 während des Trainingsprozesses 200 korreliert wurden. Dekodierungsmodul 126 kann dann dazu in der Lage sein Merkmalsvektoren für ein aufgenommenes Bild zu klassifizieren, welche durch Kodierungsmodul 124 unter Verwendung der Klassifizierungsparameter erzeugt wurden. Dekodieren der Merkmalsvektoren für das aufgenommene Bild durch Klassifizieren der Merkmalsvektoren (unter Verwendung der Klassifizierungsparameter) kann es neuralem Netzwerkmodul 122 erlauben die Präsenz von Gesicht bzw. die Präsenz von Gesichtern und die Werte von Eigenschaften von dem Gesicht bzw. von den Gesichtern in dem aufgenommenen Bild zu beurteilen.As described can training process 200 Trainingskodierprozess 206 and decoding process 210 (and their corresponding encoding and decoding modules) on a plurality of training images having a plurality of different users and / or faces in the images along with varying characteristics of the faces in the images. After training process 200 completed on a set of training images, operating parameters 214 through the training process based on the correlation between the decoded feature vectors and known data 204 be generated. operating parameters 214 include parameters which in neural network module 122 can be used (for example, coding module 124 and decoding module 126 ), shown in 6 to detect face or faces entering into the camera neural network module 102 and to evaluate values of characteristics of the face (s) (for example, a position of the face, a pose of the face, and a distance between the face and the camera). In some embodiments, operating parameters include 214 Classification parameters included in decoding module 126 be used. Classification parameters may include parameters used to classify the decoded feature vectors associated with known data 204 during the training process 200 were correlated. decoding module 126 may then be able to classify feature vectors for a captured image by encoding module 124 were generated using the classification parameters. Decoding the feature vectors for the captured image by classifying the feature vectors (using the classification parameters) may be a neural network module 122 allow the presence of face or the presence of faces and the values of properties of the face (s) to be assessed in the captured image.

In einigen Ausführungsformen können Betriebsparameter 214 getestet werden indem die Betriebsparameter in neurales Netzwerkmodul 122 eingegeben werden und das Modul auf einem Beispielbild mit bekannten Informationen (zum Beispiel bekannte Gesichtsposition, bekannte Pose, und bekannter Abstand) zu betreiben. 8 zeigt ein Flussdiagramm für eine Ausführungsform von einem Testprozess für neurales Netzwerkmodul 122. In Testprozess 215 kann Beispielbildeingabe 216 dem neuralen Netzwerkmodul 122 zusammen mit Betriebsparametern 214 bereitgestellt werden. Neurales Netzwerkmodul 122 kann Beispielausgabedaten 218 bereitstellen indem Beispieleingabebild 216 unter Verwendung von Betriebsparametern 214 verarbeitet wird. Beispielausgabedaten 218 können mit bekannten Beispielbilddaten 220 verglichen werden um zu sehen ob die Daten in Übereinstimmungsdaten 222 übereinstimmen.In some embodiments, operating parameters 214 be tested by the operating parameters in neural network module 122 and operate the module on a sample image with known information (e.g., known face position, known pose, and known distance). 8th shows a flow chart for one embodiment of a test process for neural network module 122 , In test process 215 can sample picture input 216 the neural network module 122 together with operating parameters 214 to be provided. Neural network module 122 can sample output data 218 provide by example input image 216 using operating parameters 214 is processed. Sample output 218 can with known sample image data 220 be compared to see if the data is in match data 222 to match.

Wenn Beispielausgabedaten 218 mit bekannten Beispielbilddaten 220 übereinstimmen dann werden in 224 die Betriebsparameter eingestellt (zum Beispiel können Betriebsparameter 214 eingestellt und verwendet werden um neurales Netzwerkmodul 114 auf Prozessor 104, gezeigt in 3, zur Verwendung in einem Gesichtserfassungsprozess wie hierin beschrieben zu programmieren). Wenn Beispielausgabedaten 218 mit bekannten Beispielbilddaten 220 nicht übereinstimmen (innerhalb gewünschter Toleranzen) dann kann der Trainingsprozess (zum Beispiel Trainingsprozess 200, gezeigt in 5) in 226 fein abgestimmt werden. If sample output data 218 with known sample image data 220 then, at 224, the operating parameters are set (for example, operating parameters 214 can be set and used by neural network module 114 on the processor 104 , shown in 3 to be programmed for use in a face detection process as described herein). If sample output data 218 with known sample image data 220 can not match (within desired tolerances) then the training process (for example, training process 200 , shown in 5 ) in 226 fine tuned.

Feinabstimmen des Trainingsprozesses kann Bereitstellen zusätzlicher Trainingsbilder zu Trainingsprozess 200 und/oder andere Anpassungen in dem Trainingsprozess einschließen, um die Betriebsparameter für neurales Netzwerkmodul 122 zu verfeinern (oder um neue Betriebsparameter zu erzeugen).Fine tuning the training process may provide additional training images to the training process 200 and / or other adjustments in the training process to the neural network module operating parameters 122 to refine (or to create new operating parameters).

Sobald Betriebsparameter 214 für neurales Netzwerkmodul 122 in 224 eingestellt sind, können die Betriebsparameter auf Vorrichtung 100, gezeigt in 1, angewandt werden indem die Betriebsparameter dem neuralen Netzwerkmodul 114 auf der Vorrichtung bereitgestellt werden. In gewissen Ausführungsformen sind Betriebsparameter 214 für neurales Netzwerkmodul 122 in einem Zahlendarstellungsmodus der unterschiedlich zu dem Zahlendarstellungsmodus ist, welchen neurales Netzwerkmodul 114 verwendet um zu arbeiten. Zum Beispiel kann neurales Netzwerkmodul 122 Gleitkommazahlen verwenden während neurales Netzwerkmodul 114 ganze Zahlen verwendet. Folglich werden in solchen Ausführungsformen Betriebsparameter 214 für neurales Netzwerkmodul 122 von den Gleitkomma-Betriebsparametern zu ganzzahligen Betriebsparametern zur Verwendung in neuralem Netzwerkmodul 114 umgewandelt.Once operating parameters 214 for neural network module 122 are set in 224, the operating parameters on device 100 , shown in 1 , be applied by the operating parameters of the neural network module 114 be provided on the device. In certain embodiments, operating parameters 214 for neural network module 122 in a number representation mode that is different from the number representation mode, which neural network module 114 used to work. For example, neural network module 122 Use floating-point numbers during neural network module 114 integers used. Consequently, in such embodiments, operating parameters 214 for neural network module 122 from the floating point operating parameters to integer operating parameters for use in the neural network module 114 transformed.

Nachdem Betriebsparameter zu neuralem Netzwerkmodul 114 bereitgestellt wurden, kann das neurale Netzwerkmodul auf Vorrichtung 100 operieren um einen Gesichtserfassungsprozess auf der Vorrichtung zu implementieren. 9 stellt ein Flussdiagramm für eine Ausführungsform von Gesichtserfassungsprozess 250 dar, welcher unter Verwendung von neuralem Netzwerkmodul 114 auf Vorrichtung 100 implementiert wird. Bildeingabe 252 kann ein Bild einschließen, welches unter Verwendung von Kamera 102 auf Vorrichtung 100 aufgenommen wurde. Das aufgenommene Bild kann ein Flut-IR Beleuchtungsbild oder ein Tiefenmap Bild sein. Gesichtserfassungprozess 250 kann verwendet werden um zu erkennen ob eines oder mehrere Gesichter in dem Bild sind (zum Beispiel Platzieren eines Begrenzungsfelds um das Gesicht bzw. um die Gesichter) und, falls eines oder mehrere Gesichter erkannt wurden, um Werte von Eigenschaften von dem Gesicht bzw. von den Gesichtern zu beurteilen (zum Beispiel Position, Pose, und/oder Abstand).After operating parameters to neural network module 114 may be provided, the neural network module on device 100 operate to implement a face detection process on the device. 9 FIG. 10 illustrates a flowchart for one embodiment of the face detection process. FIG 250 which is using neural network module 114 on device 100 is implemented. image input 252 can include an image using camera 102 on device 100 has been recorded. The captured image may be a flood IR illumination image or a depth map image. Face detection process 250 can be used to detect whether one or more faces are in the image (e.g., placing a bounding box around the face or faces) and, if one or more faces were detected, to obtain values of characteristics from the face to judge the faces (for example position, pose, and / or distance).

Das aufgenommene Bild von Bildeingabe 252 kann dem Kodierungsprozess 254 bereitgestellt werden. Kodierungsprozess 254 kann durch Kodierungsmodul 116, gezeigt in 4, durchgeführt werden. In gewissen Ausführungsformen ist Kodierungsmodul 116 ein mehrskaliges faltendes neurales Netzwerk (zum Beispiel ist Kodierungsmodul 116 im Wesentlichen dasselbe neurale Netzwerk wie Kodierungsmodul 124). In Kodierungsprozess 254 kann Kodierungsmodul 116 Bildeingabe 252 kodieren um Merkmale in dem Bild als Merkmalsvektoren in einem Merkmalsraum darzustellen (zum Beispiel ein Merkmalsraum, der im Wesentlichen ähnlich zu Merkmalsraum 130, gezeigt in 7, ist). Kodierungsprozess 254 kann Merkmalsvektoren 256 ausgeben. Merkmalsvektoren 256 können zum Beispiel kodierte Bildmerkmale sein, die als Vektoren dargestellt sind.The captured image of image input 252 can the coding process 254 to be provided. coding process 254 can by coding module 116 , shown in 4 , be performed. In certain embodiments, coding module is 116 a multi-scale folding neural network (for example, coding module 116 essentially the same neural network as the coding module 124 ). In coding process 254 can be coding module 116 image input 252 to represent features in the image as feature vectors in a feature space (eg, a feature space substantially similar to feature space 130 , shown in 7 is). coding process 254 can feature vectors 256 output. feature vectors 256 For example, they may be encoded image features represented as vectors.

Merkmalsvektoren 256 können dem Dekodierungsprozess 258 bereitgestellt werden. Dekodierungsprozess 258 kann durch Dekodierungsmodul 118, gezeigt in 4, durchgeführt werden. In gewissen Ausführungsformen ist Dekodierungsmodul 118 ein rekurrentes neurales Netzwerk (zum Beispiel ist Dekodierungsmodul 118 im Wesentlichen dasselbe neurale Netzwerk wie Dekodierungsmodul 126). In Dekodierungsprozess 258 kann das Dekodierungsmodul Merkmalsvektoren 256 dekodieren, um eine oder mehrere Eigenschaften von Bildeingabe 252 zu beurteilen, um Ausgabedaten 260 von der Bildeingabe zu bestimmen (zum Beispiel zu extrahieren). Dekodieren der Merkmalsvektoren kann Klassifizieren der Merkmalsvektoren unter Verwendung von Klassifizierungsparametern, welche während des Trainingsprozess 200 bestimmt wurden, einschließen. Klassifizieren der Merkmalsvektoren kann Operieren auf den Merkmalsvektoren mit einem oder mehrerer Klassifizierern oder einem klassifikations-tauglichen Netzwerk einschließen. In gewissen Ausführungsformen schließt Dekodierungsprozess 258 Dekodieren von Merkmalsvektoren für jede Region in dem Merkmalsraum ein. Merkmalsvektoren von jeder von den Regionen des Merkmalsraums können in nichtüberlappende Boxen in Ausgabedaten 260 dekodiert werden. In gewissen Ausführungsformen schließt Dekodieren des Merkmalsvektors (zum Beispiel Extrahieren von Informationen von dem Merkmalsvektor) für eine Region Bestimmen (zum Beispiel Erkennen), ob eines oder mehrerer Gesichter in der Region präsent sind, ein. Während Dekodierungsprozess 258 auf jeder Region in dem Merkmalsraum operiert, kann das Dekodierungsmodul eine Gesichtserfassungsbewertung (zum Beispiel eine Vorhersage basierend auf einer Vertrauensbewertung hinsichtlich dessen, ob ein Gesicht oder ein Teil von einem Gesicht in der Region erkannt/präsent ist) für jede Region in dem Merkmalsraum bereitstellen. In einigen Ausführungsformen, unter Verwendung des RNN, können mehrere Vorhersagen hinsichtlich dessen, ob eines oder mehrere Gesichter (oder Teile von Gesichtern) präsent sind, für jede Region des Merkmalsraums mit den Vorhersagen bereitgestellt werden, einschließlich Vorhersagen über sowohl Gesichter in der Region als auch über Gesichter um die Region (zum Beispiel in benachbarten Regionen). Diese Vorhersagen können auf eine finale Entscheidung zu der Präsenz von einem oder von mehreren Gesichtern in Bildeingabe 252 reduziert werden. Ausgabedaten 260 können die Entscheidung zu der Präsenz von einem oder von mehreren Gesichtern in Bildeingabe 252 (zum Beispiel in dem aufgenommenen Bild) einschließen. In einigen Ausführungsformen können mehrere Regionen, die in Dekodierungsprozess 258 dekodiert werden, dasselbe Gesicht erkennen. Vertrauensreihenfolgen von Regionen können durch Dekodierungsprozess 258 auch bestimmt werden. Falls dasselbe Gesicht in mehreren Regionen erkannt wird, kann die Reihenfolge von Vertrauen für diese Regionen verwendet werden um die Region mit dem höchsten Vertrauen für das erkannte Gesicht zu bestimmen. Die Region mit der höchsten Vertrauensbewertung kann dann ausgewählt werden um Ausgabedaten 260 bereitzustellen (einschließlich zusätzlicher Daten für Werte von Eigenschaften von dem erkannten Gesicht).feature vectors 256 can the decoding process 258 to be provided. decoding process 258 can by decoding module 118 , shown in 4 , be performed. In certain embodiments, decoding module is 118 a recurrent neural network (for example, decoding module 118 essentially the same neural network as the decoding module 126 ). In decoding process 258 the decoding module can feature vectors 256 decode to one or more properties of image input 252 to judge to output data 260 from the image input to determine (for example, to extract). Decoding the feature vectors may classify the feature vectors using classification parameters that are used during the training process 200 were included. Classifying the feature vectors may include operating on the feature vectors with one or more classifiers or a classification-capable network. In certain embodiments, decoding process concludes 258 Decoding feature vectors for each region in the feature space. Feature vectors from each of the regions of feature space may be in non-overlapping boxes in output data 260 be decoded. In certain embodiments, decoding the feature vector (eg, extracting information from the feature vector) for a region includes determining (e.g., detecting) whether one or more faces are present in the region. During decoding process 258 on each region in the feature space, the decoding module may perform a face detection evaluation (e.g., a prediction based on a confidence score as to whether a face or part of a face is recognized / present in the region) for each region in the feature space. In some embodiments, using the RNN, multiple predictions as to whether one or more faces (or parts of faces) are present may be provided for each region of the feature space with the predictions, including predictions about both faces in the region as well about faces around the region (for example, in neighboring regions). These predictions may indicate a final decision on the presence of one or more faces in image input 252 be reduced. output data 260 can make the decision to the presence of one or more faces in image input 252 (for example, in the captured image). In some embodiments, multiple regions may be involved in the decoding process 258 be decoded, recognize the same face. Regions of trust can also be determined by decode process 258. If the same face is detected in multiple regions, the order of trust for those regions can be used to determine the region with the highest confidence in the detected face. The region with the highest confidence rating can then be selected for output data 260 (including additional data for values of characteristics of the detected face).

Wenn die Präsenz von einem oder mehrerer Gesichter in einer Region von dem Merkmalsraum erkannt werden, schließen die Vorhersagen, welche durch Dekodierungsprozess 258 erzeugt wurden, Beurteilungen (zum Beispiel Bestimmungen) von einem oder mehrerer Werte von Eigenschaften von dem erkannten Gesicht bzw. von den erkannten Gesichtern in der Region ein. Beurteilen von Eigenschaften von dem erkannten Gesicht beziehungsweise von den erkannten Gesichtern kann Klassifizieren der Merkmalsvektoren während des Dekodierens von den Merkmalsvektoren unter Verwendung von Klassifizierungsparametern (von Trainingsprozess 200 erhalten), welche mit den Eigenschaften, welche beurteilt werden, assoziiert sind, einschließen. In gewissen Ausführungsformen schließen die beurteilten Werte von den Eigenschaften eine Position von dem Gesicht im Verhältnis zu einer Mitte von der Region (zum Beispiel Versatz vom Gesicht von der Mitte von der Region), eine Pose von dem Gesicht in der Region, und einen Abstand zwischen dem Gesicht in der Region und der Kamera ein. In gewissen Ausführungsformen schließt die Pose des Gesichts Neigung, Gierung und/oder Rollen des Gesichts ein. Beurteilte Werte von den Eigenschaften können in den Ausgabedaten 260 zusammen mit der Entscheidung zu der Präsenz von einem oder von mehreren Gesichtern in Bildeingabe 252 eingeschlossen sein.When the presence of one or more faces in a region is recognized by the feature space, the predictions made by the decoding process close 258 generated, judgments (for example, determinations) of one or more values of characteristics of the recognized face (s) in the region. Judging properties of the recognized face (s) may be classified as the feature vectors during decoding from the feature vectors using classification parameters (from training process 200 obtained) associated with the properties to be assessed. In certain embodiments, the assessed values of the characteristics include a position of the face relative to a center of the region (eg, offset from the face of the center of the region), a pose of the face in the region, and a distance between the face in the region and the camera. In certain embodiments, the pose of the face includes inclination, yaw, and / or rolling of the face. Judged values from the properties can be found in the output data 260 included with the decision to presence of one or more faces in image input 252.

In gewissen Ausführungsformen werden Ausgabedaten 260 dem nachgeschalteten Prozess 262 bereitgestellt. Nachgeschalteter Prozess 262 kann jeden Prozess einschließen, der dem Gesichtserfassungsprozess 250 auf Vorrichtung 100 nachgeschaltet ist und der dazu in der Lage ist die Gesichtserfassungsprozessausgabe zu verwenden. Beispiele von nachgeschaltetem Prozess 262 schließen zusätzliche Bildsignalverarbeitung und security enclave Verarbeitung, wie zum Beispiel Gesichtserkennungsverarbeitung, ein, aber sind nicht darauf beschränkt. In einigen Ausführungsformen werden einer oder mehrerer Werte in Ausgabedaten 260 verwendet, um eine oder mehrere Operationen auf Vorrichtung 100 zu steuern. In einigen Ausführungsformen können die Abstandswerte in Ausgabedaten 260 verwendet werden, um eine Operation von Speckle Musterbeleuchtungsausgabe von Kamera 102 auf Vorrichtung 100 zu steuern. Zum Beispiel können Abstandswerte in Ausgabedaten 260 verwendet werden, um eine Dichte (oder eine Dichte-Einstellung) für Speckle Musterbeleuchtungsausgabe von Kamera 102 zu bestimmen, wie in der gemeinsam anhängigen vorläufigen U.S. Patentanmeldung von Fasel, Guo, Kumar und Gernoth, betitelt „BESTIMMEN SPÄRLICHER GEGEN DICHTE MUSTERBELEUCHTUNG“, welche hierin durch Bezugnahme eingeschlossen ist, als ob sie hierin vollständig dargelegt wäre.In certain embodiments, output data becomes 260 the downstream process 262 provided. Downstream process 262 can include any process involving the face detection process 250 on device 100 is downstream and is able to use the face detection process output. Examples of downstream process 262 include additional image signal processing and security enclave processing, such as face recognition processing, but are not limited thereto. In some embodiments, one or more values become output data 260 used to perform one or more operations on device 100 to control. In some embodiments, the distance values may be in output data 260 used to be an operation of Speckle pattern illumination output from camera 102 on device 100 to control. For example, distance values can be in output data 260 used to set a density (or density setting) for Speckle pattern lighting output from camera 102 as defined in the co-pending US Provisional Patent Application of Fasel, Guo, Kumar, and Gernoth, entitled "DETERMINING MORE SPIRENT OF DENSITY PATTERN LIGHTING," which is incorporated herein by reference as if fully set forth herein.

Wie in 9 gezeigt, kann Gesichtserfassungsprozess 250 verwendet werden um eines oder mehrere Gesichter in einem Bild zu erkennen, welches durch Kamera 102 auf Vorrichtung 100 aufgenommen wurde. Ausgabedaten 260 können eine Entscheidung dazu einschließen, dass eines oder mehrere Gesichter in dem aufgenommenen Bild zusammen mit Daten für Werte von Eigenschaften von dem erkannten Gesicht bzw. von den erkannten Gesichtern enthalten sind (zum Beispiel Position, Pose, und/oder Abstand von der Kamera). Gesichtserfassungsprozess 250 nutzt ein einzelnes Netzwerkmodul (zum Beispiel neurales Netzwerkmodul 114) um Gesichtserfassungsausgabe zusammen mit Position, Pose und Abstand von der Kamera von dem erkannten Gesicht bzw. von den erkannten Gesichtern bereitzustellen. Verwenden des neuralen Netzwerkmoduls 114 erlaubt es Gesichtserfassungsprozess 250 mit reduzierter Rechenkomplexität zu implementieren, weil Berechnungen für Gesichtserfassung und Vorhersage von Position, Pose und Abstand zwischen diesen Aufgaben geteilt werden. Teilen dieser Aufgaben kann auch bessere Laufzeitleistung bereitstellen.As in 9 can be shown, face detection process 250 be used to detect one or more faces in an image, which by camera 102 on device 100 has been recorded. output data 260 may include a decision to include one or more faces in the captured image along with data for values of characteristics of the detected face (s) (e.g., position, pose, and / or distance from the camera). Face detection process 250 uses a single network module (for example neural network module 114 ) to provide face detection output along with position, pose and distance from the camera from the recognized face (s). Using the neural network module 114 allows face detection process 250 to be implemented with reduced computational complexity because calculations for face detection and prediction of position, pose and distance between these tasks are shared. Sharing these tasks can also provide better runtime performance.

In gewissen Ausführungsformen können Werte für den Abstand von der Kamera, welche in Ausgabedaten 260 in Gesichtserfassungsprozess 250 bereitgestellt werden, angepasst (zum Beispiel korrigiert oder kalibriert) werden nachdem Ausgabedaten 260 bestimmt sind. Zum Beispiel können die Abstandswerte, welche durch Prozess 250 unter Verwendung von Flut-IR Beleuchtungsbildern erzeugt wurden, ohne einige weitere Kalibrierung oder Korrektur eine gewisse Ungenauigkeit aufweisen. Zum Beispiel wird in gewissen Ausführungsformen der interokulare Abstand (zum Beispiel Abstand zwischen den Augen), oder ein Abstand zwischen anderen Gesichtsmarkierungen verwendet um den Abstand von dem Gesicht von der Kamera (zum Beispiel Abstand von der Vorrichtung) in Flut-IR Beleuchtungsbildern zu bestimmen. Unterschiedliche Subjekte (zum Beispiel unterschiedliche Leute) können jedoch typischerweise unterschiedliche Abstände zwischen Markierungen (zum Beispiel unterschiedliche interokulare Abstände) aufweisen. Somit können aufgrund der Subjektabhängigkeit Ungenauigkeiten in der Beurteilung von Abständen von Flut-IR Beleuchtungsbildern infolge der Änderungen in Subjekten (zum Beispiel entweder Änderungen in einem einzelnen Subjekt oder Änderungen zwischen unterschiedlichen Subjekten) auftreten.In certain embodiments, values for the distance from the camera resulting in output data 260 in face detection process 250 provided, adjusted (for example, corrected or calibrated) after output data 260 are determined. For example, the distance values generated by process 250 were generated using flood IR illumination images without some further calibration or correction having some inaccuracy. For example, in certain embodiments, the interocular distance (eg, distance between the eyes) or a distance between other face markers is used to determine the distance from the face of the camera (for example, distance from the device) in flood IR illumination images. However, different subjects (for example, different people) may typically have different distances between markers (eg, different interocular distances). Thus, due to the subject dependency, inaccuracies in the evaluation of distances of flood IR illumination images due to changes in subjects (for example, either changes in a single subject or changes between different subjects) may occur.

Tiefenmap Bilder können in der Bestimmung des Abstands von dem Gesicht von der Kamera infolge der Speckle Musterbeleuchtung, die verwendet wird um Tiefenmap Bilder und die Dreidimensionalität von Tiefenmap Bildern zu erzeugen, genauer sein. Zum Beispiel kann die Tiefenmap Informationen bereitstellen, welche den Abstand von unterschiedlichen Teilen des Gesichts von dem Benutzer zu der Kamera beschreiben (zum Beispiel den Abstand von der Spitze der Nase von dem Benutzer zu der Kamera, den Abstand von der Mitte der Stirn von dem Benutzer zu der Kamera und den Abstand von dem rechten Auge des Benutzers zu der Kamera).Depth-of-field images may be more accurate in determining the distance from the face of the camera due to the speckle pattern illumination used to produce depth-map images and the three-dimensionality of depth-map images. For example, the depth map may provide information describing the distance of different parts of the face from the user to the camera (e.g., the distance from the tip of the nose from the user to the camera, the distance from the center of the forehead of the user to the camera and the distance from the user's right eye to the camera).

10 zeigt ein Flussdiagramm für eine Ausführungsform von Abstandsmessungsanpassungsprozess 350. In gewissen Ausführungsformen werden Daten (zum Beispiel Kalibrierungsdaten), die verwendet werden um Abstandsmessungen anzupassen, während eines Anmeldevorgangs auf Vorrichtung 100 gesammelt. Der Anmeldevorgang kann einschließen eine Vielzahl von Flut-IR Beleuchtungsbildern und eine Vielzahl von Tiefenmap Bildern aufzunehmen. Vorgang 350 kann mit Beurteilen der Abstände in der aufgenommenen Flut-IR Beleuchtung beginnen um beurteilte Flutabstände 352 zu erhalten und kann mit Beurteilen des Abstands in den aufgenommenen Tiefenmap Bildern beginnen um beurteilte Tiefenabstände 354 zu erhalten. 10 FIG. 10 is a flowchart for one embodiment of the distance measurement adjustment process. FIG 350 , In certain embodiments, data (eg, calibration data) used to adjust distance measurements is collected on device 100 during a logon process. The sign in process may include capturing a plurality of flood IR illumination images and a plurality of depth map images. Task 350 may begin by evaluating the distances in the captured flood-IR illumination at assessed flood distances 352 and can begin by judging the distance in the recorded Tiefenmap images by estimated depth distances 354 to obtain.

Die beurteilten Abstände in 352 und 354 können dem Abstandsanpassungsprozess 360 bereitgestellt werden. In Abstandsanpassungsprozess 360 können die beurteilten Abstände verglichen werden um eine Kalibrierungsanpassung für die Flut-IR Beleuchtungsbilder basierend auf den beurteilten Abständen von den Tiefenmap Bildern zu bestimmen, welche im Wesentlichen zum Bestimmen von Abständen zwischen dem Benutzer und der Vorrichtung (zum Beispiel der Kamera) genau ist. 11 zeigt ein Beispiel von einem Abstand, welcher von Flut-IR Beleuchtungsbildern bestimmt wird, welche während eines Anmeldevorgangs aufgenommen wurden (y-Achse), gegen Abstand, welcher von entsprechenden Tiefenmap Bildern bestimmt wird, welche während des Anmeldevorgangs aufgenommen wurden (x-Achse). Linie 302 kann eine Linie sein, welche Abstand darstellt, welcher von den Flut-IR Beleuchtungsbildern bestimmt wurde. Linie 304 kann eine Linie sein, welche Abstand darstellt, welcher von den Tiefenmap Bildern bestimmt wurde.The judged distances in 352 and 354 may be the distance adjustment process 360 to be provided. In distance adjustment process 360 For example, the judged distances may be compared to determine a calibration adjustment for the flood IR illumination images based on the assessed distances from the depth map images, which is substantially accurate to determining distances between the user and the device (eg, the camera). 11 FIG. 12 shows an example of a distance determined by flood IR illumination images taken during a log-on process (y-axis) versus distance determined by corresponding depth-map images taken during the log-on process (x-axis). , line 302 may be a line representing the distance determined by the flood IR illumination images. line 304 may be a line representing the distance determined by the depth map images.

In gewissen Ausführungsformen wird eine Kalibrierungsanpassung von einem Vergleich von Linie 302 zu Linie 304 bestimmt. Zum Beispiel kann eine Gleichung bestimmt werden, welche Linie 302 anpasst um im Wesentlichen mit Linie 304 übereinzustimmen. Anpassen von Linie 302 kann zum Beispiel Anpassen der Steigung und des Versatzes von Linie 302 einschließen um am besten mit Linie 304 übereinzustimmen (oder eine andere gewünschte Linie oder Kurve).In certain embodiments, a calibration adjustment will be from a comparison of line 302 to line 304 certainly. For example, an equation can be determined which line 302 essentially adapts to line 304 match. Adjusting line 302 for example, can adjust the slope and offset of line 302 include around best with line 304 to match (or another desired line or curve).

Sobald die Kalibrierungsanpassung bestimmt ist, kann die Kalibrierungsanpassung verwendet werden um angepasste Abstandswerte 362 bereitzustellen, wie in 10 gezeigt. In gewissen Ausführungsformen werden Ausgabedaten 260 (von Gesichtserfassungsprozess 250) dem Abstandsanpassungsprozess 360 bereitgestellt. Somit kann Abstandsanpassungsprozess 360 implementiert werden nachdem Ausgabedaten 260 von Gesichtserfassungsprozess 250 bestimmt wurden. Abstandsanpassungsprozess 360 kann die Kalibrierungsanpassung auf Ausgabedaten 260 betreiben um angepasste Abstandswerte 362 bereitzustellen. Angepasste Abstandswerte 362 können eine genauere Abschätzung von Abstand zwischen Vorrichtung 100 und dem Subjekt in den Bildern von Gesichtserfassungsprozess 250 bereitstellen.Once the calibration adjustment is determined, the calibration adjustment can be used by adjusted distance values 362 to provide, as in 10 shown. In certain embodiments, output data becomes 260 (from face detection process 250 ) the distance adjustment process 360 provided. Thus, pitch adjustment process can 360 be implemented after output data 260 from face detection process 250 were determined. Distance adjustment process 360 can operate the calibration adjustment on output data 260 by adjusted distance values 362 provide. Adapted distance values 362 can give a more accurate estimate of distance between device 100 and the subject in the images of facial perception process 250 provide.

Angepasste Abstandswerte 362 können in einer oder in mehreren Operationen auf Vorrichtung 100 verwendet werden um die Operationen von der Vorrichtung zu verbessern. Zum Beispiel können angepasste Abstandswerte 362 verwendet werden um eine Dichte (oder eine Dichteeinstellung) für Speckle Musterbeleuchtungsausgabe von Kamera 102 zu bestimmen. In einigen Ausführungsformen können angepasste Abstandswerte 362 verwendet werden um Belichtungsautomatik und/oder Autofokuseinstellungen für Kamera 102 anzupassen. In einigen Ausführungsformen werden angepasste Abstandswerte 362 verwendet um Benutzerfeedback bereitzustellen. Zum Beispiel können angepasste Abstandswerte 362 zu einem Grenzwert oder einem Grenzwertbereich verglichen werden und falls der Benutzer außerhalb des Grenzwerts ist (zum Beispiel zu nah oder zu weit von Kamera 102 entfernt), kann der Benutzer benachrichtigt werden und kann dem Benutzer mitgeteilt werden den Abstand zu der Kamera anzupassen bevor die Kamera zusätzliche Bilder aufnimmt.Adapted distance values 362 can in one or more operations on device 100 used to improve the operations of the device. For example, adjusted distance values 362 used to set a density (or density setting) for Speckle pattern lighting output from camera 102 to determine. In some embodiments, adjusted distance values 362 can be used for auto exposure and / or camera autofocus settings 102 adapt. In some embodiments, adjusted distance values become 362 used to provide user feedback. For example, adjusted distance values 362 are compared to a threshold or threshold range and if the user is out of bounds (for example too close or too far from the camera 102 removed), the user can be notified and can be told the user to adjust the distance to the camera before the camera takes additional pictures.

Wie oben beschrieben kann Abstandsanpassungsprozess 360 eine Kalibrierungsanpassung basierend auf Abständen, welche von Flut-IR Beleuchtungsbildern abgeschätzt wurden, und basierend auf Abständen, welche von Tiefenmap Bildern abgeschätzt wurden, bestimmen. In einigen Ausführungsformen wird die Kalibrierungsanpassung als eine globale Kalibrierungsanpassung für Vorrichtung 100 bestimmt. Zum Beispiel kann die Kalibrierungsanpassung während eines Trainings/Lernprozesses, welcher mit Vorrichtung 100 assoziiert ist und in einer Vielzahl von Vorrichtungen verwendet wird, bestimmt werden. In einigen Ausführungsformen kann die Kalibrierungsanpassung von der globalen Kalibrierungsanpassung basierend auf einem Subjekt (oder Subjekten), die auf Vorrichtung 100 angemeldet sind, angepasst werden. Zum Beispiel kann die globale Kalibrierungsanpassung für ein Subjekt angepasst (bestimmt) werden, während das Subjekt auf Vorrichtung 100 angemeldet ist. Um die globale Kalibrierungsanpassung für das Subjekt während Anmeldung anzupassen, kann eine vorrichtungs- /subjektbasierte Kalibrierungsanpassung von Anmeldebildern (zum Beispiel von einem Vergleich von Abständen, welche von Flut-IR Beleuchtungsanmeldebildern beurteilt wurden und Abstand, welcher von Tiefenmap Anmeldebildern beurteilt wurde) bestimmt werden. Falls mehrerer Subjekte auf Vorrichtung 100 angemeldet sind, dann können unabhängige Kalibrierungsanpassungen für jedes Subjekt bestimmt werden, wobei die Kalibrierungsanpassungen unter Verwendung der Anmeldebilder des jeweiligen Subjekts bestimmt werden.As described above, pitch adjustment process 360 determine calibration adjustment based on distances estimated from flood IR illumination images and based on distances estimated from depth map images. In some embodiments, the calibration adjustment is considered a global calibration adjustment for device 100 certainly. For example, the calibration adjustment may be made during a training / learning process using device 100 is determined and used in a variety of devices are determined. In some embodiments, the calibration adjustment may be from the global calibration adjustment based on a subject (or subjects) that rely on the device 100 are registered, adapted. For example, the global calibration adjustment for a subject may be adjusted (determined) while the subject is on device 100 is logged in. In order to adjust the global calibration adjustment for the subject during enrollment, device / subject based calibration adjustment of login images (for example, a comparison of distances assessed by flood IR illumination login images and distance judged by depthmap login images) may be determined. If several subjects on device 100 logged in, then independent calibration adjustments can be determined for each subject, with the calibration adjustments determined using the login images of the subject.

In gewissen Ausführungsformen wird die Kalibrierungsanpassung auf Vorrichtung 100 bestimmt (zum Beispiel wird der Vorrichtung keine globale Kalibrierungsanpassung bereitgestellt). In solchen Ausführungsformen wird die Kalibrierungsanpassung unabhängig voneinander für jedes Subjekt, welches auf Vorrichtung 100 angemeldet ist, bestimmt (zum Beispiel wird die Kalibrierungsanpassung unabhängig voneinander für jeden autorisierten Benutzer von der Vorrichtung bestimmt, der durch den Anmeldevorgang gegangen ist). Eine unterschiedliche unabhängige Kalibrierungsanpassung kann für jedes unterschiedliche Subjekt bestimmt werden, das auf Vorrichtung 100 angemeldet ist, wenn zum Beispiel Abstandsvariationen zwischen den Benutzern vorliegen. In einigen Ausführungsformen wird eine einzelne Kalibrierungsanpassung für jeden Benutzer (zum Beispiel Subjekt), der auf Vorrichtung 100 angemeldet ist, verwendet (zum Beispiel wird die Kalibrierungsanpassung global für jeden Benutzer verwendet).In certain embodiments, the calibration adjustment will be on device 100 determines (for example, no global calibration adjustment is provided to the device). In such embodiments, the calibration adjustment is independent of each subject, which device 100 is logged on (for example, the calibration adjustment is independently determined for each authorized user by the device that has gone through the login process). A different independent calibration adjustment can be determined for each different subject on device 100 logged in, for example, if there are distance variations between the users. In some embodiments, a single calibration adjustment is used for each user (eg, subject) logged in to device 100 (for example, the calibration adjustment is used globally for each user).

In einigen Ausführungsformen wird die Kalibrierungsanpassung dynamisch auf Vorrichtung 100 bestimmt, während die Vorrichtung Bilder verarbeitet. Zum Beispiel kann die Kalibrierungsanpassung für jedes Subjekt angepasst werden, während Sätze von Bildern (zum Beispiel ein Satz von Flut-IR und Tiefenmap Bildern) auf der Vorrichtung aufgenommen werden. Insbesondere kann in einigen Ausführungsformen Abstandsmessungsanpassungsprozess 350 betrieben werden nachdem jeder Satz von entsprechenden Flut-IR Bildern und Tiefenmap Bildern für ein Subjekt aufgenommen wurden.In some embodiments, the calibration adjustment dynamically changes to device 100 determined while the device processes images. For example, the calibration adjustment for each subject may be adjusted while capturing sets of images (eg, a set of flood IR and depth map images) on the device. In particular, in some embodiments, distance measurement adjustment process 350 after each set of corresponding flood IR images and depth map images have been taken for a subject.

In einigen Ausführungsformen kann es nicht gewünscht sein eine Kalibrierungsanpassung auf Vorrichtung 100 zu bestimmen. 12 zeigt ein Beispiel von einem Abstand, welcher von Flut-IR Beleuchtungsbildern bestimmt wird, welche während eines Anmeldevorgangs aufgenommen wurden (y-Achse), gegen Abstand, welcher von entsprechenden Tiefenmap Bildern bestimmt wird, welche während des Anmeldevorgangs aufgenommen wurden (x-Achse), wobei eine Kalibrierungsgleichung nicht gewünscht sein kann. Wie durch die zwei Linien in 12 gezeigt, kann eine große Anpassung benötigt werden um die Linie für die Flut-IR Beleuchtungsdaten anzupassen damit sie im Wesentlichen mit der Linie für Tiefenmap Bilddaten übereinstimmt. Solch eine große Anpassung kann ein Hinweis dafür sein, dass die Daten ungenau sind und/oder, dass es schwierig sein kann genaue Anpassung für das Subjekt bereitzustellen. In einigen Ausführungsformen kann die Anpassung in der Linie für die Flut-IR Beleuchtungsdaten verworfen werden (zum Beispiel nicht benutzt werden), wenn die Steigungs- und Versatzwerte vorbestimmte Grenzwerte überschreiten.In some embodiments, it may not be desired to calibrate the device 100 to determine. 12 FIG. 12 shows an example of a distance determined by flood IR illumination images taken during a log-on process (y-axis) versus distance determined by corresponding depth-map images taken during the log-on process (x-axis). where a calibration equation may not be desired. As by the two lines in 12 As shown, a large adjustment may be needed to adjust the line for the flood IR illumination data to substantially coincide with the line for depth map image data. Such a large adjustment may be an indication that the data is inaccurate and / or that it may be difficult to provide accurate fit for the subject. In some embodiments, the in-line fit for the flood IR illumination data may be discarded (eg, not used) when the slope and offset values exceed predetermined thresholds.

In gewissen Ausführungsformen kann einer oder können mehrere Prozessschritte, die hierin beschrieben wurden, durch einen oder mehrere Prozessoren (zum Beispiel ein Computerprozessor), welche Instruktionen ausführen, die auf einem nichtflüchtigen computerlesbaren Medium gespeichert sind, ausgeführt werden. Zum Beispiel können Prozess 200, gezeigt in 5, oder Prozess 250, gezeigt in 9, einen oder mehrere Schritte aufweisen, welche durch einen oder mehrere Prozessoren ausgeführt werden, welche Instruktionen, die als Programminstruktionen in einem computerlesbaren Speichermedium gespeichert sind, ausführen (zum Beispiel ein nichtflüchtiges computerlesbares Speichermedium).In certain embodiments, one or more process steps described herein may be performed by one or more processors (eg, a computer processor) executing instructions stored on a non-transitory computer-readable medium. For example, process can 200 , shown in 5 , or process 250 , shown in 9 comprise one or more steps executed by one or more processors executing instructions stored as program instructions in a computer readable storage medium (e.g., a non-transitory computer readable storage medium).

13 stellt ein Blockdiagramm von einer Ausführungsform von beispielhaftem Computersystem 510 dar. Beispielhaftes Computersystem 510 kann verwendet werden um eine oder mehrere Ausführungsformen zu implementieren, die hierin beschrieben wurden. In einigen Ausführungsformen ist Computersystem 510 durch einen Benutzer betreibbar um eine oder mehrere Ausführungsformen, die hierin beschrieben wurden, wie zum Beispiel Prozess 200, gezeigt in 5, oder Prozess 250, gezeigt in 9, zu implementieren. In der Ausführungsform von 13 schließt Computersystem 510 Prozessor 512, Speicher 514, und verschiedene Peripheriegeräte 516 ein. Prozessor 512 ist an Speicher 514 und Peripheriegeräte 516 gekoppelt. Prozessor 512 ist konfiguriert um Instruktionen auszuführen, die Instruktionen für Prozess 200 oder für Prozess 250 einschließen, welche in Software sein können. In verschiedenen Ausführungsformen kann Prozessor 512 jeden gewünschten Befehlssatz implementieren (zum Beispiel Intel Architecutre-32 (IA-32, auch bekannt als x86), IA-32 mit 64 Bit Erweiterungen, x86-64, PowerPC, Sparc, MIPS, ARM, IA-64, usw.). In einigen Ausführungsformen schließt Computersystem 510 mehr als einen Prozessor ein. Darüber hinaus kann Prozessor 512 einen oder mehrere Prozessoren oder einen oder mehrere Prozessorkerne einschließen. 13 FIG. 12 illustrates a block diagram of one embodiment of an exemplary computer system. FIG 510 dar. Exemplary computer system 510 can be used to implement one or more embodiments described herein. In some embodiments, computer system is 510 operable by a user to one or more embodiments described herein, such as process 200 , shown in 5 , or process 250 , shown in 9 , to implement. In the embodiment of 13 includes computer system 510 processor 512 , Storage 514 , and various peripherals 516 one. Processor 512 is at memory 514 and peripherals 516 coupled. processor 512 is configured to execute instructions containing instructions for process 200 or for trial 250 which may be in software. In various embodiments, processor 512 implement any desired instruction set (for example, Intel Architec- 32 (IA 32 aka x86), IA-32 with 64-bit extensions, x86-64, PowerPC, Sparc, MIPS, ARM, IA 64 , etc.). In some embodiments, computer system includes 510 more than one processor. In addition, processor can 512 include one or more processors or one or more processor cores.

Prozessor 512 kann an Speicher 514 und Peripheriegeräte 516 in jeder gewünschten Art und Weise gekoppelt sein. Zum Beispiel kann Prozessor 512 in einigen Ausführungsformen an Speicher 514 und/oder Peripheriegeräte 516 über verschiedene Zwischenverbindungen gekoppelt sein. Alternativ oder zusätzlich können einer oder mehrere Brückenchips verwendet werden um Prozessor 512, Speicher 514 und Peripheriegeräte 516 zu koppeln.processor 512 can to memory 514 and peripherals 516 be coupled in any way you want. For example, processor 512 memory in some embodiments 514 and / or peripherals 516 be coupled via different interconnections. Alternatively or additionally, one or more bridge chips may be used for processor 512 , Storage 514 and peripherals 516 to pair.

Speicher 514 kann jeden Typ von Speichersystemen umfassen. Zum Beispiel kann Speicher 514 DRAM, und insbesondere double data rate (DDR) SDRAM, RDRAM, usw. umfassen. Eine Speichersteuerung kann eingeschlossen sein um mit Speicher 514 zu kommunizieren, und/oder Prozessor 512 kann eine Speichersteuerung einschließen. Storage 514 can include any type of storage system. For example, memory can 514 DRAM, and in particular double data rate (DDR) SDRAM, RDRAM, etc. include. A memory controller may be included to memory 514 to communicate, and / or processor 512 may include a memory controller.

Speicher 514 kann die Instruktionen speichern, die durch Prozessor 512 während Benutzung ausgeführt werden, oder kann Daten speichern auf denen basierend durch den Prozessor während Benutzung operiert werden soll, usw.Storage 514 can save the instructions by processor 512 may be executed during use, or may store data to be operated upon by the processor during use, etc.

Peripheriegeräte 516 können jede Art von Hardwarevorrichtungen darstellen, welche in Computersystem 510 eingeschlossen oder daran gekoppelt sein können (zum Beispiel Speichervorrichtungen, optional einschließend computer-zugängliches Speichermedium 600, gezeigt in 14, andere Eingabe/Ausgabe (I/O, Input/Output) Vorrichtungen, wie zum Beispiel Video Hardware, Audio Hardware, Benutzerschnittstellenvorrichtungen, Netzwerk Hardware, usw.).peripherals 516 can represent any type of hardware devices used in computer system 510 or may be coupled thereto (for example, storage devices, optionally including computer-accessible storage medium 600 , shown in 14 , other input / output (I / O, input / output) devices, such as video hardware, audio hardware, user interface devices, network hardware, etc.).

Nun auf 14 zu sprechen kommend, ein Blockdiagramm von einer Ausführungsform von computer-zugänglichem Speichermedium 600 schließt eine oder mehrere Datenstrukturen, die Vorrichtung 100 darstellen, ein (veranschaulicht in 1), eingeschlossen in einer integrierten Schaltungsstruktur und einer oder mehreren Codesequenzen, die Prozess 250 darstellen (gezeigt in 9). Jede Codesequenz kann eine oder mehrere Instruktionen einschließen, welche, wenn sie durch einen Prozessor in einem Computer ausgeführt werden, die Operationen implementieren, die für die entsprechende Codesequenz beschrieben wurden. Im Allgemeinen kann ein computer-zugängliches Speichermedium jedes Speichermedium einschließen, welches durch einen Computer während der Verwendung zugänglich ist, um dem Computer Instruktionen und/oder Daten bereitzustellen. Zum Beispiel kann ein computer-zugängliches Speichermedium nicht-flüchtige Speichermedien einschließen, wie zum Beispiel magnetische oder optische Medien, zum Beispiel, Festplatte (fest oder entfernbar), Band, CD-ROM, DVD-ROM, CD-R, CD-RW, DVD-R, DVD-RW, oder Blu-Ray. Speichermedien können ferner flüchtige oder nicht-flüchtige Speichermedien, wie zum Beispiel RAM (zum Beispiel synchroner dynamischer RAM (SDRAM), Rambus DRAM (RDRAM), statischen RAM (SRAM), usw.), ROM, oder Flash Speicher einschließen. Die Speichermedien können physikalisch innerhalb des Computers, an welchen die Speichermedien Instruktionen/Daten bereitstellen, eingeschlossen sein. Alternativ können die Speichermedien an den Computer angeschlossen sein. Zum Beispiel können die Speichermedien an den Computer über ein Netzwerk oder eine Drahtlosverbindung, wie zum Beispiel Netzwerkspeicherlösung (engl.: network attached storage), angeschlossen sein. Die Speichermedien können durch eine Peripherieschnittstelle, wie zum Beispiel der Universal Serial Bus (USB), angeschlossen sein. Im Allgemeinen kann computer-zugängliches Speichermedium 600 Daten in einer nicht-flüchtigen Art und Weise speichern, wobei nicht-flüchtig sich in diesem Kontext darauf bezieht die Instruktionen/Daten nicht auf einem Signal zu übertragen. Zum Beispiel kann nichtflüchtiger Speicher flüchtig sein (und kann die gespeicherten Instruktionen/Daten in Antwort auf ein Ausschalten verlieren), oder kann nicht-flüchtig sein.Now up 14 to speak, a block diagram of one embodiment of computer-accessible storage medium 600 includes one or more data structures, the device 100 represent, a (illustrated in 1 ), included in an integrated circuit structure and one or more code sequences, the process 250 represent (shown in 9 ). Each code sequence may include one or more instructions which, when executed by a processor in a computer, implement the operations described for the corresponding code sequence. In general, a computer-accessible storage medium may include any storage medium that is accessible by a computer during use to provide instructions and / or data to the computer. For example, a computer-accessible storage medium may include non-volatile storage media, such as magnetic or optical media, for example, hard disk (fixed or removable), tape, CD-ROM, DVD-ROM, CD-R, CD-RW, DVD-R, DVD-RW, or Blu-Ray. Storage media may further include volatile or non-volatile storage media, such as RAM (for example, synchronous dynamic RAM (SDRAM), Rambus DRAM (RDRAM), static RAM (SRAM), etc.), ROM, or flash memory. The storage media may be physically included within the computer to which the storage media provide instructions / data. Alternatively, the storage media may be connected to the computer. For example, the storage media may be connected to the computer via a network or wireless connection, such as network attached storage. The storage media may be connected through a peripheral interface, such as the Universal Serial Bus (USB). In general, computer-accessible storage medium 600 may store data in a non-transitory manner, non-transiently in this context referring to not transmitting the instructions / data on a signal. For example, nonvolatile memory may be volatile (and may lose the stored instructions / data in response to a power down), or may be non-volatile.

Weitere Modifikationen und alternative Ausführungsformen von verschiedenen Aspekten und den Ausführungsformen, die in dieser Offenbarung beschrieben wurden, werden dem Fachmann im Lichte dieser Beschreibung ersichtlich sein. Dementsprechend ist diese Beschreibung nur als veranschaulichend zu verstehen und ist für den Zweck gedacht dem Fachmann die allgemeine Weise der Ausführung dieser Ausführungsformen näherzubringen. Es ist zu verstehen, dass die Formen von den Ausführungsformen, welche hierin gezeigt und beschrieben sind, als die derzeit bevorzugten Ausführungsformen zu verwenden sind. Elemente und Materialien können für die hierin veranschaulichten und beschriebenen ausgetauscht werden, Teile und Prozesse können umgekehrt werden, und gewisse Merkmale von den Ausführungsformen können unabhängig verwendet werden, alles wie es dem Fachmann nach dem Nutzen dieser Beschreibung offensichtlich wäre. Änderungen können in den Elementen, die hierin beschrieben wurden, durchgeführt werden ohne von dem Geiste und dem Umfang der nachfolgenden Ansprüche abzuweichen.Further modifications and alternative embodiments of various aspects and the embodiments described in this disclosure will become apparent to those skilled in the art in light of this description. Accordingly, this description is to be considered as illustrative only and is intended for the purpose of assisting one of ordinary skill in the art to generally practice the implementation of these embodiments. It is to be understood that the forms of the embodiments shown herein and are described as the presently preferred embodiments are to be used. Elements and materials may be substituted for those illustrated and described herein, parts and processes may be reversed, and certain features of the embodiments may be used independently, all as would be apparent to those skilled in the art after the benefit of this description. Changes may be made in the elements described herein without departing from the spirit and scope of the following claims.

ZITATE ENTHALTEN IN DER BESCHREIBUNG QUOTES INCLUDE IN THE DESCRIPTION

Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.This list of the documents listed by the applicant has been generated automatically and is included solely for the better information of the reader. The list is not part of the German patent or utility model application. The DPMA assumes no liability for any errors or omissions.

Zitierte PatentliteraturCited patent literature

  • US 8150142 [0015]US 8150142 [0015]
  • US 8749796 [0015]US 8749796 [0015]
  • US 8384997 [0015]US 8384997 [0015]
  • US 2016/0178915 [0015]US 2016/0178915 [0015]

Claims (15)

Vorrichtung, umfassend: - Mittel zum Aufnehmen von mindestens einem Bild unter Verwendung einer Kamera, welche auf einer Vorrichtung angeordnet ist, wobei die Vorrichtung einen Computerprozessor und einen Speicher umfasst, wobei das mindestens eine Bild ein Bild umfasst, welches aufgenommen wurde während Subjekte in dem Bild mit einer Beleuchtung, die auf der Vorrichtung angeordnet ist, beleuchtet wurden; - Mittel zum Kodieren, unter Verwendung eines Kodierungsmoduls, das auf der Vorrichtung angeordnet ist, des mindestens einen Bildes um Merkmalsvektoren zu erzeugen, welche Merkmale von Subjekten in dem Bild in einem Merkmalsraum definieren, wobei der Merkmalsraum eine Vielzahl von Regionen umfasst, wobei jeder Merkmalsvektor Merkmale für eine Region in dem Merkmalsraum definiert; - Mittel zum Beurteilen der erzeugten Merkmalsvektoren für jede Region in dem Merkmalsraum unter Verwendung des Computerprozessors, um zu bestimmen ob ein Gesicht in der Region präsent ist; - wobei, falls das Gesicht bestimmt ist in der Region zu sein, eine oder mehrere Eigenschaften von dem Gesicht in der Region beurteilt werden, wobei mindestens eine von den Eigenschaften ein Abstand von der Kamera von dem Gesicht in der Region ist; und - Mittel zum Bereitstellen einer Ausgabe von dem Computerprozessor, falls das Gesicht in der Region präsent ist, wobei die Ausgabe aufweist, einen Hinweis, dass das Gesicht in der Region präsent ist, die beurteilte Position von dem Gesicht relativ zu der Mitte der Region, die beurteilte Pose von dem Gesicht in der Region, und der beurteilte Abstand von der Kamera von dem Gesicht in der Region.Apparatus comprising: Means for capturing at least one image using a camera disposed on a device, the device comprising a computer processor and a memory, the at least one image comprising an image taken while subjects in the image with illumination illuminated on the device; - means for encoding, using a coding module disposed on the device, the at least one image to generate feature vectors defining features of subjects in the image in a feature space, the feature space comprising a plurality of regions, each feature vector Defines characteristics for a region in the feature space; - means for evaluating the generated feature vectors for each region in the feature space using the computer processor to determine if a face is present in the region; if the face is determined to be in the region, one or more characteristics of the face in the region are assessed, wherein at least one of the properties is a distance from the camera of the face in the region; and Means for providing an output from the computer processor if the face is present in the region, the output comprising an indication that the face is present in the region, the judged position of the face relative to the center of the region, judged pose from the face in the region, and the judged distance from the camera from the face in the region. Vorrichtung nach Anspruch 1, wobei das Kodierungsmodul ein mehrskaliges faltendes neurales Netzwerkmodul umfasst.Device after Claim 1 wherein the coding module comprises a multi-scale folding neural network module. Vorrichtung nach irgendeinem der Ansprüche 1 bis 2, wobei die Mittel zum Beurteilen der erzeugten Merkmalsvektoren Mittel zum Dekodieren der erzeugten Merkmalsvektoren für jede Region in dem Merkmalsraum, unter Verwendung eines Dekodierungsmoduls, welches auf der Vorrichtung angeordnet ist, umfassen.Device according to any one of Claims 1 to 2 wherein the means for evaluating the generated feature vectors comprises means for decoding the generated feature vectors for each region in the feature space using a decoding module disposed on the device. Vorrichtung nach irgendeinem der Ansprüche 1 bis 3, wobei mindestens eine von den beurteilten Eigenschaften von dem Gesicht in der Region eine Position von dem Gesicht relativ zu einer Mitte von der Region oder eine Pose von dem Gesicht in der Region umfasst.Device according to any one of Claims 1 to 3 wherein at least one of the assessed characteristics of the face in the region comprises a position of the face relative to a center of the region or a pose of the face in the region. Vorrichtung nach irgendeinem der Ansprüche 1 bis 4, wobei die Mittel zum Beurteilen der erzeugten Merkmalsvektoren Mittel zum Klassifizieren der Merkmalsvektoren umfassen, und wobei die Mittel zum Klassifizieren der Merkmalsvektoren optional Mittel zur Verwendung von Klassifizierungsparametern, welche während eines Trainingsprozesses bestimmt wurden, umfassen.Device according to any one of Claims 1 to 4 wherein the means for evaluating the generated feature vectors comprises means for classifying the feature vectors, and wherein the means for classifying the feature vectors optionally comprise means for using classification parameters determined during a training process. Vorrichtung nach irgendeinem der Ansprüche 1 bis 5, wobei, falls das Gesicht in mehr als einer Region erkannt wird, die Mittel zum Beurteilen der erzeugten Merkmalsvektoren umfassen: - Mittel zum Beurteilen eines Vertrauenswertes für die Regionen, welche das erkannte Gesicht umfassen; - Mittel zum Sortieren der Vertrauenswerte für die Regionen in einer Reihenfolge; und - Mittel zum Auswählen der Region mit dem höchsten Vertrauen um die Ausgabe von dem Dekodierungsmodul bereitzustellen.Device according to any one of Claims 1 to 5 wherein, if the face is detected in more than one region, the means for evaluating the generated feature vectors comprises: - means for judging a confidence score for the regions comprising the recognized face; - means for sorting the confidence values for the regions in an order; and - means for selecting the region with the highest confidence to provide the output from the decoding module. Vorrichtung nach irgendeinem der Ansprüche 1 bis 6, ferner umfassend Mittel zum Anpassen des Abstands von der Kamera von dem Gesicht in der Region unter Verwendung einer Kalibrierungsgleichung, welche von Tiefenmap Bilddaten für einen autorisierten Benutzer von der Vorrichtung während eines Anmeldevorgangs bestimmt wurde.Device according to any one of Claims 1 to 6 further comprising means for adjusting the distance from the camera from the face in the region using a calibration equation determined from depth map image data for an authorized user of the device during a login process. Vorrichtung nach Anspruch 7, wobei die Kalibrierungsgleichung bestimmt wird durch: - Mittel zum Aufnehmen eines ersten Bildes unter Verwendung der Kamera, die auf der Vorrichtung angeordnet ist, wobei das erste Bild ein Bild umfasst, welches aufgenommen wurde während ein Subjekt in dem Bild mit einer ersten Beleuchtung, welche auf der Vorrichtung angeordnet ist, beleuchtet wurde; - Mittel zum Beurteilen, unter Verwendung des Computerprozessors, eines ersten Abstands zwischen dem Subjekt und der Kamera basierend auf dem ersten Bild; - Mittel zum Aufnehmen eines zweiten Bildes unter Verwendung der Kamera, wobei das zweite Bild ein Bild umfasst, welches aufgenommen wurde während das Subjekt in dem Bild mit einer zweiten Beleuchtung, welche auf der Vorrichtung angeordnet ist, beleuchtet wurde; - Mittel zum Erzeugen eines Tiefenmap Bildes basierend auf dem zweiten Bild, wobei das Tiefenmap Bild einen zweiten Abstand zwischen dem Subjekt und der Kamera einschließt; - Mittel zum Beurteilen, unter Verwendung des Computerprozessors, eines Abstands zwischen einem Gesicht von dem Subjekt und der Kamera in dem zweiten Bild; - Mittel zum Bestimmen, unter Verwendung des Computerprozessors, der Kalibrierungsgleichung, wobei die Kalibrierungsgleichung eine Kalibrierungsanpassung für den ersten Abstand basierend auf dem zweiten Abstand umfasst.Device after Claim 7 wherein the calibration equation is determined by: means for capturing a first image using the camera disposed on the device, the first image comprising an image taken while a subject in the image is having a first illumination placed on the device was illuminated; - means for judging, using the computer processor, a first distance between the subject and the camera based on the first image; Means for taking a second image using the camera, wherein the second image comprises an image taken while illuminating the subject in the image with a second illumination disposed on the device; Means for generating a depth map image based on the second image, the depth map image including a second distance between the subject and the camera; - means for judging, using the computer processor, a distance between a face of the subject and the camera in the second image; Means for determining, using the computer processor, the calibration equation, the calibration equation comprising a calibration adjustment for the first distance based on the second distance. Vorrichtung nach Anspruch 8, wobei das erste Bild ein Flutinfrarotbild von dem Subjekt umfasst, und wobei das zweite Bild ein Bild von dem Subjekt, beleuchtet mit Speckle Musterbeleuchtung, umfasst.Device after Claim 8 wherein the first image comprises a flood infrared image of the subject, and wherein the second image comprises an image of the subject illuminated with speckle pattern illumination. Vorrichtung nach irgendeinem der Ansprüche 8 bis 9, wobei die Mittel zum Bestimmen der Kalibrierungsanpassung Mittel zum Bestimmen einer Anpassung, dass, wenn die Kalibrierungsanpassung auf einen Wert für den ersten Abstand angewandt wird, ein angepasster Wert für den ersten Abstand im Wesentlichen gleich zu einem Wert für den zweiten Abstand ist, umfassen.Device according to any one of Claims 8 to 9 wherein the means for determining the calibration adjustment comprises means for determining an adjustment that when the calibration adjustment is applied to a value for the first distance, an adjusted value for the first distance is substantially equal to a value for the second distance. Vorrichtung, umfassend: - eine Kamera; - eine Beleuchtung; - einen Speicher, konfiguriert zum Speichern von Programminstruktionen; und - einen Prozessor, konfiguriert zum Ausführen der Programminstruktionen und das System zu veranlassen zum: - Aufnehmen von mindestens einem Bild unter Verwendung der Kamera, wobei das mindestens eine Bild ein Bild umfasst, welches aufgenommen wurde, während Subjekte in dem Bild mit der Beleuchtung beleuchtet wurden; - Kodieren, unter Verwendung eines Kodierungsmoduls, das auf der Vorrichtung angeordnet ist, des mindestens einen Bildes um Merkmalsvektoren zu erzeugen, welche Merkmale von Subjekten in dem Bild in einem Merkmalsraum definieren, wobei der Merkmalsraum eine Vielzahl von Regionen umfasst, wobei jeder Merkmalsvektor Merkmale für eine Region in dem Merkmalsraum definiert; - Beurteilen der erzeugten Merkmalsvektoren für jede Region in dem Merkmalsraum, um zu bestimmen ob ein Gesicht in der Region präsent ist; - wobei, falls das Gesicht bestimmt ist in der Region zu sein, der Prozessor konfiguriert ist die Programminstruktionen auszuführen und das System zu veranlassen zum: - Beurteilen einer Position von dem Gesicht relativ zu einer Mitte von der Region; - Beurteilen einer Pose von dem Gesicht in der Region; und - Beurteilen eines Abstands von der Kamera von dem Gesicht in der Region; und - Bereitstellen einer Ausgabe, falls das Gesicht in der Region präsent ist, wobei die Ausgabe aufweist, einen Hinweis, dass das Gesicht in der Region präsent ist, die beurteilte Position von dem Gesicht relativ zu der Mitte der Region, die beurteilte Pose von dem Gesicht in der Region, und der beurteilte Abstand von der Kamera von dem Gesicht in der Region.Apparatus comprising: - a camera; - a lighting; a memory configured to store program instructions; and a processor configured to execute the program instructions and to cause the system to: - capturing at least one image using the camera, the at least one image comprising an image taken while illuminating subjects in the image with the illumination; Encoding, using a coding module disposed on the device, the at least one image to generate feature vectors defining features of subjects in the image in a feature space, the feature space comprising a plurality of regions, each feature vector having features for defines a region in the feature space; - judging the generated feature vectors for each region in the feature space to determine whether a face is present in the region; if the face is destined to be in the region, the processor is configured to execute the program instructions and to cause the system to: Judging a position of the face relative to a center of the region; - judging a pose of the face in the region; and Judging a distance from the camera from the face in the region; and Providing an output if the face is present in the region, the output comprising an indication that the face is present in the region, the judged position of the face relative to the center of the region, the judged pose of the face in the region, and the judged distance from the camera from the face in the region. Vorrichtung nach Anspruch 11, wobei die Kamera einen Infrarotsensor umfasst und wobei die Beleuchtung eine Flutinfrarotbeleuchtung umfasst.Device after Claim 11 wherein the camera comprises an infrared sensor and wherein the illumination comprises flood infrared illumination. Vorrichtung nach irgendeinem der Ansprüche 11 bis 12, wobei das mindestens eine aufgenommene Bild ein zusätzliches Gesicht umfasst, und wobei die bereitgestellte Ausgabe aufweist, einen Hinweis, dass das zusätzliche Gesicht in einer Region präsent ist, die Position von dem zusätzlichen Gesicht relativ zu der Mitte der Region, die Pose von dem zusätzlichen Gesicht in der Region, und der Abstand von der Kamera von dem zusätzlichen Gesicht in der Region.Device according to any one of Claims 11 to 12 wherein the at least one captured image comprises an additional face, and wherein the provided output comprises an indication that the additional face is present in a region, the position of the additional face relative to the center of the region, the pose of the additional one Face in the region, and the distance from the camera from the extra face in the region. Vorrichtung nach irgendeinem der Ansprüche 11 bis 13, wobei der Prozessor ferner konfiguriert ist die Programminstruktionen auszuführen und das System zu veranlassen einen Gesichtserkennungsprozess unter Verwendung der bereitgestellten Ausgabe zu betreiben.Device according to any one of Claims 11 to 13 wherein the processor is further configured to execute the program instructions and to cause the system to operate a face recognition process using the provided output. Vorrichtung nach irgendeinem der Ansprüche 1 bis 14, wobei die Pose von dem Gesicht Neigung, Gierung, und Rollen von dem Gesicht umfasst.Device according to any one of Claims 1 to 14 wherein the pose of the face comprises inclination, yaw, and rolling of the face.
DE202018000408.1U 2018-01-26 2018-01-26 Face detection, pose estimation, and estimation of a distance from a camera using a single network Active DE202018000408U1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE202018000408.1U DE202018000408U1 (en) 2018-01-26 2018-01-26 Face detection, pose estimation, and estimation of a distance from a camera using a single network

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE202018000408.1U DE202018000408U1 (en) 2018-01-26 2018-01-26 Face detection, pose estimation, and estimation of a distance from a camera using a single network

Publications (1)

Publication Number Publication Date
DE202018000408U1 true DE202018000408U1 (en) 2018-05-04

Family

ID=62202060

Family Applications (1)

Application Number Title Priority Date Filing Date
DE202018000408.1U Active DE202018000408U1 (en) 2018-01-26 2018-01-26 Face detection, pose estimation, and estimation of a distance from a camera using a single network

Country Status (1)

Country Link
DE (1) DE202018000408U1 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110555360A (en) * 2018-06-03 2019-12-10 苹果公司 Robust face detection
WO2020167314A1 (en) * 2019-02-15 2020-08-20 Google Llc Detection of projected infrared patterns using difference of gaussian and blob identification
DE102020207302A1 (en) 2020-06-10 2021-12-16 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung eingetragener Verein Device and method for recording a projected point pattern in a display device
CN115316982A (en) * 2022-09-02 2022-11-11 中国科学院沈阳自动化研究所 Muscle deformation intelligent detection system and method based on multi-mode sensing

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8150142B2 (en) 2007-04-02 2012-04-03 Prime Sense Ltd. Depth mapping using projected patterns
US8384997B2 (en) 2008-01-21 2013-02-26 Primesense Ltd Optical pattern projection
US8749796B2 (en) 2011-08-09 2014-06-10 Primesense Ltd. Projectors of structured light
US20160178915A1 (en) 2011-08-09 2016-06-23 Apple Inc. Overlapping pattern projector

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8150142B2 (en) 2007-04-02 2012-04-03 Prime Sense Ltd. Depth mapping using projected patterns
US8384997B2 (en) 2008-01-21 2013-02-26 Primesense Ltd Optical pattern projection
US8749796B2 (en) 2011-08-09 2014-06-10 Primesense Ltd. Projectors of structured light
US20160178915A1 (en) 2011-08-09 2016-06-23 Apple Inc. Overlapping pattern projector

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110555360A (en) * 2018-06-03 2019-12-10 苹果公司 Robust face detection
WO2019236286A1 (en) * 2018-06-03 2019-12-12 Apple Inc. Robust face detection
US10769414B2 (en) 2018-06-03 2020-09-08 Apple Inc. Robust face detection
CN110555360B (en) * 2018-06-03 2023-08-22 苹果公司 Robust Face Detection
WO2020167314A1 (en) * 2019-02-15 2020-08-20 Google Llc Detection of projected infrared patterns using difference of gaussian and blob identification
CN113424194A (en) * 2019-02-15 2021-09-21 谷歌有限责任公司 Detecting projected infrared patterns using gaussian differences and speckle recognition
US11694433B2 (en) 2019-02-15 2023-07-04 Google Llc Detection of projected infrared patterns using difference of Gaussian and blob identification
DE102020207302A1 (en) 2020-06-10 2021-12-16 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung eingetragener Verein Device and method for recording a projected point pattern in a display device
CN115316982A (en) * 2022-09-02 2022-11-11 中国科学院沈阳自动化研究所 Muscle deformation intelligent detection system and method based on multi-mode sensing

Similar Documents

Publication Publication Date Title
US11521423B2 (en) Occlusion detection for facial recognition processes
CN109325394B (en) Determining sparse pattern illumination and dense pattern illumination
US9104914B1 (en) Object detection with false positive filtering
US10769414B2 (en) Robust face detection
US10762335B2 (en) Attention detection
US20190042866A1 (en) Process for updating templates used in facial recognition
DE202018000408U1 (en) Face detection, pose estimation, and estimation of a distance from a camera using a single network
US20200104567A1 (en) Obstruction detection during facial recognition processes
Sengupta et al. Edge information based image fusion metrics using fractional order differentiation and sigmoidal functions
US10769415B1 (en) Detection of identity changes during facial recognition enrollment process
US8421877B2 (en) Feature data compression device, multi-directional face detection system and detection method thereof
CN112214773B (en) Image processing method and device based on privacy protection and electronic equipment
CN109325393A (en) Using the face detection of single network, Attitude estimation and away from the estimation of camera distance
US10915734B2 (en) Network performance by including attributes
Hu et al. A proto-object based saliency model in three-dimensional space
CN111222433A (en) Automatic face auditing method, system, equipment and readable storage medium
DE202018000407U1 (en) Device for updating face recognition templates
CN104298960A (en) Robust analysis for deformable object classification and recognition by image sensors
Liu et al. Current optimal active feedback and stealing response mechanism for low-end device constrained defocused iris certification
Song et al. Face anti-spoofing detection using least square weight fusion of channel-based feature classifiers
DE202018000405U1 (en) Determine sparse against dense pattern lighting
Schauerte et al. Bottom-up audio-visual attention for scene exploration
US20230274581A1 (en) Determination method, non-transitory computer-readable recording medium storing determination program, and information processing device
US11323627B2 (en) Method and electronic device for applying beauty effect setting
US11847778B2 (en) Image capture techniques personalized to individual subjects being imaged

Legal Events

Date Code Title Description
R082 Change of representative

Representative=s name: LANG, JOHANNES, DIPL.-ING., DE

R207 Utility model specification
R150 Utility model maintained after payment of first maintenance fee after three years
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06K0009620000

Ipc: G06V0030190000

R151 Utility model maintained after payment of second maintenance fee after six years