QUERVERWEIS AUF VERWANDTE PATENTECROSS REFERENCE TO RELATED PATENTS
Die vorliegende US-Patentanmeldung beansprucht auch Priorität gemäß 35 U.S.C. § 119 (e) der vorläufigen US-Anmeldung #62/988,759 mit dem Titel „KORREKTUR UND KALIBRIERUNG VON SPEKTRALSENSOREN“, die am 03-12-2020 eingereicht ist und hiermit in ihrer Gesamtheit durch Bezugnahme aufgenommen wird und Teil des vorliegenden U.S. Patentanmeldung für alle Zwecke ist.This US patent application also claims priority under 35 U.S.C. Section 119 (e) of U.S. Provisional Application # 62 / 988,759 entitled "CORRECTION AND CALIBRATION OF SPECTRAL SENSORS," filed 03-12-2020 and hereby incorporated by reference in its entirety and incorporated herein. Patent application for all purposes is.
ERKLÄRUNG ZU BUNDESFÖRDERTER FORSCHUNG ODER ENTWICKLUNGSTATEMENT REGARDING FEDERALLY SPONSORED RESEARCH OR DEVELOPMENT
Unzutreffend.Inapplicable.
Aufnahme von Material auf einer Compact DiscRecord material on a compact disc
Unzutreffend.Inapplicable.
HINTERGRUND DER ERFINDUNGBACKGROUND OF THE INVENTION
TECHNISCHES GEBIET DER ERFINDUNGTECHNICAL FIELD OF THE INVENTION
Diese Erfindung betrifft allgemein die Spektroskopie und insbesondere die Spektralkorrektur für Spektralsensoren unter Verwendung interferenzbasierter Filter.This invention relates generally to spectroscopy and, more particularly, to spectral correction for spectral sensors using interference based filters.
Spektroskopiegeräte haben sich für Anwendungen in verschiedenen Branchen als nützlich erwiesen, darunter beispielsweise Gesundheit, Biometrie, Landwirtschaft, Chemie und Fitness. Im Allgemeinen funktionieren Spektroskopiegeräte durch Erfassen und/oder Erfassen von einfallendem Licht in Bezug auf mehrere Wellenlängenbereiche und Extrahieren von Spektralinformationen. Es wurde gezeigt, dass interferenzbasierte Filter wie Fabry-Perot-Filter in Verbindung mit Spektralsensoren kontrollierte Lichtwellenlängen liefern können.Spectroscopy devices have proven useful for applications in a variety of industries, including health, biometrics, agriculture, chemistry, and fitness, for example. In general, spectroscopy devices function by detecting and / or detecting incident light with respect to multiple ranges of wavelengths and extracting spectral information. It has been shown that interference-based filters such as Fabry-Perot filters in conjunction with spectral sensors can deliver controlled wavelengths of light.
Wie weiter bekannt ist, unterliegt Licht, das durch interferenzbasierte Filter wandert, verschiedenen nicht idealen Bedingungen sowie einer nicht idealen Sensorleistung, von denen sich jede negativ auf die Leistung eines bestimmten Spektroskopiegeräts auswirken kann.As is further known, light traveling through interference-based filters is subject to various non-ideal conditions and non-ideal sensor performance, each of which can adversely affect the performance of a particular spectroscopic device.
BESCHREIBUNG DER VERWANDTEN TECHNIKDESCRIPTION OF RELATED ART
FigurenlisteFigure list
-
1A stellt eine Darstellung von oben nach unten eines beispielhaften optischen Sensors bereit, der mit Filtern gemäß der vorliegenden Erfindung überlagert ist; 1A Figure 10 provides a top-down view of an exemplary optical sensor overlaid with filters in accordance with the present invention;
-
1B zeigt eine Seitenansicht eines beispielhaften optischen Sensors, der mit Filtern gemäß der vorliegenden Erfindung überlagert ist; 1B Figure 12 is a side view of an exemplary optical sensor overlaid with filters in accordance with the present invention;
-
2 stellt die beispielhaften Filterantworten eines CMOS-Sensors dar, der mit Filtern überlagert ist; 2 Figure 10 illustrates the exemplary filter responses of a CMOS sensor overlaid with filters;
-
3 stellt eine Darstellung eines Vergleichs von Rohausgangsdaten und den idealen Ausgangsdaten eines beispielhaften Spektralsensors bereit; 3 provides an illustration of a comparison of raw output data and the ideal output data of an exemplary spectral sensor;
-
4 ist ein schematisches Blockdiagramm einer Ausführungsform eines Spektralsensors gemäß der vorliegenden Erfindung; 4th Figure 3 is a schematic block diagram of one embodiment of a spectral sensor in accordance with the present invention;
-
5A stellt ein schematisches Blockdiagramm einer Ausführungsform eines Spektralsensors bereit, der ein künstliches neuronales Netzwerk gemäß der vorliegenden Erfindung enthält; 5A provides a schematic block diagram of one embodiment of a spectral sensor incorporating an artificial neural network in accordance with the present invention;
-
5B stellt ein schematisches Blockdiagramm einer anderen Ausführungsform eines Spektralsensors bereit, der ein künstliches neuronales Netzwerk gemäß der vorliegenden Erfindung enthält; 5B provides a schematic block diagram of another embodiment of a spectral sensor incorporating an artificial neural network in accordance with the present invention;
-
6A stellt eine vereinfachte Darstellung eines künstlichen neuronalen Netzwerks bereit, das in einen Spektralsensor gemäß der vorliegenden Erfindung eingebaut ist; 6A provides a simplified representation of an artificial neural network incorporated into a spectral sensor in accordance with the present invention;
-
6B stellt eine vereinfachte Darstellung eines mehrschichtigen künstlichen neuronalen Netzwerks gemäß der vorliegenden Erfindung bereit; 6B provides a simplified representation of a multilayer artificial neural network in accordance with the present invention;
-
7A ist ein Logikdiagramm, das ein beispielhaftes Verfahren zum Korrigieren der rohen Spektralausgabe in korrigierte Spektren gemäß der vorliegenden Erfindung darstellt; 7A Figure 4 is a logic diagram illustrating an exemplary method for correcting raw spectral output into corrected spectra in accordance with the present invention;
-
7B ist ein Logikdiagramm, das ein beispielhaftes Verfahren zum adaptiven Korrigieren der Spektralausgabe von einem Sensorarray gemäß der vorliegenden Erfindung darstellt; 7B Figure 4 is a logic diagram illustrating an exemplary method for adaptively correcting the spectral output from a sensor array in accordance with the present invention;
-
7C stellt ein Logikdiagramm bereit, das ein anderes beispielhaftes Verfahren zum adaptiven Korrigieren der Spektralausgabe von einem Sensorarray gemäß der vorliegenden Erfindung darstellt; 7C provides a logic diagram illustrating another exemplary method for adaptively correcting the spectral output from a sensor array in accordance with the present invention;
-
8A stellt eine Darstellung eines beispielhaften Spektralsensors bereit, bei dem ein Durchlauf von monochromatischem Licht und Eingangsleistung gemäß der vorliegenden Erfindung bereitgestellt wird; 8A FIG. 10 is an illustration of an exemplary spectral sensor in which a sweep of monochromatic light and input power is provided in accordance with the present invention;
-
8B stellt einen beispielhaften Spektralsensor bereit, der ein künstliches neuronales Netzwerk gemäß der vorliegenden Erfindung enthält; 8B provides an exemplary spectral sensor incorporating an artificial neural network in accordance with the present invention;
-
8C stellt eine Darstellung eines Beispiels einer physikalischen Szene bereit, die einem Spektralsensor bereitgestellt und gemäß der vorliegenden Erfindung an ein trainiertes künstliches neuronales Netzwerk ausgegeben wird; 8C FIG. 10 provides a representation of an example of a physical scene provided to a spectral sensor and according to FIG present invention is output to a trained artificial neural network;
-
8D stellt einen beispielhaften Spektralsensor bereit, bei dem dem künstlichen neuronalen Netzwerk gemäß der vorliegenden Erfindung Metadaten einer physikalischen Szene zur Verfügung gestellt werden. 8D provides an exemplary spectral sensor in which metadata of a physical scene is made available to the artificial neural network according to the present invention.
DETAILLIERTE BESCHREIBUNG DER ERFINDUNGDETAILED DESCRIPTION OF THE INVENTION
In verschiedenen Ausführungsformen werden Spektralsensoren mit Interferenzfiltern kombiniert, um spektrale Informationen über eine Szene und/oder Lichtquelle bereitzustellen. Interferenzbasierte Filter wie Fabry-Perot-Filter können eine nicht ideale Filterreaktion auf einen zugrunde liegenden Sensor aufweisen. Beispielsweise kann die Filterantwort ein Übersprechen zwischen Filtern, unerwünschte Antworten zweiter Ordnung auf einfallendes Licht, Winkelabhängigkeiten zu einfallendem Licht umfassen, und einfallendes Licht kann Licht von Quellen enthalten, die nicht ausgewertet werden sollen. Sensoren selbst können auch eine nicht ideale Leistung aufweisen, einschließlich Nichtlinearitäten, Übersprechen, elektronischem Rauschen usw. 1A zeigt von oben nach unten einen beispielhaften integrierten optischen Sensor 100, der mit Filtern 110, 120 und 130 überlagert ist, die für eines von drei Spektralbändern optimiert sind. Wie gezeigt, wiederholen sich die Filter 110, 120 und 130 als Array über die Oberfläche des optischen Sensors 100. Alternativ könnten sich die Filter 110, 120 und 130 unter Verwendung eines anderen Musters oder sogar in einem zufälligen Muster wiederholen, um Filterantworten an Sensoren weiterzuleiten, die dem Filterarray zugrunde liegen. In einem Beispiel (nicht gezeigt) könnten Spektralbänder größer als 3 verwendet werden, um Sensoren wie gewünscht in jeder praktischen Ausrichtung zu überlagern. In einer Ausführungsform ist der optische Sensor 100 ein Beispiel eines Spektralsensors, der für die diffuse optische Spektroskopie nützlich ist, wobei Arrays von Spektralfiltern optischen Sensoren zugeordnet sind, um eine diffuse Spektralerfassung bereitzustellen. 1B zeigt eine Seitenansicht eines beispielhaften optischen Sensors, der mit einem Filterarray überlagert ist. In dem Beispiel wird einfallendes Licht 180 durch die Filteranordnung 160 auf das Sensorarray 170 gerichtet.In various embodiments, spectral sensors are combined with interference filters in order to provide spectral information about a scene and / or light source. Interference-based filters such as Fabry-Perot filters can have a non-ideal filter response to an underlying sensor. For example, the filter response may include crosstalk between filters, unwanted second order responses to incident light, angle dependencies on incident light, and incident light may contain light from sources that are not intended to be evaluated. Sensors themselves can also have less than ideal performance, including non-linearities, crosstalk, electronic noise, etc. 1A Figure 10 shows an exemplary integrated optical sensor from top to bottom 100 that with filters 110 , 120 and 130 is superimposed, which are optimized for one of three spectral bands. As shown, the filters repeat 110 , 120 and 130 as an array over the surface of the optical sensor 100 . Alternatively, the filters could 110 , 120 and 130 repeat using a different pattern or even in a random pattern to route filter responses to sensors underlying the filter array. In one example (not shown) spectral bands greater than 3 could be used to overlay sensors in any practical orientation as desired. In one embodiment the optical sensor is 100 an example of a spectral sensor useful for diffuse optical spectroscopy, with arrays of spectral filters associated with optical sensors to provide diffuse spectral detection. 1B Figure 12 shows a side view of an exemplary optical sensor overlaid with a filter array. In the example, incident light is 180 through the filter assembly 160 on the sensor array 170 directed.
Idealerweise würden die Filter des integrierten optischen Sensors in den 1A und 1B nur einfallendes Licht innerhalb der gewünschten spektralen Wellenlängen an den darunter liegenden Sensor weiterleiten, so dass ein idealer Sensor dann Filterantworten ausgeben könnte, die genau das Spektrum des einfallenden Lichts darstellen. In der Praxis sind weder die Interferenzfilter noch die Sensoren ideal, wenn daher die Ausgabe eines gegebenen optischen Sensors, wie der in den 1A und 1B dargestellte, gemessen wird, ist es unwahrscheinlich, dass das resultierende Spektrum das Spektrum des einfallenden Lichts korrekt darstellt. In der Tat kann das resultierende Spektrum eine nichtlineare Beziehung zur Intensität des Eingangslichts, zum Spektrum eines zu messenden Objekts und/oder zum Beleuchtungsspektrum des Eingangslichts aufweisen. Darüber hinaus können mit der Herstellung verbundene Fehler wie Herstellungstoleranzen und Gleichmäßigkeit zwischen integrierten optischen Sensoren, wie beispielsweise dem integrierten optischen Sensor 100, zu einer nicht idealen Leistung beitragen.Ideally, the filters of the integrated optical sensor in FIGS. 1A and 1B would only pass incident light within the desired spectral wavelengths to the sensor below, so that an ideal sensor could then output filter responses that exactly represent the spectrum of the incident light. In practice, neither the interference filters nor the sensors are ideal when therefore the output of a given optical sensor, such as that in FIG 1A and 1B is measured, the resulting spectrum is unlikely to correctly represent the spectrum of incident light. Indeed, the resulting spectrum can have a non-linear relationship to the intensity of the input light, to the spectrum of an object to be measured and / or to the illumination spectrum of the input light. In addition, manufacturing related errors such as manufacturing tolerances and uniformity between integrated optical sensors, such as the integrated optical sensor 100 , contribute to sub-ideal performance.
2 zeigt die Filterantworten eines CMOS-Sensors (in diesem Fall unter Verwendung von Fabry-Perot-Filtern), die ein Übersprechen benachbarter Sensoren aufweisen. In einem idealen Sensor würde die Filterantwort eines bestimmten Sensorpixels, wie die von Pixel #13, nur von Pixel #13 kommen, ohne zu anderen Pixeln innerhalb des Arrays beizutragen. Wie dargestellt, zeigen benachbarte Pixel #8, #12, #14 und #18 zumindest eine unerwünschte Reaktion von der auf Pixel #13 zentrierten Wellenlänge zusammen mit anderen Nichtidealitäten. Die Rekonstruktion eines „sauberen“ Ausgangsspektrums (eines, das das Spektrum des auf den optischen Sensor einfallenden Lichts angemessen darstellt) ist nicht trivial, selbst wenn die gezeigten Filterantwortformen bekannt sind. In der Darstellung von 2 spiegeln die Antworten nicht die perfekten „Fabry-Perot“-Reaktionen wider, und die Erzeugung von Übersprechen aus den benachbarten Filtern ist problematisch und trägt zum Antwortfehler bei. In Anbetracht der Tatsache, dass jedes Pixel nicht ideale Antworten und Übersprechfehler aufweisen kann, kann leicht verstanden werden, dass die Korrektur und/oder Kalibrierung eines gegebenen optischen Sensors außerordentlich schwierig und/oder ungenau werden kann. Zusätzlich sorgen Materialeigenschaften der Filter selbst, Qualitätsunterschiede und Teil-zu-Teil-Unterschiede für zusätzliche Komplexität. 2 shows the filter responses of a CMOS sensor (in this case using Fabry-Perot filters) exhibiting crosstalk from neighboring sensors. In an ideal sensor, the filter response of a particular sensor pixel, such as that of pixel # 13, would only come from pixel # 13 without contributing to other pixels within the array. As shown, neighboring pixels # 8, # 12, # 14, and # 18 exhibit at least one undesirable response from the wavelength centered on pixel # 13 along with other non-idealities. Reconstructing a "clean" output spectrum (one that adequately represents the spectrum of light incident on the optical sensor) is not trivial, even if the filter response shapes shown are known. In the representation of 2 the responses do not reflect the perfect "Fabry-Perot" responses, and the generation of crosstalk from the neighboring filters is problematic and contributes to the response failure. Given that each pixel may have non-ideal responses and crosstalk errors, it can be readily understood that the correction and / or calibration of a given optical sensor can become extremely difficult and / or inaccurate. In addition, the material properties of the filters themselves, quality differences and part-to-part differences add to the complexity.
3 stellt eine Darstellung der Ausgangsdaten 190 einer Reflexionsmessung (Filterantwort) von ungefähr 740 bis 1020 nm eines beispielhaften optischen Sensors zusammen mit einem idealen oder „korrigierten“ Spektrum 192 für die Messung bereit. In dem Beispiel können die rohen Ausgangsdaten nicht mit einer komplexen Korrekturübung angepasst werden, um sie in ein „reales“ Spektrum umzuwandeln (d.h. ein Spektrum, das für das Spektrum des einfallenden einfallenden Lichts repräsentativ ist). 3 represents a representation of the output data 190 a reflection measurement (filter response) from approximately 740 to 1020 nm of an exemplary optical sensor together with an ideal or "corrected" spectrum 192 ready for measurement. In the example, the raw output data cannot be adjusted with a complex correction exercise to convert it into a “real” spectrum (ie a spectrum that is representative of the spectrum of the incident light).
In einem Beispiel kann die Rohleistung eines Spektralsensors ORAW als Matrix von [1×N]-Werten gemessen werden. Es kann durch eine Matrixmultiplikation korrigiert werden, so dass:
O=ORAWXC
wobei O das korrigierte Spektrum ist und C [NxM] eine Korrekturmatrix ist, wobei M die gewünschte (n) Ausgangswellenlängenantwort (en) ist (in einem linearen Korrekturschritt). C ist eine „Korrekturmatrix“, die aus gemessenem und/oder abgeleitetem Wissen über den Sensor und die Filter oder der werkseitigen Messung/Kalibrierung der Filtereigenschaften des Sensors oder einer Kombination aus beiden aufgebaut ist.In one example, the raw power of a spectral sensor ORAW can be measured as a matrix of [1 × N] values. It can be corrected by a matrix multiplication so that:
O = O RAWX C
where O is the corrected spectrum and C [NxM] is a correction matrix, where M is the desired output wavelength response (s) (in a linear correction step). C is a "correction matrix" made up of measured and / or derived knowledge about the sensor and the filter or the factory measurement / calibration of the filter properties of the sensor or a combination of both.
In einem Beispiel wird ORAW aus N (z.B. mit N = 64 in einem 64-Kanal-Spektrometer, das aus N lichtempfindlichen Elementen und N Filtern über den Elementen aufgebaut ist) Werten aus den Filterausgängen aufgebaut. In dem Beispiel von 3 sind die 64 Ausgänge auf die Sensorausgänge beschränkt und repräsentieren die vollständig integrierte Antwort jedes einzelnen Filters auf jeder Fotodiode. Bezugnehmend auf 1A kann ein Spektralsensor eine Vielzahl von optischen Sensoren mit einer Vielzahl von Sätzen optischer Filter enthalten, die als Schicht mit einer oberen Oberfläche und einer unteren Oberfläche konfiguriert sind, die sich auf der Vielzahl von optischen Sensoren befinden. In dem Beispiel umfasst ein Satz von optischen Filtern der Vielzahl von Sätzen von optischen Filtern eine Vielzahl von optischen Filtern, wobei jedes optische Filter der Vielzahl von optischen Filtern konfiguriert ist, um Licht in einem anderen Wellenlängenbereich durchzulassen. In einem Beispiel kann eine Vielzahl von optischen Filtern, die konfiguriert sind, um Licht in demselben Wellenlängenbereich durchzulassen, in einem Array bereitgestellt werden, so dass in einem gegebenen Array jeder Wellenlängenbereich redundant dargestellt wird. Es sind unzählige Layoutoptionen für die optischen Filter möglich. In einem speziellen Beispiel können die optischen Filter jedes Satzes von optischen Filtern in einem Muster angeordnet sein, das sich über ein Sensorarray wiederholt. In einem anderen Beispiel kann jeder Satz optischer Filter in mehreren unterschiedlichen Mustern innerhalb desselben Sensorarrays konfiguriert werden. Dementsprechend kann sich zumindest teilweise aufgrund der Nichtidealitäten, die unter Bezugnahme auf die 1A, 1B und 2 diskutiert wurden, jedes der Vielzahl von optischen Filtern, die konfiguriert sind, um Licht in demselben Wellenlängenbereich durchzulassen, unterschiedlich verhalten.In one example, O RAW is constructed from N (e.g. with N = 64 in a 64-channel spectrometer that is made up of N light-sensitive elements and N filters over the elements) values from the filter outputs. In the example of 3 the 64 outputs are limited to the sensor outputs and represent the fully integrated response of each individual filter on each photodiode. Referring to 1A For example, a spectral sensor may include a plurality of optical sensors having a plurality of sets of optical filters configured as a layer having a top surface and a bottom surface located on top of the plurality of optical sensors. In the example, a set of optical filters of the plurality of sets of optical filters includes a plurality of optical filters, each optical filter of the plurality of optical filters configured to pass light in a different wavelength range. In one example, a plurality of optical filters configured to pass light in the same wavelength range may be provided in an array so that each wavelength range is redundantly represented in a given array. There are countless layout options for the optical filters. In a specific example, the optical filters of each set of optical filters can be arranged in a pattern that repeats across a sensor array. In another example, each set of optical filters can be configured in several different patterns within the same sensor array. Accordingly, it may be due, at least in part, to the non-idealities referred to with reference to the 1A , 1B and 2 have been discussed, each of the plurality of optical filters configured to pass light in the same wavelength range behave differently.
Unter erneuter Bezugnahme auf 3 enthält eine gegebene Sensorausgabe nicht notwendigerweise den vollen Einfluss der spektralen Antworten von jedem Filter auf den Sensor, wobei dieses Verhalten (wie in 2 oben dargestellt) äußerst komplex ist und in nur 64 abgetasteten Datenpunkten nicht ausreichend erfasst werden kann. Darüber hinaus werden die anderen mit dem Sensor verbundenen Nichtidealitäten nicht in der Ausgabe erfasst, einschließlich beispielsweise seiner inhärenten Nichtlinearitäten und der Nichtlinearitäten, die unter anderem das Übersprechen beeinflussen. Dementsprechend kann das Bereitstellen einer einzelnen Korrekturmatrix, die ein korrigiertes Spektrum über alle Bedingungen der Eingangsleistung, des Beleuchtungsspektralprofils und des Szenenspektralprofils bereitstellen kann, schwierig, wenn nicht mathematisch unmöglich sein. In einem Beispiel wird die Korrekturmatrix C aus der obigen Gleichung unter Verwendung eines Ansatzes der kleinsten Quadrate „optimiert“, um gewünschte und/oder erwartete Spektralprofile bei Spektralmessungen bereitzustellen. Es können komplexere mathematische Korrekturmatrizen erstellt werden, die jedoch, wie dargestellt, ein äußerst komplexes mathematisches Problem darstellen können.Referring again to FIG 3 a given sensor output does not necessarily include the full influence of the spectral responses from each filter on the sensor, but this behavior (as in 2 shown above) is extremely complex and cannot be adequately captured in only 64 sampled data points. In addition, the other non-idealities associated with the sensor are not detected in the output, including, for example, its inherent non-linearities and the non-linearities that affect crosstalk, among other things. Accordingly, providing a single correction matrix that can provide a corrected spectrum over all input power, illumination spectral profile, and scene spectral profile conditions can be difficult, if not mathematically impossible. In one example, the correction matrix C from the above equation is “optimized” using a least squares approach in order to provide desired and / or expected spectral profiles in spectral measurements. More complex mathematical correction matrices can be created, but as shown, they can present an extremely complex mathematical problem.
4 ist ein schematisches Blockdiagramm einer Ausführungsform eines Spektralsensors 10, der ein Spektralsensoraarray 220, einen Analog-Digital-Wandler (ADC) 240, eine Steuermaschine 230 und Kalibrierungsdaten 250 enthält. Der Spektralsensor 10 kann als einzelne integrierte Schaltung, Multi-Chip-Modul, als Chipsatz oder als enthaltene Elemente konfiguriert sein, die in einer einzelnen integrierten Schaltung enthalten sind. In einem Beispiel wird das Spektralsensorarray 220 während des Herstellungs- und/oder Testprozesses des Spektralsensorarrays 220 kalibriert, um Abweichungen zu korrigieren, die Herstellungsprozessen inhärent sind, wie z.B. Abweichungen zwischen den Form-Werkzeugen von Sensoren (Inter-Die Abweichungen), sowie Varianz zwischen den Form-Werkzeugen (Intra-Die-Varianz). In einem Beispiel werden die Kalibrierungsdaten in einem Speicher (wie einem Flash-Speicher) gespeichert, der in dem Spektralsensor 10 enthalten ist, oder in einem Speicher, der in derselben integrierten Schaltung wie das Spektralsensorarray 220 enthalten ist. 4th Figure 3 is a schematic block diagram of one embodiment of a spectral sensor 10 , which is a spectral sensor array 220 , an analog-to-digital converter (ADC) 240 , a control machine 230 and calibration data 250 contains. The spectral sensor 10 can be configured as a single integrated circuit, multi-chip module, chipset, or contained elements contained in a single integrated circuit. In one example, the spectral sensor array 220 during the manufacturing and / or testing process of the spectral sensor array 220 calibrated to correct for deviations inherent in manufacturing processes, such as inter-die variance between sensors and inter-die variance. In one example, the calibration data is stored in memory (such as flash memory) residing in the spectral sensor 10 is contained, or in a memory that is in the same integrated circuit as the spectral sensor array 220 is included.
In einer Ausführungsform wird der analoge Ausgang des Spektralsensorarrays 220 durch einen Analog-Digital-Wandler (ADC) 240 zur Eingabe in die Steuermaschine 230 umgewandelt. In einem Beispiel werden Kalibrierungsdaten, die während der Herstellung und/oder des Testens des Spektralsensorarrays 220 gesammelt wurden, als Kalibrierungsdaten 250 im Speicher gespeichert, und die Steuermaschine 230 verwendet Kalibrierungsdaten 250, um die vom ADC 240 empfangene Ausgabe zu „korrigieren“. In einem anderen Beispiel können Kalibrierungsdaten 250 auch von der Implementierung des Spektralsensors 10 gesammelt und/oder heuristisch geändert werden. In einem weiteren Beispiel können Kalibrierungsdaten 250 während der Herstellung, Prüfung oder Verwendung einer Benutzervorrichtung, in der der Spektralsensor 10 aktiviert ist, gesammelt und/oder geändert werden.In one embodiment, the analog output of the spectral sensor array is 220 through an analog-to-digital converter (ADC) 240 for input into the control machine 230 converted. In one example, calibration data obtained during manufacture and / or testing of the spectral sensor array 220 were collected as calibration data 250 stored in memory, and the control machine 230 uses calibration data 250 to get those from the ADC 240 to "correct" received output. In another example, calibration data 250 also from the implementation of the spectral sensor 10 collected and / or changed heuristically. In another example, calibration data 250 during manufacture, testing, or use of a user device in which the spectral sensor 10 activated, collected and / or changed.
In einem weiteren Beispiel besteht der Spektralsensor aus einer Vielzahl von Einzelphotonendetektoren, wie Einzelphotonen-Lawinendioden (SPADS) oder anderen Mikrophotonenvorrichtungen, die in einem Spektralerfassungsarray oder Pseudoarray konfiguriert sind. Die digitalen Informationen aus dem resultierenden Spektralerfassungsarray können dann direkt in die Steuermaschine 230 eingegeben werden. Die Beispiele für SPADS umfassen, ohne darauf beschränkt zu sein, Einzelpixel-Silizium, InGaAs-Detektoren und zweidimensionale Arrays von CMOS-Detektoren.In a further example, the spectral sensor consists of a plurality of Single photon detectors, such as single photon avalanche diodes (SPADS) or other microphoton devices configured in a spectral detection array or pseudo array. The digital information from the resulting spectral acquisition array can then be fed directly into the control machine 230 can be entered. Examples of SPADS include, but are not limited to, single pixel silicon, InGaAs detectors, and two-dimensional arrays of CMOS detectors.
In dem Beispiel von 4 werden Kalibrierungsdaten 250, wie oben in Bezug auf 3 diskutiert, verwendet, um die Ausgabe des Spektralsensorarrays 220 über eine Vielzahl von Eingangs-/Betriebsbedingungen zu korrigieren. In dem Beispiel stellt die Steuermaschine 230 eine kalibrierte Sensorausgabe von dem Spektralsensorarray 220 unter Verwendung von Kalibrierungsdaten 250 bereit. Das Kalibrieren des Ausgangs des Spektralsensorarrays 220 auf diese Weise beinhaltet eine mathematische Korrektur, die eine Matrix erfordert, die eine vergleichsweise komplexe Mathematik erfordert. Zum Beispiel kann eine Matrixinversion verwendet werden, um eine Korrekturmatrix für das Beispiel zu konstruieren, jedoch wäre die resultierende Korrekturmatrix wahrscheinlich relativ unvollkommen, während sie auch außerordentlich komplex zu entwickeln und/oder auszuführen ist.In the example of 4th become calibration data 250 as above in relation to 3 discussed, used to output the spectral sensor array 220 correct over a variety of input / operating conditions. In the example, the control machine represents 230 a calibrated sensor output from the spectral sensor array 220 using calibration data 250 ready. Calibrating the output of the spectral sensor array 220 this way involves a mathematical correction that requires a matrix that requires comparatively complex mathematics. For example, matrix inversion can be used to construct a correction matrix for the example, but the resulting correction matrix would likely be relatively imperfect while also being extremely complex to design and / or implement.
5A stellt ein schematisches Blockdiagramm einer Ausführungsform eines Spektralsensors 10 bereit, wobei Hardware und/oder Software, die künstliche neuronale Netzwerkfunktionen bereitstellen kann, die als künstliches neuronales Netzwerk 370 bezeichnet sind, in dem Spektralsensor 10 enthalten sind. In einem Beispiel ist das künstliche neuronale Netzwerk 370 in einem Spektralsensor 10 in einem Modul enthalten oder in ein oder mehrere Elemente des Spektralsensors 10 integriert und ist konfiguriert, um eine korrigierte Ausgabe basierend auf einer koordinierten Ausgabe des künstlichen neuronalen Netzwerks 370 bereitzustellen. In einem Beispiel können Kalibrierungsdaten 350 direkt an das künstliche neuronale Netzwerk 370 geliefert werden. In einem anderen Beispiel können Kalibrierungsdaten 350 von der in 4 dargestellten Steuermaschine 230 verwendet werden, um eine kalibrierte Ausgabe von dem Sensorarray 320 an das künstliche neuronale Netzwerk 370 bereitzustellen. 5A Figure 10 shows a schematic block diagram of one embodiment of a spectral sensor 10 ready, with hardware and / or software that can provide artificial neural network functions, called an artificial neural network 370 are designated in the spectral sensor 10 are included. In one example, this is the artificial neural network 370 in a spectral sensor 10 contained in a module or in one or more elements of the spectral sensor 10 integrated and configured to provide a corrected output based on a coordinated output of the artificial neural network 370 provide. In one example, calibration data 350 directly to the artificial neural network 370 to be delivered. In another example, calibration data 350 from the control machine shown in FIG 230 used to get a calibrated output from the sensor array 320 to the artificial neural network 370 provide.
In einem anderen Beispiel wird das künstliche neuronale Netzwerk 370 von einer externen Rechenvorrichtung implementiert. In einem anderen Beispiel wird das künstliche neuronale Netzwerk 370 in einer anderen physikalischen Schicht oder einem anderen Element eines „gestapelten Sensors“ unter Verwendung von 3D-Integrationsverfahren implementiert. In einem Beispiel kann das künstliche neuronale Netzwerk durch 3D-Stapelung massiv parallel mit dem Spektralsensor verbunden werden. Beispielsweise kann jedes Pixel oder Filterfeld so konfiguriert werden, dass es eine direkte Verbindung zu einem oder mehreren künstlichen neuronalen Netzwerkknoten enthält.In another example, the artificial neural network 370 implemented by an external computing device. In another example, the artificial neural network 370 implemented in another physical layer or element of a “stacked sensor” using 3D integration techniques. In one example, the artificial neural network can be massively connected in parallel to the spectral sensor by means of 3D stacking. For example, each pixel or filter field can be configured to contain a direct connection to one or more artificial neural network nodes.
Das künstliche neuronale Netzwerk 370 umfasst eine miteinander verbundene Struktur von „künstlichen Neuronen“, die als Weg für die Datenübertragung fungieren. Ein herkömmliches Computersystem kann aus einer Anzahl einfacher, stark miteinander verbundener Verarbeitungselemente bestehen, die Informationen mit ihrer dynamischen Zustandsantwort an externe Eingaben verarbeiten. Im Gegensatz dazu kann ein Neuron im Kontext des künstlichen neuronalen Netzwerks 370 eine lineare oder eine nichtlineare Antwort erzeugen. In einem Beispiel wird ein nichtlineares künstliches Netzwerk durch die Verbindung nichtlinearer Neuronen hergestellt; ein solches nichtlineares System kann Eingänge umfassen, die nicht proportional zu den Ausgängen sind.The artificial neural network 370 comprises an interconnected structure of "artificial neurons" that act as a path for data transmission. A conventional computer system can consist of a number of simple, highly interconnected processing elements that process information with their dynamic state response to external inputs. In contrast, a neuron can be in the context of the artificial neural network 370 produce a linear or a non-linear response. In one example, a non-linear artificial network is created by connecting non-linear neurons; such a non-linear system may include inputs that are not proportional to the outputs.
In einem Beispiel wird das künstliche neuronale Netzwerk 370 mit Gewichten oder Koeffizienten „geladen“, die aus einem Trainingsprozess abgeleitet sind, wie dem in 8B dargestellten und im zugehörigen Text beschriebenen. Die Koeffizienten können direkt in das künstliche neuronale Netzwerk 370 geladen oder mit Kalibrierungsdaten 350 zur Eingabe in das künstliche neuronale Netzwerk 370 gespeichert werden.In one example, the artificial neural network 370 "loaded" with weights or coefficients derived from a training process such as the one in 8B illustrated and described in the accompanying text. The coefficients can be fed directly into the artificial neural network 370 loaded or with calibration data 350 for input into the artificial neural network 370 get saved.
5B zeigt ein schematisches Blockdiagramm einer Ausführungsform eines Spektralsensors 10, wobei ein künstliches neuronales Netzwerk Temperaturdaten bereitgestellt wird, um die Genauigkeit und/oder Präzision einer korrigierten Ausgabe zu verbessern. In einer Ausführungsform werden dem künstlichen neuronalen Netzwerk 370 Temperaturdaten 390 bereitgestellt. In einem Beispiel werden Temperaturdaten 390 von einer Temperaturerfassungsvorrichtung außerhalb des Spektralsensors 10 gesammelt und können kontinuierlich oder intermittierend unter Verwendung eines Arbeitszyklus an das Sensorarray übertragen werden, wobei das Temperatursignal nur für einen Bruchteil eines bestimmten Zeitraums aktiv ist. Die Temperaturdaten 390 können auch kontinuierlich oder unter Verwendung eines Arbeitszyklus für das künstliche neuronale Netzwerk 370 bereitgestellt werden. 5B FIG. 11 shows a schematic block diagram of an embodiment of a spectral sensor 10 , wherein an artificial neural network temperature data is provided to improve the accuracy and / or precision of a corrected output. In one embodiment, the artificial neural network 370 Temperature data 390 provided. In one example, temperature data 390 from a temperature sensing device external to the spectral sensor 10 and can be transmitted to the sensor array continuously or intermittently using a duty cycle with the temperature signal only active for a fraction of a certain period of time. The temperature data 390 can also be done continuously or using a duty cycle for the artificial neural network 370 to be provided.
Die Temperaturdaten 390 können in einem dedizierten Speicher oder in einem Speicher gespeichert werden, der mit anderen Spektralsensorelementen geteilt wird. In einem Beispiel werden Temperaturdaten 390 als numerische Werte gespeichert, die für die tatsächliche Temperatur repräsentativ sind, wie beispielsweise ein Spannungs- oder Widerstandswert. In einem anderen Beispiel werden die Temperaturdaten 390 in einen Temperaturwert umgewandelt, bevor sie an das künstliche neuronale Netzwerk 370 übertragen werden. The temperature data 390 can be stored in dedicated memory or in memory shared with other spectral sensor elements. In one example, temperature data 390 are stored as numerical values representative of the actual temperature, such as a voltage or resistance value. In another example will be the temperature data 390 converted into a temperature value before being sent to the artificial neural network 370 be transmitted.
6A liefert eine vereinfachte Darstellung eines künstlichen neuronalen Netzwerks wie eines künstlichen neuronalen Netzwerks 370 im Kontext eines Spektralsensors wie eines Spektralsensors 10. In dem Beispiel wird eine gemessene Ausgangsantwort 410, wie der kalibrierte Sensorausgang 260, auf den in 4 Bezug genommen wird, in eine Eingangsschicht 400 des künstlichen neuronalen Netzwerks 470 eingegeben, wobei die Eingangsschicht 400 künstliche Neuronen (Knoten) 450 enthält, die mit einem oder mehreren Knoten der verborgenen Schicht 402 und einer Ausgangsschicht 420 von Knoten verbunden sind. In einem anderen Beispiel gibt es keine verborgene Schicht 402, wobei Knoten der Eingangsschicht 400 mit Knoten der Ausgangsschicht ohne eine verborgene Schicht von Knoten verbunden sind. In einem weiteren Beispiel eines sogenannten einschichtigen neuronalen Netzwerks werden die Eingaben in das künstliche neuronale Netzwerk 470 unter Verwendung einer Reihe von Gewichten direkt den Knoten der Ausgabeschicht zugeführt, wobei die Summe der Produkte der Gewichte und der Eingaben in jedem Knoten berechnet wird, und wenn der Wert über einem Schwellenwert liegt (typischerweise 0), wird das Neuron ausgelöst und nimmt den aktivierten Wert (typischerweise 1) an; andernfalls wird der deaktivierte Wert (normalerweise -1) verwendet. 6A provides a simplified representation of an artificial neural network such as an artificial neural network 370 in the context of a spectral sensor such as a spectral sensor 10 . In the example, a measured output response 410 like the calibrated sensor output 260 , on the in 4th Reference is made to an input layer 400 of the artificial neural network 470 entered, the input layer 400 artificial neurons (nodes) 450 contains that with one or more nodes of the hidden layer 402 and an output layer 420 connected by nodes. In another example there is no hidden layer 402 , where nodes of the input layer 400 connected to nodes of the output layer without a hidden layer of nodes. In a further example of what is known as a single-layer neural network, the inputs into the artificial neural network 470 using a series of weights directly fed to the nodes of the output layer, calculating the sum of the products of the weights and the inputs in each node, and if the value is above a threshold value (typically 0) the neuron is triggered and takes the activated one Value (typically 1); otherwise the disabled value (usually -1) is used.
6B stellt eine vereinfachte Darstellung eines künstlichen neuronalen Netzwerks bereit, das manchmal als mehrschichtiges Perzeptron bezeichnet wird, wobei jeder Knoten in einer Schicht Verbindungen zu den Knoten der nachfolgenden Schicht gerichtet hat, wobei mehrere Schichten von Recheneinheiten in einer Vorwärtskopplungsanordnung miteinander verbunden sind. Wenn beispielsweise ein Wert innerhalb der Perzeptronknoten 510 (Knoten) den expliziten Schwellenwert jedes Knotens darstellt (der herausgerechnet werden kann, so dass alle Knoten dieselben Schwellenwerte haben, die mit Pfeilen versehen sind, die das Gewicht der Eingaben darstellen. Dieses Netz geht davon aus, dass, wenn der Schwellenwert nicht erreicht wird, Null (nicht -1) ausgegeben wird. Dementsprechend kann in dem Beispiel ein zweischichtiges neuronales Netzwerk XOR berechnen. 6B provides a simplified representation of an artificial neural network, sometimes referred to as a multilayer perceptron, with each node in one layer having connections directed to the nodes of the subsequent layer, with multiple layers of computing units interconnected in a feedforward arrangement. For example, if a value within the Perceptron node 510 (Node) represents the explicit threshold of each node (which can be subtracted so that all nodes have the same thresholds with arrows showing the weight of the inputs. This network assumes that if the threshold is not met , Zero (not -1), accordingly, in the example, a two-layer neural network can compute XOR.
In einem vereinfachten Beispiel wird eine Eingabe 500 für das neuronale Netzwerk bereitgestellt und eine erforderliche Zielantwort wird an der Ausgabe 520 eingestellt, und aus der Differenz der gewünschten Antwort zusammen mit der Ausgabe des realen Systems wird ein Fehler erhalten. In a simplified example, an input 500 for the neural network and a required target response is provided on the output 520 is set, and an error is obtained from the difference in the desired response together with the output of the real system.
Die Fehlerinformationen werden an das System zurückgemeldet und nehmen viele Anpassungen an ihren Parametern in einer systematischen Reihenfolge vor. Nachdem dieser Vorgang für eine ausreichend große Anzahl von Trainingszyklen wiederholt wurde, kann das Netzwerk in einen Zustand konvergieren, in dem der Fehler der Berechnungen gering ist und das Netzwerk „gelernt“ hat. In einem Beispiel wird eine allgemeine Methode zur nichtlinearen Optimierung angewendet, wobei das Netzwerk die Ableitung der Fehlerfunktion in Bezug auf die Netzwerkkoeffizienten oder -gewichte berechnet und die Koeffizienten so ändert, dass der Fehler abnimmt.The error information is reported back to the system and makes many adjustments to its parameters in a systematic order. After this process has been repeated for a sufficiently large number of training cycles, the network can converge to a state in which the error in the calculations is small and the network has "learned". In one example, a general approach to nonlinear optimization is used, where the network calculates the derivative of the error function with respect to the network coefficients or weights and changes the coefficients so that the error decreases.
Verschiedene Formen von neuronalen Netzen können verwendet werden, um eine Spektralkorrektur bereitzustellen, einschließlich, aber nicht beschränkt auf künstliche neuronale Rückkopplungsnetze, künstliche neuronale Vorwärtskopplungsnetze, künstliche neuronale Netze mit Klassifizierungsvorhersage und andere.Various forms of neural networks can be used to provide spectral correction including, but not limited to, artificial neural feedback networks, artificial neural feedforward networks, artificial neural networks with classification prediction, and others.
7A ist ein Logikdiagramm, das ein beispielhaftes Verfahren zum Trainieren eines künstlichen neuronalen Netzwerks darstellt, um korrigierte Spektren bereitzustellen. In Schritt 600 wird die spektrale Ausgabe von einem Sensorarray, wie beispielsweise dem Sensorarray 220, über einen Bereich von Eingangsleistung und Wellenlängen gesammelt, wie in der Tabelle gezeigt, die 7A zugeordnet ist. In einem Beispiel kann dem Sensorarray ein Durchlauf von monochromatischem Licht über einen gewünschten Wellenlängenbereich präsentiert werden, während die Eingangsleistung festgelegt ist; die Eingangsleistung kann dann schrittweise erhöht und bei jeder gewünschten Eingangsleistungseinstellung für den gewünschten Wellenlängenbereich gewobbelt werden. In einem alternativen Beispiel kann die Eingangsleistung in festen Schritten für jede feste Wellenlänge eines gewünschten Wellenlängenbereichs erhöht werden. In einem weiteren alternativen Beispiel können ausgewählte Wellenlängen- und Eingangsleistungspaare, wie die in der Tabelle aus 7A gezeigten, statistisch oder zufällig (oder pseudozufällig) ausgewählt werden, um eine Matrix auszufüllen. In einem anderen Beispiel kann eine Matrix, wie die in 7A dargestellte Matrix, unter Verwendung eines fraktionalen faktoriellen Designs modifiziert werden, um Trainingsläufe und Ressourcen zu reduzieren. 7A Figure 13 is a logic diagram illustrating an exemplary method for training an artificial neural network to provide corrected spectra. In step 600 is the spectral output from a sensor array, such as the sensor array 220 , collected over a range of input power and wavelengths, as shown in the table that 7A assigned. In one example, the sensor array may be presented with a sweep of monochromatic light over a desired range of wavelengths while the input power is fixed; the input power can then be incrementally increased and swept at any desired input power setting for the desired wavelength range. In an alternative example, the input power can be increased in fixed steps for each fixed wavelength of a desired wavelength range. In another alternative example, selected wavelength and input power pairs such as those in the table can be selected 7A randomly or randomly (or pseudo-randomly) to fill in a matrix. In another example, a matrix like the one in 7A can be modified using a fractional factorial design to reduce training runs and resources.
In dem Beispiel von 7A werden Lichtwellenlängen und Eingangsleistung berücksichtigt. In anderen Beispielen können Eingabefaktoren vielfältig sein. Beispielhafte Eingangsfaktoren können beispielsweise ein Signal oder eine andere Anzeige eines Beleuchtungsquellentyps (wie Laser, natürliches Licht, LED-Licht (Light Emitting Diode) usw.), einen abgetasteten Objekttyp (z.B. menschliche Haut, Außenszene usw.) und/oder eine beabsichtigte Verwendung für die spektrale Ausgabe (wie Gesundheitsanalysen, Weißabgleich usw.) enthalten. Weitere Eingabefaktoren finden Sie in und im Begleittext. In einem Beispiel können mehrdimensionale Matrizen verwendet werden, um eine Vielzahl von Eingabefaktoren aufzunehmen. In einem verwandten Beispiel können mehrdimensionale Matrizen, die für mehrere Eingabefaktoren ausgelegt sind, vollständige und gebrochene faktorielle Designs verwenden.In the example of 7A light wavelengths and input power are taken into account. In other examples, input factors can be many. Exemplary input factors may include, for example, a signal or other indication of a type of lighting source (such as laser, natural light, LED (Light Emitting Diode) light, etc.), a type of object being sensed (e.g., human skin, outdoor scene, etc.), and / or an intended use for contain the spectral output (such as health analyzes, white balance, etc.). Further input factors can be found in and in the accompanying text. In one example, multidimensional matrices can be used to accommodate a variety of input factors. In a related example, multidimensional matrices designed for multiple input factors can use full and fractional factorial designs.
In dem Beispiel enthält die Matrix von 7A monochromatisches Licht bei Wellenlängen von 720 nm bis xxx nm in Schritten von 10 nm für jedes der 1-y-Eingangsleistungseinheiten. In der Praxis könnten Wellenlängen in kleineren Inkrementen wie 1 nm oder in Inkrementen > 10 nm inkrementiert werden, und die Eingangsleistung kann auf ähnliche Weise inkrementiert werden.In the example, the matrix of Figure 7A contains monochromatic light at wavelengths from 720 nm to xxx nm in 10 nm increments for each of the 1-y input power units. In practice, wavelengths could be incremented in smaller increments such as 1 nm or in increments> 10 nm, and the input power can be incremented in a similar manner.
Das Verfahren von 7A führt zu einem Charakterisierungsmodell eines hypothetischen Spektrometers M mit den Abmessungen L × S × N, wobei L die Anzahl (#) der Eingangsleistungsinkremente, S die # der Wellenlängeninkremente und N die Anzahl der Filter-„Patches“ ist. Ein Filterpatch ist im Beispiel die Anzahl der Filterelemente über das Sensorarray, die für dieselbe Wellenlängenübertragung auswählen. In einem Beispiel kann dieses Spektrometer-„Modell“ Spektren mit voller Auflösung (Einzelwellenlängeninkremente von monochromatischem Licht) bereitstellen und N-Werte ausgeben. Zum Beispiel würde es für ein 64-Kanal-Spektrometer 64 Ausgänge geben. Das Verfahren beginnt in Schritt 600, wobei eine Ausgabe für mehrere Paare von Eingangsleistung und Wellenlänge gesammelt wird, und setzt sich in Schritt 610 fort, wo eine große Anzahl von synthetischen Eingangsspektren erzeugt werden. In einem speziellen Beispiel 100 Millionen Spektren, die im Wesentlichen alle denkbaren Permutationen abdecken, denen das Spektrometer ausgesetzt sein könnte. In einem anderen speziellen Beispiel können die synthetischen Eingangsspektren für gezielte Permutationen der Belichtungsbedingungen des Spektrums ausgewählt werden. Diese synthetischen Eingangsspektren können dann verwendet werden, um ein korrigiertes Spektrum zu trainieren, wie oben diskutiert.The procedure of 7A leads to a characterization model of a hypothetical spectrometer M with the dimensions L × S × N, where L is the number (#) of input power increments, S is the # of wavelength increments and N is the number of filter "patches". In the example, a filter patch is the number of filter elements across the sensor array that are selected for the same wavelength transmission. In one example, this spectrometer “model” can provide full resolution spectra (single wavelength increments of monochromatic light) and output N values. For example, for a 64 channel spectrometer there would be 64 outputs. The procedure starts in step 600 , where an output is collected for multiple pairs of input power and wavelength, and continues in step 610 where a large number of synthetic input spectra are generated. In a specific example, 100 million spectra covering essentially all conceivable permutations to which the spectrometer could be exposed. In another specific example, the synthetic input spectra can be selected for targeted permutations of the exposure conditions of the spectrum. These synthetic input spectra can then be used to train a corrected spectrum, as discussed above.
In Schritt 620 wird das künstliche neuronale Netzwerk trainiert (d.h. die Koeffizienten oder Gewichte des neuronalen Netzwerks werden bestimmt), so dass, wenn dem Spektrometer synthetische Spektren zur Verfügung gestellt werden, das künstliche neuronale Netzwerk die künstlichen Spektren ausgibt (d.h. der Fehler im Spektrometer wird auf einen akzeptablen Betrag minimiert). In Schritt 630 werden die Koeffizienten oder Gewichte in das künstliche neuronale Netzwerk (wie das künstliche neuronale Netzwerk 370 von 5) geladen. Das Spektrometer kann dann jegliches Eingangslicht in das Spektralarray korrigieren, um ein korrigiertes Spektrum zu erzeugen.In step 620 the artificial neural network is trained (i.e. the coefficients or weights of the neural network are determined) so that when synthetic spectra are provided to the spectrometer, the artificial neural network outputs the artificial spectra (i.e. the error in the spectrometer is reduced to an acceptable one Amount minimized). In step 630 the coefficients or weights are put into the artificial neural network (like the artificial neural network 370 from 5 ) loaded. The spectrometer can then correct any light input into the spectral array to produce a corrected spectrum.
7B ist ein Logikdiagramm, das ein beispielhaftes Verfahren zum adaptiven Korrigieren der Spektralausgabe von einem Sensorarray darstellt. Das Verfahren beginnt in Schritt 640, wobei das abgetastete Spektrum von einem Objekt oder einer Szene aufgezeichnet wird. In einem Beispiel kann die Aufzeichnung eines oder mehrere von Speichern des abgetasteten Spektrums im Speicher, Halten des abgetasteten Spektrums in einem Puffer und Bereitstellen von Auslesungen, wie sie an ein Verarbeitungsmodul empfangen werden, umfassen. Das Verfahren wird in Schritt 642 fortgesetzt, wobei das aufgezeichnete Spektrum analysiert wird. In einem Beispiel kann die Analyse das Analysieren des aufgezeichneten Spektrums umfassen, um eine oder mehrere von Intensitäten bei ausgewählten Wellenlängen, Gesamtenergie, Verhältnissen für aufgezeichnete Peaks im Spektrum umfassen (wie Peak/Valley-Verhältnisse oder Verhältnisse zwischen Peaks), relative Glätte oder zu bestimmen relatives Stacheligkeitssignal usw.). 7B Figure 13 is a logic diagram illustrating an exemplary method for adaptively correcting the spectral output from a sensor array. The procedure starts in step 640 where the scanned spectrum is recorded from an object or scene. In one example, recording may include one or more of storing the scanned spectrum in memory, holding the scanned spectrum in a buffer, and providing readings as received to a processing module. The procedure is in step 642 continues, analyzing the recorded spectrum. In one example, the analysis may include analyzing the recorded spectrum to determine one or more of intensities at selected wavelengths, total energy, ratios for recorded peaks in the spectrum (such as peak / valley ratios or ratios between peaks), relative smoothness, or to determine relative spikiness signal, etc.).
In Schritt 644 wird das Verfahren fortgesetzt, wobei ein Kalibrierungsverfahren basierend auf dem analysierten Spektrum und einem oder mehreren zusätzlichen Eingabefaktoren bestimmt wird. Zusätzliche Eingangsfaktoren können beispielsweise ein Signal oder eine andere Anzeige einer Art von Beleuchtungsquelle (wie Laser, natürliches Licht, LED-Leuchtdiodenlicht usw.), eine Art von Objekt, das abgetastet wird (wie z.B. menschliche Haut, Außenszene usw.) und/oder eine beabsichtigte Verwendung für die spektrale Ausgabe (wie Gesundheitsanalysen, Weißabgleich usw.). Siehe 8D und den Begleittext für weitere Eingabefaktoren. In einem Beispiel kann das Kalibrierungsverfahren eine Matrix enthalten, wie beispielsweise die in 7A dargestellte Matrix. Andere Kalibrierungsverfahren umfassen eine oder mehrere Kalibrierungen unter Verwendung einer oder mehrerer von zwei Wellenlängen (wie z.B. zwei Wellenlängen, die für die Messung der peripheren Sauerstoffsättigung (SpO2) nützlich sind), Kalibrierungen unter Verwendung der Hauptkomponentenanalyse und Kalibrierungen unter Verwendung anderer Schemata. In Schritt 644 wird das bestimmte Kalibrierungsverfahren auf das abgetastete Spektrum angewendet. In Schritt 648 wird, wenn die Korrektur abgeschlossen ist, das korrigierte abgetastete Spektrum analysiert, um zu bestimmen, ob es innerhalb vorbestimmter Grenzen liegt, und wenn das korrigierte Abtastspektrum nicht innerhalb vorbestimmter Grenzen liegt, kann Schritt 642 wiederholt werden und/oder eine andere Kalibrierung kann verwendet werden, bis das korrigierte Abtastspektrum innerhalb vorbestimmter Grenzen liegt. In einem Beispiel können die vorbestimmten Grenzen auf einem oder mehreren Eingabefaktoren basieren, wie beispielsweise einem oder mehreren Metadaten, die einem Objekt oder einer Szene zugeordnet sind, einer Klassifizierungsgrenze, einer Nachschlagetabelle, einer Formel oder einer verwendeten Kalibrierungsmethode.In step 644 the method continues, wherein a calibration method is determined based on the analyzed spectrum and one or more additional input factors. Additional input factors can include, for example, a signal or other indication of a type of lighting source (such as laser, natural light, LED light emitting diode light, etc.), a type of object being scanned (such as human skin, outdoor scene, etc.) and / or a intended use for spectral output (such as health analysis, white balance, etc.). Please refer 8D and the accompanying text for further input factors. In one example, the calibration method may include a matrix such as that in FIG 7A shown matrix. Other calibration methods include one or more calibrations using one or more of two wavelengths (such as two wavelengths useful for measuring peripheral oxygen saturation (SpO2)), calibrations using principal component analysis, and calibrations using other schemes. In step 644 the particular calibration procedure is applied to the scanned spectrum. In step 648 when the correction is complete, the corrected sampled spectrum is analyzed to determine if it is within predetermined limits, and if the corrected sampled spectrum is not within predetermined limits, step 642 repeated and / or another calibration can be used until the corrected scan spectrum is within predetermined limits. In one example, the predetermined limits may be based on one or more input factors, such as one or more metadata associated with an object or scene, a classification limit, a look-up table, a formula or a calibration method used.
7C stellt ein Logikdiagramm bereit, das ein anderes beispielhaftes Verfahren zum adaptiven Korrigieren der Spektralausgabe von einem Sensorarray darstellt. Das Verfahren beginnt in Schritt 650 mit einem optischen Sensorarray, das dem Spektralsensorsystem zugeordnet ist, das Licht mit N Eingangsleistungen für jede Lichtwellenlänge von M Lichtwellenlängen empfängt, um N × M Wellenlängen- und Eingangsleistungspaare zu erzeugen. In einem Beispiel wird jede Wellenlänge des Lichts der M Wellenlängen des Lichts und jede Eingangsleistung des Lichts der N Eingangsleistungen des Lichts von dem optischen Sensorarray in einer vorbestimmten Sequenz empfangen. In einem anderen Beispiel ist jeder optische Sensor des optischen Sensorarrays einem optischen Filter aus mehreren Sätzen optischer Filter zugeordnet, und jeder optische Filter eines Satzes optischer Filter ist konfiguriert, um Licht in einem anderen Wellenlängenbereich durchzulassen. Das Verfahren wird in Schritt 652 fortgesetzt, wobei das Spektralsensorsystem mehrere Signale erzeugt, um ein erzeugtes Signal für jedes Wellenlängen- und Eingangsleistungspaar zu erzeugen, wobei jedes der Vielahl von Signalen für das empfangene Licht bei jedem Wellenlängen- und Eingangsleistungspaar der N × M-Wellenlängen- und Eingangsleistungspaare repräsentativ ist. In Schritt 654 bestimmt das Spektralsensorsystem eine Vielzahl von Fehlerkoeffizienten, wobei jeder Fehlerkoeffizient der Vielzahl von Fehlerkoeffizienten repräsentativ für die Differenz zwischen einem erzeugten Signal und einem Zielwert für ein Wellenlängen- und Eingangsleistungspaar ist. In Schritt 656 verwendet das Sensorsystem die Vielzahl von Fehlerkoeffizienten, um ein künstliches neuronales Netzwerk zu trainieren, das konfiguriert ist, um eine von dem optischen Sensorarray erzeugte spektrale Antwort anzupassen, und in Schritt 658 kann die Ausgabe des trainierten künstlichen neuronalen Netzwerks verwendet werden, um die von einem anderen optischen Sensorarray erzeugte spektrale Antwort einzustellen. 7C provides a logic diagram illustrating another exemplary method for adaptively correcting the spectral output from a sensor array. The procedure starts in step 650 having an optical sensor array associated with the spectral sensor system that receives light having N input powers for each light wavelength of M light wavelengths to produce N × M wavelength and input power pairs. In one example, each wavelength of light of the M wavelengths of light and each input power of light of the N input powers of light is received by the optical sensor array in a predetermined sequence. In another example, each optical sensor of the optical sensor array is associated with an optical filter from a plurality of sets of optical filters, and each optical filter of a set of optical filters is configured to pass light in a different wavelength range. The procedure is in step 652 continued, wherein the spectral sensor system generates a plurality of signals to produce a generated signal for each wavelength and input power pair, each of the plurality of signals being representative of the received light at each wavelength and input power pair of the N × M wavelength and input power pairs. In step 654 the spectral sensor system determines a plurality of error coefficients, each of the plurality of error coefficients being representative of the difference between a generated signal and a target value for a wavelength and input power pair. In step 656 the sensor system uses the plurality of error coefficients to train an artificial neural network configured to adjust a spectral response generated by the optical sensor array, and in FIG 658 For example, the output of the trained artificial neural network can be used to adjust the spectral response generated by another optical sensor array.
In einem speziellen Implementierungsbeispiel kann das in 7C genannte künstliche neuronale Netzwerk konfiguriert werden, um Informationen zu empfangen, die einer Szene zugeordnet sind, die von einem anderen Spektralsensor abgetastet wird. In einem weiteren Beispiel wird die Ausgabe des trainierten künstlichen neuronalen Netzwerks einem anderen künstlichen neuronalen Netzwerk bereitgestellt, das einem anderen optischen Sensorarray (in einem anderen Spektralsensorsystem) zugeordnet ist, wobei das andere künstliche neuronale Netzwerk so konfiguriert ist, dass es Informationen empfängt, die einer Szene zugeordnet sind, die von dem anderen Spektralsensorsystem abgetastet wird.In a special implementation example, this can be done in 7C said artificial neural network can be configured to receive information associated with a scene that is scanned by another spectral sensor. In another example, the output of the trained artificial neural network is provided to another artificial neural network that is assigned to a different optical sensor array (in a different spectral sensor system), the other artificial neural network configured to receive information that a Scene are assigned, which is scanned by the other spectral sensor system.
In einem Beispiel kann das in 7C erwähnte künstliche neuronale Netzwerk mit Koeffizienten für N × M Wellenlängen- und Eingangsleistungspaare zusammen mit Korrekturen trainiert werden, die auf anderen Eingangsfaktoren basieren, wie beispielsweise den Eingangsfaktoren, auf die unter Bezugnahme auf 7A Bezug genommen wird. In einem anderen Beispiel kann ein trainiertes künstliches neuronales Netzwerk verwendet werden, um eine Gewichtung für ein oder mehrere künstliche neuronale Netzwerke bereitzustellen, die anderen Spektralsensorsystemen zugeordnet sind, die selbst basierend auf verschiedenen Eingabefaktoren trainiert werden können.In one example, this can be done in 7C mentioned artificial neural network can be trained with coefficients for N × M wavelength and input power pairs together with corrections based on other input factors such as the input factors referred to in FIG 7A Is referred to. In another example, a trained artificial neural network can be used to provide weighting for one or more artificial neural networks associated with other spectral sensor systems that can themselves be trained based on various input factors.
8A zeigt einen beispielhaften Spektralsensor, wobei die Eingangsparameter 310, wie beispielsweise ein Abtasten von monochromatischem Licht über ausgewählte Wellenlängen bei ausgewählten Eingangsleistungseinheiten, am Spektralsensor 10 bereitgestellt werden und eine unkorrigierte Ausgangsantwort 500 gesammelt wird (wie L × S × N aus Schritt 600 von 7A). 8A shows an exemplary spectral sensor, with the input parameters 310 , such as scanning monochromatic light over selected wavelengths at selected input power units, at the spectral sensor 10 and an uncorrected output response 500 is collected (like L × S × N from step 600 from 7A) .
In einem Beispiel enthält ein Spektralsensor 10 Kalibrierungsdaten, die während des Testens und/oder der Herstellung des Spektralsensors 10 gesammelt wurden, wobei die Kalibrierungsdaten spezifisch für das Spektralarray 220 des Spektralsensors 10 sind. In einem Beispiel werden die Kalibrierungsdaten in einem dem Spektralsensor 10 zugeordneten Flash-Speicher gespeichert.In one example, includes a spectral sensor 10 Calibration data obtained during testing and / or manufacture of the spectral sensor 10 were collected, with the calibration data specific to the spectral array 220 of the spectral sensor 10 are. In one example, the calibration data is in one of the spectral sensor 10 allocated flash memory.
In dem Beispiel ist die unkorrigierte Ausgangsantwort 500 ein Maß dafür, wie sich der Spektralsensor 10 verhält, wenn er mit monochromatischem Licht bei inkrementellen Eingangsleistungspegeln gewobbelt wird. In einem „idealen“ Spektralsensor erzeugt jeder Sensor oder jedes Pixel in Kombination mit einem zugehörigen Filterelement ein Signal, das eine im Wesentlichen perfekte Darstellung der Eingangsleistung und des am Spektralsensor 10 bereitgestellten Lichts darstellt, so dass eine lineare Folge von Wellenlängen bei einer gegebenen Eingangsleistung zu einer spektralen Ausgangsantwort führt, die im Wesentlichen mit der Eingangsleistung und dem am Spektralsensor 10 bereitgestellten Licht übereinstimmt (d.h. die spektrale Ausgangsantwort wäre „ideal“). Da kein Spektralsensor auf solch ideale Weise arbeitet, weicht die unkorrigierte Ausgangsantwort 500 von der idealen spektralen Ausgangsantwort ab und erfordert eine Korrektur, um die Eingangsparameter 310 genau darzustellen.In the example is the uncorrected output response 500 a measure of how the spectral sensor is 10 when swept with monochromatic light at incremental input power levels. In an “ideal” spectral sensor, each sensor or pixel in combination with an associated filter element generates a signal that is an essentially perfect representation of the input power and that of the spectral sensor 10 provided light, so that a linear sequence of wavelengths at a given input power leads to a spectral output response that essentially corresponds to the input power and that at the spectral sensor 10 provided light matches (ie the spectral output response would be "ideal"). Since no spectral sensor works in such an ideal way, the uncorrected output response gives way 500 depends on the ideal spectral output response and requires a correction to the input parameters 310 to represent exactly.
In 8B ist ein beispielhafter Spektralsensor dargestellt, der ein künstliches neuronales Netzwerk verwendet. In einem Beispiel werden rohe Spektraldaten, wie die unkorrigierte Ausgangsantwort 500 aus 8A, verwendet, um ein Spektrometer-Modell 510 für den Spektralsensor 10 zu erstellen, so dass das Spektrometer-Modell 510 die Nichtidealität des Spektralsensors 10 für alle Eingabeparameter 310 widerspiegelt, die dem Spektralsensor 10 bereitgestellt werden, wie im Beispiel von 8A.In 8B an exemplary spectral sensor using an artificial neural network is shown. In one example, raw spectral data, such as the uncorrected output response 500 the end 8A , used to model a spectrometer 510 for the spectral sensor 10 to create, so that the spectrometer model 510 the non-ideality of the spectral sensor 10 for all input parameters 310 that reflects the spectral sensor 10 provided, as in the example of 8A .
In dem Beispiel werden künstliche Spektren 560 am Spektrometermodell 510 empfangen, dessen Ausgabe dann in ein künstliches neuronales Netzwerk wie das künstliche neuronale Netzwerk 370 eingegeben und mit einer gewünschten oder erwarteten spektralen Ausgabe für künstliche Spektren 560 verglichen wird. In einem Beispiel wird der Fehler 530 wiederholt für die künstlichen Spektren 560 bestimmt und in das künstliche neuronale Netzwerk 370 eingegeben, um Koeffizienten zu erzeugen, die die Differenz zwischen den künstlichen Spektren 560 und dem Spektrometermodell 510 widerspiegeln. Die erzeugten Koeffizienten können dann gespeichert und anschließend in ein generisches künstliches neuronales Netzwerk geladen werden, um das Spektrum in einem zugeordneten Spektralsensor zu korrigieren. In einem Beispiel wird eine Anzahl von künstlichen Spektren 560 basierend auf der gewünschten Präzision und Genauigkeit für den Spektralsensor 10 bestimmt und kann beispielsweise 100 Millionen Spektren überschreiten.The example uses artificial spectra 560 on the spectrometer model 510 received, its output then into an artificial neural network such as the artificial neural network 370 entered and with a desired or expected spectral output for artificial spectra 560 is compared. In one example, the error is 530 repeated for the artificial spectra 560 determined and in the artificial neural network 370 input to generate coefficients representing the difference between the artificial spectra 560 and the spectrometer model 510 reflect. The generated coefficients can then be stored and then loaded into a generic artificial neural network in order to correct the spectrum in an associated spectral sensor. In one example, a number of artificial spectra 560 based on the desired precision and accuracy for the spectral sensor 10 and can, for example, exceed 100 million spectra.
In einer Ausführungsform kann der Spektralsensor 10 Filtermuster über die räumlichen Bereiche eines Sensorarrays (wie des Spektralsensorarrays 100 aus 1) bereitstellen, um eine korrigierte spektrale Ausgangsantwort 520 zu optimieren. Beispielsweise kann das Filtermuster über das Spektralsensorarray (wie das Spektralsensorarray 100 aus 1) verschlüsselt und/oder über das Spektralarray hinweg mehrfach wiederholt werden. Die wiederholten Muster können beispielsweise Schattierungseffekte und andere Effekte aufgrund von Ungleichmäßigkeiten reduzieren, die das Ergebnis anderer Elemente sein können, die dem Spektralsensor 10 zugeordnet sind, wie beispielsweise Kollimationsoptiken.In one embodiment, the spectral sensor 10 Filter patterns over the spatial areas of a sensor array (such as the spectral sensor array 100 the end 1 ) provide a corrected output spectral response 520 to optimize. For example, the filter pattern can be via the spectral sensor array (such as the spectral sensor array 100 the end 1 ) encrypted and / or repeated several times across the spectral array. For example, the repeated patterns can reduce shading effects and other effects due to non-uniformities that can be the result of other elements affecting the spectral sensor 10 are assigned, such as collimation optics.
In einer anderen Ausführungsform kann der Effekt von Änderungen der Beleuchtung und/oder der Neigung der Szene durch das künstliche neuronale Netzwerk 370 behoben und/oder geändert werden. Die Neigung der Szene kann als die Beziehung zwischen einer Szene oder einem Objekt auf einer vertikalen und/oder horizontalen Achse relativ zu einem Imager wie einem Spektral-Imager beschrieben werden. Beispielsweise könnte eine Szene, die in einer vertikalen und horizontalen Achse relativ senkrecht zur Sichtlinie eines Bildgebungssystems (wie einer Kamera) ist, so beschrieben werden, dass sie eine Neigung von null Grad (0 Grad) aufweist. Wenn die Sichtlinie als eine Linie beschrieben wird, die sich vom Blickwinkel eines Bildgebers zu einem abgetasteten Objekt oder Bereich (z.B. einer Bühne) erstreckt, könnte dann eine Neigung von 20 Grad anzeigen, dass das abgetastete Objekt um 20 Grad von der Senkrechten zur Sichtlinie abweicht.In another embodiment, the effect of changes in the lighting and / or the inclination of the scene can be achieved by the artificial neural network 370 fixed and / or changed. The slope of the scene can be described as the relationship between a scene or an object on a vertical and / or horizontal axis relative to an imager such as a spectral imager. For example, a scene that is relatively perpendicular to the line of sight of an imaging system (such as a camera) in a vertical and horizontal axis could be described as having a tilt of zero degrees ( 0 Degree). If the line of sight is described as a line extending from an imager's point of view to a scanned object or area (e.g., a stage), then an incline of 20 degrees could indicate that the scanned object is 20 degrees away from normal to the line of sight .
In einem Beispiel enthalten synthetische Spektren, wie beispielsweise künstliche Spektren 560, gemessene Parameter für verschiedene Neigungs- und Beleuchtungsinkremente, die im Training verwendet werden können, um die Auswirkungen dieser Parameter zu minimieren. In einem Beispiel kann die Korrektur der Neigung und/oder Beleuchtung die Anforderung zum Kollimieren von Elementen in dem Sensorarray verringern. In einem speziellen Beispiel könnten gemessene Parameter wie eine Szenenneigung oder eine Beleuchtungsänderung mit einem künstlichen neuronalen Netzwerk 370 verwendet werden, das konfiguriert ist, um es einem Benutzer zu ermöglichen, einem Bild einen Effekt aufzuerlegen, wie beispielsweise eine Szenenneigung. In einem Beispiel könnte ein Neigungsverschiebungseffekt bereitgestellt werden, so dass ein Bild mit 0 Neigungsgraden einen variablen Neigungsbetrag widerspiegeln könnte, um einen Neigungsverschiebungseffekt bereitzustellen. In einem speziellen verwandten Beispiel könnte eine gemessene Szenenneigung mit einem künstlichen neuronalen Netzwerk 370 verwendet werden, um es einem Benutzer zu ermöglichen, die Brennebene eines Bildes zu manipulieren, um eine Verzerrung aufgrund einer Neigung zu korrigieren. In einem anderen spezifischen verwandten Beispiel könnte eine gemessene Szenenneigung mit einem künstlichen neuronalen Netzwerk 370 verwendet werden, um es einem Benutzer zu ermöglichen, die Brennebene eines Bildes zu manipulieren, um die Konvergenz vertikaler und/oder horizontaler Linien eines weiteren Merkmals im Bild abzuschwächen.In one example, include synthetic spectra, such as artificial spectra 560 , measured parameters for various incline and lighting increments that can be used in training to minimize the effects of these parameters. In one example, correcting the tilt and / or lighting can reduce the requirement to collimate elements in the sensor array. In a specific example, measured parameters such as a scene inclination or a change in lighting could be made with an artificial neural network 370 configured to allow a user to impose an effect on an image, such as a scene slant. In one example, a tilt shift effect could be provided so that an image with zero degrees of tilt could reflect a variable amount of tilt to provide a tilt shift effect. In a specific related example, a measured scene slope could be with an artificial neural network 370 can be used to enable a user to manipulate the focal plane of an image to correct for distortion due to tilt. In another specific related example, a measured scene slope could be with an artificial neural network 370 can be used to enable a user to manipulate the focal plane of an image to mitigate the convergence of vertical and / or horizontal lines of another feature in the image.
In einer weiteren Ausführungsform kann der Effekt von Änderungen des Umgebungslichts und/oder Temperaturänderungen durch das künstliche neuronale Netzwerk 370 behoben werden. In einem Beispiel enthalten die synthetischen Spektren, wie beispielsweise die künstlichen Spektren 560, gemessene Parameter für verschiedene Umgebungslichtbedingungen und - temperaturen, die im Training verwendet werden können, um die Auswirkungen dieser Parameter zu minimieren.In a further embodiment, the effect of changes in ambient light and / or temperature changes can be achieved by the artificial neural network 370 be resolved. In one example, the synthetic spectra, such as the artificial spectra, contain 560 , measured parameters for various ambient light conditions and temperatures that can be used in training to minimize the effects of these parameters.
In einem spezifischen Beispiel der Implementierung und des Betriebs umfasst ein Spektralsensorsystem eine Vielzahl von optischen Sensoren, die auf einer integrierten Schaltung angeordnet sind. wobei die Vielzahl von optischen Sensoren in einem Array und einer Schnittstelle zwischen der Vielzahl von optischen Sensoren und einer ersten Verarbeitungsvorrichtung angeordnet sind, die konfiguriert ist, um Informationen untereinander zu übertragen. In einem Beispiel sind mehrere Sätze von optischen Filtern als eine Schicht konfiguriert, die sich auf der Vielzahl von optischen Sensoren befindet, wobei ein Satz von optischen Filtern der Vielzahl von Sätzen von optischen Filtern eine Vielzahl von optischen Filtern umfasst, und jedes optische Filter der Vielzahl von optischen Filtern konfiguriert ist, um Licht in einem anderen Wellenlängenbereich durchzulassen. In dem Beispiel ist ein Speicher enthalten, der konfiguriert ist, um eine Schnittstelle mit der ersten Verarbeitungsvorrichtung herzustellen und mit dieser zu kommunizieren und Kalibrierungsdaten zu speichern, die mit der Vielzahl von Sätzen optischer Sensoren verbunden sind, wobei eine zweite Verarbeitungsvorrichtung ein künstliches neuronales Netzwerk umfasst, das konfiguriert ist, um eine durch die Vielzahl von optischen Sensoren erzeugte spektrale Antwort zu korrigieren, zusammen mit einer Schnittstelle zwischen der ersten Verarbeitungsvorrichtung und der zweiten Verarbeitungsvorrichtung.In a specific example of implementation and operation, a spectral sensor system includes a plurality of optical sensors disposed on an integrated circuit. wherein the plurality of optical sensors are arranged in an array and an interface between the plurality of optical sensors and a first processing device configured to communicate information between one another. In one example, multiple sets of optical filters are configured as a layer that is on top of the plurality of optical sensors, with one set of optical filters of the plurality of sets of optical Filtering includes a plurality of optical filters, and each optical filter of the plurality of optical filters is configured to pass light in a different wavelength range. Included in the example is a memory configured to interface and communicate with the first processing device and to store calibration data associated with the plurality of sets of optical sensors, a second processing device comprising an artificial neural network configured to correct a spectral response generated by the plurality of optical sensors, along with an interface between the first processing device and the second processing device.
8C zeigt einen beispielhaften Spektralsensor, bei dem eine physikalische Szene 160 einem Spektralsensor 10 bereitgestellt wird, der dann an ein trainiertes künstliches neuronales Netzwerk 370 ausgegeben wird, um eine korrigierte spektrale Ausgangsantwort 520 für die physikalische Szene 560 bereitzustellen. 8D zeigt einen beispielhaften Spektralsensor, bei dem Metadaten einer physikalischen Szene für das künstliche neuronale Netzwerk wie das künstliche neuronale Netzwerk 370 bereitgestellt werden. In einem Beispiel sind Metadaten 570 der physischen Szene zur Verwendung durch das künstliche neuronale Netzwerk 370 vorbestimmt. In einem Beispiel können, wenn eine bestimmte Pflanze Gegenstand einer Analyse ist, bekannte spektrale Antworten für diese Pflanze verwendet werden, um die Effizienz des künstlichen neuronalen Netzwerks 370 zu erhöhen. Dies könnte erreicht werden, indem einer oder mehrere der Messbereiche optimiert, die Granularität der Messungen in einem Teil der physischen Szene erhöht oder die Analyse auf der Grundlage der Metadaten 570 auf andere Weise manipuliert werden. Die Metadaten 570 für physikalische Szenen können Daten enthalten, die von zusätzlichen Sensoren wie Gyroskopen, Magnetometern, Beschleunigungsmessern, Temperatursensoren und Bildsensoren bereitgestellt werden, sind jedoch nicht darauf beschränkt. 8C shows an exemplary spectral sensor in which a physical scene 160 a spectral sensor 10 is provided, which is then sent to a trained artificial neural network 370 is output to a corrected output spectral response 520 for the physical scene 560 provide. 8D shows an exemplary spectral sensor in which metadata of a physical scene for the artificial neural network such as the artificial neural network 370 to be provided. In one example is metadata 570 the physical scene for use by the artificial neural network 370 predetermined. In one example, when a particular plant is the subject of analysis, known spectral responses for that plant can be used to assess the efficiency of the artificial neural network 370 to increase. This could be achieved by optimizing one or more of the measurement areas, increasing the granularity of the measurements in a part of the physical scene, or analyzing based on the metadata 570 manipulated in other ways. The metadata 570 for physical scenes may include, but are not limited to, data provided by additional sensors such as gyroscopes, magnetometers, accelerometers, temperature sensors, and image sensors.
In einem spezifischen Beispiel der Implementierung und des Betriebs können die Metadaten 570 Informationen über eine physikalische Szene 560 enthalten, die das künstliche neuronale Netzwerk 370 entweder nicht korrigieren kann oder eine korrigierte spektrale Ausgangsantwort 520 außerhalb akzeptabler Grenzen erzeugen würde. In einem Beispiel kann das künstliche neuronale Netzwerk 370 konfiguriert sein, um eine Benachrichtigung, wie beispielsweise ein Signal, bereitzustellen, die anzeigt, dass eine Korrektur nicht innerhalb akzeptabler Grenzen liegt. In einem anderen Beispiel kann das künstliche neuronale Netzwerk 370 konfiguriert sein, um eine Benachrichtigung, wie beispielsweise ein Signal, bereitzustellen, die anzeigt, dass eine Korrektur innerhalb akzeptabler Grenzen liegt, wodurch ein Benutzer effektiv informiert wird, dass der korrigierten spektralen Ausgangsantwort 520 vertraut werden kann. Beispiele für Metadaten 570 Informationen, die das künstliche neuronale Netzwerk 370 entweder nicht korrigieren kann oder außerhalb akzeptabler Grenzen liegen würde, umfassen eine oder mehrere von zu geringem Eingangslicht, Sensorsättigung oder dem Einfallswinkel für einfallendes Licht, um durch das künstliche neuronale Netzwerk 370 korrigiert zu werden.In a specific implementation and operation example, the metadata 570 Information about a physical scene 560 that contain the artificial neural network 370 either cannot correct or a corrected output spectral response 520 would produce outside acceptable limits. In one example, the artificial neural network 370 be configured to provide a notification, such as a signal, indicating that a correction is not within acceptable limits. In another example, the artificial neural network 370 configured to provide a notification, such as a signal, indicating that a correction is within acceptable limits, thereby effectively informing a user that the corrected output spectral response 520 can be trusted. Examples of metadata 570 Information that the artificial neural network 370 either cannot correct or would be outside acceptable limits include one or more of insufficient input light, sensor saturation, or the angle of incidence for incident light to pass through the artificial neural network 370 to be corrected.
In einem anderen spezifischen Beispiel der Implementierung und des Betriebs kann das künstliche neuronale Netzwerk 370 mit einer Vielzahl von Betriebsmodi konfiguriert werden. In einem Beispiel kann das künstliche neuronale Netzwerk 370 mit einem Modus mit hoher Genauigkeit und höherer Leistung konfiguriert werden, der eine spektrale Ausgabe von relativ hoher Qualität erzeugt, aber einen relativ höheren Energieverbrauch aufweist oder das künstliche neuronale Netzwerk 370 kann mit einem Modus mit geringerer Genauigkeit und geringerer Leistung konfiguriert werden, wobei weniger Berechnungen durchgeführt werden, um den Energieverbrauch auf relativer Basis zu reduzieren. In einem anderen speziellen Beispiel für Implementierung und Betrieb kann ein Vorgang mit reduzierter Komplexität konfiguriert werden, um ein oder mehrere Szenarien zu korrigieren. Beispielsweise kann das künstliche neuronale Netzwerk 370 konfiguriert sein, um eine Bedingung oder einen Satz von Bedingungen auszuwählen, wie beispielsweise eine mittlere Lichtintensität, und Einfallswinkel für einfallendes Licht, das in einem Winkel von 6 Grad kollimiert ist, bevor die Korrektur durch das künstliche neuronale Netzwerk 370 ausgeführt wird. In einem Beispiel kann der reduzierte Satz von Bedingungen beispielsweise einen reduzierten Stromverbrauch bereitstellen. In einem verwandten Beispiel kann eine spezifische Korrektur von einem künstlichen neuronalen Netzwerk 370 zur Verwendung in einem nicht auf neuronalen basierenden Prozessor bereitgestellt werden, um die relative Leistung oder die Kosten für die Spektralkorrektur zu reduzieren.In another specific example of implementation and operation, the artificial neural network 370 can be configured with a variety of operating modes. In one example, the artificial neural network 370 can be configured with a high accuracy, higher performance mode that produces a spectral output of relatively high quality but consumes relatively more power, or the artificial neural network 370 can be configured with a lower accuracy, lower performance mode with fewer calculations to reduce power consumption on a relative basis. In another specific example of implementation and operation, a reduced complexity operation can be configured to correct one or more scenarios. For example, the artificial neural network 370 be configured to select a condition or set of conditions, such as an average light intensity and angles of incidence for incident light collimated at an angle of 6 degrees, before correction by the artificial neural network 370 is performed. For example, in one example, the reduced set of conditions can provide reduced power consumption. In a related example, a specific correction can be made by an artificial neural network 370 for use in a non-neural based processor to reduce the relative performance or cost of spectral correction.
In einem anderen spezifischen Beispiel der Implementierung und des Betriebs kann das künstliche neuronale Netzwerk 370 konfiguriert werden, um einen Vertrauens- oder Genauigkeitswert mit einer korrigierten spektralen Ausgangsantwort 520 bereitzustellen. Wenn beispielsweise ein roter Fleck (oder eine rote Kachel) bei 50% Eingangsleistung gemessen wird, enthält die resultierende korrigierte spektrale Ausgangsantwort 520 für die Messung eine absolute/relative Genauigkeit von 1 % bei der Wellenlänge von 700 nm und eine absolute/relative Genauigkeit von 5 % bei 500 nm. Wenn beispielsweise ein roter Fleck (oder eine rote Kachel) bei 50% Eingangsleistung gemessen wird, enthält die resultierende korrigierte spektrale Ausgangsantwort 520 für die Messung eine absolute/relative Genauigkeit von 1% bei der Wellenlänge von 700 nm und eine absolute/relative Genauigkeit von 5 % bei 500 nm. Wenn in einem Beispiel die korrigierte spektrale Ausgangsantwort 520 zwischen 500 nm und 550 nm einen relativ niedrigen Konfidenzwert aufweist, um genau zu sein, könnte die nachfolgende Anwendungsschicht diesem Teil des korrigierten Spektrums eine geringere Bedeutung zuweisen.In another specific example of implementation and operation, the artificial neural network 370 can be configured to provide a confidence or accuracy value with a corrected output spectral response 520 provide. For example, if a red spot (or red tile) is measured at 50% input power, the resulting corrected output spectral response 520 for the measurement an absolute / relative accuracy of 1% at the wavelength of 700 nm and an absolute / relative accuracy of 5% at 500 nm. For example, if a red spot (or a red tile) is measured at 50% input power, the resulting corrected output spectral response 520 for the measurement an absolute / relative accuracy of 1% at the wavelength of 700 nm and an absolute / relative accuracy of 5% at 500 nm. If in an example the corrected spectral output response 520 has a relatively low confidence value between 500 nm and 550 nm, to be precise, the subsequent application layer might assign less importance to this part of the corrected spectrum.
In einem Beispiel kann ein neuronaler Netzwerkkorrekturalgorithmus eine oder mehrere gewichtete Verlustfunktionen (manchmal als gewichtete Kostenfunktionen bezeichnet) enthalten, die einem Bereich und/oder einem interessierenden Bereich zugeordnet sind, wie beispielsweise einem Teil der physischen Szene 560 oder einem oder mehreren identifizierten Objekten oder Bereiche aus der physischen Szene 560. In einem Beispiel kann eine gewichtete Verlustfunktion verwendet werden, um die Empfindlichkeit eines Spektralerfassungssystems, wie beispielsweise des Spektralsensors 10, für einen bestimmten Bereich und/oder Bereich, der abgetastet wird, zu erhöhen. In einem speziellen Beispiel für Implementierung und Betrieb können eine oder mehrere gewichtete Verlustfunktionen ermöglichen, dass die Hardware des Spektralsensorsystems (wie der Spektralsensor 10) für den Einsatz in Bereichen mit unterschiedlichen Anforderungen und Leistungserwartungen anpassbar ist. In einem Beispiel sind die eine oder mehreren gewichteten Verlustfunktionen bei der Herstellung festgelegt. In einem anderen Beispiel können die eine oder mehreren gewichteten Verlustfunktionen manuell ausgewählt werden. In einem weiteren Beispiel werden die eine oder mehreren gewichteten Verlustfunktionen basierend auf einem Algorithmus bestimmt, beispielsweise einem Mustererkennungsalgorithmus.In one example, a neural network correction algorithm may include one or more weighted loss functions (sometimes referred to as weighted cost functions) associated with an area and / or area of interest, such as a portion of the physical scene 560 or one or more identified objects or areas from the physical scene 560 . In one example, a weighted loss function can be used to measure the sensitivity of a spectral acquisition system, such as the spectral sensor 10 to increase for a particular area and / or area being scanned. In a specific implementation and operation example, one or more weighted loss functions may enable the hardware of the spectral sensor system (such as the spectral sensor 10 ) is adaptable for use in areas with different requirements and performance expectations. In one example, the one or more weighted loss functions are established at manufacture. In another example, the one or more weighted loss functions can be selected manually. In a further example, the one or more weighted loss functions are determined based on an algorithm, for example a pattern recognition algorithm.
In einem speziellen verwandten Beispiel kann die Messung der Hydratation, wie beispielsweise der Hydratationsgrad in der Haut, unter Verwendung von Daten aus räumlich getrennten Bereichen eines Sensors implementiert werden, um die Genauigkeit und/oder Präzision an 5 bestimmten Abschnitten des für die Hydratationsanalyse verwendeten Spektrums zu erhöhen. In dem Beispiel kann die Genauigkeit und/oder Präzision des Spektrums in anderen Spektralbereichen relativ weniger relevant sein, somit kann das Spektralsensorsystem die Proben aus diesen Spektralbereichen reduzieren oder eliminieren.In a specific related example, the measurement of hydration, such as the degree of hydration in the skin, can be implemented using data from spatially separated areas of a sensor to determine the accuracy and / or precision at 5 specific sections of the spectrum used for the hydration analysis raise. In the example, the accuracy and / or precision of the spectrum can be relatively less relevant in other spectral ranges, so the spectral sensor system can reduce or eliminate the samples from these spectral ranges.
In einem anderen Beispiel kann der Spektralsensor 10 in Kombination mit dem künstlichen neuronalen Netzwerk 370 verwendet werden, um ein Vertrauensbild zu erzeugen, wobei das Konfidenzbild Informationen bereitstellt, die ausreichen, um zu bestimmen, ob das tatsächlich gemessene Spektrum angemessen ist. Beispielsweise kann das künstliche neuronale Netzwerk 370 einen Hinweis auf die Abweichung des gemessenen Spektrums von den bereits bestimmten Trainingsdaten bereitstellen. Die Abweichung kann dann verwendet werden, um abnormale Spektren anzuzeigen (Spektren, die normalerweise nicht auftreten können), die eine falsche Messung anzeigen.In another example, the spectral sensor 10 in combination with the artificial neural network 370 can be used to generate a confidence image, the confidence image providing information sufficient to determine whether the actual spectrum measured is adequate. For example, the artificial neural network 370 provide an indication of the deviation of the measured spectrum from the already determined training data. The deviation can then be used to indicate abnormal spectra (spectra that cannot normally occur) that indicate an incorrect measurement.
In einem anderen Beispiel kann der Spektralsensor in Kombination mit dem künstlichen neuronalen Netzwerk 370 konfiguriert werden, umer als Zwischenschritt eine Korrektur der Spektralantwort bereitzustellen, bevor ein korrigiertes Spektrum ausgegeben wird. In dem Beispiel wird eine künstliche neuronale netzwerkkorrigierte Spektralantwort an die nachfolgende Schicht weitergeleitet, und ein Algorithmus oder das künstliche neuronale Netzwerk wird verwendet, um eine Eigenschaft oder Eigenschaften zu bestimmen, die aus dem gemessenen Spektrum abgeleitet sind. Beispielsweise kann eine Eigenschaft wie der Wassergehalt und/oder der Sauerstoffgehalt in einem zu analysierenden Medium bestimmt werden, wobei die Bestimmung auf der korrigierten spektralen Antwort basiert, die vom künstlichen neuronalen Netzwerk bereitgestellt wird, ohne dass ein korrigiertes Spektrum erforderlich ist.In another example, the spectral sensor can be used in combination with the artificial neural network 370 can be configured to provide a correction of the spectral response as an intermediate step before a corrected spectrum is output. In the example, an artificial neural network-corrected spectral response is passed on to the subsequent layer, and an algorithm or the artificial neural network is used to determine a property or properties which are derived from the measured spectrum. For example, a property such as the water content and / or the oxygen content in a medium to be analyzed can be determined, the determination being based on the corrected spectral response provided by the artificial neural network without the need for a corrected spectrum.
In einer Ausführungsform werden physische Szenen-Metadaten 570 und/oder andere Daten, die in das künstliche neuronale Netzwerk 370 eingegeben werden, im Wesentlichen in Echtzeit (live) bereitgestellt, so dass das künstliche neuronale Netzwerk 370 die korrigierte Ausgabe ständig überarbeiten kann. In einer anderen Ausführungsform werden Metadaten 570 der physischen Szene und/oder andere Daten zuvor gespeichert und ein künstliches neuronales Netzwerk 370 bereitgestellt, wie erforderlich und/oder machbar.In one embodiment, physical scene metadata 570 and / or other data that is in the artificial neural network 370 are input, provided essentially in real time (live), so that the artificial neural network 370 can constantly revise the corrected output. In another embodiment, metadata 570 the physical scene and / or other data previously stored and an artificial neural network 370 provided as required and / or feasible.
Es wird angemerkt, dass Terminologien, wie sie hier verwendet werden können, wie Bitstrom, Strom, Signalsequenz usw. (oder deren Äquivalente), austauschbar verwendet wurden, um digitale Informationen zu beschreiben, deren Inhalt einem beliebigen von einer Anzahl von gewünschten Typen entspricht (z.B. Daten, Video, Sprache, Text, Grafiken, Audio usw., von denen jedes allgemein als „Daten“ bezeichnet werden kann).It is noted that terminologies as may be used herein such as bit stream, stream, signal sequence, etc. (or their equivalents) have been used interchangeably to describe digital information the content of which corresponds to any of a number of desired types ( e.g. data, video, voice, text, graphics, audio, etc., each of which can be broadly referred to as "data").
Wie hierin verwendet werden kann, bieten die Begriffe „im Wesentlichen“ und „ungefähr“ eine branchenweit akzeptierte Toleranz für den entsprechenden Begriff und/oder die Relativität zwischen Elementen. Für einige Branchen beträgt eine von der Industrie akzeptierte Toleranz weniger als ein Prozent und für andere Branchen beträgt die von der Industrie akzeptierte Toleranz 10 Prozent oder mehr. Andere Beispiele für branchenübliche Toleranz reichen von weniger als einem Prozent bis fünfzig Prozent. Von der Industrie akzeptierte Toleranzen entsprechen, ohne darauf beschränkt zu sein, Komponentenwerten, Prozessschwankungen bei integrierten Schaltkreisen, Temperaturschwankungen, Anstiegs- und Abfallzeiten, thermischem Rauschen, Abmessungen, Signalisierungsfehlern, verworfenen Paketen, Temperaturen, Drücken, Materialzusammensetzungen und/oder Leistungsmetriken. Innerhalb einer Branche können Toleranzabweichungen akzeptierter Toleranzen mehr oder weniger als ein Prozentniveau betragen (z.B. Dimensionstoleranz von weniger als +/- 1%). Eine gewisse Relativität zwischen Elementen kann von einer Differenz von weniger als einem Prozentsatz bis zu einigen Prozent reichen. Die andere Relativität zwischen Elementen kann von einer Differenz von einigen Prozent bis zur Größe der Unterschiede reichen.As may be used herein, the terms “substantially” and “approximately” offer an industry-accepted tolerance for the corresponding term and / or the relativity between elements. For some industries, an industry accepted tolerance is less than one percent and for other industries the industry accepted tolerance is 10 Percent or more. Other examples of industry tolerance range from less than one percent to fifty percent. Tolerances accepted by the industry correspond, but are not limited to, component values, integrated circuit process variations, temperature variations, rise and fall times, thermal noise, dimensions, signaling errors, dropped packets, temperatures, pressures, material compositions, and / or performance metrics. Within an industry, tolerance deviations of accepted tolerances can be more or less than a percentage level (e.g. dimensional tolerance of less than +/- 1%). Some relativity between elements can range from a difference of less than a percentage to a few percent. The other relativity between elements can range from a difference of a few percent to the size of the differences.
Wie auch hierin verwendet werden kann, umfassen die Begriffe „konfiguriert, um“, „funktionsfähig gekoppelt an“, „gekoppelt an“ und/oder „Kopplung“ eine direkte Kopplung zwischen Elementen und/oder eine indirekte Kopplung zwischen Elementen über ein dazwischenliegendes Element, (z.B. umfasst ein Gegenstand eine Komponente, ein Element, eine Schaltung und/oder ein Modul, ist aber nicht darauf beschränkt), wenn zum Beispiel für eine indirekte Kopplung das dazwischenliegende Element die Informationen eines Signals nicht ändert, sondern dessen Strompegel, Spannungspegel und/oder Leistungspegel anpassen kann. Wie hierin weiter verwendet werden kann, umfasst die abgeleitete Kopplung (d.h. wenn ein Element durch Inferenz mit einem anderen Element gekoppelt ist) eine direkte und indirekte Kopplung zwischen zwei Elementen auf die gleiche Weise wie „gekoppelt mit“.As may also be used herein, the terms "configured to", "operably coupled to", "coupled to" and / or "coupling" include a direct coupling between elements and / or an indirect coupling between elements via an intermediate element, (e.g. an object comprises a component, an element, a circuit and / or a module, but is not limited to this) if, for example for an indirect coupling, the element in between does not change the information of a signal, but rather its current level, voltage level and / or adjust power levels. As may be further used herein, inferred coupling (i.e., when an element is inference coupled to another element) includes direct and indirect coupling between two elements in the same way as "coupled to".
Wie hier noch weiter verwendet werden kann, zeigt der Begriff „konfigurier, um“, „bedienbar an“, „gekoppelt an“ oder „betriebsfähig gekoppelt an“ an, dass ein Gegenstand einen oder mehrere von Stromanschlüssen, Eingang/Eingängen, Ausgang/Ausgängen usw., um bei Aktivierung eine oder mehrere seiner entsprechenden Funktionen auszuführen, und kann ferner eine abgeleitete Kopplung an ein oder mehrere andere Elemente umfassen. Wie hier noch weiter verwendet werden kann, umfasst der Begriff „verknüpft mit die direkte und/oder indirekte Kopplung von getrennten Elementen und/oder einem Element, das in ein anderes Element eingebettet ist.‟As can be used further here, the term “configurable to”, “operable to”, “coupled to” or “operable coupled to” indicates that an object has one or more of power connections, inputs / inputs, outputs / outputs etc., to perform one or more of its respective functions when activated, and may further include inferred coupling to one or more other elements. As may be further used herein, the term "associated with the direct and / or indirect coupling of separate elements and / or an element that is embedded in another element."
Wie hierin verwendet werden kann, zeigt der Begriff „günstig vergleichen“ an, dass ein Vergleich zwischen zwei oder mehr Elementen, Signalen usw. eine gewünschte Beziehung bereitstellt. Wenn beispielsweise die gewünschte Beziehung darin besteht, dass das Signal 1 eine größere Größe als das Signal 2 hat, kann ein günstiger Vergleich erzielt werden, wenn die Größe des Signals 1 größer als die des Signals 2 ist oder wenn die Größe des Signals 2 kleiner als die von Signal 1 ist. Wie hierin verwendet werden kann, zeigt der Begriff „ungünstig vergleichen“ an, dass ein Vergleich zwischen zwei oder mehr Elementen, Signalen usw. nicht die gewünschte Beziehung liefert.As may be used herein, the term “compare favorably” indicates that a comparison between two or more elements, signals, etc. provides a desired relationship. For example, if the desired relationship is that signal 1 has a larger size than signal 2, a favorable comparison can be obtained if the size of signal 1 is larger than that of signal 2 or if the size of signal 2 is smaller than that of signal 1 is. As may be used herein, the term “compare poorly” indicates that a comparison between two or more elements, signals, etc. does not provide the desired relationship.
Wie hierin verwendet werden kann, können ein oder mehrere Ansprüche in einer spezifischen Form dieser generischen Form den Ausdruck „mindestens eines von a, b und c“ oder von dieser generischen Form „mindestens eines von a, b oder c“ mit mehr oder weniger Elementen als „a“, „b“ und „c“ enthalten. In beiden Formulierungen sind die Phrasen identisch zu interpretieren. Insbesondere ist „mindestens eines von a, b und c“ gleichbedeutend mit „mindestens eines von a, b oder c“ und bedeutet a, b und/oder c. Als Beispiel bedeutet es: nur „a“, nur „b“, nur „c“, „a“ und „b“, „a“ und „c“, „b“ und „c“ und/oder „a‟, „b‟ und „c‟.As may be used herein, one or more claims in a specific form of this generic form may include the term “at least one of a, b and c” or of this generic form “at least one of a, b or c” with more or fewer elements included as "a", "b" and "c". The phrases are to be interpreted identically in both formulations. In particular, “at least one of a, b and c” is synonymous with “at least one of a, b or c” and means a, b and / or c. As an example it means: only "a", only "b", only "c", "a" and "b", "a" and "c", "b" and "c" and / or "a", "B" and "c".
Wie auch hierin verwendet werden kann, können die Begriffe „Verarbeitungsmodul“, „Verarbeitungsschaltung“, „Prozessor“, „Verarbeitungsschaltkreis“ und/oder „Verarbeitungseinheit“ eine einzelne Verarbeitungsvorrichtung oder mehrere Verarbeitungsvorrichtungen sein. Eine solche Verarbeitungsvorrichtung kann ein Mikroprozessor, eine Mikrosteuerung, ein digitaler Signalprozessor, ein Mikrocomputer, eine Zentralverarbeitungseinheit, ein vor Ort programmierbares Gate-Array, eine programmierbare Logikvorrichtung, eine Zustandsmaschine, eine Logikschaltung, eine analoge Schaltung, eine digitale Schaltung und/oder eine beliebige Vorrichtung sein, die Signale (analog und/oder digital) basierend auf einer harten Codierung der Schaltung und/oder Betriebsanweisungen manipuliert. Das Verarbeitungsmodul, das Modul, die Verarbeitungsschaltung, der Verarbeitungsschaltkreis und/oder die Verarbeitungseinheit können ein Speicher und/oder ein integriertes Speicherelement sein oder ferner einen Speicher und/oder ein integriertes Speicherelement umfassen, das eine einzelne Speichervorrichtung, mehrere Speichervorrichtungen und/oder eine eingebettete Schaltung eines anderen Verarbeitungsmoduls, Moduls, einer Verarbeitungsschaltung, eines Verarbeitungsschaltkreises und/oder einer Verarbeitungseinheit sein kann. Eine solche Speichervorrichtung kann ein Nur-Lese-Speicher, ein Direktzugriffsspeicher, ein flüchtiger Speicher, ein nichtflüchtiger Speicher, ein statischer Speicher, ein dynamischer Speicher, ein Flash-Speicher, ein Cache-Speicher und/oder eine beliebige Vorrichtung sein, die digitale Informationen speichert. Es ist zu beachten, dass, wenn das Verarbeitungsmodul, das Modul, die Verarbeitungsschaltung, der Verarbeitungsschaltkreis und/oder die Verarbeitungseinheit mehr als eine Verarbeitungsvorrichtung enthält, können die Verarbeitungsvorrichtungen zentral angeordnet sein (z.B. direkt über eine drahtgebundene und/oder drahtlose Busstruktur miteinander verbunden sein) oder verteilt angeordnet sein (z.B. Cloud Computing über indirekte Kopplung über ein lokales Netzwerk und/oder ein Weitverkehrsnetzwerk). Ferner ist zu beachten, dass, wenn das Verarbeitungsmodul, das Modul, die Verarbeitungsschaltung, der Verarbeitungsschaltkreis und/oder die Verarbeitungseinheit eine oder mehrere ihrer Funktionen über eine Zustandsmaschine, eine analoge Schaltung, eine digitale Schaltung und/oder eine Logikschaltung implementiert, können der Speicher und/oder das Speicherelement, in dem die entsprechenden Betriebsanweisungen gespeichert sind, in oder außerhalb der Schaltung eingebettet sein, die die Zustandsmaschine, die analoge Schaltung, die digitale Schaltung und/oder die Logikschaltung umfasst. Es ist noch weiter zu beachten, dass das Speicherelement speichern kann und das Verarbeitungsmodul, Modul, Verarbeitungsschaltkreis, Verarbeitungsschaltkreis und/oder Verarbeitungseinheit hartcodierte und/oder Betriebsanweisungen ausführt, die mindestens einigen der dargestellten Schritte und/oder Funktionen in einer oder mehreren der Figuren entsprechen. Eine solche Speichervorrichtung oder ein solches Speicherelement kann in einem Herstellungsgegenstand enthalten sein.As may also be used herein, the terms “processing module,” “processing circuit,” “processor,” “processing circuit,” and / or “processing unit” can be a single processing device or multiple processing devices. Such processing device may be a microprocessor, microcontroller, digital signal processor, microcomputer, central processing unit, field programmable gate array, programmable logic device, state machine, logic circuit, analog circuit, digital circuit, and / or any Be a device that manipulates signals (analog and / or digital) based on hard coding of the circuit and / or operating instructions. The processing module, the module, the processing circuit, the processing circuit and / or the processing unit can be a memory and / or an integrated memory element or furthermore comprise a memory and / or an integrated memory element, which is a single memory device, multiple memory devices and / or an embedded one Circuit of another processing module, module, a processing circuit, a processing circuit and / or a processing unit can be. Such a storage device may be read-only memory, random access memory, volatile memory, non-volatile memory, static memory, dynamic memory, flash memory, cache memory, and / or any device that stores digital information saves. It should be noted that if the processing module, the module, the processing circuit, the processing circuit and / or the processing unit contains more than one processing device, the processing devices can be arranged centrally (e.g. directly connected to one another via a wired and / or wireless bus structure ) or distributed (e.g. cloud Computing via indirect coupling via a local network and / or a wide area network). It should also be noted that if the processing module, the module, the processing circuit, the processing circuit and / or the processing unit implements one or more of their functions via a state machine, an analog circuit, a digital circuit and / or a logic circuit, the memory and / or the memory element in which the corresponding operating instructions are stored can be embedded in or outside the circuit which comprises the state machine, the analog circuit, the digital circuit and / or the logic circuit. It should also be noted that the memory element can store and the processing module, module, processing circuit, processing circuit and / or processing unit executes hard-coded and / or operating instructions which correspond to at least some of the illustrated steps and / or functions in one or more of the figures. Such a storage device or such a storage element can be contained in an article of manufacture.
Eine oder mehrere Ausführungsformen wurden oben mit Hilfe von Verfahrensschritten beschrieben, die die Leistung spezifizierter Funktionen und Beziehungen davon veranschaulichen. Die Grenzen und die Reihenfolge dieser funktionalen Bausteine und Verfahrensschritte wurden hier zur Vereinfachung der Beschreibung willkürlich definiert. Alternative Grenzen und Sequenzen können definiert werden, solange die angegebenen Funktionen und Beziehungen ordnungsgemäß ausgeführt werden. Solche alternativen Grenzen oder Sequenzen liegen somit im Umfang und Geist der Ansprüche. Ferner wurden die Grenzen dieser funktionalen Bausteine zur Vereinfachung der Beschreibung willkürlich definiert. Alternative Grenzen könnten definiert werden, solange die bestimmten signifikanten Funktionen angemessen ausgeführt werden. In ähnlicher Weise können Flussdiagrammblöcke hierin auch willkürlich definiert worden sein, um bestimmte signifikante Funktionen zu veranschaulichen.One or more embodiments have been described above in terms of method steps that illustrate the performance of specified functions and relationships thereof. The limits and the order of these functional building blocks and process steps have been arbitrarily defined here to simplify the description. Alternative boundaries and sequences can be defined as long as the specified functions and relationships are properly performed. Such alternative limits or sequences are thus within the scope and spirit of the claims. Furthermore, the limits of these functional building blocks have been arbitrarily defined to simplify the description. Alternative limits could be defined as long as the significant functions identified are adequately performed. Similarly, flowchart blocks may also have been defined arbitrarily herein to illustrate certain significant functions.
In dem verwendeten Umfang könnten die Blockgrenzen und die Sequenz des Flussdiagramms anders definiert worden sein und dennoch die bestimmte signifikante Funktionalität ausführen. Solche alternativen Definitionen sowohl von Funktionsbausteinen als auch von Flussdiagrammblöcken und -sequenzen liegen somit im Umfang und Geist der Ansprüche. Ein Durchschnittsfachmann wird auch erkennen, dass die funktionellen Bausteine und andere veranschaulichende Blöcke, Module und Komponenten hierin wie dargestellt oder durch diskrete Komponenten, anwendungsspezifische integrierte Schaltungen, Prozessoren, die geeignete Software und dergleichen oder eine beliebige Kombination davon ausführen, implementiert werden können.To the extent used, the block boundaries and the sequence of the flowchart could have been defined differently and still perform the particular significant functionality. Such alternative definitions both of function blocks and of flowchart blocks and sequences are thus within the scope and spirit of the claims. One of ordinary skill in the art will also recognize that the functional building blocks and other illustrative blocks, modules, and components herein can be implemented as shown or by discrete components, application specific integrated circuits, processors running appropriate software, and the like, or any combination thereof.
Zusätzlich kann ein Flussdiagramm eine Anzeige „Start“ und/oder „Weiter“ enthalten. Die Anzeigen „Start“ und „Weiter“ geben an, dass die dargestellten Schritte optional in eine oder mehrere andere Routinen integriert oder anderweitig in Verbindung mit diesen verwendet werden können. Zusätzlich kann ein Flussdiagramm eine Anzeige „Ende“ und/oder „Weiter“ enthalten. Die Anzeigen „Ende“ und/oder „Weiter“ spiegeln wider, dass die dargestellten Schritte wie beschrieben und gezeigt enden oder optional in eine oder mehrere andere Routinen integriert oder anderweitig in Verbindung damit verwendet werden können. In diesem Zusammenhang gibt „Start“ den Beginn des ersten vorgestellten Schritts an und kann von anderen Aktivitäten vorangestellt werden, die nicht speziell gezeigt werden. Ferner spiegelt die Anzeige „Weiter“ wider, dass die dargestellten Schritte mehrmals ausgeführt werden können und/oder von anderen Aktivitäten gefolgt werden können, die nicht speziell gezeigt sind. Während ein Flussdiagramm eine bestimmte Reihenfolge von Schritten anzeigt, sind andere Ordnungen ebenfalls möglich, vorausgesetzt, die Prinzipien der Kausalität werden beibehalten.In addition, a flowchart can contain a “Start” and / or “Continue” indication. The “Start” and “Next” indicators indicate that the steps shown can optionally be incorporated into, or otherwise used in conjunction with, one or more other routines. In addition, a flowchart may contain an “End” and / or “Continue” indicator. The indications “End” and / or “Next” reflect that the steps presented end as described and shown or, optionally, can be integrated into one or more other routines or otherwise used in connection therewith. In this context, “Start” indicates the beginning of the first step presented and can be preceded by other activities that are not specifically shown. Furthermore, the indication “Next” reflects that the steps shown can be carried out multiple times and / or can be followed by other activities that are not specifically shown. While a flowchart shows a particular order of steps, other orders are possible provided the principles of causality are maintained.
Die eine oder mehreren Ausführungsformen werden hier verwendet, um einen oder mehrere Aspekte, ein oder mehrere Merkmale, ein oder mehrere Konzepte und/oder ein oder mehrere Beispiele zu veranschaulichen. Eine physikalische Ausführungsform einer Vorrichtung, eines Herstellungsartikels, einer Maschine und/oder eines Verfahrens kann einen oder mehrere der Aspekte, Merkmale, Konzepte, Beispiele usw. umfassen, die unter Bezugnahme auf eine oder mehrere der hier diskutierten Ausführungsformen beschrieben wurden. Ferner können die Ausführungsformen von Figur zu Figur die gleichen oder ähnlich benannten Funktionen, Schritte, Module usw. enthalten, die die gleichen oder unterschiedliche Referenznummern verwenden können, und als solche können die Funktionen, Schritte, Module usw. die gleichen oder ähnliche Funktionen, Schritte, Module usw. oder verschiedene sein.The one or more embodiments are used herein to illustrate one or more aspects, one or more features, one or more concepts, and / or one or more examples. A physical embodiment of an apparatus, article of manufacture, machine, and / or method may include one or more of the aspects, features, concepts, examples, etc. described with reference to one or more of the embodiments discussed herein. Further, from figure to figure, the embodiments may include the same or similarly named functions, steps, modules, etc., which may use the same or different reference numbers, and as such, the functions, steps, modules, etc. may have the same or similar functions, steps , Modules etc. or different.
Sofern nicht ausdrücklich anders angegeben, können Signale an, von und/oder zwischen Elementen in einer Figur einer der hier dargestellten Figuren analog oder digital, kontinuierliche Zeit oder diskrete Zeit und Single-Ended oder Differential sein. Wenn beispielsweise ein Signalpfad als Single-Ended-Pfad angezeigt wird, repräsentiert er auch einen Differenzsignalpfad. In ähnlicher Weise repräsentiert ein Signalpfad, wenn er als Differenzpfad angezeigt wird, auch einen Single-Ended-Signalpfad. Während eine oder mehrere bestimmte Architekturen hierin beschrieben sind, können ebenfalls andere Architekturen implementiert werden, die einen oder mehrere nicht ausdrücklich gezeigte Datenbusse, eine direkte Konnektivität zwischen Elementen und/oder eine indirekte Kopplung zwischen anderen Elementen verwenden, wie dies von einem Durchschnittsfachmann erkannt wird.Unless expressly stated otherwise, signals to, from and / or between elements in a figure can be analog or digital, continuous time or discrete time, and single-ended or differential. For example, when a signal path is displayed as a single-ended path, it also represents a differential signal path. Similarly, when a signal path is displayed as a differential path, it also represents a single-ended signal path. While one or more particular architectures are described herein, other architectures may also be implemented using one or more data buses not expressly shown, direct connectivity between elements, and / or indirect coupling between other elements, as would be recognized by one of ordinary skill in the art.
Der Begriff „Modul“ wird in der Beschreibung einer oder mehrerer der Ausführungsformen verwendet. Ein Modul implementiert eine oder mehrere Funktionen über ein Gerät wie einen Prozessor oder ein anderes Verarbeitungsgerät oder eine andere Hardware, die einen Speicher enthalten oder in Verbindung mit diesem arbeiten kann, in dem Betriebsanweisungen gespeichert sind. Ein Modul kann unabhängig und/oder in Verbindung mit Software und/oder Firmware arbeiten. Wie auch hierin verwendet, kann ein Modul ein oder mehrere Untermodule enthalten, von denen jedes ein oder mehrere Module sein kann.The term “module” is used in the description of one or more of the embodiments. A module implements one or more functions through a device such as a processor or other processing device or other hardware that may contain or operate in conjunction with memory in which operating instructions are stored. A module can operate independently and / or in conjunction with software and / or firmware. As also used herein, a module can include one or more sub-modules, each of which can be one or more modules.
Wie hierin weiter verwendet werden kann, enthält ein computerlesbarer Speicher ein oder mehrere Speicherelemente. Ein Speicherelement kann eine separate Speichervorrichtung, mehrere Speichervorrichtungen oder ein Satz von Speicherstellen innerhalb einer Speichervorrichtung sein. Eine solche Speichervorrichtung kann ein Nur-Lese-Speicher, ein Direktzugriffsspeicher, ein flüchtiger Speicher, ein nichtflüchtiger Speicher, ein statischer Speicher, ein dynamischer Speicher, ein Flash-Speicher, ein Cache-Speicher und/oder eine beliebige Vorrichtung sein, die digitale Informationen speichert. Die Speichervorrichtung kann in Form eines Festkörperspeichers, eines Festplattenspeichers, eines Cloud-Speichers, eines USB-Sticks, eines Serverspeichers, eines Computerspeichers und/oder eines anderen physischen Mediums zum Speichern digitaler Informationen vorliegen.As can be further used herein, computer readable memory includes one or more storage elements. A storage element can be a separate storage device, multiple storage devices, or a set of storage locations within a storage device. Such a storage device may be read-only memory, random access memory, volatile memory, non-volatile memory, static memory, dynamic memory, flash memory, cache memory, and / or any device that stores digital information saves. The storage device can be in the form of solid-state storage, hard disk storage, cloud storage, USB stick, server storage, computer storage, and / or other physical medium for storing digital information.
Während bestimmte Kombinationen verschiedener Funktionen und Merkmale der einen oder mehreren Ausführungsformen hierin ausdrücklich beschrieben wurden, sind andere Kombinationen dieser Merkmale und Funktionen ebenfalls möglich. Die vorliegende Offenbarung ist nicht auf die hier offenbarten besonderen Beispiele beschränkt und beinhaltet ausdrücklich diese anderen Kombinationen.While certain combinations of various functions and features of the one or more embodiments have been specifically described herein, other combinations of these features and functions are also possible. The present disclosure is not limited to the particular examples disclosed herein and expressly includes these other combinations.