Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
APPARATUS FOR ANALYSIS OF IRREGULAR SURFACE USING ELECTROMAGNETIC ENERGY
Document Type and Number:
WIPO Patent Application WO/2017/117320
Kind Code:
A1
Abstract:
Techniques described herein generally relate to a surface analysis device. Using electromagnetic energy, the surface analysis device may optically determine a three-dimensional (3D) map of a sample surface with a computation imaging system, and, based on the 3D map, calculate a correction factor corresponding to each of multiple light sources, where each light source is associated with one or more specific wavelength bands. The apparatus may then illuminate the sample surface with each of the multiple light sources, modify the measured reflectivity of the sample surface when illuminated with each light source using the corresponding correction factor, and construct a spectral response profile of the sample surface.

Inventors:
ROTHFUSS CHRISTOPHER (US)
Application Number:
PCT/US2016/069065
Publication Date:
July 06, 2017
Filing Date:
December 29, 2016
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
EMPIRE TECHNOLOGY DEV LLC (US)
International Classes:
G01N21/25; A61B5/00; G01J3/00; G01N21/00; G01N21/17
Domestic Patent References:
WO1991011136A11991-08-08
Foreign References:
US20110304705A12011-12-15
US20080212838A12008-09-04
US20150201188A12015-07-16
US8379191B22013-02-19
Attorney, Agent or Firm:
SU, Gene (TW)
Download PDF:
Claims:
I Claim:

1 . A method to analyze a surface using electromagnetic energy, the method comprising:

calculating a three-dimensional map of the surface with a computational imaging system;

sequentially illuminating the surface with a first electromagnetic emitter configured to emit light of a first wavelength band and a second electromagnetic emitter configured to emit light of a second wavelength band;

receiving a first spectral response of the surface from a sensor in response to the first electromagnetic emitter illuminating the surface and a second spectral response of the surface from the sensor in response to the second electromagnetic emitter illuminating the surface;

calculating a first correction factor for the first electromagnetic emitter based on the three-dimensional map of the surface;

calculating a second correction factor for the second electromagnetic emitter based on the three-dimensional map of the surface;

generating a first corrected spectral response based at least in part on the first

correction factor;

generating a second corrected spectral response based at least in part on the

second correction factor;

based at least in part on the first corrected spectral response and the second

corrected spectral response, constructing a spectral response profile of the surface that includes a first reflectivity of the surface in the first wavelength band and a second reflectivity of the surface in the second wavelength band; comparing the spectral response profile of the surface to a reference spectral

response profile that is associated with a particular material, and based at least in part on the comparison of the spectral response profiles,

determining that the surface corresponds to the material.

2. The method of claim 1 , wherein calculating the first correction factor for the first electromagnetic emitter comprises calculating the first correction factor prior to receiving the first spectral response of the surface from the sensor.

3. The method of claim 1 , further comprising, calculating the first correction factor based on the location of the first electromagnetic emitter relative to the surface and calculating the second correction factor based on the position of the second electromagnetic emitter relative to the surface.

4. The method of claim 1 , wherein calculating a three-dimensional map of the surface with a computational imaging system comprises:

illuminating the surface with multiple known random speckle patterns,

for each of the multiple known random speckle patterns, measuring an intensity of reflected light using multiple single-pixel photodetectors of the computational imaging system,

for each of the multiple single-pixel photodetectors, constructing a two-dimensional image of the surface using the measured intensity of reflected light associated with each of the multiple known random speckle patterns, and performing a three-dimensional reconstruction of the surface based on the two- dimensional images of the surface.

5. The method of claim 4, wherein illuminating the surface with multiple known random speckle patterns comprises generating the known random speckle patterns with a digital light projector of the computational imaging system.

6. The method of claim 5, wherein generating the known random speckle patterns comprises illuminating the surface with the first electromagnetic emitter.

7. The method of claim 6, wherein generating the known random speckle patterns comprises directing an output from the first electromagnetic emitter to a digital micromirror device of the digital light projector.

8. The method of claim 4, wherein the known random speckle patterns comprise binary light patterns.

9. The method of claim 1 , wherein comparing the spectral response profile of the surface to the reference spectral response profile comprises comparing the spectral response profile of the surface to a plurality of archived spectral response profiles that are each associated with a respective particular material.

10. The method of claim 1 , wherein calculating the first correction factor for the first electromagnetic emitter comprises calculating the first correction factor prior to illuminating the surface with the first electromagnetic emitter.

1 1 . The method of claim 10, wherein illuminating the surface with the first

electromagnetic emitter comprises selecting an output of the first electromagnetic emitter based on the first correction factor to change a quantity of light received by the sensor in response to the first electromagnetic emitter illuminating the surface.

12. The method of claim 10, wherein calculating the second correction factor for the second electromagnetic emitter comprises calculating the second correction factor prior to illuminating the surface with the second electromagnetic emitter and illuminating the surface with the second electromagnetic emitter comprises selecting an output of the second electromagnetic emitter based on the second correction factor.

13. The method of claim 10, wherein illuminating the surface with the first

electromagnetic emitter comprises repositioning the first electromagnetic emitter based on the first correction factor to change a quantity of light received by the sensor in response to the first electromagnetic emitter illuminating the surface.

14. The method of claim 1 , wherein generating the first corrected spectral response based at least in part on the first correction factor comprises modifying a value associated with the first spectral response using the first correction factor and generating the second corrected spectral response based at least in part on the second correction factor comprises modifying a value associated with the second spectral response using the second correction factor.

15. An apparatus to analyze a surface with electromagnetic energy, the apparatus comprising:

a computational imaging system that includes a digital light projector and multiple spatially separated single-pixel photodetectors; a first electromagnetic emitter configured to emit light of a first wavelength band and illuminate a surface with the light of the first wavelength band; a second electromagnetic emitter configured to emit light of a second wavelength band and illuminate the surface with the light of the second wavelength band; a sensor configured to receive an electromagnetic response from at least a portion of the surface; and

a microprocessor that is communicably coupled to the computational imaging

system, the first electromagnetic emitter, the second electromagnetic emitter, and the sensor and is configured to

16. The apparatus of claim 15, wherein the digital light projector comprises a digital micromirror device configured to generate known random speckle patterns on the surface.

17. The apparatus of claim 16, wherein the first electromagnetic emitter is configured as a light source for the digital light projector.

18. The apparatus of claim 15, wherein the microprocessor is further configured to select an output of the first electromagnetic emitter based on the first correction factor to change a quantity of light received by the sensor in response to the first electromagnetic emitter illuminating the surface.

19. The apparatus of claim 15, wherein the microprocessor is further configured to reposition the first electromagnetic emitter based on the first correction factor to change a quantity of light received by the sensor in response to the first electromagnetic emitter illuminating the surface.

20. The apparatus of claim 15, wherein the microprocessor is configured to:

generate the first corrected spectral response by modifying a value associated with the first spectral response based at least in part on the first correction factor, and

generate the second corrected spectral response by modifying a value associated with the second spectral response based at least in part on the second correction factor.

Description:
APPARATUS FOR ANALYSIS OF IRREGULAR SURFACE USING

ELECTROMAGNETIC ENERGY

CROSS-REFERENCE TO RELATED APPLICATION

[0001] The present application claims the benefit of the United States Provisional

Application No. 62/272,703, filed December 30, 2015 and entitled "APPARATUS FOR ANALYSIS OF IRREGULAR SURFACE USING ELECTROMAGNETIC ENERGY." The U.S. Provisional Application, including any appendices or attachments thereof, is incorporated by reference herein in its entirety.

BACKGROUND

[0002] Unless otherwise indicated herein, the approaches described in this section are not prior art to the claims in this application and are not admitted to be prior art by inclusion in this section.

[0003] Generally, spectrophotometers measure the amount of light of a specified

wavelength or wavelengths that is reflected from a sample object. Current hand-held spectrophotometers have been developed that can provide accurate and repeatable color measurements of a variety of sample surfaces, including paint, raw materials, packaging, coatings, plastics, and the like. These hand-held devices are suitable for many applications, and consequently have a variety of industrial, research, and consumer uses.

SUMMARY

[0004] In accordance with at least some embodiments of the present disclosure, an apparatus to analyze a surface using electromagnetic energy comprises calculating a three- dimensional map of the surface with a computational imaging system, sequentially illuminating the surface with a first electromagnetic emitter configured to emit light of a first wavelength band and a second electromagnetic emitter configured to emit light of a second wavelength band, receiving a first spectral response of the surface from a sensor in response to the first electromagnetic emitter illuminating the surface and a second spectral response of the surface from the sensor in response to the second electromagnetic emitter illuminating the surface, calculating a first correction factor for the first electromagnetic emitter based on the three-dimensional map of the surface, and calculating a second correction factor for the second electromagnetic emitter based on the three-dimensional map of the surface. The method further includes generating a first corrected spectral response based at least in part on the first correction factor, generating a second corrected spectral response based at least in part on the second correction factor, based at least in part on the first corrected spectral response and the second corrected spectral response, constructing a spectral response profile of the surface that includes a first reflectivity of the surface in the first wavelength band and a second reflectivity of the surface in the second wavelength band, comparing the spectral response profile of the surface to a reference spectral response profile that is associated with a particular material, and based at least in part on the comparison of the spectral response profiles, determining that the surface corresponds to the material.

[0005] In accordance with at least some embodiments of the present disclosure, an apparatus to analyze skin using electromagnetic energy comprises a computational imaging system that includes a digital light projector and multiple spatially separated single-pixel photodetectors, a first electromagnetic emitter configured to emit light of a first wavelength band and illuminate a surface with the light of the first wavelength band, a second electromagnetic emitter configured to emit light of a second wavelength band and illuminate the surface with the light of the second wavelength band, a sensor configured to receive an electromagnetic response from at least a portion of the surface, and a microprocessor that is communicably coupled to the computational imaging system, the first electromagnetic emitter, the second electromagnetic emitter, and the sensor. The microprocessor is configured to calculate a three-dimensional map of the surface with the computational imaging system, calculate a first correction factor for the first electromagnetic emitter and a second correction factor for the second electromagnetic emitter based on the three- dimensional map of the surface, generate a first corrected spectral response based at least in part on the first correction factor, generate a second corrected spectral response based at least in part on the second correction factor, cause the first electromagnetic emitter and the second electromagnetic emitter to sequentially illuminate the surface, receive a first spectral response of the surface from the sensor in response to the first electromagnetic emitter illuminating the surface and a second spectral response of the surface from the sensor in response to the second electromagnetic emitter illuminating the surface, based at least in part on the first corrected spectral response and the second corrected spectral response, construct a spectral response profile of the surface that includes a first reflectivity of the surface in the first wavelength band and a second reflectivity of the surface in the second wavelength band, compare the spectral response profile of the surface to a reference spectral response profile that is associated with a particular material, and based at least in part on the comparison of the spectral response profiles, determine that the surface comprises the material.

[0006] The foregoing summary is illustrative only and is not intended to be in any way limiting. In addition to the illustrative aspects, embodiments, and features described above, further aspects, embodiments, and features will become apparent by reference to the drawings and the following detailed description.

BRIEF DESCRIPTION OF THE DRAWINGS

[0007] The foregoing and other features of the present disclosure will become more fully apparent from the following description and appended claims, taken in conjunction with the accompanying drawings. These drawings depict only several embodiments in accordance with the disclosure and are, therefore, not to be considered limiting of its scope. The disclosure will be described with additional specificity and detail through use of the accompanying drawings.

FIG. 1 is an isometric cut-away diagram of a surface analysis device illuminating a sample surface;

FIG. 2 is a schematic diagram of a computational imaging system included in the surface analysis device of FIG. 1 , according to one or more embodiments of the present disclosure;

FIG. 3 is an example spectral response profile for a sample surface, in accordance with at least some embodiments of the present disclosure;

FIG. 4A is a schematic illustration of the surface analysis device of FIG. 1 illuminating a portion of a planar sample surface, according to one or more embodiments of the present disclosure; FIG. 4B is a schematic illustration of the surface analysis device of FIG. 1

illuminating a portion of a non-planar sample surface, according to one or more

embodiments of the present disclosure.

FIG. 6 is a block diagram of a computer program product to implement a method to analyze skin with electromagnetic energy; and

FIG. 7 is a block diagram illustrating an example computing device, all arranged in accordance with at least some embodiments of the present disclosure.

DETAILED DESCRIPTION

[0008] In the following detailed description, reference is made to the accompanying drawings, which form a part hereof. In the drawings, similar symbols typically identify similar components, unless context dictates otherwise. The illustrative embodiments described in the detailed description, drawings, and claims are not meant to be limiting. Other embodiments may be utilized, and other changes may be made, without departing from the spirit or scope of the subject matter presented here. The aspects of the disclosure, as generally described herein, and illustrated in the Figures, can be arranged, substituted, combined, and designed in a wide variety of different configurations, all of which are explicitly contemplated and make part of this disclosure.

[0009] While many hand-held spectrophotometers have been developed, accurate measurement of a sample surface is generally only possible with such devices when the sample surface is uniformly flat or planar. This is because a sample surface that is curved or has an otherwise irregular surface geometry drastically reduces measurement accuracy and repeatability. For example, light reflected from a planar test surface is repeatable and predictable, whereas light reflected from an irregular or curved surface scatters

unpredictably, causing variations in the measured reflectivity of a surface that are independent of the spectral response of the material being tested. Thus, objects or samples that are curved and/or have an irregular surface geometry are generally unsuitable for analysis via such devices.

[00010] In accordance with at least some embodiments of the present disclosure, apparatus and methods to accurately analyze a non-planar sample surface with electromagnetic energy are described. An apparatus may optically determine a three-dimensional (3D) map of a sample surface with a computation imaging system, and, based on the 3D map, calculate a correction factor corresponding to each of multiple light sources, where each light source is associated with one or more specific wavelength bands. The apparatus may then illuminate the sample surface with each of the multiple light sources, modify the measured reflectivity of the sample surface when illuminated with each light source using the corresponding correction factor, and construct a spectral response profile of the sample surface. Further analysis of the sample surface may be performed by comparing the spectral response profile to one or more reference spectral response profiles to determine one or more attributes of the sample surface. One such apparatus is illustrated in FIG. 1 .

[0010] FIG. 1 is an isometric cut-away diagram of a surface analysis device 100 illuminating a sample surface 190, in accordance with at least some embodiments of the present disclosure. Sample surface 190 may be a surface portion of a sample object, coating, or material that may be analyzed by surface analysis device 100. Surface analysis device 100 may include a housing 140 with an opening or window 142 proximate one end thereof, one or more sources 144, a sensor array 145, multiple single-pixel photodetectors 146, a light pattern emitter 149, and a control subsystem 150, all contained within housing 140. It is noted that while a plurality of sources 144 are illustrated in FIG. 1 , some embodiments of surface analysis device may employ a single source 144. Similarly, while four single-pixel detectors 145 are illustrated in FIG. 1 , any technically feasible number of single-pixel photodetectors 146 greater than one may be employed in some embodiments, e.g., 2, 3, 5, 6, etc.

[0011] Sources 144 may be each be operable to emit electromagnetic energy 148, and may take a variety of forms. For example, sources 144 may include one or more light emitting diodes (LEDs). Alternatively or additionally, sources 144 may include one or more lasers, for example one or more laser diodes. The lasers may be tunable lasers. Alternatively or additionally, sources 144 may include one or more incandescent sources, such as conventional or halogen light bulbs, or organic LEDs (OLEDs), the latter of which may advantageously be formed on a flexible substrate. One, some, or all of sources 144 may be operable to emit in part or all of an "optical" portion of the electromagnetic spectrum, including the (human) visible portion, the near infrared portion, and/or or the near ultraviolet portion of the electromagnetic spectrum. Additionally or alternatively, sources 144 may be operable to emit electromagnetic energy in other portions of the electromagnetic spectrum, for example the infrared, ultraviolet and/or microwave portions thereof.

[0012] In some embodiments, at least some of sources 144 may be operable to emit in or at a different wavelength band than other of sources 144. For example, one or more sources 144 may emit in a wavelength band centered around 450 nm, one or more of sources 144 may emit in a wavelength band centered around 500 nm, and a further source 144 or sources 144 may emit in a band centered around 550 nm. In some embodiments, each source 144 emits in a band centered around a respective frequency or wavelength that is different than the frequency or wavelength associated with each of the other sources 144. Using sources 144 with different band centers advantageously maximizes the number of distinct samples that may be captured from a fixed number of sources 144. This may be particularly advantageous when surface analysis device 100 is relatively small, and has limited space or footprint for sources 144.

[0013] In some embodiments, the distribution of spectral output for each source 144 may vary as a function of drive level (e.g., current, voltage, duty cycle), temperature, and/or other factors, depending on the specific source 144. Such variation may be actively employed to advantageously operate one or more of sources 144 as a plurality of "logical sources," where each of the logical sources is operable to provide a different respective emission spectra from a particular source 144. Thus, in such embodiments, the center of the band of emission for each source 144 may vary according to a drive level and/or temperature. For example, the center of the band of emission for LEDs is varied with drive current and/or temperature. One way the spectral content can vary is that the peak wavelength can shift. However, the width of the band, the skew of the distribution, the kurtosis, etc., may also vary. Such variations may be also be advantageously employed to operate sources 144 as a plurality of logical sources. Thus, even if the peak wavelength were to remain constant of a particular source 144, the changes in bandwidth, skew, kurtosis, and any other change in the spectrum may provide useful variations in the output of the source 144 and therefore the operation of surface analysis device 100. Similarly, the center of the band of emission for sources 144 may be varied when configured as tunable lasers. Varying the center of emission bands for one or more sources 144 advantageously increases the number of different samples that may be captured from a fixed number of sources 144.

[0014] Sensor array 145 may include multiple or a single sensing device configured and positioned to receive electromagnetic energy 147 returned from sample surface 190. In some embodiments, sensor array 145 may include one or multiple broadband sensors sensitive or responsive over a broad band of wavelengths of electromagnetic energy.

Alternatively or additionally, sensor array 145 may include one or multiple narrowband sensors sensitive or responsive over a narrow band of wavelengths of electromagnetic energy. Thus, in some embodiments, sensor array 145 may be implemented as several sensor elements, one sensor element being sensitive or responsive to one narrow band of wavelengths, and each of the other sensor elements of sensor array 145 being sensitive or responsive to a different respective narrow band of wavelengths. This approach may advantageously increase the number of samples that may be acquired using a fixed number of sources. In such embodiments the narrow bands may or may not overlap. For example, in some embodiments, sensor array 145 may include four photosensors: two for measuring light in the visible spectrum, one for infrared, and one for ultraviolet.

[0015] Sensor array 145 may take a variety of forms suitable for sensing or responding to electromagnetic energy. For example, sensor array 145 may include one or more photodiodes (e.g., germanium photodiodes, silicon photodiodes), photomultiplier tubes, CMOS image sensors, charge coupled devices (CCDs), and/or micro-channel plates.

Furthermore, any other forms of electromagnetic sensors may be employed suitable to detect the wavelengths expected to be returned in response to the particular illumination and properties of sample surface 190 when illuminated by sources 144. In some

embodiments, the multiple single-pixel photodetectors 146 may be employed as sensor array 145.

[0016] The multiple single-pixel photodetectors 146 are each part of a computational imaging system 200 (described below in conjunction with FIG. 2) that is configured to enable 3D mapping of sample surface 190. As such, each single-pixel photodetector 146 is arranged on window 142, spatially separated from each of the other single-pixel

photodetectors 146, and includes a non-spatially resolving light detector, also referred to as a "bucket detector." Each single-pixel photodetector 146 is oriented toward sample surface 190 to detect a total quantity of light that is reflected from sample surface 190 and incident on the single-pixel photodetector 146. Each single-pixel photodetector 146 is further configured to generate a signal proportional to the intensity of the detected light, and output the signal from each single-pixel photodetector 146 to a processor associated with the computational imaging system 200. Unlike the sensors employed in digital cameras, such as CCD and CMOS detectors, each single-pixel photodetector 146 may include a photodetector sensitive to wavebands far beyond the visible spectrum.

[0017] Light pattern emitter 149 is configured to illuminate sample surface 190 with a plurality of known, random patterns. For each pattern that illuminates sample surface 190, each single-pixel photodetector 146 generates an output signal proportional to light received by that particular single-pixel photodetector 146. Given a sufficiently large number of random patterns and corresponding outputs generated by single-pixel photodetectors 146, computational imaging system 200 can generate a 3D surface reconstruction of sample surface 190 using the well-known technique of "ghost imaging". One embodiment of computational imaging system 200, sometimes referred to as a computational ghost imaging system, is illustrated in FIG. 2.

[0018] FIG. 2 is a schematic diagram of computational imaging system 200, according to one or more embodiments of the present disclosure. Computational imaging system 200 may include multiple single-pixel photodetectors 146, light pattern emitter 149, and a controller 201 . Light pattern emitter 149 may include a light source 202, such as a laser, LED, halogen bulb, or other light source suitable for use in computational imaging system 200; in some embodiments, the light source for light pattern emitter 149 may be one of sources 144. Light pattern emitter 149 may also include a pattern generator 203, such as a digital micromirror device, or DMD, which is an optical semiconductor chip that may include thousands of individually controllable microscopic mirrors. Typically, the mirrors of a DMD can be individually rotated to an on or off state by controller 201 , thereby enabling projection onto sample surface 190 of any of a plurality of random, known binary speckle patterns.

[0019] As shown, light source 202, pattern generator 203, and in some embodiments a lens 204 are arranged to illuminate sample surface 190 with a sequence of binary patterns, for example randomly distributed binary patterns having a black-to-white ratio of 1 :1 . For every known binary pattern 21 1 projected onto sample surface 190, the corresponding object intensity, i.e., intensity of light 212 reflected from sample surface 190, is measured by each single-pixel photodetector 146, and the data are fed to a computer algorithm performed by controller 201 . Based on an output signal 209 from a particular single-pixel photodetector 146 for each of the plurality of random patterns, controller 201 constructs, using an iterative algorithm, a 2D image of sample surface 190 from the point of view of that particular single- pixel photodetector 146. In the same way, a 2D image of sample surface 190 from the point of view of each other single-pixel photodetector 146 is also constructed by controller 201 . A 3D surface is then constructed from the 2D images of sample surface 190 that correspond to each of single-pixel photodetectors 146.

[0020] To construct a 2D image of sample surface 190 from the point of view of a particular single-pixel photodetector 146, controller 201 uses any suitable algorithm. Specifically, algorithms for inverting the known binary patterns 21 1 and the measured intensity of light 212 corresponding to each known binary pattern 21 1 is a computational problem for which a number of algorithms are known in the art. Generally, in such iterative techniques, a 2D representation of an object or surface (e.g., sample surface 190) is reconstructed by averaging the product of the measured photodetector signal (e.g., output signal 209) and the associated incident pattern over a large number of patterns. For example, in one embodiment, a sequence of M binary patterns, P,{x, y), is projected onto sample surface 190, giving a sequence of measured signals 5,. The 2D reconstruction I(x, y), which provides an estimate of sample surface 190, can be stated as: I(x, y) = [(Si- [SJ)] [(Ρ,{χ, y) - [P,{x, y)])], where brackets denote an ensemble average for M iterations. Using such an algorithm, controller 201 may construct a 2D image of sample surface 190 for each of the multiple single-pixel photodetectors 146.

[0021] To construct a 3D surface from the above-described 2D images of sample surface 190, any algorithms known in the art may be employed to infer the depth information associated with a 3D surface that is not explicitly included in 2D images of the 3D surface. For example, in some embodiments, controller 201 may employ a shape-from-shading (SFS) algorithm to generate the 3D surface. Various SFS algorithms are known in the art, and rely on the shading caused by geometrical features to provide sufficient depth information associated with sample surface 190 to construct a 3D surface thereof. One such SFS algorithm is described in "3D Computational Imaging with Single-Pixel Detectors," B. Sun, et al, Science, Vol. 340, 71 May 2013.

[0022] In operation, controller 201 of computational imaging system 200 may cause a plurality of known binary patterns 21 1 to be projected onto sample surface 190 by controlling pattern generator 203 and light source 202 of light pattern emitter 149. Controller 201 then receives, for each known binary pattern 21 1 , an output signal 209 from each single-pixel photodetector 146 that is proportional to the intensity of light 212 detected by that single-pixel photodetector 146. For each single-pixel photodetector 146, based on the known binary patterns and the associated output signals 209 from that single-pixel photodetector 146, controller 201 constructs, using an iterative algorithm, a 2D image of surface 190. Then, using an SFS or other suitable algorithm, controller 201 generates a 3D reconstruction of sample surface 190. In some embodiments, controller 201 may be a separate computing device associated with computational imaging system 200. In other embodiments, the functionality of controller 201 may be incorporated into control subsystem 150 of surface analysis device 100, which is described below.

[0023] Returning to FIG. 1 , control subsystem 150 may include a microprocessor 151 and computer-readable media, for example one or more memories such as a nonvolatile memory (NVM) 152, e.g., flash memory or read only memory (ROM), and a random access memory (RAM) 153. One or more buses 154 in control subsystem 150 may couple nonvolatile memory 152 and RAM 153 to microprocessor 151 . Buses 154 may take a variety of forms including an instruction bus, data bus, other communications bus and/or power bus. Nonvolatile memory 152 may store instructions and/or data (e.g., libraries 180) for controlling surface analysis device 100. Volatile RAM 153 may store instructions and/or data for use during operation of surface analysis device 100.

[0024] Control subsystem 150 may optionally include a buffer 155 to buffer information received from sensor array 145. Control subsystem 150 may further include a digital signal processor (DSP) 156 coupled to buses 154 and configured to process information received from sensor array 145 via buffer 155. Control subsystem 150 may further include an analog-to-digital converter (ADC) 157 and/or a digital-to-analog converter (DAC) 158. ADC 157 may, for example, be used for converting analog photodiode responses into digital data for further analysis and/or transmission. DAC 158 may, for example, be used for converting digital computer commands into analog LED current levels. Control subsystem 150 may additionally or alternatively include an analog signal processor, which may be particularly useful where sensor array 145 includes one or more photodiodes.

[0025] In addition, control subsystem 150 may include a user interface including one or more user interface devices. For example, control subsystem 150 may include one or more speakers or microphones 161 and/or visual indicators 162, such as one or more LEDs, liquid crystal displays (LCD), or other visual indicators. The LCDs may, for example, include a touch-sensitive LCD configured to display a graphical user interface that is operable by a user of surface analysis device 100. Additionally or alternatively, control subsystem 150 may include one or more user-operable input elements 163, such as switches or keys turning the test device ON and OFF and/or for controlling the operation of surface analysis device 100, for example, downloading or uploading data or instructions to or from surface analysis device 100. Control subsystem 150 may further include one more communication ports 164, for example, a USB port, an infrared transceiver, or an RF transceiver, that allow the transmission of data, instructions, and/or results, to or from surface analysis device 100. In some embodiments, control subsystem 150 may also include a motor 165 or other actuator configured to rotate window 142 to different orientations with respect to sample surface 190.

[0026] Microprocessor 151 may be configured to employ instructions and/or data from nonvolatile memory 152 and RAM 253 in controlling operation of surface analysis device 100. For example, microprocessor 151 may operate sources 144 in one or more illumination sequences. The illumination sequences determine an order in which sources 144 are turned on and off, and indicate an ordered pattern of drive levels (e.g., current levels, voltage levels, duty cycles) for sources 144. Thus, for example, microprocessor 151 may cause the application of different drive levels to different respective sources 144 to cause each of the respective sources 144 to emit electromagnetic energy in multiple distinct bands of the electromagnetic spectrum. DSP 156 and/or microprocessor 151 may then process information generated by sensor array 145, the information being indicative of the response of sample surface 190 to illumination by each of sources 144 or a combination of sources 144. It is noted that surface analysis device 100 may be fabricated using bulk commodity components and, because sophisticated optics are not used, is relatively simple to manufacture. Consequently, surface analysis device 100 may be an inexpensive alternative to current spectrographic technology.

[0027] In operation, microprocessor 151 causes a particular illumination sequence to be implemented by sources 144 to illuminate sample surface 190, and may receive information generated by sensor array 145 during the illumination sequence. At any given point during the illumination sequence, the information generated by sensor array 145 may be indicative of the response of sample surface 190 to illumination by one specific source 144 or one specific combination of sources 144. Typically, the different wavelength bands associated with each source 144 or combination of sources 144 form a substantially continuous wavelength band. Thus, over the course of a complete illumination sequence, the information generated by sensor array 145 may be indicative of the response by sample surface 190 to sequential illumination by each of sources 144, which corresponds to a substantially continuous wavelength band, for example from the infra-red to the ultra-violet. Microprocessor 151 can then use such information generated by sensor array 145 over the course of the illumination sequence to construct a spectral response profile for sample surface 190. An example spectral response profile is illustrated in FIG. 3.

[0028] FIG. 3 is an example spectral response profile 300 for sample surface 190, in accordance with at least some embodiments of the present disclosure. Spectral response profile 300 indicates a normalized response (y-axis) from sample surface 190 across a substantially continuous wavelength band 301 (x-axis). For example, the response from sample surface 190 may be the intensity of light reflected from sample surface 190 and measured by detector array 145 during an illumination sequence as described above. In some embodiments, surface analysis device 100 may be configured to perform an illumination sequence that generates a response from sample surface 190 over a plurality of wavelength values along the x-axis. In some embodiments, the plurality of wavelength values forms substantially continuous wavelength band 301 . In such embodiments, spectral response profile 300 may include a response value for each wavelength included in substantially continuous wavelength band 301 .

[0029] The response value for a particular wavelength or wavelength band may generally be a function of the reflectivity, absorbance, and transmittance by sample surface 190 of light at the particular wavelength or wavelength band. In lieu of directly measuring reflectivity, absorbance, and transmittance for each wavelength of substantially continuous wavelength band 301 , surface analysis device 100 may compare spectral response profile 300 of sample surface 190 to reference spectral response profiles associated with known materials, or materials with a known attribute. The reference spectral response profiles, e.g., reference spectral response profile 309 in FIG. 3, may be, for example, stored locally in a database or library 180 located in nonvolatile memory 152 or accessible via a

communications network. Thus, by performing measurements with sensor array 145, which only measures reflected light, surface analysis device 100 can provide an accurate estimate of the value of one or more attributes of sample surface 190 or determine the material from which sample surface 190 is formed.

[0030] In some embodiments, the material associated with sample surface 190, or the value of one or more specific attributes of sample surface 190, may be determined by

substantially matching spectral response profile 300 to a particular reference spectral response profile that is associated with a known value for an attribute of interest or with a specific material. Specifically, when a reference spectral response profile is determined to substantially match spectral response profile 300, sample surface 190 may be assumed to have the same value for the attribute or include the same material. In such embodiments, spectral response profile 300 may be considered matched to a particular reference spectral response profile when a root-mean-square (RMS) error between spectral response profile 300 and the reference spectral response profile is less than a specific threshold.

Alternatively or additionally, any other suitable quantitative comparison technique or techniques may be used to determine whether a reference spectral response profile matches spectral response profile 300. Alternatively or additionally, spectral response profile 300 may be considered matched to a particular reference spectral response profile when RMS error (or any other suitable quantitative comparison) between spectral response profile 300 and the reference spectral response profile is less than the RMS error (or any other suitable quantitative comparison) between spectral response profile 300 and any other available reference spectral response profile.

[0031] The above-described comparison of a measured spectral response profile with one or more reference spectral response profiles assumes that the surface geometry of sample surface 190 is substantially planar and free of irregularities. In practice, however, sample surface 190 may not be completely planar. Thus, the quantity of light measured by sensor array 145 when this is the case is a function of both the material properties and surface geometry of sample surface 190. Consequently, the accuracy of surface analysis device 100 is greatly reduced, as illustrated below in FIGS. 4A and 4B.

[0032] FIG. 4A is a schematic illustration of surface analysis device 100 illuminating a portion of planar sample surface 490, according to one or more embodiments of the present disclosure, and FIG. 4B is a schematic illustration of surface analysis device 100 illuminating a portion of non-planar sample surface 491 , according to one or more embodiments of the present disclosure.

[0033] As shown in FIG. 4A, source 144 emits electromagnetic energy 148 to illuminate a portion of planar sample surface 490. Electromagnetic energy 147 is then scattered relatively uniformly from planar sample surface 490, and a portion of electromagnetic energy 147 is received by sensor array 145 disposed in window 142. Because the scattering of electromagnetic energy 148 is relatively uniform from planar sample surface 490, the paths followed by electromagnetic energy 147 are regular, predictable, and repeatable. By contrast, as shown in FIG. 4B, when source 144 illuminates a portion of non-planar sample surface 491 with electromagnetic energy 148, any surface irregularities or variations in the orientation of non-planar surface 491 with respect to electromagnetic energy 148, such as curves, bumps, slopes and the like, generally result in electromagnetic energy 147 scattering in a highly unpredictable fashion. Therefore, the portion of electromagnetic energy 147 received and measured by sensor array 145 is generally not proportion to the quantity of light electromagnetic energy 148 reflected from non-planar sample surface 491 . Consequently, non-planar sample surface 491 can introduce significant error in the measured spectral response of the material on which non-planar sample surface 490 is formed.

[0034] According to embodiments of the present disclosure, when a sample surface is not highly planar and free of surface irregularities, such as non-planar sample surface 491 in FIG. 4B, surface analysis device 100 in FIG. 1 may calculate a 3D surface or 3D map of the non-planar sample surface. One procedure for calculating such a 3D surface is described above in conjunction with FIG. 2. Surface analysis device 100 then determines a correction factor associated with each source 144, where the correction factor is based on the topology of the calculated 3D surface or 3D map. It is noted that, by virtue of each source 144 having a unique location relative to the sample surface, each source 144 generally receives differently scattered electromagnetic energy 148 from sample surface 190 than any other source 144. Consequently, surface analysis device 100 determines a unique correction factor for each source 144, to compensate for the geometric irregularities of a sample surface.

[0035] FIG. 5 sets forth a flowchart summarizing an example method 500 to analyze a sample surface with electromagnetic energy, in accordance with at least some

embodiments of the present disclosure. Method 500 may include one or more operations, functions or actions as illustrated by one or more of blocks 501 - 510. Although the blocks are illustrated in a sequential order, these blocks may also be performed in parallel, and/or in a different order than those described herein. Also, the various blocks may be combined into fewer blocks, divided into additional blocks, and/or eliminated based upon the desired implementation. Additional blocks representing other operations, functions or actions may also be provided. Although method 500 is described in conjunction with surface analysis device 100 of FIG. 1 , any apparatus configured to perform method 500 is within the scope of this disclosure.

[0036] Method 500 may begin in block 501 "calculate 3D map of sample surface." Block 501 may be followed by block 502 "select light source," block 502 may be followed by block 503 "calculate correction factor for light source," block 503 may be followed by block 504 "any light sources remaining without correction factor?," block 504 may be followed by block

505 "illuminate sample surface with light of a wavelength band," block 505 may be followed by block 506 "receive spectral response of sample surface at the wavelength band," block

506 may be followed by block 507 "generate corrected spectral response," block 507 may be followed by block 508 "any wavelength bands remaining?," block 508 may be followed by block 509 "construct spectral response profile," and block 509 may be followed by block 510 "compare spectral response profile to reference spectral response profile."

[0037] In block 501 , surface analysis device 100 calculates a 3D map of sample surface 190. For example, in some embodiments, surface analysis device 100 illuminates sample surface 190 with multiple known random speckle patterns, and for each of the multiple known random speckle patterns, measures an intensity of reflected light with each of single- pixel photodetectors 146. Then, for each of the multiple single-pixel photodetectors 146, surface analysis device 100 constructs a 2D image of sample surface 190 using the measured intensity of reflected light associated with each of the multiple known random speckle patterns. Surface analysis device 100 then performs a 3D reconstruction or mapping of sample surface 190 based on the 2D images of surface surface 190.

[0038] In block 502, surface analysis device 100 selects one of light sources 144. In block 503, surface analysis device 100 calculates a correction factor for the light source 144 selected in block 502. For example, in some embodiments, surface analysis device 100 calculates the correction factor by relating the position of the light source 144 and the 3D map of sample surface 190 to determine how the scattering of electromagnetic energy 148 is emitted by the light source 144 is affected, i.e., determining the estimated optical paths of electromagnetic energy 147. Based on this calculated scattering, surface analysis device 100 may calculate the reduction of electromagnetic energy 147 received by sensor array 145 that is due to the non-planar or otherwise irregular geometry of sample surface 190. The correction factor may then be selected to compensate for this calculated reduction of electromagnetic energy 147 received by sensor array due to the irregular geometry of sample surface 190. The specific technique or algorithm employed for calculating such a correction factor for a non-planar surface can be readily implemented by one skilled in the art when the geometry of sample surface 190 is well defined.

[0039] In block 504, surface analysis device 100 determines if there are any sources 144 remaining for which an associated correction factor has not been calculated. If yes, method 500 proceeds back to block 502; if no, method 500 proceeds to block 505.

[0040] In block 505, surface analysis device 100 illuminates sample surface 190, using one of sources 144, with light of a first wavelength band. In some embodiments, the source 144 used to illuminate sample surface 190 in block 505 may also be used to illuminate sample surface 190 in one or more subsequent iterations of block 505 with light of one or more additional wavelength bands. For example, in some embodiments, the source 144 in question may include an LED configured to generate electromagnetic energy having a center band that varies according to an input power to the LED, an operating temperature of the LED, or a combination of the input power and the operating temperature. Thus, the source 144 in question may be used multiple times over multiple iterations of block 505 as part of a particular illumination sequence employed by surface analysis device 100.

[0041] In block 506, surface analysis device 100 receives a spectral response of sample surface 190 from sensor array 145 in response to the particular source 144 illuminating sample surface 190 in block 505. In FIG. 1 , the spectral response of sample surface 190 is represented as electromagnetic energy 147.

[0042] In block 507, surface analysis device 100 generates a corrected spectral response corresponding to the spectral response of sample surface 190 received and measured in block 506. For example, the spectral response received in block 506 may be modified based on the correction factor that is associated with the source 144 illuminating sample surface 190 in block 505. The correction factor associated with the source 144 is calculated in block 503 as described above. Alternatively, in some embodiments, the corrected spectral response corresponding to the spectral response of sample surface 190 received and measured in block 506 may be generated at a later time, for example any time prior to a spectral response profile being constructed in block 509.

[0043] In block 508, surface analysis device 100 determines if there are any wavelength bands remaining for which an associated spectral response has not been calculated. If yes, method 500 proceeds back to block 505; if no, method 500 proceeds to block 509. It is noted that a plurality of different wavelength bands may be employed to sequentially illuminate sample surface 190 in a particular illumination sequence. In such embodiments, the different wavelength bands used to illuminate sample surface 190 may form a substantially continuous wavelength band similar to substantially continuous wavelength band 301 in FIG. 3. Furthermore, in such embodiments, one or more portions of the substantially continuous wavelength band may include a portion of the visible wavelength band and one or more non-visible wavelength bands, such as the ultra-violet and the infrared. Consequently, surface analysis device 100 can provide an extended test spectrum that measures the response of sample surface 190 at wavelengths well outside the test spectrum of other surface analysis devices.

[0044] In block 509, surface analysis device 100 constructs a spectral response profile of sample surface 190 similar to spectral response profile 300 in FIG. 3. The spectral response profile so constructed may be based on the spectral responses received in the multiple iterations of block 506. Thus, the spectral response profile constructed in block 509 may include a response of sample surface 190 in any wavelength band of light used to illuminate sample surface 190 in the multiple iterations of block 505.

[0045] In block 510, surface analysis device 100 compares the spectral response profile of sample surface 190 constructed in block 509 to one or more reference spectral response profiles that are each associated with a particular value of an attribute of sample surface 190 or material from which sample surface 190 is formed. Based at least in part on the comparison of the spectral response profile constructed in block 509 to the one or more reference spectral response profiles, surface analysis device 100 may then determine that sample surface 190 corresponds to a particular material, and/or to a particular material having a particular surface attribute or attributes.

[0046] For example, the one or more reference spectral response profiles may all be associated with a particular material, and each of the one or more reference spectral response profiles may be associated with a sample of the material having a different specific surface treatment or attribute. Thus, based at least in part on the comparison of the spectral response profile constructed in block 509 to the one or more reference spectral response profiles, surface analysis device 100 may determine that sample surface 190 corresponds to the material having a specific surface treatment or attribute. In another example

embodiment, the one or more reference spectral response profiles may all be associated with a particular surface treatment, such as painting, coating, etc., and each of the one or more reference spectral response profiles may be associated with a specific color and/or condition of the surface treatment, such as thickness, material composition, and the like. Thus, based at least in part on the above-described comparison, surface analysis device 100 may determine that sample surface 190 corresponds to a specific instance of the particular surface treatment, e.g., color, thickness, material composition, etc. In this way, when sufficient suitable reference spectral response profiles are available, surface analysis device 100 may determine a value or range of a value of an attribute for sample surface 190, for example by determining the reference spectral response profile that matches or most closely matches the spectral response profile of sample surface 190 constructed in block 509. [0047] In the embodiment of method 500 described above, calculation of the 3D map of sample surface 190 and the correction factors for each source 144 are performed prior to the illumination of sample surface 190 with sources 144 for measuring the spectral response of sample surface 190. In other embodiments, calculation of the 3D map and associated correction factors may be performed after or during measurement of the spectral response of sample surface 190.

[0048] In some embodiments, surface analysis device 100 may be configured to select an output of a particular source 144 when illuminating sample surface 190 based on the calculated correction factor that corresponds that particular source 144. For example, in such embodiments, when such a calculated correction factor indicates that the surface geometry of sample surface 190 causes significant scattering of electromagnetic energy 147 away from sensor array 145, surface analysis device 100 may be configured to increase the output of the particular source 144, thereby improving signal-to-noise ratio when receiving a spectral response of sample surface 190 in response to the particular source 144 illuminating sample surface 190. Thus, if the calculated correction factor is greater than a predetermined threshold, the output of the source 144 associated with that correction factor may be increased.

[0049] Alternatively, or additionally, in some embodiments, surface analysis device 100 may be configured to reposition the source 144 associated with a high-value correction factor. In this way, surface analysis device 100 may change a quantity of electromagnetic energy 147 received by sensor array 145 in response to the source 144 associated with a high-value correction factor illuminating sample surface 190. For example, motor 165 may be used to rotate window 142 to reposition the source 144 to a portion of sample surface 190 that does not cause significant scattering of electromagnetic energy 147 away from sensor array 145. In such embodiments, the correction factors for each source 144 may be recalculated based on the new orientation of sources 144 with respect to sample surface 190.

[0050] FIG. 6 is a block diagram of a computer program product 600 to implement a method to analyze an irregular surface with electromagnetic energy, in accordance with at least some embodiments of the present disclosure. Computer program product 600 may include a signal bearing medium 604. Signal bearing medium 604 may include one or more sets of executable instructions 602 that, when executed by, for example, a processor of a computing device, may provide at least the functionality described above with respect to FIGS. 1 -5.

[0051] In some implementations, signal bearing medium 604 may encompass a non- transitory computer readable medium 608, such as, but not limited to, a hard disk drive, a Compact Disc (CD), a Digital Video Disk (DVD), a digital tape, memory, etc. In some implementations, signal bearing medium 604 may encompass a recordable medium 610, such as, but not limited to, memory, read/write (R/W) CDs, R/W DVDs, etc. In some implementations, signal bearing medium 604 may encompass a communications medium 606, such as, but not limited to, a digital and/or an analog communication medium (e.g., a fiber optic cable, a waveguide, a wired communications link, a wireless communication link, etc.). Computer program product 600 may be recorded or otherwise stored on non- transitory computer readable medium 608 or another similar recordable medium 610.

[0052] FIG. 7 is a block diagram illustrating an example computing device 700 that may implement at least some embodiments of the present disclosure. In a very basic configuration 702, computing device 700 typically includes one or more processors 704 and a system memory 706. A memory bus 708 may be used for communicating between processor 704 and system memory 706.

[0053] Depending on the desired configuration, processor 704 may be of any type including but not limited to a microprocessor (μΡ), a microcontroller (μθ), a digital signal processor (DSP), or any combination thereof. Processor 704 may include one more levels of caching, such as a level one cache 710 and a level two cache 712, a processor core 714, and registers 716. An example processor core 714 may include an arithmetic logic unit (ALU), a floating point unit (FPU), a digital signal processing core (DSP Core), or any combination thereof. An example memory controller 718 may also be used with processor 704, or in some implementations memory controller 718 may be an internal part of processor 704.

[0054] Depending on the desired configuration, system memory 706 may be of any type including but not limited to volatile memory (such as RAM), non-volatile memory (such as ROM, flash memory, etc.) or any combination thereof. System memory 706 may include an operating system 720, one or more applications 722, and program data 724. Application 722 may provide at least the functionality described above with respect to FIGS. 1 -5. Program data 724 may be useful for operation with application 722 and include, for example, one or more libraries 180, as described herein. In some embodiments, application 722 may be arranged to operate with program data 724 on operating system 720. This described basic configuration 702 is illustrated in Fig. 7 by those components within the inner dashed line.

[0055] Computing device 700 may have additional features or functionality, and additional interfaces to facilitate communications between basic configuration 702 and any required devices and interfaces. For example, a bus/interface controller 730 may be used to facilitate communications between basic configuration 702 and one or more data storage devices 732 via a storage interface bus 734. Data storage devices 732 may be removable storage devices 736, non-removable storage devices 738, or a combination thereof.

Examples of removable storage and non-removable storage devices include magnetic disk devices such as flexible disk drives and hard-disk drives (HDD), optical disk drives such as compact disk (CD) drives or digital versatile disk (DVD) drives, solid state drives (SSD), and tape drives to name a few. Example computer storage media may include volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information, such as computer readable instructions, data structures, program modules, or other data.

[0056] System memory 706, removable storage devices 736 and non-removable storage devices 738 are examples of computer storage media. Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD- ROM, digital versatile disks (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which may be used to store the desired information and which may be accessed by computing device 700. Any such computer storage media may be part of computing device 700.

[0057] Computing device 700 may also include an interface bus 740 for facilitating communication from various interface devices (e.g., output devices 742, peripheral interfaces 744, and communication devices 746) to basic configuration 702 via bus/interface controller 730. Example output devices 742 include a graphics processing unit 748 and an audio processing unit 750, which may be configured to communicate to various external devices such as a display or speakers via one or more A/V ports 752. Example peripheral interfaces 744 include a serial interface controller 754 or a parallel interface controller 756, which may be configured to communicate with external devices such as input devices (e.g., keyboard, mouse, pen, voice input device, touch input device, etc.) or other peripheral devices (e.g., printer, scanner, etc.) via one or more I/O ports 758. An example

communication device 746 includes a network controller 760, which may be arranged to facilitate communications with one or more other computing devices 762 over a network communication link, such as, without limitation, optical fiber, Long Term Evolution (LTE), 3G, WiMax, via one or more communication ports 764.

[0058] The network communication link may be one example of a communication media. Communication media may typically be embodied by computer readable instructions, data structures, program modules, or other data in a modulated data signal, such as a carrier wave or other transport mechanism, and may include any information delivery media. A "modulated data signal" may be a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media may include wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, radio frequency (RF), microwave, infrared (IR) and other wireless media. The term computer readable media as used herein may include both storage media and communication media.

[0059] Computing device 700 may be implemented as a portion of a small-form factor portable (or mobile) electronic device such as a cell phone, a personal data assistant (PDA), a personal media player device, a wireless web-watch device, a personal headset device, an application specific device, or a hybrid device that include any of the above functions. Computing device 700 may also be implemented as a personal computer including both laptop computer and non-laptop computer configurations or as a server device.

[0060] In sum, embodiments of the present disclosure provide systems and methods to analyze an irregular or non-planar surface with electromagnetic energy. By calculating a 3D map of the sample surface, a correction factor can be determined for each emitter used to illuminate the non-planar surface that mathematically corrects for light that is scattered by geometric irregularities of the non-planar surface. In this way, an accurate spectral response profile can be generated for the non-planar surface despite the non-uniform scattering of light therefrom, and the spectral response profile can be compared to reference spectral response profiles to determine a surface attribute and/or material of the non-planar surface.

[0061] There is little distinction left between hardware and software implementations of embodiments of systems; the use of hardware or software is generally (but not always, in that in certain contexts the choice between hardware and software can become significant) a design choice representing cost vs. efficiency tradeoffs. There are various vehicles by which processes and/or systems and/or other technologies described herein can be effected (e.g., hardware, software, and/or firmware), and that the preferred vehicle will vary with the context in which the processes and/or systems and/or other technologies are deployed. For example, if an implementer determines that speed and accuracy are paramount, the implementer may opt for a mainly hardware and/or firmware vehicle; if flexibility is paramount, the implementer may opt for a mainly software implementation; or, yet again alternatively, the implementer may opt for some combination of hardware, software, and/or firmware.

[0062] The foregoing detailed description has set forth various embodiments of the devices and/or processes via the use of block diagrams, flowcharts, and/or examples. Insofar as such block diagrams, flowcharts, and/or examples contain one or more functions and/or operations, it will be understood by those within the art that each function and/or operation within such block diagrams, flowcharts, or examples can be implemented, individually and/or collectively, by a wide range of hardware, software, firmware, or virtually any combination thereof. In one embodiment, several portions of the subject matter described herein may be implemented via Application Specific Integrated Circuits (ASICs), Field Programmable Gate Arrays (FPGAs), digital signal processors (DSPs), or other integrated formats. However, those skilled in the art will recognize that some aspects of the embodiments disclosed herein, in whole or in part, can be equivalently implemented in integrated circuits, as one or more computer programs running on one or more computers (e.g., as one or more programs running on one or more computer systems), as one or more programs running on one or more processors (e.g., as one or more programs running on one or more microprocessors), as firmware, or as virtually any combination thereof, and that designing the circuitry and/or writing the code for the software and/or firmware would be well within the skill of one of skill in the art in light of this disclosure. In addition, those skilled in the art will appreciate that the mechanisms of the subject matter described herein are capable of being distributed as a program product in a variety of forms, and that an illustrative embodiment of the subject matter described herein applies regardless of the particular type of signal bearing medium used to actually carry out the distribution. Examples of a signal bearing medium include, but are not limited to, the following: a recordable type medium such as a floppy disk, a hard disk drive, a Compact Disc (CD), a Digital Video Disk (DVD), a digital tape, a computer memory, etc.; and a transmission type medium such as a digital and/or an analog communication medium (e.g., a fiber optic cable, a waveguide, a wired communications link, a wireless communication link, etc.).

[0063] Those skilled in the art will recognize that it is common within the art to describe devices and/or processes in the fashion set forth herein, and thereafter use engineering practices to integrate such described devices and/or processes into data processing systems. That is, at least a portion of the devices and/or processes described herein can be integrated into a data processing system via a reasonable amount of

experimentation. Those having skill in the art will recognize that a typical data processing system generally includes one or more of a system unit housing, a video display device, a memory such as volatile and non-volatile memory, processors such as microprocessors and digital signal processors, computational entities such as operating systems, drivers, graphical user interfaces, and applications programs, one or more interaction devices, such as a touch pad or screen, and/or control systems including feedback loops and control motors (e.g., feedback for sensing position and/or velocity; control motors for moving and/or adjusting components and/or quantities). A typical data processing system may be implemented utilizing any suitable commercially available components, such as those typically found in data computing/communication and/or network computing/communication systems.

[0064] The herein described subject matter sometimes illustrates different components contained within, or connected with, different other components. It is to be understood that such depicted architectures are merely exemplary, and that in fact many other architectures can be implemented which achieve the same functionality. In a conceptual sense, any arrangement of components to achieve the same functionality is effectively "associated" such that the desired functionality is achieved. Hence, any two components herein combined to achieve a particular functionality can be seen as "associated with" each other such that the desired functionality is achieved, irrespective of architectures or intermedial components. Likewise, any two components so associated can also be viewed as being "operably connected", or "operably coupled", to each other to achieve the desired functionality, and any two components capable of being so associated can also be viewed as being "operably couplable", to each other to achieve the desired functionality. Specific examples of operably couplable include but are not limited to physically mateable and/or physically interacting components and/or wirelessly interactable and/or wirelessly interacting components and/or logically interacting and/or logically interactable components.

[0065] With respect to the use of substantially any plural and/or singular terms herein, those having skill in the art can translate from the plural to the singular and/or from the singular to the plural as is appropriate to the context and/or application. The various singular/plural permutations may be expressly set forth herein for sake of clarity.

[0066] It will be understood by those within the art that, in general, terms used herein, and especially in the appended claims (e.g., bodies of the appended claims) are generally intended as "open" terms (e.g., the term "including" should be interpreted as "including but not limited to," the term "having" should be interpreted as "having at least," the term

"includes" should be interpreted as "includes but is not limited to," etc.). It will be further understood by those within the art that if a specific number of an introduced claim recitation is intended, such an intent will be explicitly recited in the claim, and in the absence of such recitation no such intent is present. For example, as an aid to understanding, the following appended claims may contain usage of the introductory phrases "at least one" and "one or more" to introduce claim recitations. However, the use of such phrases should not be construed to imply that the introduction of a claim recitation by the indefinite articles "a" or "an" limits any particular claim containing such introduced claim recitation to inventions containing only one such recitation, even when the same claim includes the introductory phrases "one or more" or "at least one" and indefinite articles such as "a" or "an" (e.g., "a" and/or "an" should typically be interpreted to mean "at least one" or "one or more"); the same holds true for the use of definite articles used to introduce claim recitations. In addition, even if a specific number of an introduced claim recitation is explicitly recited, those skilled in the art will recognize that such recitation should typically be interpreted to mean at least the recited number (e.g., the bare recitation of "two recitations," without other modifiers, typically means at least two recitations, or two or more recitations). Furthermore, in those instances where a convention analogous to "at least one of A, B, and C, etc." is used, in general such a construction is intended in the sense one having skill in the art would understand the convention (e.g., "a system having at least one of A, B, and C" would include but not be limited to systems that have A alone, B alone, C alone, A and B together, A and C together, B and C together, and/or A, B, and C together, etc.). In those instances where a convention analogous to "at least one of A, B, or C, etc." is used, in general such a construction is intended in the sense one having skill in the art would understand the convention (e.g., "a system having at least one of A, B, or C" would include but not be limited to systems that have A alone, B alone, C alone, A and B together, A and C together, B and C together, and/or A, B, and C together, etc.). It will be further understood by those within the art that virtually any disjunctive word and/or phrase presenting two or more alternative terms, whether in the description, claims, or drawings, should be understood to contemplate the possibilities of including one of the terms, either of the terms, or both terms. For example, the phrase "A or B" will be understood to include the possibilities of "A" or "B" or "A and B."

[0067] While various aspects and embodiments have been disclosed herein, other aspects and embodiments will be apparent to those skilled in the art. The various aspects and embodiments disclosed herein are for purposes of illustration and are not intended to be limiting, with the true scope and spirit being indicated by the following claims.