The ideal human-computer interaction system should function robustly with as few constraints as those found in human-to-human interaction. One of the most effective means of interaction is through the behavior of the eye. Specifically, knowledge of the viewing direction and thus the area of regard offers insight into the user's intention and mental focus, and consequently this information is vital for the next generation of user interfaces [21][22]. Applications in this vein can be found in the fields of HCI, security, advertising, psychology, and many others [5][21].
As such, there has been intensive research on eye tracking and gaze estimation for the past 30 years [5]. However, with the conventional single-camera system, either the user must keep his or her head locked in place (so that it remains within the narrow field of view), the camera must be strapped to the subject's head (a common approach for eye detection), or some other marker (like a small infrared light) must be worn by the subject [2]. The resulting situation can be prodigiously inconvenient and uncomfortable for the user. Because of the unique reflective properties of the pupil to infrared (IR) light, some systems have opted to detect the face by first finding the eyes [2][10][11]. While robust to visible light conditions, these methods have issues with changes in head pose, reflections off glasses, and even decreased reflectivity of the retina from contact lenses [9]. An alternative approach is to use stereo cameras [2][11]; while robust, these systems generally require substantial calibration time. Some complex systems (like “smart rooms” [1]) require expensive and/or non-portable setups. Even existing, non-stereo, two-camera systems [16] often restrict the user to a preset location in the room.
The overwhelming majority of gaze estimation approaches rely on glints (the reflection of light off the cornea) to construct 2D or 3D gaze models [5]. Alternatively, eye gaze may be determined from the pupil or iris contours [18] using ellipse fitting approaches [3][15]. One can also leverage the estimated iris center directly and use its distance from some reference point (e.g., the eye corners) for gaze estimation [12][19]. Indeed, the entire eye region may be segmented into the iris, sclera (white of the eye), and the surrounding skin; the resulting regions can then be matched pixel-wise with 3D rendered eyeball models (with different parameters) [17][20]. However, different subjects, head pose changes, and lighting conditions could significantly diminish the quality of the segmentation [20].
U.S. Pat. No. 8,077,217 provides an eyeball parameter estimating device and method, for estimating, from a camera image, as eyeball parameters, an eyeball central position and an eyeball radius which are required to estimate a line of sight of a person in the camera image. An eyeball parameter estimating device includes: a head posture estimating unit for estimating, from a face image of a person photographed by a camera, position data corresponding to three degrees of freedom (x-, y-, z-axes) in a camera coordinate system, of an origin in a head coordinate system and rotation angle data corresponding to three degrees of freedom (x-, y-, z-axes) of a coordinate axis of the head coordinate system relative to a coordinate axis of the camera coordinate system, as head posture data in the camera coordinate system; a head coordinate system eyeball central position candidate setting unit for setting candidates of eyeball central position data in the head coordinate system based on coordinates of two feature points on an eyeball, which are preliminarily set in the head coordinate system; a camera coordinate system eyeball central position calculating unit for calculating an eyeball central position in the camera coordinate system based on the head posture data, the eyeball central position candidate data, and pupil central position data detected from the face image; and an eyeball parameter estimating unit for estimating an eyeball central position and an eyeball radius based on the eyeball central position in the camera coordinate system so as to minimize deviations of position data of a point of gaze, a pupil center, and an eyeball center from a straight line joining original positions of the three pieces of position data.
U.S. Pat. No. 7,306,337, expressly incorporated herein by reference, determines eye gaze parameters from eye gaze data, including analysis of a pupil-glint displacement vector from the center of the pupil image to the center of the glint in the image plane. The glint is a small bright spot near the pupil image resulting from a reflection of infrared light from a an infrared illuminator off the surface of the cornea.
U.S. Pat. Pub. 2011/0228975, expressly incorporated herein by reference, determines a point-of-gaze of a user in three dimensions, by presenting a three-dimensional scene to both eyes of the user; capturing image data including both eyes of the user; estimating line-of-sight vectors in a three-dimensional coordinate system for the user's eyes based on the image data; and determining the point-of-gaze in the three-dimensional coordinate system using the line-of-sight vectors. It is assumed that the line-of-sight vector originates from the center of the cornea estimated in space from image data. The image data may be processed to analyze multiple glints (Purkinje reflections) of each eye.
U.S. Pat. No. 6,659,611, expressly incorporated herein by reference, provides eye gaze tracking without calibrated cameras, direct measurements of specific users' eye geometries, or requiring the user to visually track a cursor traversing a known trajectory. One or more uncalibrated cameras imaging the user's eye and having on-axis lighting, capture images of a test pattern in real space as reflected from the user's cornea, which acts as a convex spherical mirror. Parameters required to define a mathematical mapping between real space and image space, including spherical and perspective transformations, are extracted, and subsequent images of objects reflected from the user's eye through the inverse of the mathematical mapping are used to determine a gaze vector and a point of regard.
U.S. Pat. No. 5,818,954 expressly incorporated herein by reference, provides a method that calculates a position of the center of the eyeball as a fixed displacement from an origin of a facial coordinate system established by detection of three points on the face, and computes a vector therefrom to the center of the pupil. The vector and the detected position of the pupil are used to determine the visual axis.
U.S. Pat. No. 7,963,652, expressly incorporated herein by reference, provides eye gaze tracking without camera calibration, eye geometry measurement, or tracking of a cursor image on a screen by the subject through a known trajectory. See also, U.S. Pat. No. 7,809,160, expressly incorporated herein by reference. One embodiment provides a method for tracking a user's eye gaze at a surface, object, or visual scene, comprising: providing an imaging device for acquiring images of at least one of the user's eves: modeling, measuring, estimating, and/or calibrating for the user's head position: providing one or more markers associated with the surface, object, or visual scene for producing corresponding glints or reflections in the user's eyes; analyzing the images to find said glints or reflections and/or the pupil: and determining eye gaze of the user upon a said one or more marker as indicative of the user's eye gaze at the surface, object, or visual scene.
One application of eye gaze tracking is in small or large surfaces, particularly large displays or projected wall or semi-transparent surfaces, including but not limited to LCD screens, computer screens, SMART boards, tabletop displays, projection screens of any type, plasma displays, televisions, any computing appliance, including phones, PDAs, and the like, and head-mounted and wearable displays and the like. In addition, any surface, including, for example, walls, tables, furniture, architectural ornaments, billboards, windows, semi-transparent screens, window displays, clothing racks, commercial displays, posters, stands, any commercial or other goods, clothing, car dashboards, car windows, and the like, may be the gaze target.
By augmenting any shopping display, such as, for example, computer or television screen-based, projected, static surface, objects, goods (e.g., clothing, furniture), with eye gaze determination, eye gaze behavior of subjects (i.e., shoppers) can be tracked for the purpose of registering whether individuals are interested in the goods on display. This can be used for evaluating the design or arrangement of advertisements or arrangements of goods, or for disclosing more information about products or objects to the subject. The following scenario illustrates this application. A clothes rack is augmented with one or more eye tracking cameras, and the clothes or hangers (or any other goods). Cameras detect which item the shopper is interested in by tracking the eye gaze of the shopper. According to one option, when the duration of an eye fixation on an object reaches a threshold, a projection unit displays more information about the goods. Alternatively, in response to a fixation, the subject may be addressed using a recorded message or synthesized computer voice associated with the object of interest, which acts as an automated sales assistant. Alternatively, information about user interest in an article or advertisement may be conveyed to a sales assistant or third party.
Interactive or non-interactive home appliances can be augmented using eye tracking, to determine the availability of users for communications with other people or devices. Subjects may direct the target of speech commands to the appliance, or initiate speech dialogue or other forms of disclosure by the appliance through establishing eye gaze fixation with the appliance.
Eye tracking may be incorporated into a gaming device, portable or otherwise, may provide extra channels of interaction for determining interest in embodied gaming characters. Characters or objects in games can then observe whether they are being looked at by the user and adjust their behavior accordingly, for example by avoiding being seen or by attracting user attention. Alternatively, characters or objects can respond verbally or nonverbally to fixations by the user, engaging the user in verbal, nonverbal, textual, graphical, or other forms of discourse. In the case of speech recognition agents or online human interlocutors, the discourse can be mutual. Alternatively, the technology can be used to allow gaming applications to make use of eye gaze information for any control purpose, such as moving on-screen objects with the eyes, or altering story disclosure or screen-play elements according to the viewing behavior of the user. In addition, any of the above may be incorporated into robotic pets, board games, and toys, which may operate interactively at any level.
By incorporating eye tracking into a television display or billboard (e.g., a screen, paper, or interactive display), broadcasters and/or advertisers can determine what (aspects of) advertisements are viewed by, and hence of interest to, a subject. Advertisers may use this information to focus their message on a particular subject or perceived interest of that subject, or to determine the cost per view of the advertisement, for example, but not limited to, cost per minute of product placements in television shows. For example, this method may be used to determine the amount of visual interest in an object or an advertisement, and that amount of interest used to determine a fee for display of the object or advertisement. The visual interest of a subject looking at the object or advertisement may be determined according to the correlation of the subject's optical axis with the object over a percentage of time that the object is on display. In addition, the method may be used to change the discourse with the television, or any appliance, by channeling user commands to the device or part of the display currently observed. In particular, keyboard or remote control commands can be routed to the appropriate application, window or device by looking at that device or window, or by looking at a screen or object that represents that device or window. In addition, TV content may be altered according to viewing patterns of the user, most notably by incorporating multiple scenarios that are played out according to the viewing behavior and visual interest of the user, for example, by telling a story from the point of view of the most popular character. Alternatively, characters in paintings or other forms of visual display may begin movement or engage in dialogue when receiving fixations from a subject user. Alternatively, viewing behavior may be used to determine what aspects of programs should be recorded, or to stop, mute or pause playback of a content source such as DVD and the like.
Eye tracking technology can be used to control the location, size, transparency, shape, or motion of visible notification dialogs on large or small screens according to viewing behavior of the user. In particular, on large screens the technology allows the establishment of peripheral vision boundaries of the user's eyes, ensuring that a window is placed in view. On small screens, notification windows can be placed out of the way of the user's foveal vision, and can be acknowledged and removed after the user has viewed them. In addition, the control of any hidden or visible cursor on a display can be used to communicate attention to underlying applications or systems. In addition, activation and zooming or resizing of focus windows, and the reorganization of windows on a display, can be implemented according to the viewing behavior of the user or the movement of the user in front of the display. The latter may be accomplished by allowing users to look at the subsequent focus window, after which a key is pressed to activate this window and make it the front window. This may incorporate zooming of the front window according to an elastic tiled windowing algorithm, or fisheye view zoom of the front window. In addition, the disclosing of attention of others for notes on a public display board, by modulating aspects of size, shape or color of displayed notes, may be accomplished according to the number of times they have been viewed.
Eye tracking can be used to make the content of a display visible only to the current user, by using eye fixations to position a gaze-contingent blurring lens, directional lens, or obstruction that projects the image at the fixation point of that user but not elsewhere. This results in a screen that can only be read by the current user, and not by any other onlooker. Alternatively, the state of the screen may be altered by, for example, but not limited to, darkening, wiping, or changing its contents. Further, visual or auditory notification may be provided upon detecting more than one pair of eyes looking at the display. This is particularly useful when computing devices are used in public, for private matters. Eye tracking may also be used to modulate transparency of surfaces, for example, but not limited to, cubicle walls, upon orientation or co-orientation of the eyes, face(s), or head(s) of a subject or subjects towards that surface.
Eye tracking may also be used in advanced hearing aids to provide aiming information for directional microphones or noise cancelling microphones.
Eye tracking may be incorporated invisibly and without restrictions into vehicles to control dashboard or instrument cluster operation, to alter lighting conditions of vehicle illumination or dashboard indicators and instruments, to reduce impact on visual attention. Displays (including projections on windows) may be altered according to viewing behavior, for example, to ensure that eyes remain focused on the road, or to direct the destination of speech commands to appliances or objects within or outside the vehicle. In addition, the detection of fatigue, the operation of vehicle navigation systems, entertainment systems, visual display units including video or televisions, the selection of channels on a radio or entertainment system, and the initiation and management of remote conversations may all be carried out using the invention, according to the visual attention of the user.
Eye tracking may be used for sensing attention in remote or same-place meetings, for editing recordings of such meetings, or for the purpose of detecting presence or initiating interactions with remote or co-present attendees, or for communicating attendee attention in order to optimize a turn taking process among several remote attendees.
Eye tracking may also be used for sensing user attention towards any mobile or portable computing device to determine when a user is paying attention to the visual information provided on the device. Audiovisual media played on the device may be paused or buffered automatically upon the user looking away from the device. The device may continue playing the buffered audiovisual stream whenever the user resumes looking at the device. For example, a mobile device may provide speed reading facilities. The device streams words across a display screen in a timed manner, allowing the user to read without producing fixations. When the user looks away, the stream of words is paused, and when the user looks back at the device, the stream of words continues.
Eye contact sensing objects provide context for action, and therefore a programmable system may employ eye tracking or gaze estimation to determine context. A display may be presented, optimized to present different available contexts, from which the user may select by simply looking. When there are multiple contexts, or hybrid contexts, the user may have a complex eye motion pattern which can be used to determine complex contexts.
See, U.S. Pat. Nos. 3,689,135; 4,075,657; 4,102,564; 4,145,122; 4,303,394; 4,641,349; 4,651,145; 4,702,575; 4,755,045; 4,836,670; 4,973,149; 4,975,969; 5,008,946; 5,016,282; 5,231,674; 5,287,437; 5,325,133; 5,331,149; 5,345,281; 5,360,971; 5,428,413; 5,471,542; 5,481,622; 5,583,795; 5,638,176; 5,649,061; 5,668,622; 5,726,916; 5,797,046; 5,805,167; 5,818,954; 5,898,423; 5,912,721; 5,926,251; 5,984,475; 5,991,085; 6,120,461; 6,152,563; 6,154,559; 6,163,336; 6,204,828; 6,215,898; 6,220,706; 6,243,076; 6,246,779; 6,299,307; 6,323,884; 6,369,952; 6,381,339; 6,393,136; 6,397,137; 6,456,737; 6,477,267; 6,478,425; 6,546,121; 6,568,809; 6,578,962; 6,603,504; 6,608,615; 6,634,749; 6,659,611; 6,659,611; 6,727,866; 6,753,847; 6,843,564; 6,853,854; 6,943,754; 6,989,754; 6,999,071; 7,040,759; 7,043,056; 7,076,118; 7,084,838; 7,090,348; 7,091,931; 7,138,997; 7,161,596; 7,190,825; 7,197,165; 7,239,293; 7,306,337; 7,307,609; 7,315,324; 7,324,085; 7,331,929; 7,345,664; 7,388,580; 7,391,887; 7,396,129; 7,401,920; 7,423,540; 7,428,001; 7,448,751; 7,460,940; 7,490,941; 7,501,995; 7,503,653; 7,520,614; 7,528,823; 7,538,746; 7,542,210; 7,554,541; 7,556,377; 7,567,702; 7,572,008; 7,583,252; 7,600,873; 7,620,216; 7,626,569; 7,633,493; 7,650,034; 7,665,845; 7,693,256; 7,701,441; 7,702,660; 7,703,921; 7,705,876; 7,706,575; 7,724,251; 7,731,360; 7,742,623; 7,753,523; 7,762,665; 7,766,479; 7,768,528; 7,787,009; 7,801,686; 7,809,160; 7,810,926; 7,815,507; 7,819,525; 7,834,912; 7,839,400; 7,857,452; 7,860,382; 7,862,172; 7,866,818; 7,869,848; 7,872,635; 7,880,739; 7,916,977; 7,925,077; 7,938,540; 7,948,451; 7,963,652; 7,970,179; 7,974,787; 7,983,733; 7,986,318; 7,999,844; 8,014,571; 8,020,993; 8,065,240; 8,069,125; 8,077,217; 8,077,914; 8,099,748; 8,100,532; 8,121,356; 8,130,260; 8,150,796; 8,154,781; 8,155,479; 8,170,293; 8,175,374; 8,195,593; 8,199,186; 8,219,438; U.S. Pub. App. Nos. 20030098954; 20030123027; 20040174496; 20040239509; 20050073136; 20050175218; 20050288564; 20060028400; 20060110008; 20060227103; 20080002262; 20080287821; 20090018407; 20090024050; 20090110245; 20090112616; 20090112617; 20090112620; 20090112621; 20090118593; 20090119154; 20090132275; 20090156907; 20090156955; 20090157323; 20090157481; 20090157482; 20090157625; 20090157660; 20090157751; 20090157813; 20090163777; 20090164131; 20090164132; 20090164302; 20090164401; 20090164403; 20090164458; 20090164503; 20090164549; 20090171164; 20090172540; 20090219484; 20090318773; 20100033333; 20100039617; 20100086200; 20100086221; 20100086278; 20100149073; 20100208205; 20100280372; 20100295774; 20110007275; 20110018903; 20110170065; 20110178784; 20110182472; 20110228975; 20120026276; 20120092618; 20120105486; 20120116559; 20120120498; 20120120499; 20120133889; 20120134548; 20120154633; 20120154920; 20120164613; and Foreign Patent Nos. JP1990224637; JP1995055941; JP2003015816; JP2004504684; JP2005230049; JP2006328548; JP2007055941; JP2007073273; WO2002009025; WO2004045399; WO2008069158, each of which is expressly incorporated herein by reference.
The ability to capture the direction the eyes point in while the subject is a distance away from the camera offers the potential for intuitive human-computer interfaces, allowing for a greater interactivity, more intelligent behavior, and increased flexibility. A system is provided that detects the face from a fixed, wide-angle camera, estimates a rough location for the eye region using an eye detector based on topographic features, and directs another active pan-tilt-zoom camera to focus in on this eye region. An eye gaze estimation approach is also provided for point-of-regard (PoG) tracking on a large viewing screen. To allow for greater head pose freedom, a calibration approach is provided to find the 3D eyeball location, eyeball radius, and fovea position. Moreover, both the iris center and iris contour points are mapped to the eyeball sphere (creating a 3D iris disk) to get the optical axis; the fovea is then rotated accordingly, and the final, visual axis gaze direction computed. This gaze estimation approach may be integrated into a two-camera system, permitting natural, non-intrusive, pose-invariant point of gaze (PoG) estimation in distance, and allowing user translational freedom without resorting to infrared or complex hardware setups such as stereo-cameras or “smart rooms.”
According to various embodiments of the invention, a system and method is provided that robustly locates the face from a wide-angle camera view (as well as a rough approximation of the eye positions) and uses this information to guide a pan-tilt-zoom camera to focus in on the eye area of the detected face. This allows the user translational freedom relative to the camera, and a simple adjustment of parameters also permits varied movement in depth freedom. The system differs from the majority of other systems in this vein in that we do not use infrared, stereo-cameras, specially-constructed hardware (like Noureddin et al. [10]), or specific room setups (i.e. “smart rooms”). This system and method are useful for gaze and PoG (Point-of-Regard) estimation.
To bypass the issue of the diminished accuracy of iris centers from visible light imagery while simultaneously avoiding the problems heir to the potential instability of iris contour extraction, both are leveraged to determine eye gaze direction with a 3D eyeball model. The 3D eyeball centers, radii, and fovea points are calculated through a unique calibration approach. During gaze estimation, both the estimated iris center and the iris contour points are mapped onto the eyeball sphere. After converting these points into vectors starting at the eyeball center, a least-squares approach (or other optimization scheme) may be used to find a vector that is at a known angle from the contour vectors while also being approximately in line with the center vector. The current position of the fovea is found, which is dependent on the rotation of the eye, a new iris center computed from the initial gaze vector, and the vector from the fovea to this new iris center used as the final gaze direction. This approach differs from the majority of previous techniques, in that the 2D contour pixels are mapped onto the known 3D eyeball; in contrast, most approaches in this vein project the 3D model into the 2D plane.
The aforementioned camera system is preferably integrated with the gaze and PoG (Point-of-Regard) estimation approach.
The process may comprise the following steps, in combination or sub-combination:
An image is captured, and a face detected.
Once the face is detected (or perhaps directly, without antecedent face detection), eye detection is performed, for example using the so-called topographic features of eyes. A pan-tilt-zoom camera may be directed at the approximate center of the two detected eye candidates, and the centroid tracked over a series of frames.
According to a preferred embodiment, the red channel of a color video image is analyzed, since the iris generally has very low red intensity values. The image (i.e., the red channel) is then searched for some particular feature or set of features, such as, “highlight positions” on the eye, which typically represent specular reflections off the iris. The image is analyzed to remove distracting points on glasses, by eliminating long, thin specular reflections. The histogram within the eye region is equalized to increase contrast. The position is refined using a circular template in a very small area around the initial estimate.
The user first looks into the camera center and then at a calibration point P whose 3D location is known. This gives 2D iris locations m1 and m2, respectively, which are then converted into normalized unit vectors A and B. Two points are sought: E (the eyeball center) along vector A; and E′ (the iris center) along vector B, such that: the distance between E and E′ is r (eyeball radius), and the vector between them points at P. The first calibration point is used to get the B vector. Once ta is obtained, A is scaled by this value and get a 3D eyeball center estimate for a given radius. For each eyeball estimate (and corresponding radius), the gaze estimation error across all calibration points is obtained. The estimate selected is the estimate with the smallest error. Of course, various optimization criteria can be used to select the gaze position. For example, if there are a limited number of options, the gaze position estimation may be selected based on a history, context, prediction (based on other factors) or statistics, in any combination or sub-combination thereof. Alternately, the system may provide user feedback and be adaptive based on the feedback.
The basic algorithm assumes that the eyeball center (E), the 3D iris center (E′), and the 3D gaze point (P) are all coplanar, which may not be true if the user's head moves during the calibration procedure. Thus, the vectors should be adjusted for head rotation and translation before performing the calibration calculations.
Due to the optical/visual axis offset as well as user error during calibration, a secondary, iterative refinement procedure should be performed. This procedure preferably encompasses a position/radius binary search, wherein the fovea position is calculated as intersection of original A vector with final eyeball sphere, and stored as an offset from eyeball center. The final 3D eyeball center is given as an offset from the 3D head point. The eyeballs are then translated/rotated with the head.
To get the iris contour points, the following algorithm is executed. A smaller search region around the iris position is defined, and the grayscale image blurred with a Gaussian filter. Gradient magnitudes and directions are then extracted.
Given a normalized 2D vector H that goes from the iris center estimate to the 2D eyeball center, shoot rays R, outwards around H (one ray per degree). For all pixels (within search region) along each ray, a score may be computed:
scorei,j=mi,j*(dot(H,Di,j)>0.5) (13)
where i is the ray index,
j is the pixel index,
mi,j is the gradient magnitude, and
Di,j is the normalized gradient direction vector (from dark to light pixels).
The highest scoring pixel along each ray is chosen as a potential iris contour point. Duplicate points (caused by overlapping rays) are removed, giving N′ iris contour points. To eliminate possible eyelid edges, only keep pixels with horizontal gradient angles (vertical edges); this gives us our final N iris contour points. The confidence value for contour is computed as N/N′.
The iris center and contours are detected, and converted to perspective vectors. These points are then mapped to the eyeball sphere.
The current eyeball center is subtracted and the vectors are normalized to ultimately get V (iris center) and all C, vectors (iris contours). The optical axis G is sought such that: 1) it is parallel to V, and 2) the dot product of G and each Ci is aveDot.
Thus, the following linear equations are solved:
Parameter aveDot is found by getting the average dot product of all C, vectors from the “look-into-camera” phase of calibration and an approximation of the optical axis (use intersection of iris center perspective ray with the eyeball)
To get the visual axis, the fovea offset is rotated based on the optical axis G. The optical axis is intersected with the eyeball sphere to get a new estimate for the 3D iris center, and take the normalized vector from the fovea to this new iris center as our final gaze direction. In order to perform screen mapping, the screen's 3D position, size, and orientation relative to the camera are determined or assumed to be known. Given a gaze starting point and vector, mapping is a simple ray-plane intersection process. The average position of the two eyeball centers is used as the starting point and the average of the two visual axis vectors as the gaze direction.
A two (multiple)-camera system may be provided that can detect the face and eyes and allows for translational movement freedom, without resorting to infrared light, stereo-camera setups, or other complex hardware solutions. Moreover, an eyeball center and fovea offset extraction procedure and gaze estimation approach may be employed, both of which are fully capable of dealing with head pose adjustments.
The screen may be located relative to the camera, and uses points on the screen itself for calibration. These points are adjusted for the rotation of the active camera during calibration.
The system obtain information about a subject's visual interest in an object or visual scene. For example, the subject may be a shopper and the visual scene may comprise items on display. The method may further comprise determining duration of point of gaze on an item; and disclosing information about the item when the duration of point of gaze exceeds a threshold duration. Information may be obtained about the visual interest of subjects for an object on display, such as a product or advertisement, and the information used to determine the cost of displaying that object or advertisement. The method may comprise determining whether the location of the point of gaze is on the item, and disclosing information about the item to the subject when the location of the gaze is or has been on the item; determining duration of point of gaze on an item, wherein disclosing depends on length of such duration; disclosing information about location and/or duration of point of gaze on an item to a third party; and/or using said information to determine a cost of displaying said item. Moving objects may be tracked by the subject's eye. The point of gaze of a user on an object may be identified, as a control signal to a mechanical device that moves the object. The object may, for example, move according to the user's gaze, or portions of the object, e.g., a robot, move based on the user's attention. The user control may be based on the point of gaze, time of gaze, gaze movement, dynamic gaze endpoints, dynamic gaze parameters (speed, acceleration, direction, etc.), etc. Further, the gaze of multiple concurrent users may be tracked, with control of one or more object or portions of objects in response to the multiple concurrent users. Gaze may be used to control a device or appliance, or to control a flow of information, or a relationship, between multiple devices. For example, the target device of a “universal” remote control may be determined based on a user's gaze direction.
Gaze may also be used to control a visual user interface, with a two or three dimensional space cursor following the gaze direction. Different gestures, e.g., hand, face or head, eye or eyelid, voice, may be used to control actions, depth ambiguity, and/or provide other spatial or non-spatial control inputs. The gestures may be received using the same optical system as the gaze, or through a different system. For example, a Microsoft Kinect or similar scene or motion capture device may be used to acquire physical gestures and audio inputs, which may be processed along with the eye gaze information. In a graphic user interface embodiment, the point of gaze or one or more users of a graphical user interface may be determined, and the appearance of information on the graphical user interface controlled in accordance therewith. In a hand-held communication device embodiment, one or more cameras facing the user may acquire gaze information, to perform user interface functions such as dialing, typing, smart-phone graphic user interface input, etc. Actions may be indicated special blinks or blink sequences, long duration stare, or non-eye gesture or input, such as manual or facial gesture, voice or audio, or the like.
According to the invention, a computer may be programmed to execute the method steps described herein. The invention may also be embodied as device or machine component that is used by a digital processing apparatus to execute the method steps described herein. The invention may be realized in a critical machine component that causes a digital processing apparatus to perform the steps herein. Further, the invention may be embodied by a computer program that is executed by a processor within a computer as a series of executable instructions. The instructions may reside in random access memory of a computer, or on a hard drive, optical drive of a computer, flash memory, or the like.
The complete system consists of five different stages: face detection, eye area detection (wide-angle view), camera control, iris detection (narrow-angle view), and gaze calibration/estimation (narrow-angle view). The first three are part of one program, while the last two are part of another; these two programs run on separate computers. According to one embodiment, an IEEE 1394 camera is used for the wide-angle view; images from this camera are used for face detection. Once a face and eye area center are detected, the detection program controls a SONY SNC-RZ30N camera, which can pan ±170° and tilt from −90° to +25°. It also has a 25× optical zoom. This camera gives us a close-up view of the face (640×480 images at approximately 15 to 30 fps), which can then be used by the eye detection program.
Face Detection
An appearance-based technique is employed, based on the work by Viola and Jones [14] for face detection. To improve the robustness of the face detector, a linear-time mechanism is used to make the system invariant to variable lighting conditions: all features are scaled by a ratio of the average gray-level intensity of the training samples over the average gray-level intensity of the current search region. The integral image is used to efficiently compute feature block intensity levels. The best Haar-like features are selected with Adaboost; we then used Information Gain in the Gain Ratio as a metric of usefulness. The details of the developed face detector can be found in [7].
Eye Detection (from the Static Camera View)
Once the face is detected, eye detection is performed using the so-called topographic features of eyes [15]. The basic idea is to create a terrain map from the gray-scale image (effectively treating it like a continuous 3D surface) and extracting “pit” locations as pupil candidates. The actual eye pair is chosen using a Gaussian Mixture Model (GMM) and certain heuristics (e.g. the eye candidates cannot be vertical). The approximate center of the two detected eye candidates is used as the focus of the pan-tilt-zoom camera. Note the mutual information tracking approach presented in [15] is not used, and instead the eyes detected once every time the face is detected in the wide-angle view.
Iris Detection (from the Active Camera View)
The above stage provides an approximate localization of eyes, allowing the active camera to zoom into the region of interest. To detect the accurate positions of irises, we propose a fine detection approach as follows.
The red channel of the image is preferably employed, since the iris (unlike the surrounding skin areas) generally has very low red intensity values [13]. “Highlight positions” on the eye (corresponding to specular reflections off the iris) are searched; these are regions containing enough dark pixels to be considered part of the iris while still having a high enough standard deviation to contain specular reflection points. To remove distracting points on glasses, specular reflections that are long and thin (unlike iris highlights, which are generally equal in width and height) are eliminated. Unlike Vezhnevets and Degtiareva [13], the histogram is equalized within the eye region to increase contrast. To determine the proper thresholds and parameters, information from 7 video sequences collected using the active camera are analyzed. Finally, the initial iris estimate is refined using a circular template in a very small area around the initial estimate.
Gaze Calibration (from the Active Camera View)
The calibration procedure has two stages: the first acquires an estimate for the 3D eyeball center and radius, and the second iteratively refines our initial estimate while also extracting the position of the fovea on the eyeball surface. Note that each eyeball is handled independently during calibration.
Stage 1 Calibration (Initial Estimate)
At this point, the 2D iris positions are obtained, and the camera's focal length assumed as known; given a 3D eyeball radius r, an estimate for the 3D eyeball center E is sought.
The camera center is considered the origin of a 3D coordinate system and the camera view direction as the z axis. Given a 2D pixel position and the camera's focal length, a 3D vector can be obtained from the camera center through every 3D position that maps to our given 2D pixel point. This can be done simply by constructing a “world image plane,” a 3D plane which is perpendicular to the camera's view axis and is far away enough such that 3D points in the plane have the same x and y coordinates as their projected 2D points. A 2D pixel point can then be converted to a 3D vector by setting its z coordinate to be the z depth of the world image plane.
If the user is looking straight into the camera, it is assumed that the eyeball center must be somewhere along a 3D vector starting at the camera center and going through the 2D iris center; that is, the gaze direction goes from the 3D eyeball center E to the 3D iris center E′ (this vector is known as the “optical axis”). Granted, this is not strictly true, since the correct gaze direction (called the “visual axis”) is a vector from the fovea (on the back of the eye) through the pupil [5], and this visual axis is offset from the optical axis by approximately 4-8° [4]. However, this will be corrected for in Stage 2.
The user first looks into the camera and then at a calibration point P whose 3D location is known. This gives the 2D iris locations m1 and m2, respectively. These points are then converted into normalized vectors A and B. Two points are sought, E (the eyeball center) along vector A and E′ (the iris center) along vector B, such that the distance between them is r (the radius of the eyeball) and the vector between them points at P.
Let ta and tb represent the lengths such that Ata=E and Btb=E′; the first constraint may be expressed as follows:
∥Ata−Btb∥=r (1)
Point E′ (or Btb) is the point of intersection between C=Ata−P and B. This is equivalent to the point of intersection between B and a plane determined by point P and normal N=(A×B×C). So, the second constraint is as follows:
Given above equations (1) and (2) with two unknowns ta and tb, the following quartic formula is derived, and solved for ta:
Sta4+Tta3+Uta2+Vta+W=0 (3)
S=Y2 (4)
T=−2TZ−2(A*B)XY (5)
U=Z2+2(A*B)XY−r2y2+x2 (6)
V=2r2YZ (7)
W=−r2Z2 (8)
X=(A×B×A)*P (9)
Y=(A×B×A)*B (10)
Z=(A×B×P)*B (11)
Once ta is obtained, A can be scaled by this value and a 3D eyeball center estimate obtained for a given radius. Although a standard eyeball radius might be employed, instead a range of 1.1 cm to 1.4 cm is cycled in 1/10th millimeter increments, and an eyeball estimate obtained for each radius size. This corresponds approximately to the natural range of eyeball radius sizes found in humans (1.2 cm to 1.3 cm) [5].
During the calibration procedure, the user looks into the camera first, and then at four calibration points. The first calibration point is used to get the B vector. For each eyeball estimate (and corresponding radius) and each of the four calibration points, the gaze estimation approach used to determine the estimated point of regard and get its distance from the true gaze (calibration) point. These error distances are added together, and the eyeball estimate (and radius) with the smallest error is chosen.
Note that this approach assumes that eyeball center (E), 3D iris center (E′), and 3D gaze point (P) are all coplanar, which may not be true if the user's head moves during the calibration procedure; thus, the vectors adjusted for head rotation and translation before performing the calibration calculations.
Stage 2 Calibration (Refinement and Fovea Location)
Due to the optical/visual axis offset (as well as user error during calibration), the initial estimates can be off slightly from their true position. Therefore, a secondary, iterative refinement procedure employed that uses a binary search to find the best eyeball center within ±5 cm of our initial estimate (to a precision of 1/100th of a millimeter). The radius search is refined simultaneously, using the same range as before, but also with 1/100th millimeter precision.
Finally, another binary search is performed, this time moving the eyeball position up and down (within 2.5 mm of the current estimate). The fovea is assumed to lie along the A vector, and its position obtained by intersecting A with the sphere centered at the final eyeball center estimate.
The 3D eyeball center is thus obtained (which can be rotated and translated with head position and pose information), the 3D eyeball radius, and the fovea point (stored as an offset from the eyeball center). 5 sample frames are used for each calibration point, including the look-into-camera stage.
Gaze Estimation (from the Active Camera View)
For a given frame, the eyeball center position adjusted based on the current head pose and position. Using the 2D iris center, the iris contour points are sought and mapped to (and the iris center) the eyeball sphere, the optical axis determined, the fovea point rotated accordingly (since its location is dependent on eye position and rotation only), the new (3D) iris center computed from the optical axis, and finally the visual axis obtained as the vector from the fovea to the new iris center.
To obtain the iris contour points, the following eight steps are performed: (1) Define a smaller search region around the iris position and blur the grayscale image with a 5×5 Gaussian filter; (2) Extract gradient magnitudes and directions; (3) Given a normalized 2D vector H that goes from the iris center estimate to the 2D eyeball center, shoot rays Ri outwards ±125° around H (one ray per degree); (4) For all pixels (within search region) along each ray, compute scorei,j=mi,j*(dot(H>0.5), where i is the ray index, j is the pixel index, mi,j is the gradient magnitude, and Di,j is the normalized gradient direction vector from dark to light pixels; (5) The highest scoring pixel along each ray is chosen as a potential iris contour point, similar to [8]; (6) Remove duplicate points (caused by overlapping rays), giving N′ iris contour points; (7) To eliminate possible eyelid edges, only keep pixels with gradient angles between [−35°, 35°], [145°, 180], and [445°, −180°] (vertical edges only); this gives the final N iris contour points; (8) Compute confidence value for contour as N/N′.)
The 2D iris contour points are mapped to the eyeball sphere by converting them into 3D perspective vectors and intersecting them with the current eyeball sphere. A normalized vector going from the eyeball center to one of those intersection points is referred to as an “iris contour vector” Ci. Before performing gaze estimation, the 3D iris radius on the eyeball is estimated (or rather, the average dot product between the optical axis and each Ci). The information extracted during the look-into-camera phase of the calibration procedure is used; note that an approximation of the optical gaze vector can be extracted by intersecting the 2D iris center with the eyeball sphere, subtracting the eyeball center, and normalizing the result, giving us vector V. The average of the dot products (aveDot) between V and each Ci are obtained. In this way, the “iris disk” is defined. See
Given a normalized 2D vector H that goes from the iris center estimate to the 2D eyeball center, shoot rays R, outwards around H (one ray per degree). For all pixels (within search region) along each ray, a score may be computed:
scorei,j=mi,j*(dot(H,Di,j)>0.5) (12)
where i is the ray index,
j is the pixel index,
mi,j is the gradient magnitude, and
Di,j is the normalized gradient direction vector (from dark to light pixels).
The highest scoring pixel along each ray may be chosen as a potential iris contour point. Duplicate points (caused by overlapping rays) are removed, giving N′ iris contour points. To eliminate possible eyelid edges, only pixels with gradient angles are kept, providing the final N iris contour points. The confidence value for contour is computed as N/N′.
The iris center and contours are detected, and converted to perspective vectors. These points are mapped to the eyeball sphere.
For gaze estimation, the iris center and contours are detected, and these points mapped to the eyeball sphere to ultimately get V (iris center) and all Ci vectors (iris contours), respectively. The optical axis G is sought, such that 1) it is parallel to V and 2) the dot product of G and each Ci is aveDot. Thus, we solve the following linear equations:
Note that aveDot, V, and the constant 1 are repeated in their respective matrices N times (once for each contour vector).
To get the visual axis, the fovea offset is rotated based on the optical axis G. The optical axis is intersected with the eyeball sphere to get a new estimate for the 3D iris center, and the normalized vector taken from the fovea to this new iris center as the final gaze direction.
It is preferable to average the eyeball centers and the gaze directions over several frames to get stable estimates (our current buffer is for the eyeball is 10 frames, while 3 frames are used for the gaze direction). Moreover, the gaze direction is weighed by the confidence value from the contour extraction.
Once the current 3D eyeball position and gaze vector are obtained, this information is mapped to screen coordinates. It is assumed that the screen's 3D position, size, and orientation are already known, and so the mapping is a simple ray-plane intersection. The average position of the two eyeball centers is used as the starting point and the average of the two visual axis vectors as the gaze direction.
For all stages of calibration and gaze estimation, a given sample of data is not used unless its confidence value exceeds 10% (which is rather low but does at least get rid of utterly erroneous values). Moreover, while the calibration and gaze values are computed for each eye separately, a sample is not used unless both eyes have high enough confidence values.
A gaze and point of gaze estimation experiment is performed wherein the user was asked to look at 20 gaze markers on the screen (effectively, the center of each brick in a 5×4 grid). To ensure that the calibration points were at known locations relative to the camera, a Logitech Orbit AF web camera was used in a special rig, with a yardstick attached for the purpose of evaluating the calibration and gaze estimation approaches. A close-view face image captured from a distance by an active camera (using an optical zoom) is approximately equivalent to the face image captured by a static camera close the subject, and the effect of a zoom lens simulated by positioning the user's head about 30 to 40 cm away from the camera. Camera images were 640×480 pixels. Head pose information was extracted using an existing face library [6]. Each marker was gazed at for 2-4 seconds (about 20 gaze samples for each marker on average).
The ordering of the gaze points matches the pattern of the grid, and the clusters themselves are fairly compact. We believe that a further corrected calibration between the camera and the screen could improve the result.
The present system has following major advantages. It uses a regular visible optical camera with diffuse illumination, and it does not require structured illumination, infrared images, or other specialized hardware. It provides 3D eye ball gaze axis estimation, and it is 3D head pose invariant. The system provides a feasible method for gaze tracking in a distance from the cameras. The system compensates for slight inaccuracies in iris center and contour points by using both in an LSQ approach.
The calibration approach of the present method proceeds by determining the 3D eyeball center, radius, and fovea position. The gaze is then estimated by creating a 3D “iris disk” out of iris contour points and iris center, deriving the optical axis, and rotating the fovea to get the visual axis. In a computer user interface system, the visual axis may then be mapped to a display screen, or otherwise used as part of a user input paradigm.
The present system and method maps a set of 2D points to a 3D eyeball, deriving the optical axis directly, and is therefore efficient. The system provides gaze estimation in a manner which is head pose invariant.
The present gaze estimation technology may be used for passive monitoring of persons, to determine interest, distraction, or focus, for example. The technology may be applied to individuals or to groups. Likewise, the technology provides an additional possibility for user input to a visual user interface, especially where the input sought is stream of use focus rather than a discrete object.
The technology thus may be used in interactive advertising or other information optimization schemes, where the user attention focus over time provides useful information, and suitably permits user control either explicitly or implicitly.
Another aspect of the technology is that it provides an additional degree of freedom for a user to control a system, especially where the hands are unavailable or already and/or independently employed.
Because the gaze direction of one or more users is available and employed, the technology is particular useful in environments where the user is expected to focus his or her eyes on a particular object, and therefore by monitoring the user's gaze direction, the location of the object of the user's attention can be inferred. Thus, where a user is interacting with a television or media display, the user's gaze may be used to provide a control input, to supplement or replace a “remote control”. The gaze direction may also be used to trigger a retrieval and/or display of additional information. For example, a browser hyperlink may be exercised by a significant user attention on the hyperlink trigger. In other cases, a user help screen or popup balloon may be generated in dependence on a user's gaze.
The gaze direction may also be used in place of manipulative interfaces. For example, a smart phone may be provided which receives user selections, such as dialing commands, based on a user's visual focus on a number region on the display, as determined by a rear-facing camera on the phone.
The system may be adaptive in operation. For example, where there is low ambiguity in the gaze direction, e.g., the user has only a few well-spaced discrete object to focus on, the system may select the nearest object to the estimated gaze position, and then provide calibration to the algorithm then presuming that the low ambiguity location is the exact location of gaze. Thus, during usage, the system may be tuned. On the other hand, where a historical analysis indicates a normal margin for error, and the estimated gaze direction is consistent with the object location within the margin for error, the adaptive update may be prevented, or applied with a low weighing, to avoid overcorrection for possibly noisy feedback data.
The system may be predictive, for example using a Kalman filter to predict endpoint in a dynamic gaze change. On the other hand, certain gaze direction shifts may be ignored for short periods, consistent with normal human gaze behaviors. For example, a human may sometimes look away from a focal object during thought or interruption. However, in some cases, it is preferred that the cursor remain at the earlier location during the interruption or hiatus. In cases where a user's attention is split between multiple tasks, it may be preferable to define multiple cursors, which may be concurrently active or semi-active, and retain the last state prior to a switch of focus.
The gaze direction may be used in conjunction with other user inputs, such as speech, manual input, pointing device input, hand gestures, hand pointing, body gestures, facial expressions or gesticulations, or the like.
Hardware Overview
According to a preferred embodiment, the gaze direction determination system executes on a Microsoft Windows® system, using Windows XP, Vista or Windows 7 (64-bit), having an Intel Core-2 Duo (2.0 GHz) equivalent or greater CPU, greater than 2 GB RAM, an NVIDIA graphics card supporting CUDA 3.1.9 or greater, at least 300 MB free hard disk, and a USB webcam.
The computer system may also employ non-volatile memory, such as FRAM and/or MRAM.
The computer system may include a graphics processing unit (GPU), which, for example, provides a parallel processing system which is architected, for example, as a single instruction-multiple data (SIMD) processor. Such a GPU may be used to efficiently compute transforms and other readily parallelized and processed according to mainly consecutive unbranched instruction codes.
Computer system 400 may be coupled via bus 402 to a display 412, such as a liquid crystal display (LCD), for displaying information to a computer user. An input device 414, including alphanumeric and other keys, is coupled to bus 402 for communicating information and command selections to processor 404. Another type of user input device is cursor control 416, such as a mouse, a trackball, or cursor direction keys for communicating direction information and command selections to processor 404 and for controlling cursor movement on display 412. This input device typically has two degrees of freedom in two axes, a first axis (e.g., x) and a second axis (e.g., y), that allows the device to specify positions in a plane.
As discussed above, the present invention provides an alternate or supplemental user input system and method, which may advantageously be used in conjunction with other user interface functions which employ the same camera or cameras.
The invention is related to the use of computer system 400 for implementing the techniques described herein. According to one embodiment of the invention, those techniques are performed by computer system 400 in response to processor 404 executing one or more sequences of one or more instructions contained in main memory 406. Such instructions may be read into main memory 406 from another machine-readable medium, such as storage device 410. Execution of the sequences of instructions contained in main memory 406 causes processor 404 to perform the process steps described herein. In alternative embodiments, hard-wired circuitry may be used in place of or in combination with software instructions to implement the invention. Thus, embodiments of the invention are not limited to any specific combination of hardware circuitry and software.
The term “machine-readable medium” as used herein refers to any medium that participates in providing data that causes a machine to operation in a specific fashion. In an embodiment implemented using computer system 400, various machine-readable media are involved, for example, in providing instructions to processor 404 for execution. Such a medium may take many forms, including but not limited to, non-volatile media, volatile media, and transmission media. Non-volatile media includes, for example, semiconductor devices, optical or magnetic disks, such as storage device 410. Volatile media includes dynamic memory, such as main memory 406. Transmission media includes coaxial cables, copper wire and fiber optics, including the wires that comprise bus 402. Transmission media can also take the form of acoustic or light waves, such as those generated during radio-wave and infra-red data communications. All such media must be tangible to enable the instructions carried by the media to be detected by a physical mechanism that reads the instructions into a machine. Wireless or wired communications, using digitally modulated electromagnetic waves are preferred.
Common forms of machine-readable media include, for example, hard disk (or other magnetic medium), CD-ROM, DVD-ROM (or other optical or magnetoptical medium), semiconductor memory such as RAM, PROM, EPROM, FLASH-EPROM, any other memory chip or cartridge, a carrier wave as described hereinafter, or any other medium from which a computer can read. Various forms of machine-readable media may be involved in carrying one or more sequences of one or more instructions to processor 404 for execution.
For example, the instructions may initially be carried on a magnetic disk of a remote computer. The remote computer can load the instructions into its dynamic memory and send the instructions over the Internet through an automated computer communication network. An interface local to computer system 400, such as an Internet router, can receive the data and communicate using a wireless Ethernet protocol (e.g., IEEE-802.11n) to a compatible receiver, and place the data on bus 402. Bus 402 carries the data to main memory 406, from which processor 404 retrieves and executes the instructions. The instructions received by main memory 406 may optionally be stored on storage device 410 either before or after execution by processor 404.
Computer system 400 also includes a communication interface 418 coupled to bus 402. Communication interface 418 provides a two-way data communication coupling to a network link 420 that is connected to a local network 422. For example, communication interface 418 may be an integrated services digital network (ISDN) card or a modem to provide a data communication connection to a corresponding type of telephone line. As another example, communication interface 418 may be a local area network (LAN) card to provide a data communication connection to a compatible LAN. Wireless links may also be implemented. In any such implementation, communication interface 418 sends and receives electrical, electromagnetic or optical signals that carry digital data streams representing various types of information.
Network link 420 typically provides data communication through one or more networks to other data devices. For example, network link 420 may provide a connection through local network 422 to a host computer 424 or to data equipment operated by an Internet Service Provider (ISP) 426. ISP 426 in turn provides data communication services through the world wide packet data communication network now commonly referred to as the “Internet” 428. Local network 422 and Internet 428 both use electrical, electromagnetic or optical signals that carry digital data streams. The signals through the various networks and the signals on network link 420 and through communication interface 418, which carry the digital data to and from computer system 400, are exemplary forms of carrier waves transporting the information.
Computer system 400 can send messages and receive data, including program code, through the network(s), network link 420 and communication interface 418. In the Internet example, a server 430 might transmit a requested code for an application program through Internet 428, ISP 426, local network 422 and communication interface 418.
The received code may be executed by processor 404 as it is received, and/or stored in storage device 410, or other non-volatile storage for later execution.
U.S. 2012/0173732, expressly incorporated herein by reference, discloses various embodiments of computer systems, the elements of which may be combined or subcombined according to the various permutations.
In this description, several preferred embodiments were discussed. It is understood that this broad invention is not limited to the embodiments discussed herein, but rather is composed of the various combinations, subcombinations and permutations thereof of the elements disclosed herein. The invention is limited only by the following claims.
[103] Bradley, A., and Thibos, L. (2003). Modeling Off-axis Vision I: the Optical Effects of Decentering Visual Targets or the Eye's Entrance Pupil. Report, School of Optometry, Indiana University, Bloomington, Ind.
[105] Guiard, Y. (1987). Asymmetric division of labor in human skilled bimanual action: The kinematic chain as a model. Journal of Motor Behavior 19:486-517.
The present application claims benefit of priority from U.S. Provisional Patent Application Ser. No. 61/507,780, filed Jul. 14, 2011, the entirety of which is expressly incorporated herein by reference.
This invention was made with government support under FA8750-08-0096 awarded by the United States Air Force. The government has certain rights in the invention.
Number | Name | Date | Kind |
---|---|---|---|
368913 | Young et al. | Sep 1972 | A |
4075657 | Weinblatt | Feb 1978 | A |
4102564 | Michael | Jul 1978 | A |
4145122 | Rinard et al. | Mar 1979 | A |
4303394 | Berke et al. | Dec 1981 | A |
4641349 | Flom et al. | Feb 1987 | A |
4651145 | Sutter | Mar 1987 | A |
4702575 | Breglia | Oct 1987 | A |
4755045 | Borah et al. | Jul 1988 | A |
4836670 | Hutchinson | Jun 1989 | A |
4973149 | Hutchinson | Nov 1990 | A |
4975969 | Tal | Dec 1990 | A |
5008946 | Ando | Apr 1991 | A |
5016282 | Tomono et al. | May 1991 | A |
5231674 | Cleveland et al. | Jul 1993 | A |
5287437 | Deering | Feb 1994 | A |
5325133 | Adachi | Jun 1994 | A |
5331149 | Spitzer et al. | Jul 1994 | A |
5345281 | Taboada et al. | Sep 1994 | A |
5360971 | Kaufman et al. | Nov 1994 | A |
5428413 | Shindo | Jun 1995 | A |
5471542 | Ragland | Nov 1995 | A |
5481622 | Gerhardt et al. | Jan 1996 | A |
5583795 | Smyth | Dec 1996 | A |
5638176 | Hobbs et al. | Jun 1997 | A |
5649061 | Smyth | Jul 1997 | A |
5668622 | Charbonnier et al. | Sep 1997 | A |
5726916 | Smyth | Mar 1998 | A |
5797046 | Nagano et al. | Aug 1998 | A |
5805167 | van Cruyningen | Sep 1998 | A |
5818954 | Tomono et al. | Oct 1998 | A |
5898423 | Tognazzini et al. | Apr 1999 | A |
5912721 | Yamaguchi et al. | Jun 1999 | A |
5926251 | Okumura | Jul 1999 | A |
5984475 | Galiana et al. | Nov 1999 | A |
5991085 | Rallison et al. | Nov 1999 | A |
6120461 | Smyth | Sep 2000 | A |
6152563 | Hutchinson et al. | Nov 2000 | A |
6154559 | Beardsley | Nov 2000 | A |
6163336 | Richards | Dec 2000 | A |
6204828 | Amir et al. | Mar 2001 | B1 |
6215898 | Woodfill et al. | Apr 2001 | B1 |
6220706 | Foley | Apr 2001 | B1 |
6243076 | Hatfield | Jun 2001 | B1 |
6246779 | Fukui et al. | Jun 2001 | B1 |
6299307 | Oltean et al. | Oct 2001 | B1 |
6323884 | Bird et al. | Nov 2001 | B1 |
6369952 | Rallison et al. | Apr 2002 | B1 |
6381339 | Brown et al. | Apr 2002 | B1 |
6393136 | Amir et al. | May 2002 | B1 |
6397137 | Alpert et al. | May 2002 | B1 |
6456737 | Woodfill et al. | Sep 2002 | B1 |
6477267 | Richards | Nov 2002 | B1 |
6478425 | Trajkovic et al. | Nov 2002 | B2 |
6546121 | Oda | Apr 2003 | B1 |
6568809 | Trajkovic et al. | May 2003 | B2 |
6578962 | Amir et al. | Jun 2003 | B1 |
6603504 | Son et al. | Aug 2003 | B1 |
6608615 | Martins | Aug 2003 | B1 |
6634749 | Morrison et al. | Oct 2003 | B1 |
6659611 | Amir et al. | Dec 2003 | B2 |
6727866 | Wang et al. | Apr 2004 | B2 |
6753847 | Kurtenbach et al. | Jun 2004 | B2 |
6843564 | Putilin et al. | Jan 2005 | B2 |
6853854 | Proniewicz et al. | Feb 2005 | B1 |
6943754 | Aughey et al. | Sep 2005 | B2 |
6989754 | Kisacanin et al. | Jan 2006 | B2 |
6999071 | Balogh | Feb 2006 | B2 |
7040759 | Chernyak et al. | May 2006 | B2 |
7043056 | Edwards et al. | May 2006 | B2 |
7076118 | Westerman | Jul 2006 | B1 |
7084838 | Yoon | Aug 2006 | B2 |
7090348 | Nason et al. | Aug 2006 | B2 |
7091931 | Yoon | Aug 2006 | B2 |
7138997 | Balakrishnan et al. | Nov 2006 | B2 |
7161596 | Hoile | Jan 2007 | B2 |
7190825 | Yoon | Mar 2007 | B2 |
7197165 | Ryan | Mar 2007 | B2 |
7239293 | Perlin et al. | Jul 2007 | B2 |
7306337 | Ji et al. | Dec 2007 | B2 |
7307609 | Chang | Dec 2007 | B2 |
7315324 | Cleveland et al. | Jan 2008 | B2 |
7324085 | Balakrishnan et al. | Jan 2008 | B2 |
7331929 | Morita et al. | Feb 2008 | B2 |
7345664 | Chang | Mar 2008 | B2 |
7388580 | Birdwell | Jun 2008 | B2 |
7391887 | Durnell | Jun 2008 | B2 |
7396129 | Endrikhovski et al. | Jul 2008 | B2 |
7401920 | Kranz et al. | Jul 2008 | B1 |
7423540 | Kisacanin | Sep 2008 | B2 |
7428001 | Schowengerdt et al. | Sep 2008 | B2 |
7448751 | Kiderman et al. | Nov 2008 | B2 |
7460940 | Larsson et al. | Dec 2008 | B2 |
7490941 | Mintz et al. | Feb 2009 | B2 |
7501995 | Morita et al. | Mar 2009 | B2 |
7503653 | Endrikhovski et al. | Mar 2009 | B2 |
7520614 | Joos et al. | Apr 2009 | B2 |
7528823 | Balakrishnan et al. | May 2009 | B2 |
7538744 | Liu et al. | May 2009 | B1 |
7538746 | Uhlhorn et al. | May 2009 | B2 |
7542210 | Chirieleison, Sr. | Jun 2009 | B2 |
7554541 | Fitzmaurice et al. | Jun 2009 | B2 |
7556377 | Beymer | Jul 2009 | B2 |
7567702 | Woodfill et al. | Jul 2009 | B2 |
7572008 | Elvesjo et al. | Aug 2009 | B2 |
7583252 | Kurtenbach et al. | Sep 2009 | B2 |
7600873 | Grundig | Oct 2009 | B2 |
7620216 | Hammoud | Nov 2009 | B2 |
7626569 | Lanier | Dec 2009 | B2 |
7633493 | Syeda-Mahmood et al. | Dec 2009 | B2 |
7650034 | Hammoud | Jan 2010 | B2 |
7665845 | Kiderman et al. | Feb 2010 | B2 |
7693256 | Brahme et al. | Apr 2010 | B2 |
7701441 | Balakrishnan et al. | Apr 2010 | B2 |
7702660 | Chan et al. | Apr 2010 | B2 |
7703921 | Dick et al. | Apr 2010 | B2 |
7705876 | Starkweather et al. | Apr 2010 | B2 |
7706575 | Liu et al. | Apr 2010 | B2 |
7724251 | Balakrishnan et al. | May 2010 | B2 |
7731360 | MacDougall et al. | Jun 2010 | B2 |
7742623 | Moon et al. | Jun 2010 | B1 |
7753523 | Kiderman et al. | Jul 2010 | B2 |
7762665 | Vertegaal et al. | Jul 2010 | B2 |
7766479 | Ebisawa | Aug 2010 | B2 |
7768528 | Edwards et al. | Aug 2010 | B1 |
7787009 | Alpaslan et al. | Aug 2010 | B2 |
7801686 | Hyde et al. | Sep 2010 | B2 |
7809160 | Vertegaal et al. | Oct 2010 | B2 |
7810926 | Connell, II | Oct 2010 | B2 |
7815507 | Parrott et al. | Oct 2010 | B2 |
7819525 | Connell, II | Oct 2010 | B2 |
7834912 | Yoshinaga et al. | Nov 2010 | B2 |
7839400 | Kurtenbach et al. | Nov 2010 | B2 |
7857452 | Martinez-Conde et al. | Dec 2010 | B2 |
7860382 | Grip | Dec 2010 | B2 |
7862172 | Yoshinaga et al. | Jan 2011 | B2 |
7866818 | Schroeder et al. | Jan 2011 | B2 |
7869848 | Proniewicz et al. | Jan 2011 | B2 |
7872635 | Mitchell | Jan 2011 | B2 |
7880739 | Long et al. | Feb 2011 | B2 |
7916977 | Kondo et al. | Mar 2011 | B2 |
7925077 | Woodfill et al. | Apr 2011 | B2 |
7938540 | Brentnall, III et al. | May 2011 | B2 |
7948451 | Gustafsson et al. | May 2011 | B2 |
7963652 | Vertegaal et al. | Jun 2011 | B2 |
7970179 | Tosa | Jun 2011 | B2 |
7974787 | Hyde et al. | Jul 2011 | B2 |
7983733 | Viswanathan | Jul 2011 | B2 |
7986318 | Kurtenbach et al. | Jul 2011 | B2 |
7999844 | Richards | Aug 2011 | B2 |
8014571 | Friedman et al. | Sep 2011 | B2 |
8020993 | Fram | Sep 2011 | B1 |
8065240 | Jung et al. | Nov 2011 | B2 |
8069125 | Jung et al. | Nov 2011 | B2 |
8077217 | Miyamoto | Dec 2011 | B2 |
8077914 | Kaplan | Dec 2011 | B1 |
D653245 | Buzzard et al. | Jan 2012 | S |
8099748 | Ritter et al. | Jan 2012 | B2 |
8100532 | Yoo et al. | Jan 2012 | B2 |
8121356 | Friedman et al. | Feb 2012 | B2 |
D655279 | Buzzard et al. | Mar 2012 | S |
8130260 | Krill et al. | Mar 2012 | B2 |
8150796 | Jung et al. | Apr 2012 | B2 |
8154781 | Kroll et al. | Apr 2012 | B2 |
8155479 | Hoffman et al. | Apr 2012 | B2 |
8170293 | Tosa et al. | May 2012 | B2 |
8175374 | Pinault et al. | May 2012 | B2 |
8195593 | Jung et al. | Jun 2012 | B2 |
8199186 | Florencio et al. | Jun 2012 | B2 |
8219438 | Moon et al. | Jul 2012 | B1 |
8457352 | Hennessey et al. | Jun 2013 | B2 |
20030098954 | Amir et al. | May 2003 | A1 |
20030123027 | Amir et al. | Jul 2003 | A1 |
20040174496 | Ji et al. | Sep 2004 | A1 |
20040239509 | Kisacanin et al. | Dec 2004 | A1 |
20050073136 | Larsson et al. | Apr 2005 | A1 |
20050175218 | Vertegaal et al. | Aug 2005 | A1 |
20050288564 | Iuliano | Dec 2005 | A1 |
20060028400 | Lapstun et al. | Feb 2006 | A1 |
20060110008 | Vertegaal et al. | May 2006 | A1 |
20060227103 | Koo et al. | Oct 2006 | A1 |
20080002262 | Chirieleison | Jan 2008 | A1 |
20080287821 | Jung et al. | Nov 2008 | A1 |
20090018407 | Jung et al. | Jan 2009 | A1 |
20090024050 | Jung et al. | Jan 2009 | A1 |
20090110245 | Thorn | Apr 2009 | A1 |
20090112616 | Jung et al. | Apr 2009 | A1 |
20090112617 | Jung et al. | Apr 2009 | A1 |
20090112620 | Jung et al. | Apr 2009 | A1 |
20090112621 | Jung et al. | Apr 2009 | A1 |
20090118593 | Jung et al. | May 2009 | A1 |
20090119154 | Jung et al. | May 2009 | A1 |
20090132275 | Jung et al. | May 2009 | A1 |
20090156907 | Jung et al. | Jun 2009 | A1 |
20090156955 | Jung et al. | Jun 2009 | A1 |
20090157323 | Jung et al. | Jun 2009 | A1 |
20090157481 | Jung et al. | Jun 2009 | A1 |
20090157482 | Jung et al. | Jun 2009 | A1 |
20090157625 | Jung et al. | Jun 2009 | A1 |
20090157660 | Jung et al. | Jun 2009 | A1 |
20090157751 | Jung et al. | Jun 2009 | A1 |
20090157813 | Jung et al. | Jun 2009 | A1 |
20090163777 | Jung et al. | Jun 2009 | A1 |
20090164131 | Jung et al. | Jun 2009 | A1 |
20090164132 | Jung et al. | Jun 2009 | A1 |
20090164302 | Jung et al. | Jun 2009 | A1 |
20090164401 | Jung et al. | Jun 2009 | A1 |
20090164403 | Jung et al. | Jun 2009 | A1 |
20090164458 | Jung et al. | Jun 2009 | A1 |
20090164503 | Jung et al. | Jun 2009 | A1 |
20090164549 | Jung et al. | Jun 2009 | A1 |
20090171164 | Jung et al. | Jul 2009 | A1 |
20090172540 | Jung et al. | Jul 2009 | A1 |
20090219484 | Ebisawa | Sep 2009 | A1 |
20090318773 | Jung et al. | Dec 2009 | A1 |
20100013949 | Miyamoto | Jan 2010 | A1 |
20100033333 | Victor et al. | Feb 2010 | A1 |
20100039617 | Martinez-Conde et al. | Feb 2010 | A1 |
20100086200 | Stankiewicz et al. | Apr 2010 | A1 |
20100086221 | Stankiewicz et al. | Apr 2010 | A1 |
20100086278 | Stankiewicz et al. | Apr 2010 | A1 |
20100149073 | Chaum et al. | Jun 2010 | A1 |
20100208205 | Tseng et al. | Aug 2010 | A1 |
20100280372 | Poolman et al. | Nov 2010 | A1 |
20100295774 | Hennessey | Nov 2010 | A1 |
20110007275 | Yoo et al. | Jan 2011 | A1 |
20110018903 | Lapstun et al. | Jan 2011 | A1 |
20110170059 | Ehrmann et al. | Jul 2011 | A1 |
20110170065 | Sugio et al. | Jul 2011 | A1 |
20110178784 | Sato et al. | Jul 2011 | A1 |
20110182472 | Hansen | Jul 2011 | A1 |
20110228975 | Hennessey et al. | Sep 2011 | A1 |
20120026276 | Czyzewski et al. | Feb 2012 | A1 |
20120050493 | Ernst et al. | Mar 2012 | A1 |
20120092618 | Yoo et al. | Apr 2012 | A1 |
20120105486 | Lankford et al. | May 2012 | A1 |
20120116559 | Davis et al. | May 2012 | A1 |
20120120498 | Harrison et al. | May 2012 | A1 |
20120120499 | Harrison et al. | May 2012 | A1 |
20120133889 | Bergt et al. | May 2012 | A1 |
20120134548 | Rhoads et al. | May 2012 | A1 |
20120154633 | Rodriguez | Jun 2012 | A1 |
20120154920 | Harrison et al. | Jun 2012 | A1 |
20120164613 | Jung et al. | Jun 2012 | A1 |
20130083976 | Ragland | Apr 2013 | A1 |
20130154913 | Genc et al. | Jun 2013 | A1 |
20130243258 | HENNESSEY et al. | Sep 2013 | A1 |
20130329957 | Ebisawa | Dec 2013 | A1 |
20140111630 | Pires et al. | Apr 2014 | A1 |
Number | Date | Country |
---|---|---|
2003015816 | Jan 2003 | JP |
2004504684 | Feb 2004 | JP |
2005230049 | Sep 2005 | JP |
2006328548 | Dec 2006 | JP |
2007055941 | Mar 2007 | JP |
2007073273 | Mar 2007 | JP |
WO0209025 | Jan 2002 | WO |
WO2004045399 | Jun 2004 | WO |
WO2008069158 | Jun 2008 | WO |
WO2008141460 | Nov 2008 | WO |
Entry |
---|
Steifelhagen et al. “Tracking Eyes and Monitoring Eye Gaze”, Interactive Systems Laboratories, University of Karlsruhe, Germany, 1997. |
Wang et al. “Using Geometric Properties of Topographic Manifold to Detect and Track Eyes for Human-Computer Interaction”, ACM Transactions on Multimedia Computing, Dec. 2007, vol. 3(4): pp. 1-20. |
V. Vezhnevets and A. Degtiareva, “Robust and Accurate Eye Contour Extraction”, GraphiCon, 2003, pp. 81-84. |
Wu et al. “Tracking Iris Contour with a 3D Eye-Model for Gaze Estimation”, ACCV 2007, pp. 688-697. |
H. Grabner and H. Bischof, “On-line Boosting and Vision”, IEEE 2006, pp. 260-267. |
Robert J. K. Jacob et al, Eye Tracking in Human—Computer Interaction and Usability Research: Ready to Deliver the Promises, Oxford, England, 2003. |
Qiang Ji et al, Non-Intrusive Eye and Gaze Tracking for Natural Human Computer Interaction, Troy, NY, 2003. |
Sheng-Wen Shih et al, A Novel Approach to 3-D Gaze Tracking Using Stereo Cameras, Feb. 2004. |
Rainer Stiefelhagen et al, Head Orientation and Gaze Direction in Meetings, Germany, 2002. |
Rowel Atienza et al, Active Gaze Tracking for Human-Robot Interaction, Australia, 2002. |
Frank Wallhoff et al, Multimodal Face Detection, Head Orientation and Eye Gaze Tracking, Munchen, Germany, 2006. |
Andrew T. Duchowski, A Breadth-First Survey of Eye Tracking Applications, 2002. |
Slavko Milekic, The More you Look the More You Get: Intention-based Interface Using Gaze-Tracking, 2003. |
Carlos Morimoto et al, Keeping an Eye for HCI, Brazil, Oct. 1999. |
David Beymer et al, WebGazeAnalyzer: A System for Capturing and Analyzing Web Reading Behavior Using Eye Gaze, San Jose, CA, 2005. |
Takehiko Ohno et al, FreeGaze: A Gaze Tracking System for Everyday Gaze Interaction, Japan, 2002. |
Qiang Ji et al, Real-Time Eye, Gaze, and Face Pose Tracking for Monitoring Driver Vigilance, Troy, NY 2002. |
Takahiro Ishikawa et al, Passive Driver Gaze Tracking with Active Appearance Models, 2004. |
Dario D. Salvucci et al, Identifying Fixations and Saccades in Eye-Tracking Protocols, Cambridge, MA, 2000. |
Andrew Gee et al, Non-Intrusive Gaze Tracking for Human-Computer Interaction, Australia, 1994. |
Rainer Stiefelhagen, Gaze Tracking for Multimodal Human-Computer Interaction, Sep. 12, 1996. |
Zhiwei Zhu et al, Novel Eye Gaze Tracking Techniques Under Natural Head Movement, 2006. |
Jochen Heinzmann et al, 3-D Facial Pose and Gaze Point Estimation using a Robust Real-Time Tracking Paradigm, Australia, 1998. |
Linda E. Sibert, et al, Evaluation of Eye Gaze Interaction, Washington, DC, 2000. |
R. Alex Colburn et al, The Role of Eye Gaze in Avatar Mediated Conversational Interfaces, Jul. 31, 2000. |
Shumeet Baluja et al, Non-Intrusive Gaze Tracking Using Artificial Neural Networks, Jan. 5, 1994. |
Sheng-Wen Shih et al, A Calibration-Free Gaze Tracking Technique, Taiwan, 2000. |
Jie Yang et al, Real-Time Face and Facial Feature Tracking and Applications, Pittsburgh, PA, 1998. |
A. H. Gee et al, Determining the Gaze of Faces in Images, Cambridge, England, Mar. 1994. |
Barton A. Smith et al, Hand Eye Coordination Patterns in Target Selection, San Jose, CA , 2000. |
Kyung-Nam Kim et al, Vision-Based Eye-Gaze Tracking for Human Computer Interface, Korea, 1999. |
Robert J.K. Jacob, Eye Tracking in Advanced Interface Design, Washington, D.C., 1995. |
A. Perez et al, A Precise Eye-Gaze Detection and Tracking System, Czech Republic, Feb. 3-7, 2003. |
Roel Vertegaal et al, Eye Gaze Patterns in Conversations: There is More to Conversational Agents Than Meets the Eyes, Seattle, WA, Mar. 31-Apr. 4, 2001. |
Takehiko Ohno et al, Just Blink Your Eyes: A Head-Free Gaze Tracking System, Ft. Lauderdale, FL, Apr. 5-10, 2003. |
Jingtao Wang et al, Chinese Input with Keyboard and Eye-Tracking—An Anatomical Study, Seattle, WA, Mar. 31-Apr. 4, 2001. |
Rainer Stiefelhagen, Tracking Focus of Attention in Meetings, Germany, 2002. |
Maia Garau et al, The Impact of Avatar Realism and Eye Gaze Control on Perceived Quality of Communication in a Shared Immersive Virtual Environment, Ft. Lauderdale, FL, Apr. 5-10, 2003. |
Zhiwei Zhu et al, Eye and Gaze Tracking for Interactive Graphic Display, Machine Vision and Applications (2004) 15:139-148. |
Rainer Stiefelhagen et al, Tracking Eye and Monitoring Eye Gaze, Germany, 1997. |
Akira Sugioka et al, Noncontact Video-Based Eye-Gaze Detection Method Allowing Large Head Displacements, Amsterdam, 1996. |
Carlos Morimoto et al, Pupil Detection and Tracking Using Multiple Light Sources, San Jose, CA 2000. |
Shumin Zhai et al, Manual and Gaze Input Cascaded (MAGIC) Pointing, San Jose, CA 1999. |
Dongheng Li et al, Starburst: A Hybrid Algorithm for Video-Based Eye Tracking Combining Feature-Based and Model-Based Approaches, Ames, Iowa, 2005. |
E. C. Lyons et al, Development of a Hybrid Hands-Off Human Computer Interface Based on Electromyogram Signals and Eye-Gaze Tracking, Miami, Florida, 2001. |
Zhiwei Zhu et al, Eye Gaze Tracking Under Natural Head Movements, Troy, NY, 2005. |
Yoshio Matsumoto et al, An Algorithm for Read-Time Stereo Vision Implementation of Head Pose and Gaze Direction Measurement, Nara, Japan, 2000. |
Flavio Luiz, et al, Free Head Motion Eye Gaze Tracking Using a Single Camera and Multiple Light Sources, Sao Paulo, Brazil, 2006. |
Frans W. Cornelissen et al, The Eyelink Toolbox: Eye Tracking with MATLAB and the Psychophysics Toolbox, The Netherlands, Jul. 19, 2002. |
Benjamin Law et al, Eye Gaze Patterns Differentiate Novice and Experts in a Virtual Laparoscopic Surgery Training Environment, 2004. |
Jixu Chen et al, A Robust 3D Eye Gaze Tracking System Using Noise Reduction, Troy, NY 2008. |
Han Collewijn et al, Effect of Freeing the Head on Eye Movement Characteristics During Three-Dimensional Shifts of Gaze and Tracking, 1992. |
Craig A. Chin et al, Integrated Electromyogram and Eye-Gaze Tracking Cursor Control System for Computer Users with Motor Disabilities, Florida, vol. 45, No. 1, 2008. |
Jefferson E. Roy et al, Brain Stem Pursuit Pathways: Dissociating Visual, Vestibular, and Proprioceptive Inputs During Combined Eye-Head Gaze Tracking, May 6, 2011. |
Rainer Stiefelhagen et al, A Model-Based Gaze Tracking System, Germany, 1996. |
Roel Vertegaal et al, Explaining Effects of Eye Gaze on Mediated Group Conversations: Amount or Synchronization?, Ontario, Canada, 2002. |
David Beymer et al, Eye Gaze Tracking Using an Active Stereo Head, San Jose, CA, 2003. |
Kar-Han Tan et al, Appearance-based Eye Gaze Estimation, Chicago, IL, 2002. |
Pernilla Qvarfordt et al, Conversing with the User Based on Eye-Gaze Patterns, Portland, OR, Apr. 27-7, 2005. |
Jian-Gang Wang et al, Eye Gaze Estimation from a Single Image of One Eye, 2003. |
John L. Sibert et al, The Reading Assistant: Eye Gaze Triggered Auditory Prompting for Reading Remediation, San Diego, CA 2000. |
Maia Garau et al, The Impact of Eye Gaze on Communication Using Humanoid Avatars, London, 2001. |
Alex Poole et al, Eye Tracking in Human-Computer Interaction and Usability Research: Current Status and Future Prospects, UK, 2006. |
Jie Zhu et al, Subpixel Eye Gaze Tracking, Pittsburgh, PA, 2002. |
Number | Date | Country | |
---|---|---|---|
61507780 | Jul 2011 | US |