DETERMINING POSITIONAL INFORMATION FOR AN OBJECT IN SPACE
System and methods for locating objects within a region of interest involve, in various embodiments, scanning the region with light of temporally variable direction and detecting reflections of objects therein; positional information about the objects can then be inferred from the resulting reflections.
Latest Leap Motion, Inc. Patents:
- Throwable Interface for Augmented Reality and Virtual Reality Environments
- Interaction strength using virtual objects for machine control
- Systems and methods of object shape and position determination in three-dimensional (3D) space
- User-Defined Virtual Interaction Space and Manipulation of Virtual Cameras with Vectors
- SYSTEMS AND METHODS OF FREE-SPACE GESTURAL INTERACTION
This application claims priority to and the benefit of, and incorporates herein by reference in their entireties, U.S. Provisional Application Nos. 61/792,025, 61/800,327 and 61/801,479, each filed on Mar. 15, 2013.
TECHNICAL FIELDEmbodiments of the disclosed technology generally relate to distance measurement and, more particularly, to determining a position and/or depth of an object or features of an object surface in space.
BACKGROUNDDetermining the distance of objects from an observation point, or tracking objects in three dimensions, is important for many applications, including, e.g., surveying, navigation, surveillance, focus finding in photography, and motion capture for gesture- and movement-controlled video gaming, to name just a few. A variety of approaches to distance determination exist. For example, ultrasonic and laser rangefinders are based on time-of-flight measurements, i.e., they emit a sound or light pulse toward the object, capture a reflected signal pulse (or echo), and measure the roundtrip time for the pulse, from which the distance of the object can be calculated. This method generally works well over large distances where precision beyond a few meters is not required. However, since the accuracy of the measurement depends heavily on recording the precise times of broadcast and capture, which is challenging, in particular, for very fast-moving waves (e.g., light waves), this approach is—absent expensive high-speed equipment—generally unsuitable for more precise determinations and/or determinations made over shorter distances. A need therefore exists for alternative methods for determining the distance, depth, and/or three-dimensional position of an object or surface feature thereof.
SUMMARYEmbodiments hereof provide an approach to distance or depth measurements that utilizes a directed light source with time-variable direction to sweep or scan a spatial region of interest, and a light detector to measure light reflected by object(s) that might exist within the region of interest in a way that temporally resolves the different directions. In one embodiment, the light source scans the spatial region periodically (e.g., like a flash light waving back and forth over the region of interest), such that each direction of the illuminating emission provides information about object(s) that might exist in the region being scanned. For example, light direction can correspond to, and/or can include information about, a particular phase or point within the emission cycle. The direction of the illuminating emission thus provides information about one or more of a presence, location, or other perceivable property of the object(s). For example, in some embodiments, a camera—or other light sensor—can be synchronized with the light source to capture light diffusely reflected (e.g., scattered) off objects in the spatial region. Positional information can be extracted from analyzing the captured light. In an embodiment, positional information can be extracted from the time (or phase within the cycle) at which the light is received. The direction of the illuminating emission, and thus the direction of the object's location viewed from the source/sensor arrangement, can be calculated. For example, positional information can comprise relative distances between the camera, the object, and the receiver.
An embodiment uses two such source/sensor arrangements disposed in different locations, each scan the same plane, thereby enabling the location of an object within that plane to be determined from the intersection of the two scanning directions that result in respective reflection signals. In a yet further embodiment, a third source/sensor arrangement is disposed in a different plane such that the emission of the third source/sensor arrangement scans along an axis orthogonal to the two co-planar source/sensor arrangements, thereby enabling a three-dimensional spatial region to be scanned for the location of the object. The distances to the object within the spatial region can be determined by triangulation based upon the relative distances between the object and the various source/sensor arrangements.
In further embodiments, an object of interest is equipped with a retro-reflector, and the specular reflection of the illuminating emission is detected with a photo-sensor co-located with the light source.
In yet further embodiments, an object may be equipped, for tracking purposes, with a light source and sensor, and its location may be computed from reflection signals that it receives from retro-reflectors at fixed spatial locations.
Among other aspects, in an embodiment, directed light source refers to a light source that emits light in accordance with a directional nature (primary direction). The light emission may have any divergence, ranging from highly collimated to wide-angle, and can often be characterized with a Gaussian profile. In an embodiment, the primary direction of the emission comprises the central or average direction, or the direction of brightest emission, which coincide for a Gaussian profile. Some implementations include a directed light source with time-variable direction, comprising an arrangement of one or more light-emitting devices, optionally in conjunction with any associated optics or other components, that emits light, at any moment in time, in a primary direction that changes as a function of time.
In some embodiments, variable emission direction is achieved by an arrangement of two or more light-emitting devices, at least two of which emit in a different direction, that are electronically controlled to change activation levels among two or more activation states (e.g., turn on and turn off) sequentially, periodically, or according to pattern (or combinations thereof)), such that a combination of the contributions from the two or more light sources emit radiation during a complete control cycle, or emission cycle, in accordance with a scan pattern.
Individual light-emitting devices define an emission point, and collectively, the light-emitting devices of the light source define an emission region. The light-emitting devices can be arranged and/or spaced according to implementation (e.g., based upon individual emission divergences, area coverage, interference avoidance, other application specific needs, and so forth) such that the emissions collectively cover at least some desired subset of the entire spatial region of interest. In alternative embodiments, a single light-emitting device can be used; the emission direction can be varied directly by moving (mechanically, optically, electrically, or combinations thereof) the light-emitting device, and/or indirectly by moving a light-deflecting optic, such as a prism or mirror to scan the region of interest.
In embodiments, scanning encompasses directing light, e.g., as achieved by moving one or more individual light-emitting devices and/or associated optics, as well as making discrete changes in emission direction, e.g., by activating light-emitting devices pointing in different directions. In embodiments, two or more activation states of two or more light sources can be at least partially concurrent, or completely discrete. In some embodiments, the scan pattern enables light to sweep a region of interest, by changing the emission direction continuously or discretely as a function of time. For example, in some embodiments, the emission can change between discontiguous directions (e.g., in accordance with a random, pseudo-random, or programmed scan pattern). In embodiments, a scan pattern provides a continuous or discontiguous spatial, temporal, or spatio-temporal change in light at the region of interest. Implementation-specific needs can be met using any or combinations of individual light-emitting devices, such as light-emitting diodes (LEDs), lasers, incandescent or fluorescent light bulbs, or any other devices emitting light in one or more suitable frequency ranges, such as the optical, infrared (IR), or ultraviolet (UV) regime.
In an embodiment, light scattered or reflected by objects illuminated by the light source is captured using a light detector (or multiple detectors), suited to the application, that measures a property, comprising any of an intensity, color, polarization, other property or combinations thereof, of the incoming light as a function of time; each detector defines a detection point, and when alone or combined with multiple light-sensing elements, defines a detection region. In embodiments, the light detector can be synchronized with the light source so that the timing of the various control states of the light source (corresponding, for example, to different emission compositions, directions, other controllable aspects) is known relative to the timing of the measurements at the detector, enabling associating the direction of the illuminating emission with each point in time of the measured signal. Various embodiments utilize a digital camera with a one- or two-dimensional electronic pixelated sensor, which can be non-coplanar or coplanar, such as a CCD (charge-coupled device) or CMOS (complementary metal-oxide semiconductor) sensor used as a photo-sensor array. The camera may acquire a temporal sequence of captured frames, at a frame rate faster than the scan rate of the light source, such that multiple frames are acquired during an emission cycle of the source and each frame corresponds to a different control state of the illuminating emission. The frames can be processed by a computer, or other suitable processing device(s), which can analyze the frames to determine a phase of a signal formed by the pixel output in response to the changing light conditions experienced by the sensor within each cycle for each pixel, e.g., by means of a discrete Fourier transform. In alternative embodiments, the signal comprises a photocurrent generated in each light-sensor pixel that is processed continuously by an associated phase-detecting circuit. Accordingly, embodiments can enable determining the direction of the illuminating emission from information extracted from the signal. In an embodiment, a camera can include a lens and/or other optics that focus light received from a particular direction onto a particular region of the sensor (corresponding to a pixel or group of pixels); thus, the position within the sensor at which the reflected light is received is related to the direction from which the light comes.
In one aspect, embodiments provide a method for obtaining positional information about an object within a region of interest. The method may include (a) activating sources directed to portions of the region of interest according to an ordering of points, such that each point in the ordering directs electromagnetic radiation of at least one source to one of the portions of the region of interest (e.g., the NE quadrant, SE quadrant, etc.); (b) capturing a portion of the electromagnetic radiation reflected by an object; (c) forming a signal over time of at least one property (e.g., intensity, color, polarization, other property or combinations thereof) of the captured electromagnetic radiation; (d) determining from the signal at least one point in the ordering in which a dominant contributor to the captured electromagnetic radiation was activated; (e) determining an identity for the dominant contributor from the point in the ordering; (f) determining from the identity of the dominant contributor, a portion of the region of interest to which the electromagnetic radiation from the dominant contributor was directed; and (g) determining positional information for the object based at least in part upon the portion of the region of interest. In one embodiment, activating sources includes activating illumination sources (e.g., LEDs) directed in different directions according to a known order, such that each point in the order is associated with a particular direction. The ordering can be fixed or can vary from scan instance to scan instance. Further, more than one source can be activated at a time to form a cross-fade or other illumination profile. From the signal, it may then be determined where in the order the greatest contributor—or contributors—of the captured light was activated, and, based thereon, the identity of the greatest contributor(s) and the direction in which the light was emitted may be determined. Based on the direction in which the illumination is emitted, the positional information of the object may be determined.
Capturing the reflected light may include capturing data frames (e.g., sensor states resulting from capturing illumination of a scan, or image resulting from a capture with a sensor array of a camera) of the region. The direction of the reflected light relative to the camera may be determined, and the positional information may be further based in part thereon. The data frames may be captured at a rate exceeding a scan rate associated with the illuminating emission. The direction of the illuminating emission associated with the spectral region reflected by the object may be ascertained by determining an intensity peak across a temporal sequence of data frames for at least one pixel corresponding to the object within the data frame. The intensity peak, in turn, may be determined, e.g., from a Fourier transform on the temporal sequence of data frames. In some embodiments, the electromagnetic radiation is retro-reflected by the object. A retro-reflector may be physically associated with the object.
The region may be scanned periodically, according to a same or a different order of activation. The point in the ordering corresponding to capture of the reflected electromagnetic radiation corresponds to a phase within an emission cycle. Determining the direction of the illuminating electromagnetic radiation associated with the electromagnetic radiation reflected by the object may include determining the point in the cycle where the captured radiation is greatest. This point in the cycle may be detected using a phase-detector circuit or equivalent. Scanning the region may involve sequentially operating a plurality of light-emitting devices each directing light to a different portion of the region of interest. In some embodiments, only a subset of the plurality of light-emitting devices are operated so as to reduce a resolution of the scan. Sequentially operating the plurality of devices may comprise sequentially causing the devices to emit pulses of light; successive pulses may overlap temporally. Sequentially operating the plurality of devices may, alternatively or additionally, involve driving each device according to a time-variable intensity having an intensity peak, the peaks occurring sequentially for the plurality of light-emitting devices. In some embodiments, light emitted by the plurality of light-emitting devices overlap spatially and temporally; in this case, determining a direction of the illuminating emission associated with the light reflected by the object may include determining an effective primary direction of the overlapping illumination. The “effective primary direction” is the direction along which the intensity maximum resulting from the spatiotemporal overlap between illuminations from two or more sources with different individual primary directions lies. In various embodiments, scanning the region includes moving (e.g., rotating or translating) a light-emitting device, or moving a deflecting optic and/or a screen used in conjunction with a light-emitting device.
In another aspect, embodiments pertain to a system for obtaining positional information about an object within a region of interest. The system may include a directed light source with variable direction for scanning the region with an illuminating light, a detector for capturing light reflected by the object, and circuitry for (i) determining a time of capture of the reflected light and, based thereon, an associated direction of the illuminating light, and (ii) deriving the positional information about the object at least in part from the direction of the illuminating light. In some embodiments, the system also includes a retro-reflector affixed to the object.
In some embodiments, the directed light source includes a plurality of light-emitting devices (e.g., LEDs) emitting light in a respective plurality of different primary directions. Further, the directed light source may include a controller for sequentially operating the plurality of light-emitting devices. The light-emitting devices may be arranged such that their respective primary directions intersect at a common center. For example, the light-emitting devices may be affixed to an arcuate surface, facets of a polygonal surface, or facets of a polyhedral surface. (An “arcuate surface” is herein understood to mean a segment of a spherical surface (e.g., a semispherical surface) or a surface having at least one cross-section shaped like a segment of a circle (e.g., a semicircle).) The plurality of light-emitting devices may include a plurality of light emitters and a plurality of associated deflecting optics for deflecting light emitted by the emitters into the different primary directions. In some embodiments, the directed light source comprises one or more moving light-emitting devices. In other embodiments, the directed light source includes one or more light-emitting devices and a moving deflecting optic and/or a moving screen having a perforation therein.
In various embodiments, the detector includes a camera for imaging the region; the camera may include a lens and a sensor (e.g., a CCD or MEMS sensor), or a light-sensing device and a scanning mirror. In certain embodiments, the detector is co-located with the light source, and the system further includes a retro-reflector affixed to the object. The directed light source may include a controller for varying the emission direction so as to periodically scan the region; this controller may be synchronized with the circuitry determining the time of capture of the reflected light. The circuitry causes the detector to be read out at a rate exceeding the scan rate of the directed light source. In some embodiments, the circuitry includes a phase-detector circuit for determining a phase within an emission cycle corresponding to a maximum intensity of the captured light, and/or a digital processor configured for performing a Fourier transform on the captured light to thereby determine a phase within an emission cycle corresponding to a maximum intensity of the captured light.
In another aspect, embodiments provide a method for determining depth associated with one or more objects within a region of interest. The method includes (a) scanning the region with an illuminating light beam having a temporally variable beam direction so as to illuminate the object(s), (b) acquiring a temporal sequence of images of the region while the region is being scanned, each image corresponding to an instantaneous direction of the illuminating light beam and at least one of the images capturing light reflected by the illuminated object(s); and (c) based at least in part on the instantaneous direction of the light beam in the image(s) capturing light reflected by the object(s), determining a depth associated with the object(s). Multiple of the images acquired during a single scan of the region may capture light reflected by the object(s); the method may include determining a depth profile of the object(s) based thereon.
A further aspect relates to a method for locating an object within a region. In various embodiments, the method involves, (a) using a light source affixed to the object, scanning the region with an illuminating light beam having a temporally variable beam direction; (b) using a sensor co-located with the light source, capturing reflections of the illuminating beam from a plurality of retro-reflectors fixedly positioned at known locations; (c) based on times of capture of the reflections, determining associated directions of the illuminating light beam; and (d) locating the object relative to the known locations of the retro-reflectors based at least in part on the directions of the illuminating light beam. In some embodiments, the object is located in a two-dimensional region based on reflections from at least three retro-reflectors.
Yet another aspect pertains to a device, affixed to an object of interest, for locating the object within a region relative to a plurality of retro-reflectors fixedly positioned at known locations. The device may include a light source for scanning the region with an illuminating light beam having a temporally variable beam direction; a sensor co-located with the light source for capturing reflections of the illuminating beam from the plurality of retro-reflectors; and circuitry for determining, from times of capture of the reflections, directions of the illuminating light beam associated therewith, and for locating the object relative to the retro-reflectors based at least in part on the directions. The object may, for example, be a mobile device.
In a further aspect, embodiments provide a computer-implemented method for conducting machine control. The method involves scanning a region of space, the scanning including (i) directing at least one light emission from a vantage point of a vantage region to a region of space, (ii) detecting a reflectance of the at least one light emission, and (iii) determining that the detected reflectance indicates a presence of an object in the region of space. Further, the method includes determining one or more object attributes of the object; analyzing the one or more object attributes to determine a potential control surface of the object; determining whether one or more control-surface attribute changes in the potential control surface indicate control information; and, if so, responding to the indicated control information according to response criteria. In some embodiments, the first light emission is directed to the region of space according to a first scan pattern, and determining that the detected reflectance indicates a presence of an object comprises directing a second light emission to the region of space according to a second scan pattern. Directing the second emission may involve scanning to a refined scan pattern, e.g., so as to capture surface detail about the object.
In some embodiments, determining object attributes of the object comprises determining positional information of at least a portion of the object. Analyzing the object attributes to determine a potential control surface of the object may include determining based at least in part upon the positional information whether a portion of the object provides control information. Determining whether one or more control-surface attribute changes in the potential control surface indicate control information may include determining whether control-surface attribute changes in the potential control surface indicate an engagement gesture. Responding to the indicated control information according to response criteria may include determining a command to a user interface based at least in part upon the engagement gesture. In various embodiments, determining object attributes of the object comprises determining dynamic information of at least a portion of the object, physical information of at least a portion of the object, optical and/or radio properties of at least a portion of the object, and/or chemical properties of at least a portion of the object.
In certain embodiments, directing the emission includes scanning across an entryway; determining that the detected reflectance indicates a presence includes detecting an object comprising a person seeking entrance, and conducting a second scanning to a refined scan pattern of the person; determining whether control-surface attribute changes in the potential control surface indicate control information includes determining whether the control-surface attribute changes indicate a vein pattern of a hand of the person; and responding to the indicated control information according to response criteria comprises permitting the person to enter when the vein pattern matches a stored vein pattern of an individual authorized to enter.
In a further aspect, a method for obtaining positional information includes (a) scanning the region with an illuminating emission having a temporally variable emission direction; (b) capturing light reflected by the object and, based on a time of capture of the reflected light, determining an associated direction of the illuminating emission; and (c) deriving the positional information about the object at least in part from the direction of the illuminating emission. The positional information may be determined further based at least in part on a geometric relationship between the light source and the detector. The positional information may include a distance, a depth, or a position of the object or a surface feature thereof. In some embodiments, the positional information comprises a depth profile of the object. The method may involve periodically repeating steps (a) through (c) so as to update the positional information to track movement of the object.
Advantageously, these and other aspects of the disclosed technology may enable machines, computers, automata, and/or other types of intelligent devices to obtain information about objects present and events and/or actions (such as user gestures, signals, or other motions conveying commands and information to the device) occurring in a monitored region of interest. These and other advantages and features of various embodiments of the disclosed technology will become more apparent through reference to the following description, the accompanying drawings, and the claims. It is to be understood that the features of the various embodiments described herein are not mutually exclusive and can exist in various combinations and permutations.
In the following description, various embodiments disclosed technology are described with reference to the following drawings, in which:
Described herein are various embodiments of methods and systems for determining the distance, depth, and/or position of objects (and surface features of objects) in space relative to a physical reference (such as a light source and detector, as described in detail below). Sensing distance, depth, and/or position of objects automatically (e.g., programmatically) can enable machines to be controlled by salient properties of the objects or object motion. The object(s) may generally be any inanimate or animate objects, and may have complex surfaces and/or change in position or shape over time. Certain embodiments provide improved accuracy in positional and/or depth determination, thereby supporting object and/or object-surface recognition, as well as object-change, event, and/or action recognition, and/or combinations thereof.
As
With renewed reference to
Capture device(s) 130A, 130B can each define a particular vantage point 300 from which objects 112 within the area of interest 114 are sensed, and can be positioned within a detection region 302 (see
While illustrated with reference to a particular embodiment in which control of emission module 102 and detection module 104 are co-located within a common controller 106, it should be understood that these control functions may, in alternative embodiments, be implemented in separate hardware components, or may each be distributed over a plurality of components. Controller 106 comprises control logic (implemented in hardware, software, or combinations thereof) to conduct selective activation/de-activation of emitter(s) 120A, 120B in on-off or other activation states or combinations thereof (and/or to control active directing devices) to produce emissions of (e.g., spatiotemporally) varying intensities in accordance with a scan pattern which can be directed to scan the area of interest 114. Controller 106 can further comprise control logic (implemented in hardware, software, or combinations thereof) to conduct selection, activation, and control of capture device(s) 130A, 130B (and/or to control associated active directing devices) to capture images or otherwise sense differences in reflectance or other illumination. Signal-processing module 108 determines whether captured images and/or sensed differences in reflectance and/or other sensor-perceptible phenomena indicate a possible presence of one or more objects of interest 112, such as control objects 113; the presence of such objects, and/or variations thereof (e.g., in position, shape, etc.), can be used as input to a machine controller via the machine- and application-control module interface 110.
In various embodiments, the variation of one or more portions of interest of a user or control object can correspond to a variation of one or more attributes (e.g., position, motion, appearance, surface patterns) of a user's hand or finger(s) 113, points of interest on the hand, a facial portion, etc., or other control objects (e.g., styli, tools), and so on (or some combination thereof) that is detectable by, or directed at, but otherwise occurs independently of the operation of the machine sensory and control system. Thus, for example, the system may be configurable to “observe” ordinary user locomotion (e.g., motion, translation, expression, flexing, deformation, and so on), locomotion directed at controlling one or more machines (e.g., gesturing, intentionally system-directed facial contortion, and so forth), and/or attributes thereof (e.g., rigidity, deformation, fingerprints, veins, pulse rates, and/or other biometric parameters); see, e.g., U.S. Provisional Patent Application Ser. No. 61/952,843 (filed on Mar. 13, 2014), the entire disclosure of which is hereby incorporated by reference. In one embodiment, the system provides for detecting that some variation(s) in one or more portions of interest (e.g., fingers, fingertips, or other control surface portions) of a user has occurred, for determining that an interaction with one or more machines corresponds to the variation(s), for determining whether the interaction should occur, and, if so, for at least one of initiating, conducting, continuing, discontinuing, and/or modifying the interaction (and/or a corresponding or related interaction).
As depicted, the light source 502 may include a plurality of individually controllable light-emitting devices 520, 522, 524, 526, 528 (such as, e.g., LEDs), disposed, e.g., on a semispherical surface 530. Each individual light-emitting device defines an emission point, and collectively, the light-emitting devices of the light source define an emission region. The light-emitting devices 520, 522, 524, 526, 528 may be powered by a dedicated driver circuit 514, or, alternatively or in addition, via a network link directly by the controller 506. The controller 106 may set the drive currents to alter the activation states of these devices 520, 522, 524, 526, 528 (e.g., turn on and off, vary intensity, etc.) at periodic (or other) intervals, e.g., cycling through them in various orderings according to a scan pattern to emit light in different primary directions (indicated in
With reference again to
The sensor array 508 and sensor-data processing facility 512 can be operated to capture and analyze data frames at a rate that temporally resolves the discrete phases of the light source 502. For example, using a frame-based read-out architecture, the sensor array 508 can acquire data, for the depicted embodiment, at five frames per emission cycle, such that each data frame corresponds to one of the states within the emission cycle. The sensor array 508 can be synchronized (broadly understood) with the light source 502, e.g., based on a synchronization signal received from the controller 506 or a signal from a separate timer fed to both the controller 506 and the sensor array 508, such that each data frame can be associated with a direction cc of the illuminating emission. Synchronization can comprise acquisition of a data frame occurring substantially contemporaneously with the activation of one or more light sources in a particular state forming an emission of light, or at a known period of time thereafter. In embodiments, the sensor array can be read at a rate above or below the rate of change in the state of the light source. In one embodiment, the frame rate is read at a rate above the rate at which the light source state changes, which prevents a decrease in the angular resolution of the sweep because a single frame does not, in this case, integrate multiple states of the light source.
In one embodiment, sensor array 508 further comprises an imaging optic 542, (e.g., a lens, image-directing film, liquid or variable lenses, other optically active material, or combinations thereof) to focus light onto the sensor 540. Again with reference to
In some embodiments, sensor array 508 comprises a micro-electro-mechanical system (MEMS) camera. The MEMS camera can scan (e.g., by raster-scan, or other scan pattern) the region of interest using a scanning mirror in conjunction with a single photodiode (or other light-sensing device). Light striking the scanning mirror of the MEMS camera from different directions is captured at different times during a scan. The scanning mirror directs the captured light to the photodiode which converts the light into a signal representing the region scanned. In an embodiment, analysis of the signal can provide blobs corresponding to objects in the region of interest captured by the system. In some embodiments, the scanning mirror is controlled based at least in part upon control information provided by a secondary imaging or sensory system. For example, a first imaging can provide one or more portions of the region of interest to which the scanning mirror is directed to conduct a more refined scanning. Of course, other image recognition techniques in addition to, or instead of, blob tracking are readily provided for by embodiments. In some embodiments, the MEMS camera scans the region of interest at a rate much faster than the light source changes state, e.g., once, twice and so forth for each discrete direction of the illuminating emission, thereby enabling the scan to provide substantially the same information as a complete image frame acquired by a conventional camera.
In embodiments, location information for an object (or a particular surface region thereof) can be determined in part based on the state (e.g., temporally changing direction, composition, and so forth) of the light that strikes the object (or the particular surface region) and produces a reflection that can be detected by the sensor array 508. As illustrated in
Although depicted schematically in
When the illumination of the region of interest by the light source 502 significantly exceeds any illumination by ambient light, a reflection peak may be determined, e.g., directly within the time-domain intensity signal captured by the sensor for each pixel. Further, to increase the signal-to-noise ratio (i.e., the intensity ratio between light originating from the light source 502 and ambient light), the frequencies to which the sensor array 508 is sensitive can be tailored to the emission frequencies of the light source 502, e.g., by selecting a sensor material that absorbs primarily in that range, or by equipping the sensor with a suitable color filter that strongly absorbs frequencies other than those emitted by the light source 502. Typically, however, the signal is filtered to extract signal components that occur with the scan frequency. This can be accomplished in several ways, depending on the type of sensor array 508 and image-processing facility 512 that is employed. For example, if sensor array 508 comprises a conventional camera read out frame by frame to a general-purpose computer for image-processing, the computer can apply a discrete Fourier transform to corresponding pixels of a time series of image frames that spans multiple emission cycles (e.g., using any of the well-known fast Fourier transform (FFT) algorithms), resulting in a complex-valued frequency-domain intensity signal for each pixel. The peak of this signal will occur at the scan frequency for all pixels, but the associated phase will vary between pixels, depending on the phase within the emission cycle at which the pixel receives illumination.
In an embodiment, custom read-out circuitry can be employed, enabling the output signal of each pixel to be analyzed with an analog or digital phase detector, for example, that is driven by a reference signal whose frequency equals the scan frequency of the light source 502; the reference signal may be provided to the circuit, e.g., by the controller 506 of the light source. Suitable phase detectors are well-known to those of skill in the art, and can be implemented without undue experimentation. If a type-II phase detector is used, the output is a constant voltage proportional to the phase difference between the reference signal and the measured signal (of the same frequency). More detail on phase-detector circuits is available in the literature, e.g., in Wolaver, Dan H. (1991), Phase-Locked Loop Circuit Design, Prentice Hall, ISBN 0-13-662743-9. In some embodiments, discriminating between reflection signals and background light and/or identifying reflection peaks comprises some form of thresholding, (e.g., based on signal amplitude or intensity). Thresholding can be implemented in software, hardware, or a combination of both. In some embodiments, the detector is dormant until a reflection signal is detected; i.e., signal processing is triggered only upon detection of a threshold amount or intensity of light.
In the embodiments described above, the illumination is emitted in different directions at different times (or phases) within an emission cycle. Accordingly, for a detected reflection signal, the corresponding direction of the illumination can be determined from the point in the scan pattern ordering that light is emitted at the time of detection. In alternative embodiments, illumination can be emitted simultaneously in multiple directions from multiple sources, and the various emissions can be pulsed at different frequencies to facilitate discrimination between the different directions. For example, with reference to
The depth of an object 510 (or a surface point thereof) within the monitored region 504 may be determined by triangulation from the direction of the illumination that strikes the object 510 and the direction of the reflected light that is captured by the sensor array 508, the former being inferable from the time at which the light is received (e.g., the acquisition time, within the emission cycle, of the particular frame that captures the reflection) or, alternatively, the frequency of the detected signal, and the latter being inferable from the position of the object within the image (or the orientation of the scanning mirror in an embodiment with a MEMS camera). This is conceptually illustrated in
y=d/(tan(α)+tan(β))
For an extended object or multiple objects, the above analysis can be repeated for each such reflection to determine associated depths of the object(s). In some embodiments, a depth value is determined for each pixel in the image.
In the embodiment depicted in
Of course, the common intersection point of the emissions travelling in different directions serves merely computational convenience. Depth information can, in principle, be derived for any arrangement of light-emitting devices as long as their positions and orientations relative to each other and relative to the camera are known; the particular arrangement may, however, affect the computational complexity (e.g., in terms of the number of equations to be solved) of the depth determination. For example, a defined, fixed geometric relationship between the light-emitting devices of the light source can be achieved by integrating them with, mounting them on, or otherwise attaching them to a common rigid structure, e.g., made of plastic, metal, or any other suitable rigid material.
In some embodiments, a fixed geometric relationship also exists between the light source and the camera (or other light detector). For instance, as shown in
Alternatively, in some embodiments, the light source and light detector are movable relative to each other, either arbitrarily or consistently with one or more well-defined degrees of freedom. For example, the light source and detector may be integrated into a flexible or bendable pad or other structure, which fixes their distance along the surface of that structure, but allows their relative orientation and free-space distance to change. The information deficit arising from such unknown parameters of the geometric arrangement may be cured by using multiple sweeping light sources (i.e., multiple directed light sources with variable emission directions) and/or multiple detectors that, collectively, enable solving for the unknown parameters along with the desired depth information associated with the monitored region and/or objects. Embodiments include: (1) a photo-detector embedded in a device with emitters; (2) a photo-detector embedded in a second device with emitters directed to a photo-detector embedded in a first device; (3) a photo-detector separate unit from all emitters; (4) a photo-detector fixed to an object being tracked; (5) photo-detector(s) and emitter(s) can be implemented together as vcsels, such as for example the SPIE Vol 4652 Chip Scale Integration by Vixar, a company located at 2950 Xenium Lane, Suite 104, Plymouth, Minn.; and (6) other configurations including combinations of the described embodiments. Example layouts of emitters are illustrated by
The depth resolution that can be achieved with systems in accordance herewith can vary with the angular resolution of the scan. With light sources that emit light in a finite number of discrete principle directions (such as the light source 502 depicted in
In some embodiments, the individual light-emitting devices are operated such that their respective emissions overlap not only spatially, but also temporally. For example, the light emitters may be turned on and off gradually (e.g., by varying their respective drive currents along a continuum), with each emitter being activated before its predecessor in the cycle is completely extinguished to provide a “cross-fade”; an exemplary control scheme is illustrated in
The temporal overlap between two adjacent light emitters may result, depending on the extent of spatial overlap between their emissions, in a bimodal angular distribution of the emitted light with varying relative magnitudes of the two peaks (which lie along the primary directions), or in a single peak that shifts from the primary direction of the first emission to the primary direction of the second emission. If the light emitters are turned on in the order in which they are arranged (e.g., from left to right or from right to left) they effectively create a continuous sweep, as the angle at which the intensity peaks varies continuously with time from the first emitter to the last emitter. By exploiting varying and overlapping intensity levels in this manner, the angular resolution of the scan can be increased in embodiments beyond that provided inherently by the different primary directions associated with the individual light emitters. In an embodiment, filters can be employed in conjunction with emitters of different characteristics (e.g., frequency, wavelength, polarization, phase, angular frequency, etc.) to provide improved discrimination between overlapping firing emitters.
Of course, the intensity of the light emitters need not necessarily vary along a continuum. Instead, each light emitter may step through a series of discrete illumination settings. The illumination of objects within the region of interest by different emitters can overlap in time (“cross-fade”) such that, while one light emitter is still illuminated, the next one may begin illumination (e.g., at a low dimming setting). In some embodiments, three or more light emitters are illuminated concurrently at different settings, but, in other embodiments, only one light emitter is configured at the maximum setting at any given time. Some embodiments can vary overall angular resolution and/or accuracy achieved by the system 100, at least in part, by varying the number of discrete dimming levels.
In some embodiments, a continuous sweep is achieved with a light source that includes a rotating or otherwise moving light-emitting device. As shown in
Further, instead of moving (e.g., rotating) the light-emitting device itself, a moving light source may utilize a moving deflecting optic in conjunction with a stationary light emitter. In various embodiments, illustrated in
Yet another approach to generating a continuously moving illumination involves the use of a moving screen in front of a light-emitting device that emits over a substantial spatial angle (or, in some embodiments, isotropically in many directions);
In some embodiments providing a spatially continuous sweep across the region of interest (whether implemented by a moving light source or by a number of discrete stationary emitters with gradually varying and temporally overlapping intensity), the angular resolution of the scan, and thus the depth resolution, depends on the temporal resolution of image acquisition, i.e., the rate at which information is read from the camera. For conventional cameras, the frame rate can often be increased at the cost of decreasing the spatial resolution; for example, by reading out only every other pixel, the frame rate can be doubled. In some embodiments, the pixel-read-out density and frame rate are set such that the lateral and depth resolution achieved by the system are approximately the same.
In some embodiments in which relatively low or moderate scan rates, low or moderate angular resolutions of the scan (as determined by the density of different directions that light can be emitted or the read-out rate of the camera, or both or other limiting factors) are employed, and having short or medium distances between the object of interest, the light source and detector, the emission of light in a certain primary direction and the detection of its reflection by the detector can be considered to occur practically simultaneously, i.e., before the direction changes and/or within the same frame. Consequently, the travel time, or time of flight, of light from the source to the object and then to the detector can be neglected in these cases. For example, if the object is no more than one hundred meters away from the light source and detector, the time of flight is less than a microsecond. Accordingly, as long as emissions of light having different directions are separated in time by more than, say, a microsecond, the reflection can, for practical purposes, be considered as received instantaneously. In some embodiments contemplating higher scan rates and angular resolution and/or larger distances, however, the time of flight can be taken into consideration to accurately determine the emission direction that corresponds to a particular reflection signal from the time of receipt of that signal. For instance, if the emission direction changes, and a new image frame is acquired, every nanosecond, a total travel distance of only ten meters results in a shift of 33 frames between emission of the light and capture of the reflection. Thus, in order to accurately determine the position of the object, a reflection received by the detector should be associated with the emission direction 33 frames (or 33 ns) prior. A synching event, (e.g., pause in scan, burst of energy in scan by activating all, most, many emitters contemporaneously, etc.) can be used to synch up emitter scan cycle and detector scan cycle. In one embodiment, illustrated by
Of course, the time period needed for energy emitted to return is typically not known a priori in embodiments in which the distance of the object from the light source and detector is the very parameter to be measured. In some embodiments, this problem is addressed by determining the distance iteratively: in a first iteration, the position of the object, and thus its distance from the source and detector, may be determined based on the assumption that the time of flight is zero. The distance thus determined is then used to compute a round-trip travel time adjustment, determine a corrected emission direction, and re-compute the object position. This process may be repeated for a fixed number of iterations, or until a positional accuracy is achieved or some other convergence criterion is satisfied; in some embodiments, one or two iterations suffice for the desired accuracy of the positional measurement.
In the above discussion, the operation of the described embodiments is, for ease of explanation, illustrated for two-dimensional space; the disclosed technology is, however, not limited to two dimensions. Other embodiments incorporating the principles discussed herein to three dimensions will be readily apparent to those of skill in the art. For example, while
In an embodiment, an intensity threshold may be used to define the emission diameter as the full width of the emission portion that covers intensities down to the threshold value (e.g., down to half the maximum intensity). Thereby, embodiments can provide the ability to accommodate situations wherein the emission intensity falls off on one or more sides of a “peak” defining a horizontal scan plane (e.g., according to a Gaussian or similar vertical intensity distribution). The light practically sweeps a three-dimensional slice of a thickness corresponding to that diameter. To expand the spatial volume covered by the scan, the light source 502 may be equipped with means for deliberately increasing the vertical emission diameter and/or divergence, such as a cylindrical lens or other diverging optic, and/or with means for narrowing the horizontal divergence without affecting the vertical divergence, such as a vertical slot.
In alternative embodiments, the monitored region is expanded, or the accuracy of positional determinations therein is increased, by utilizing multiple intersecting or parallel scan planes, or by scanning a three-dimensional spatial volume with a beam whose primary direction can be varied both azimuthally and attitudinally.
Various embodiments of systems for determining distance, depth, or other positional information associated with objects have heretofore been described. As will be readily appreciated by those of skill in the art, the performance of the various systems—in terms of accuracy and precision or resolution of the positional determinations—varies greatly, depending on a number of system parameters including, but not limited to, the type (e.g., discrete vs. continuous) and scan rate of the light source, the number of discrete light-emitting devices (if applicable), the beam divergence, the existence and/or extent of spatial and/or temporal overlap of emissions of different sources, the read-out scheme and rate of the camera, the spatial resolution of the camera, and/or the type of data analysis. Some embodiments can determine depth within approximately millimeters or micrometers of accuracy; other embodiments may determine positional information within approximately centimeters of accuracy. The disclosed technology is, however, not limited to any particular accuracy (or other performance parameter), and certain attributes of the disclosed technology may be adjusted to increase or decrease accuracy and/or performance, e.g., as applications of the disclosed technology require. For example, in embodiments that utilize light sources with multiple light-emitting devices generating emissions in a finite number of discrete directions, a coarse scan can be achieved by skipping some light sources when situations call for less accuracy, and a more accurate, fine-grained scan can be achieved by operating the light source with a larger number of light-emitting devices. In some embodiments, a coarse scan of an entire field of view is conducted to locate one or more objects, and then followed by a comparatively fine-grained scan limited to a portion of the field of view in which the object has been located. The fine-grained scan may serve to identify detailed features of the object(s), thereby enabling different objects (e.g., hands of different human users, different pets walking across the field of view, etc.) to be distinguished.
Further, while certain embodiments described heretofore utilize a camera that provides one- or two-dimensional frames imaging light reflected from objects of a region of interest, which can be supplemented with depth information employing the methods described above, certain alternative embodiments do not require the use of a multi-element camera, but can localize objects using only a single photo-sensitive element (or multiple individual elements in different locations) in conjunction with a directed light source with variable beam direction. The light source may scan a spatial region according to a suitable scan pattern. For instance, the region may be divided into a number of subregions (e.g., four quadrants), which are then sequentially illuminated. When the illuminating light strikes an object, a reflection signal is detected by the light-sensitive element. The time of receipt of the reflection signal allows an inference of the direction of the illuminating emission and, thus, of the subregion in which the reflecting object is located. (Alternatively, multiple illuminating emissions having different properties, e.g., different color, may be used simultaneously and distinguished using suitable filters with the detector(s).) Multiple light sources and detectors may be used to scan the region of interest along different planes so as to provide three-dimensional information. For example, a cubic volume may be scanned along two perpendicular planes, each divided into four quadrants. Localizing an object in one of the four quadrants for both scans allows identifying in which one of eight sub-cubes the objects is located. As will be apparent to one of skill in the art, the spatial resolution of object localization achieved in this manner corresponds directly to the spatial resolution of the scan pattern; the more subregions there are, the more precise is the determined object location.
In embodiments that utilize multiple light sources, the light emanating therefrom may be distinguished based on its spectral properties (color, frequency, wavelength), intensity, polarization, the (angular) frequency or repetition rate of the scan pattern, the frequency of a binary flash pattern, a temporal intensity modulation pattern, or some other optical property or pattern. For example, if two light sources scan the region of interest periodically, but each at its own repetition rate, a detector may Fourier transform the overall signal it receives to identify peaks at two frequencies corresponding to the two repetition rates. Similarly, if two light sources flash at different frequencies, a Fourier transform and/or suitable frequency filters facilitate discriminating between them and/or extracting a signal corresponding to one or the other light source. Staged filtering allows first extracting the signal from a particular light source and then (following demodulation) extracting a signal at the scan frequency (i.e., repetition rate). Alternatively or additionally, if the different light sources emit different colors or polarizations, the detectors may be equipped with suitable spectral or polarization filters to differentiate between signals from the different sources. An exemplary embodiment is illustrated in
Alternatively, to ensure the continuous detection of the reflected light, the object of interest may be equipped with a reflector that reflects light back into the direction it came from, with minimal scattering. Various types of retro-reflectors are well-known to those of skill in the art; one example is a corner reflector, which includes three mutually perpendicular mirror surfaces arranged like three interior walls of a cube that have a common corner point. In retro-reflector embodiments, the reflected light can be captured by a light detector that is co-located with the light source. For purposes hereof, the detector is co-located with the light source if it is sufficiently close to the light source to intercept the reflected light, i.e., if its distance from the optical axis is smaller than the beam-profile radius of the reflected beam at the light source. (The beam radius may be defined, e.g., based on the maximum allowable intensity fall-off from the central peak intensity, and this maximum allowable fall-off may, in turn, depend on the sensitivity of the detector). In general, the allowable distance of the detector from the light source is the greater, the more divergent the beam is and the more distant the object of interest is. The light detector may be a single photodiode, phototransistor, photovoltaic cells, photoresistor or other kind of photo-sensing device, or an array or irregular arrangement of multiple such devices. In some embodiments, multiple light-sensing cells are arranged in a ring around the light source to capture a large portion of the reflected light. Importantly, since the reflection of interest comes, at any point in time, only from one direction (which is the direction of the illuminating beam), the sensor need not resolve different directions of incoming light; consequently, there is no need for a focusing optic or for a pixel-wise read-out of the sensor. Instead, to the extent the detector comprises more than one light sensors, the detected light is integrated over all of the sensors to yield an aggregate signal. (Of course, this does not exclude the use of a regular camera with a pixelated sensor and lens.)
If the movement of the object 1304 is confined to a known trajectory (e.g., by means of rails), the intersection of the measured direction with that trajectory uniquely determines the position of the object. Otherwise, additional information may be obtained from a second light-source/detector pair, hereinafter referred to as a “scanner.” For instance, as shown in
In some embodiments employing specular-reflection techniques, the roles of the scanner and the retro-reflector are reversed, and one or more retro-reflectors are fixed in space to serve as reference locations for a moving object equipped with a scanner. In two dimensions, three retro-reflectors 1340 at known locations suffice to uniquely determine the location and/or orientation of the object 1342 from measurements of the three angles γ1, γ2, γ3 enclosed between the lines of sight connecting the object 1342 to respective pairs of retro-reflectors 1340, as illustrated in
In some embodiments, time of flight techniques or Doppler techniques can be used in conjunction with the techniques described herein. For example, during an initial phase, the light source may be controlled to emit, for a number of emission cycles, only one pulse in one direction per emission cycle, allowing a determination of the delay between the time of emission and the time of receipt of any corresponding reflection. This procedure may be repeated for multiple beam directions until a reflection signal is detected.
In embodiments where the light source sends out discrete pulses, and the pulse rate and dimensions of the monitored space are such that the reflection of each pulse is detected before the next pulse is emitted, allowing each image frame to be associated straightforwardly with the direction of the illuminating beam, time-of-flight measurements may be used to supplement the triangulation-based depth/distance determination. For example, if the camera is read out much faster than the illuminating beam changes direction, i.e., a sequence of multiple images is acquired for each pulse, the time delay between the emission of the pulse and the receipt of the reflection can be inferred readily from the number of the image within the sequence that captures the reflection.
Furthermore, at significantly higher camera read-out rates, slight time-of-flight differences between pulses from different light emitters reflected by the same object may be resolved; such time-of-flight differences may result from slightly different distances between the various emitters and the object. For instance, two light-emitting devices may emit pulses of light at t=10 ns and t=11 ns, respectively. The first pulse may arrive at the camera sensor at t=10.5 ns while the second pulse may arrive at t=11.6 ns, revealing that the travel time of light from the second emitter is 0.1 ns longer (corresponding to an additional distance of 3 cm). For certain advantageous geometric arrangements of the light emitters, such as the one depicted in
The various embodiments described herein generally utilize some type of control and/or computational facility (hereinafter “computer”) for operating the light source and detector and analyzing the captured signals or images. This computer may be provided in various form factors, and may be implemented in one or more dedicated, application-specific devices (e.g., a DSP or ASIC) designed or selected for use with the light source and/or detector, or integrated into another, stand-alone computing device (such as a personal computer, tablet computer, or a smart phone), depending on the application context. In one embodiment, some or all of the functionality of the computer is integrated into the light source (e.g., into the support structure onto which the light-emitting devices are mounted) and/or incorporated into or affixed to the detector. The computer may include digital circuitry (e.g., a computer processor and memory) and/or analog circuitry (e.g., an analog phase detector).
The memory 1404 may be used to store instructions to be executed by processor 1402 as well as input and/or output data associated with execution of the instructions. These instructions, illustrated as a group of modules, control the operation of the processor 1402 and its interaction with the other hardware components. Typically, an operating system 1410 directs the execution of low-level, basic system functions such as memory allocation, file management, and operation of mass storage devices. The operating system may be or include a variety of operating systems, such as WINDOWS, LINUX, OS/X, iOS, Android or any other type of operating system. At a higher level, the memory 1004 may store control modules 1412, 1414 for operating the light source and the camera (or other detector), an image-analysis module 1416 for analyzing the image data received from the detector (e.g., to determine the intensity maximum of the time-varying signal for each pixel, to identify objects of interest and determine the associated direction of the incident beam, etc.), and a triangulation module 1418 that computes depth and/or distance values based on the measured image data and the corresponding control state of the light source. In general, the instructions may be implemented in any programming language, including, for example, C, C++, JAVA, Fortran, Basic, Pascal, or low-level assembler languages.
Embodiments of the disclosed technology may be used to map out a room or similarly sized area in order to determine its dimensions and/or precisely locate room walls as well as objects, people, or other things in the room. This information may be used by a computer, television, or other device or machine in the room to improve the experience of a user of the device by, for example, allowing the user to interact with the device based on the room dimensions. The device may adjust a property of its output (e.g., a sound level, sound distribution, brightness, or user-interface perspective) based on objects in the room or the position of the user. Further embodiments can be used to track the motion of objects in a field of view, optionally in conjunction with other mobile-tracking systems. Object tracking may be employed, for example, to recognize gestures or to allow the user to interact with a computationally rendered environment; see, e.g., U.S. Patent Application Ser. No. 61/752,725 (filed on Jan. 15, 2013) and Ser. No. 13/742,953 (filed on Jan. 16, 2013), the entire disclosures of which are hereby incorporated by reference.
For example and with reference to
The model refiner 1606 may update one or more models 1608 (or portions thereof) from sensory information (e.g., images, scans, other sensory-perceptible phenomena) and environmental information (i.e., context, noise, and so forth); enabling a model analyzer 1610 to recognize object, position, motion, and/or attribute information that might be useful in controlling a machine. Model refiner 1606 employs an object library 1612 to manage objects including one or more models 1608 (e.g., of user portions (e.g., hand, face), other control objects (e.g., styli, tools) or the like) (see, e.g., the models depicted in
With the model-management module 1602, one or more object attributes may be determined based on the detected light. Object attributes may include (but are not limited to) the presence or absence of the object; positional attributes such as the (e.g., one-, two-, or three-dimensional) location and/or orientation of the object (or locations and/or orientations of various parts thereof); dynamic attributes characterizing translational, rotational, or other forms of motion of the object (e.g., one-, two-, or three-dimensional momentum or angular momentum); physical attributes (e.g., structural or mechanical attributes such as appearance, shape, structure, conformation, articulation, deformation, flow/dispersion (for liquids), elasticity); optical properties or, more generally, properties affecting or indicative of interaction with electromagnetic radiation of any wavelength (e.g., color, translucence, opaqueness, reflectivity, absorptivity); and/or even chemical properties (as inferred, e.g., from optical properties) (such as material properties and composition).
In some embodiments, scanning the region involves multiple emission cycles. During different emission cycles, the region may (but need not) be scanned in accordance with different scan patterns. For example, an initial emission cycle may serve to detect an object, and during a subsequent cycle, a more refined scan pattern may serve to capture surface detail about the object, determining positional information for at least a portion of the object, or determining other kinds of object attributes. Multiple sequential emission cycles may also serve to detect changes in any of the object attributes, e.g., due to motion or deformation; for such differential object-attribute determinations, the same or similar scan patterns are typically used throughout the cycles. The object attributes may be analyzed to identify a potential control surface of the object.
In an embodiment and with reference to
For example and according to one embodiment illustrated by
The ellipse equation (1) is solved for θ, subject to the constraints that: (1) (xC, yC) must lie on the centerline determined from the four tangents 1752A, 1752B, 1752C, 1752D (i.e., centerline 1756 of
A1x+B1y+D1=0
A2x+B2y+D2=0
A3x+B3y+D3=0
A4x+B4y+D4=0 (2)
Four column vectors r12, r23, r14 and r24 are obtained from the coefficients Ai, Bi and Di of equations (2) according to equations (3), in which the “\” operator denotes matrix left division, which is defined for a square matrix M and a column vector v such that M\v=r, where r is the column vector that satisfies Mr=v:
Four component vectors G and H are defined in equations (4) from the vectors of tangent coefficients A, B, and D and scalar quantities p and q, which are defined using the column vectors r12, r23, r14 and r24 from equations (3).
c1=(r13+r24)/2
c2=(r14+r23)/2
δ1=c21−c11
δ2=c22−c12
p=δ1/δ2
q=c11−c12*p
G=Ap+B (4)
H=Aq+D
Six scalar quantities vA2, vAB, vB2, wA2, wAB, and wB2 are defined by equation (5) in terms of the components of vectors G and H of equation (4).
Using the parameters defined in equations (1)-(5), solving for θ is accomplished by solving the eighth-degree polynomial equation (6) for t, where the coefficients Qi (for i=0 to 8) are defined as shown in equations (7)-(15).
0=Q8t8+Q7t7+Q6t6+Q5t5+Q4t4+Q3t3+Q2t2+Q1t+Q0 (6)
The parameters A1, B1, G1, H1, vA2, vAB, vB2, wA2, wAB, and wB2 used in equations (7)-(15) are defined as shown in equations (1)-(4). The parameter n is the assumed semi-major axis (in other words, a0). Once the real roots t are known, the possible values of θ are defined as θ=a tan(t).
In this exemplary embodiment, equations (6)-(15) have at most three real roots; thus, for any four tangent lines, there are at most three possible ellipses that are tangent to all four lines and that satisfy the a=a0 constraint. (In some instances, there may be fewer than three real roots.) For each real root θ, the corresponding values of (xC, yC) and b can be readily determined. Depending on the particular inputs, zero or more solutions will be obtained; for example, in some instances, three solutions can be obtained for a typical configuration of tangents. Each solution is completely characterized by the parameters {θ, a=a0, b, (xC, yC)}. Alternatively, or additionally, referring to
The model subcomponents 1702, 1703, 1754 can be scaled, sized, selected, rotated, translated, moved, or otherwise re-ordered to enable portions of the model corresponding to the virtual surface(s) to conform within the points 1750 in space. Model refiner 1606 employs a variation detector 1608 to substantially continuously determine differences between sensed information and predictive information and provide to model refiner 1606 a variance useful to adjust the model 1608 accordingly. Variation detector 1608 and model refiner 1606 are further enabled to correlate among model portions to preserve continuity with characteristic information of a corresponding object being modeled, continuity in motion, and/or continuity in deformation, conformation and/or torsional rotations.
In an embodiment, when the control object morphs, conforms, and/or translates, motion information reflecting such motion(s) is included in the observed information. Points in space can be recomputed based on the new observation information. The model subcomponents can be scaled, sized, selected, rotated, translated, moved, or otherwise re-ordered to enable portions of the model corresponding to the virtual surface(s) to conform to the set of points in space.
In an embodiment, motion(s) of the control object can be rigid transformations, in which case points on the virtual surface(s) remain at the same distance(s) from one another through the motion. Motion(s) can be non-rigid transformations, in which points on the virtual surface(s) can vary in distance(s) from one another during the motion. In an embodiment, observation information can be used to adjust (and/or recompute) predictive information, thereby enabling “tracking” the control object. In embodiments, the control object can be tracked by determining whether a rigid transformation or a non-rigid transformation occurs. In an embodiment, when a rigid transformation occurs, a transformation matrix is applied to each point of the model uniformly. Otherwise, when a non-rigid transformation occurs, an error indication can be determined, and an error-minimization technique such as described herein above can be applied. In an embodiment, rigid transformations and/or non-rigid transformations can be composed. One example composition embodiment includes applying a rigid transformation to predictive information. Then an error indication can be determined, and an error minimization technique such as described herein above can be applied. In an embodiment, determining a transformation can include calculating a rotation matrix that provides a reduced RMSD (root mean squared deviation) between two paired sets of points. One embodiment can include using Kabsch Algorithm to produce a rotation matrix. In an embodiment and by way of example, one or more force lines can be determined from one or more portions of a virtual surface.
CollisionsIn an embodiment, predictive information can include collision information concerning two or more capsuloids. By means of illustration, several possible fits of predicted information to observed information can be removed from consideration based upon a determination that these potential solutions would result in collisions of cap suloids. In an embodiment, a relationship between neighboring capsuloids, each having one or more attributes (e.g., determined minima and/or maxima of intersection angles between capsuloids) can be determined. In an embodiment, determining a relationship between a first capsuloid having a first set of attributes and a second capsuloid having a second set of attributes includes detecting and resolving conflicts between first attributes and second attributes. For example, a conflict can include a capsuloid having one type of angle value with a neighbor having a second type of angle value incompatible with the first type of angle value. Attempts to attach a capsuloid with a neighboring capsuloid having attributes such that the combination will exceed what is allowed in the observed—or to pair incompatible angles, lengths, shapes, or other such attributes—can be removed from the predicted information without further consideration.
Lean ModelIn an embodiment, predictive information can be artificially constrained to capsuloids positioned in a subset of the observed information—thereby enabling creation of a “lean model.” For example, as illustrated in 17A, capsuloid 1702 could be used to denote the portion of the observed without addition of capsuloids 1703. In a yet further embodiment, connections can be made using artificial constructs to link together capsuloids of a lean model. In another embodiment, the predictive information can be constrained to a subset of topological information about the observed information representing the control object to form a lean model. In an embodiment, a lean model can be associated with a full predictive model. The lean model (or topological information, or properties described above) can be extracted from the predictive model to form a constraint. Then, the constraint can be imposed on the predictive information, thereby enabling the predictive information to be constrained in one or more of behavior, shape, total (system) energy, structure, orientation, compression, shear, torsion, other properties, and/or combinations thereof.
OcclusionsIn an embodiment, the observed can include components reflecting portions of the control object which are occluded from view of the device (“occlusions” or “occluded components”). In one embodiment, the predictive information can be “fit” to the observed as described herein above with the additional constraint(s) that some total property of the predictive information (e.g., potential energy) be minimized or maximized (or driven to lower or higher value(s) through iteration or solution). Properties can be derived from nature, properties of the control object being viewed, others, and/or combinations thereof. In another embodiment, as shown by 17C and 17D, a deformation of the predictive information subcomponent 1760 can be allowed subject to an overall permitted value of compression, deformation, flexibility, others, and/or combinations thereof.
FrictionIn an embodiment, a “friction constraint” is applied on the model 1700. For example, if fingers of a hand being modeled are close together (in position or orientation), corresponding portions of the model will have more “friction”. The more friction a model subcomponent has in the model, the less the subcomponent moves in response to new observed information. Accordingly, the model is enabled to mimic the way portions of the hand that are physically close together move together, and move less overall.
With renewed reference to
A model analyzer 1610 determines that a reconstructed shape of a sensed object portion matches an object model in an object library, and interprets the reconstructed shape (and/or variations thereon) as user input. Model analyzer 1610 provides output in the form of object, position, motion, and attribute information to an interaction system 1630.
The interaction system 1630 includes an interaction-interpretation module 1632 that provides functionality to recognize command and other information from object, position, motion and attribute information obtained from variation system 1600. An interaction-interpretation module 1632 embodiment comprises a recognition engine 1634 to recognize command information such as command inputs (i.e., gestures and/or other command inputs (e.g., speech, and so forth)), related information (i.e., biometrics), environmental information (i.e., context, noise, and so forth) and other information discernable from the object, position, motion, and attribute information that might be useful in controlling a machine. Recognition engine 1634 employs gesture properties 1636 (e.g., path, velocity, acceleration, and so forth), control objects determined from the object, position, motion, and attribute information by an objects-of-interest determiner 1622 and optionally one or more virtual constructs 1638 (see e.g.,
A context determiner 1634 and object-of-interest determiner 1622 provide functionality to determine from the object, position, motion, and attribute information objects of interest (e.g., control objects, or other objects to be modeled and analyzed) and/or objects not of interest (e.g., background), based upon a detected context. For example, when the context is determined to be an identification context, a human face will be determined to be an object of interest to the system and will be determined to be a control object. On the other hand, when the context is determined to be a fingertip control context, the finger tips will be determined to be object(s) of interest and will be determined to be control objects whereas the user's face will be determined not to be an object of interest (i.e., background). Further, when the context is determined to be a stylus (or other tool) held in the fingers of the user, the tool tip will be determined to be object of interest and a control object whereas the user's fingertips might be determined not to be objects of interest (i.e., background). Background objects can be included in the environmental information provided to environmental filter 1620 of model-management module 1602.
A virtual environment manager 1646 provides creation, selection, modification, and de-selection of one or more virtual constructs 1800, 1820 (see
Further with reference to
A control module 1652 embodiment comprises a command engine 1654 to determine whether to issue command(s) and what command(s) to issue based upon the command information, related information, and other information discernable from the object, position, motion, and attribute information, as received from the interaction-interpretation module 1632. Command engine 1654 employs command/control repository 1656 (e.g., application commands, OS commands, commands to the machine sensory and control system, miscellaneous commands) and related information indicating context received from the interaction-interpretation module 1632 to determine one or more commands corresponding to the gestures, context, and so forth indicated by the command information. For example, engagement gestures can be mapped to one or more controls, or a control-less screen location, of a presentation device associated with a machine under control. Controls can include imbedded controls (e.g., sliders, buttons, and other control objects in an application), or environmental level controls (e.g., windowing controls, scrolls within a window, and other controls affecting the control environment). In embodiments, controls may be displayed using 2D presentations (e.g., a cursor, cross-hairs, icon, graphical representation of the control object, or other displayable object) on display screens and/or presented in 3D forms using holography, projectors, or other mechanisms for creating 3D presentations, or may be audible (e.g., mapped to sounds, or other mechanisms for conveying audible information) and/or touchable via haptic techniques.
Further, an authorization engine 1658 employs biometric profiles 1660 (e.g., users, identification information, privileges, and so forth) and biometric information received from the interaction-interpretation module 1632 to determine whether commands and/or controls determined by the command engine 1654 are authorized. A command builder 1662 and biometric profile builder 1660 provide functionality to define, build, and/or customize command/control repository 1652 and biometric profiles 1660.
Selected authorized commands are provided to machine(s) under control (i.e., “client”) via interface layer 1664. Commands/controls to the virtual environment (i.e., interaction control) are provided to virtual environment manager 1646. Commands/controls to the emission/detection systems (i.e., sensory control) are provided to emission module 102 and/or detection module 104 as appropriate.
For example, if the control object is a hand, analysis of the hand's shape and configuration (which may be the object attributes of interest) may determine the positions of the finger tips, which may constitute the relevant control surfaces. Furthermore, changes in control attributes of the identified control surface(s), such as positional changes of the fingertips, may be analyzed to determine whether they are indicative of control information. In hand-gesture-based machine control, for instance, this may serve to discriminate between deliberate motions intended to provide control input and hand jitter or other inevitable motions. Such discrimination may be based, e.g., on the scale and speed of motion, similarity of the motions to pre-defined motion patterns stored in a library, and/or consistency with deliberate motions as characterized using machine learning algorithms or other approaches.
Further, in some embodiments, as illustrated with reference to
To provide yet another concrete example of machine control in accordance herewith, in one embodiment, the system is used for security purposes and directs light emission at an entryway to a secure room or space. If, during the scan across the entryway, a reflection is detected, this may indicate the presence of a person seeking entrance. A second scan may then be conducted, according to a more refined scan pattern, to obtain more detailed information about the person. For example, a vein pattern of the person's hand may be identified. Vein patterns of authorized users may be stored in a database, allowing the system to check whether the detected person is authorized to enter the secure space. In other words, the control information in this case is authentication information. If a match of the detected vein pattern with a stored pattern is found, the system may respond by permitting the person to enter (e.g., by automatically opening a mechanical barrier, temporarily interrupting laser beams crossing the entryway, or by some other means). Certain embodiments of depth-sensing positioning and tracking systems in accordance herewith may also be mounted on automobiles or other mobile platforms to provide information as to the outside environment (e.g., the positions of other automobiles) to other systems within the platform. In general, embodiments of the disclosed technology may be employed in a variety of application areas, including, without limitation, consumer applications including interfaces for computer systems, laptops, tablets, television, game consoles, set top boxes, telephone devices and/or interfaces to other devices; medical applications including controlling devices for performing robotic surgery, medical imaging systems and applications such as CT, ultrasound, x-ray, MRI or the like, laboratory test and diagnostics systems and/or nuclear medicine devices and systems; prosthetics applications including interfaces to devices providing assistance to persons under handicap, disability, recovering from surgery, and/or other infirmity; defense applications including interfaces to aircraft operational controls, navigations systems control, on-board entertainment systems control and/or environmental systems control; automotive applications including interfaces to automobile operational systems control, navigation systems control, on-board entertainment systems control and/or environmental systems control; security applications including, monitoring secure areas for suspicious activity or unauthorized personnel; manufacturing and/or process applications including interfaces to assembly robots, automated test apparatus, work conveyance devices such as conveyors, and/or other factory floor systems and devices, genetic sequencing machines, semiconductor fabrication related machinery, chemical process machinery and/or the like; and/or combinations thereof.
Certain embodiments of the disclosed technology are described above. It is, however, expressly noted that the disclosed technology is not limited to those embodiments. Rather, variations, additions, modifications, and other implementations of what is described herein, as will occur to those of ordinary skill in the art, are deemed within the spirit and scope of the disclosed technology. For example, it may be appreciated that the techniques, devices, and systems described herein with reference to embodiments employing light waves may be equally applicable to methods and systems employing other types of radiant energy waves, such as acoustical energy or the like. Moreover, it is to be understood that the features of the various embodiments described herein are not mutually exclusive and can exist in various combinations and permutations, even if such combinations or permutations are not made express herein, without departing from the spirit and scope of the disclosed technology. Accordingly, the scope of the disclosed technology is not intended to be limited by the preceding illustrative description.
Claims
1. A method for obtaining positional information about an object within a region of interest, the method comprising:
- (a) activating sources directed to portions of the region of interest according to an ordering of points, such that each point in the ordering directs electromagnetic radiation of at least one source to one of the portions of the region of interest;
- (b) capturing a portion of the electromagnetic radiation reflected by an object;
- (c) forming a signal over time of at least one property of the captured electromagnetic radiation;
- (d) determining from the signal, at least one point in the ordering in which a dominant contributor to the captured electromagnetic radiation was activated;
- (e) determining an identity for the dominant contributor from the point in the ordering;
- (f) determining from the identity of the dominant contributor, a portion of the region of interest to which the electromagnetic radiation from the dominant contributor was directed; and
- (g) determining positional information for the object based at least in part upon the portion of the region of interest.
2. The method of claim 1, wherein capturing electromagnetic radiation reflected by the object comprises capturing data frames of the region with a pixelated sensor.
3. The method of claim 2, further comprising determining a direction of the reflected electromagnetic radiation relative to the sensor, the positional information further being based in part on the direction of the reflected electromagnetic radiation.
4. The method of claim 2, wherein the data frames are captured at a rate exceeding a scan rate associated with the illuminating electromagnetic radiation.
5. The method of claim 2, wherein determining a direction of the illuminating electromagnetic radiation associated with the electromagnetic radiation reflected by the object comprises determining an intensity peak across a temporal sequence of data frames for at least one pixel corresponding to the object within the data frame.
6. The method of claim 5, wherein determining the intensity peak comprises performing a Fourier transform on the temporal sequence of data frames for the at least one pixel.
7. The method of claim 1, wherein the electromagnetic radiation is retro-reflected by the object.
8. The method of claim 7, further comprising physically associating the object with a retro-reflector.
9. The method of claim 1, wherein the region is scanned periodically.
10. The method of claim 1, wherein the point in the ordering corresponding to capture of the reflected electromagnetic radiation corresponds to a phase within an emission cycle.
11. The method of claim 10, wherein determining the direction of the illuminating electromagnetic radiation associated with the electromagnetic radiation reflected by the object comprises determining the point in the cycle where the captured radiation is greatest.
12. The method of claim 11, wherein the point in the cycle is detected using a phase-detector circuit.
13. The method of claim 1, wherein scanning the region comprises sequentially operating a plurality of light-emitting devices emitting light to respective different portions of the region of interest.
14. The method of claim 13, further comprising operating only a subset of the plurality of light-emitting devices so as to reduce a resolution of the scan.
15. The method of claim 13, wherein sequentially operating the plurality of devices comprises sequentially causing the devices to emit pulses of light.
16. The method of claim 15, wherein successive pulses overlap temporally.
17. The method of claim 13, wherein sequentially operating the plurality of devices comprises driving each device according to a time-variable intensity having an intensity peak, the peaks occurring sequentially for the plurality of light-emitting devices.
18. The method of claim 18, wherein light emitted by the plurality of light-emitting devices overlap spatially and temporally, determining a direction of the illuminating light associated with the light reflected by the object comprising determining an effective primary direction of the overlapping illuminating light.
19. The method of claim 1, wherein scanning the region comprises moving a light-emitting device.
20. The method of claim 1, wherein scanning the region comprises moving at least one of a deflecting optic or a screen used in conjunction with a light-emitting device.
21. The method of claim 1, wherein the positional information comprises at least one of a distance, a depth, or a position of at least one of the object or a surface feature thereof.
22. The method of claim 1, wherein the positional information comprises a depth profile of the object.
23. The method of claim 1, wherein the positional information is determined further based at least in part on a geometric relationship between the source and the detector.
24. The method of claim 1, further comprising periodically repeating steps (a) through (c) so as to update the positional information to track movement of the object.
25. A system for obtaining positional information about an object within a region of interest, the system comprising:
- a directed light source with variable direction for scanning the region with an illuminating light;
- a detector for capturing light reflected by the object, and
- circuitry for (i) determining a time of capture of the reflected light and, based thereon, an associated direction of the illuminating light, and (ii) deriving the positional information about the object at least in part from the direction of the illuminating light.
26. The system of claim 25, wherein the directed light source comprises a plurality of light-emitting devices emitting light in a respective plurality of different primary directions.
27. The system of claim 26, wherein the directed light source further comprises a controller for sequentially operating the plurality of light-emitting devices.
28. The system of claim 26, wherein the light-emitting devices comprise light-emitting diodes.
29. The system of claim 26, wherein the light-emitting devices are arranged such that their respective primary directions intersect at a common center.
30. The system of claim 29, wherein the light-emitting devices are affixed to at least one of an arcuate surface, facets of a polygonal surface, or facets of a polyhedral surface.
31. The system of claim 28, wherein the plurality of light-emitting devices comprises a plurality of light emitters and a plurality of associated deflecting optics for deflecting light emitted by the emitters into the different primary directions.
32. The system of claim 27, wherein the directed light source comprises at least one moving light-emitting devices.
33. The system of claim 27, wherein the directed light source comprises at least one light-emitting device and at least one of a moving deflecting optic or a moving screen having a perforation therein.
34. The system of claim 27, wherein the detector comprises a camera for imaging the region.
35. The system of claim 34, wherein the camera comprises a lens and a sensor.
36. The system of claim 35, wherein the sensor comprises at least one of a CCD sensor or a MEMS sensor.
37. The system of claim 34, wherein the camera comprising a light-sensing device and a scanning mirror.
38. The system of claim 25, wherein the detector is co-located with the light source, the system further comprising a retro-reflector affixed to the object.
39. The system of claim 25, wherein the directed light source comprises a controller for varying the emission direction so as to periodically scan the region.
40. The system of claim 39, wherein the controller is synchronized with the circuitry.
41. The system of claim 39, wherein the circuitry causes the detector to be read out at a rate exceeding the scan rate of the directed light source.
42. The system of claim 39, wherein the circuitry comprises a phase-detector circuit for determining a phase within an emission cycle corresponding to a maximum intensity of the captured light.
43. The system of claim 39, wherein the circuitry comprises a digital processor configured for performing a Fourier transform on the captured light to thereby determine a phase within an emission cycle corresponding to a maximum intensity of the captured light.
44. The system of claim 25, further comprising a retro-reflector affixed to the object.
45. A method for determining depth associated with at least one object within a region of interest, the method comprising:
- scanning the region with an illuminating light beam having a temporally variable beam direction so as to illuminate the at least one object;
- acquiring a temporal sequence of images of the region while the region is being scanned, each image corresponding to an instantaneous direction of the illuminating light beam, at least one of the images capturing light reflected by the at least one illuminated object; and
- based at least in part on the instantaneous direction of the light beam in the at least one image capturing light reflected by the at least one object, determining a depth associated with the at least one object.
46. The method of claim 46, wherein multiple of the images acquired during a single scan of the region capture light reflected by the at least one object, the method comprising determining a depth profile of the at least one object based thereon.
47. A method for locating an object within a region, the method comprising:
- using a light source affixed to the object, scanning the region with an illuminating light beam having a temporally variable beam direction;
- using a sensor co-located with the light source, capturing reflections of the illuminating beam from a plurality of retro-reflectors fixedly positioned at known locations;
- based on times of capture of the reflections, determining associated directions of the illuminating light beam; and
- locating the object relative to the known locations of the retro-reflectors based at least in part on the directions of the illuminating light beam.
48. The method of claim 48, wherein the object is located in a two-dimensional region based on reflections from at least three retro-reflectors.
49. A device, affixed to an object of interest, for locating the object within a region relative to a plurality of retro-reflectors fixedly positioned at known locations, the device comprising:
- a light source for scanning the region with an illuminating light beam having a temporally variable beam direction;
- a sensor co-located with the light source for capturing reflections of the illuminating beam from the plurality of retro-reflectors;
- circuitry for determining, from times of capture of the reflections, directions of the illuminating light beam associated therewith, and for locating the object relative to the retro-reflectors based at least in part on the directions.
50. The device of claim 50, wherein the object is a mobile device.
51. A computer-implemented method for conducting machine control, the method comprising:
- scanning a region of space, the scanning including (i) directing at least one light emission from a vantage point of a vantage region to a region of space, (ii) detecting a reflectance of the at least one light emission, and (iii) determining that the detected reflectance indicates a presence of an object in the region of space;
- determining one or more object attributes of the object;
- analyzing the one or more object attributes to determine a potential control surface of the object;
- determining that control-surface attribute changes in the potential control surface indicate control information; and
- responding to the indicated control information according to response criteria.
52. A computer-implemented method according to claim 52, wherein the first light emission is directed to the region of space according to a first scan pattern, and wherein determining that the detected reflectance indicates a presence of an object comprises directing a second light emission to the region of space according to a second scan pattern.
53. A computer-implemented method according to claim 53, wherein directing the second emission comprises:
- scanning to a refined scan pattern.
54. A computer-implemented method according to claim 54, wherein scanning to the refined scan pattern includes capturing surface detail about the object.
55. A computer-implemented method according to claim 52, wherein determining object attributes of the object comprises:
- determining positional information of at least a portion of the object.
56. A computer-implemented method according to claim 56, wherein analyzing the object attributes to determine a potential control surface of the object comprises:
- determining based at least in part upon the positional information whether a portion of the object provides control information.
57. A computer-implemented method according to claim 57, wherein determining whether one or more control-surface attribute changes in the potential control surface indicate control information comprises:
- determining whether control-surface attribute changes in the potential control surface indicate an engagement gesture.
58. A computer-implemented method according to claim 58, wherein responding to the indicated control information according to response criteria comprises:
- determining a command to a user interface based at least in part upon the engagement gesture.
59. A computer-implemented method according to claim 52, wherein determining object attributes of the object comprises:
- determining dynamic information of at least a portion of the object.
60. A computer-implemented method according to claim 52, wherein determining object attributes of the object comprises:
- determining physical information of at least a portion of the object.
61. A computer-implemented method according to claim 52, wherein determining object attributes of the object comprises:
- determining at least one of optical or radio properties of at least a portion of the object.
62. A computer-implemented method according to claim 52, wherein determining object attributes of the object comprises:
- determining chemical properties of at least a portion of the object.
63. A computer-implemented method according to claim 1, wherein:
- directing the emission includes scanning across an entryway;
- determining that the detected reflectance indicates a presence includes detecting an object comprising a person seeking entrance, and conducting a second scanning to a refined scan pattern of the person;
- determining whether control-surface attribute changes in the potential control surface indicate control information includes determining whether the control-surface attribute changes indicate a vein pattern of a hand of the person; and
- responding to the indicated control information according to response criteria comprises permitting the person to enter when the vein pattern matches a stored vein pattern of an individual authorized to enter.
Type: Application
Filed: Mar 14, 2014
Publication Date: Sep 10, 2015
Applicant: Leap Motion, Inc. (San Francisco, CA)
Inventor: David Holz (San Francisco, CA)
Application Number: 14/212,485