This invention relates to display images, and in particular to a method and system for augmenting a display image in accordance with the viewing angle of the viewer to provide a modified image that appears to be orthogonal to the viewer regardless of the viewing angle.
The best way to view a display screen is straight on, or, orthogonally. However, due to the fixed positioning of large displays, it's often difficult to view a screen in this wad The result is a poor viewing respective and/or physical discomfort. For example, a large television set cannot be easily rotated to accommodate all seats, especially by the elderly, children, and physically disabled. The result is that viewers are left with poor viewing angles and a sub-optimal viewing experience. In another example, a table-top touch device requires the viewer to look down at his or her hands, causing a distorted trapezoidal picture and neck strain.
As display screens continue to increase in size and ubiquity, these problems will only be exacerbated.
The present invention solves these problems by modifying the screen image itself (rather than the physical device), so that it always appears orthogonally orientated towards the viewer. This invention does this by capturing the viewer's focal point and then using that input to create an optical illusion, altering the screen image so as to appear square on. This delivers a better overall viewing experience. The viewer may also be referred to as a user of the system.
For people watching TV in their living rooms, this eliminates the need to physically rotate the television to a proper viewing angle, and ensures that people actually get to view their television's picture the way it was meant to be experienced. For people using large format touch devices (for example PIXELSENSE by MICROSOFT), the present invention removes the trapezoid effect, and reduces the ergonomic issues that result from looking down at your hands.
The methodology of the present invention uses information about a viewer's focal point to continually keep a screen-image orthogonally orientated towards them. The invention operates as a platform-agnostic software algorithm that can be integrated at the application or operating system level, making it easy to plug into any device, including but not limited to television sets, game consoles such as MICROSOFT XBOX and KINECT, APPLE IOS devices, and MICROSOFT WINDOWS devices.
Thus, the present invention provides an image augmentation method for providing a modified display image by measuring a viewing position of a viewer relative to a display screen; calculating a three-dimensional position of the viewer relative to the display screen; calculating an angular position vector of the viewer relative to the display screen; generating a rotation matrix as a function of the angular position vector; calculating a set of perimeter points; generating a modified image as a function of a normal image and the previously calculated perimeter points; and rendering the modified image on the display screen.
Optionally, these steps may be repeated as the viewer moves with respect to the display screen.
Further optionally, a mean viewing position of a plurality of viewers may be calculated relative to the display screen, and the mean viewing position may then be used to calculate the three-dimensional position of the viewers relative to the display screen.
This invention may be embodied in a system that include an image generation device for generating a normal image; a display screen; a position sensing unit for determining a position of a viewer of the display screen; and an image augmentation device operably connected to the position sensing unit, the position sensing unit, and the image generation device. The image augmentation device includes a processor programmed to execute an image augmentation algorithm by receiving from the position sensing device a viewing position of the viewer measured relative to the display screen; calculating a three-dimensional position of the viewer relative to the display screen; calculating an angular position vector of the viewer relative to the display screen; generating a rotation matrix as a function of the angular position vector; calculating a set of perimeter points; rendering a modified image as a function of a normal image received from the image generation device and the previously calculated perimeter points; and transmitting the modified image to the display screen.
The image generation device may for example be a television receiving device, a computer, or a gaming console. The position sensing unit may for example be a motion detection device or a camera.
In further accordance with the invention, an image augmentation device provides a modified display image, and includes input means for (1) receiving a viewing position of a viewer measured relative to a display screen, and (2) receiving a normal image from an image generation device; output means transmitting a modified image to the display screen; and processing means programmed to execute an image augmentation algorithm by: receiving the viewing position of the viewer measured relative to the display screen; calculating a three-dimensional position of the viewer relative to the display screen; calculating an angular position vector of the viewer relative to the display screen; generating a rotation matrix as a function of the angular position vector; calculating a set of perimeter points; rendering a modified image as a function of the normal and the previously calculated perimeter points; and transmitting the modified image to the display screen.
Viewer Experiences
Various viewer experiences are addressed by the present invention, as described herein.
Television (or Other Large-Format Display Screens Such as a Theater)
In a first case, a single viewer is sitting in a still position, as shown in
In a second case, a single viewer is not still but is moving around the viewing environment. Here, the viewer turns on the television to watch while they do another activity (e.g. cleaning, cooking). They activate the invention, and it continually tracks their location, adjusting it to always be optimized for their latest viewpoint. The picture always appears rectangular, or as close to rectangular as possible based on the detected knowledge of their location. For example, if they exit the viewing area to the right, it will stay optimized for that viewpoint until they re-enter the viewing area.
In a third case, there are multiple viewers; for example a group of two or more people watching television together. The system determines where each viewer's focal point is, and then determines a mean focal point to optimize the view for the group. For example, if most viewers of the group are off to the left, then the display screen shows a picture optimized for that area.
In a fourth case, there are multiple viewers with an advanced multi-image display. Advances in display technology have allowed for multiple images to be viewed on the same screen. These are now available on the consumer market and rapidly becoming sophisticated and affordable. When this feature is available, each viewer is tracked and provided with their unique optimized view. When using a multi-image display at once, each viewer is tracked and provided with their unique optimized view.
Multi-Touch Computing
In this case, the display is located flat on a table-top as shown in
Gaming
In this case, a viewer is playing a game such as by using the MICROSOFT KINECT console, and so they are moving around the stage. Instead of the full picture, just a single or few elements are controlled by the present invention. For example, a heads-up display (HUD) may be utilized, which displays information in the corners of the screen in most games. As the viewer moves, the system tracks the viewer and adjusts these items to be oriented to their viewpoint. In this scenario, the effect is not to provide a rectangular picture, but to enhance the sense of immersion and realism. As the viewer moves left/right/up/down, the elements subtly respond providing a sense of depth and realism, as well as fixation to their viewpoint.
Basic Description of the Preferred Embodiment
Setup
The system must first be configured with information about the display device and the viewing environment. An on-boarding wizard walks the viewer through this process, and does calculations in the background.
In-Use
The system uses the motion-tracking device to determine the viewer's focal point, and applies the augmentation algorithm to any onscreen elements (or the full display screen) to provide a modified image. The system may perform this calculation and transformation as little as once-per-session, or as frequently as every frame of video (24+ fps). For each viewer on the stage:
The preferred embodiment will now be described in further detail with respect to the Figures, and using the following defined terms:
Angular Position Vector—A vector from the center point to the observation point. The Observation Point X-Angle can be derived from the angular position vector by: 1) adding together the angular position vector's x and z component vectors; and 2) calculating the angle between the z-axis and the vector created in the previous step. The Observation Point Y-Angle can be derived from the angular position vector by calculating the angle between the angular position vector and the xz plane (the plane where y=0).
Center Point—The 3D coordinate (0, 0, 0) in the common coordinate system. The center of the display is always the center point.
Common Coordinate System—A 3D coordinate system that contains all the elements mentioned in the calibration and visual augmentation algorithms. The common coordinate system is anchored to the display with the center of the displaying always being the 3D coordinate (0, 0, 0), a.k.a center point.
Base Graphic—any type of shape, image, or video that can be displayed on a screen. A base graphic is the reference for producing an optical illusion. The base graphic has one or more points and those points exist on the display screen (the XY plane in the common coordinate system where z=0).
Focal Point—A viewer has one focal point in each eye, where light is received. When referring to the viewer's Focal Point, we are typically referring to a single point at the mean location of these two focal points (approx. 1″ behind the nasal bridge).
Projected Point—The point where an observation line intersects the screen; mathematically this requires finding the point on the observation line where z=0.
Observation Line—A line that contains a 3D point of interest and the observation point. Every point can have an observation line. See
Modified Image—An optical illusion that is derived from a base graphic. The base graphic is augmented, stretched, and/or skewed on screen such that an observer viewing the augmented image from a prescribed angle will perceive the original base graphic, as if the observer was viewing the original base graphic while standing directly in front of the screen. Typically the modified image is regenerated as the observer moves their observation point about the common coordinate system.
Motion-capture device—A computer input device that gathers information from the viewer's physical environment, such as visible light, infrared/ultraviolet light, ultrasound, etc. For example: A KINECT sensor, or a simple camera. These devices are rapidly becoming more sophisticated and less expensive. The device sometimes comes with software that helps the present invention determine the location of the viewer, using skeletal tracking or facial detection.
Tracking Angle—The maximum angle from the center of the sensor where the sensor is able to track an object. A sensor can have multiple tracking angles that are different (e.g. horizontal and vertical).
Screen—Any visual display device that displays two dimensional images on a flat service. The screen represents a geometric plane (with an x and y axis). The x-axis runs horizontally across the screen through the screen's center point; if looking at the front of the screen, positive values of x are to the right of the center point and negative values of x are to the left of the center point. The y-axis exists vertically across the screen and contains the screen's center point; if looking at the front of the screen, positive values of y are above the screen's center point and negative values of y are below the screen's center point. The x-axis and y-axis are perpendicular; a vector existing on the x-axis is orthogonal to a vector existing on the y-axis. See
For the purpose of calculations, the screen also has a z-axis that contains the screen's center point and is orthogonal to the xy-plane. Positive values of z are in front of the screen (where the use/observer is expected to be). Negative values of z are behind the screen. The screen physically exists on the xy-plane (where z=0). See
Observation Point—A 3D point in the common coordinate system that represents the location of an observer's point of reference; ideally this would be the location of the area between the observer's eyes, but could be the general location of the observer's head.
Observation Point x-Angle—the angle between: 1) the z-axis; and 2) a plane that contains both the observation point and the y-axis. See
Observation Point y-Angle—the angle between the angular position vector and the xz plane (the plane where y=0).
Sensor—The sensor tracks objects of interest, providing the visual augmentation algorithm with information needed to determine the Observation Point x-Angle and the Observation Point y-Angle.
Rotation Matrix—matrix R is a standard matrix for rotating points in 3D space about an axis.
Where: c=cos θ s=sin θ t=1−cos θ
And (x,y,z) is a unit vector on the axis of rotation. To rotate a point P at coordinates (Px,Py,Pz) about the axis containing unit vector (x,y,z) by the angle θ perform the following matrix multiplication:
Where the coordinates of the point P after the rotation are Nx,Ny,Nz
It is noted that that this matrix is presented in Graphics Gems (Glassner, Academic Press, 1990).
Stage—The physical area that is monitored by a motion-capture device, such as a room.
Tracking Matrix—a data structure that, once initialized, contains all the coordinate information necessary to generate a modified image from a base graphic. The tracking matrix is a collection of coordinate points organized into three sets per row. The three sets are Base Graphic Points, Virtual Points, and Projected Points.
An example of an initialized Tracking Matrix:
Coordinates in the Base Graphic Points set are 3D points that describe the base graphic (the original graphic used to generate a modified image). Coordinates in the Virtual Points set represent base graphic points that have been rotated once or twice in the common coordinate system. Coordinates in the Projected Points set represent the actual points used to draw the modified image on the screen (technically they are the projected point for the virtual point's observation line).
The tracking matrix consists of a Relative Y-Axis row, Relative X-Axis row, and one or more Point rows. The Relative Y-Axis represents the modified image's relative y-axis. The relative y-axis is used only for the first rotation. A virtual point and a projected point are never calculated from the Relative Y-Axis's Base Graphic Point.
The Relative X-Axis represents the modified image's relative x-axis. The Relative X-Axis's Base Graphic Point is rotated during the first rotation, producing the coordinates for the Relative X-Axis's Virtual Point. This virtual point is then used as the unit vector for the second rotation. The Relative X-Axis's Virtual Point are not rotated and subsequently updated as part of the second rotation.
For each Point in the tracking matrix the Base Graphic Point is a point in the actual base graphic. The coordinate in the Base Graphic Points set is rotated about the relative Y-Axis to produce the coordinates for the virtual point. Those coordinates are entered into the virtual points coordinates set on the same row. The Virtual Point coordinates are rotated about the Relative X-Axis, producing new coordinate values that overwrite the previous Virtual Point coordinate values.
For each Point row, the coordinate in the Projected Points set is derived from the coordinate in the Virtual Points set by calculating the projected point for the virtual point's observation line.
Tracking Matrix Phases—There are four phases of a Tracking Matrix.
1. Phase-1: Initialized—The coordinates in the Base
Graphic Points set are initialized.
2. Phase-2: Rotation About Relative Y-Axis—The Base Graphic Points are rotated about the unit vector defined in the Relative Y-Axis Base Graphic coordinate and are rotated by the value Observation Point X-Angle.
3. Phase-3: Rotation About Relative X-Axis—The Virtual Points are rotated about the Unit vector defined in the Relative X-Axis Virtual Point coordinate and are rotated by the value Observation Point Y-Angle.
4. Phase-4: Projected Points Generated
System Description
The overall system for implementing the present invention is shown in
Normally, the image generation device will send normal display images directly to the display 104. The present invention system adds the image augmentation device 100, which may be a general or special purpose computer programmed as described herein to incorporate the image augmentation methodologies of the present invention. In an alternative embodiment, the image augmentation device 100 and/or its programming may be incorporated directly into the image generation device 102, the display 104, and/or the position sensing device 106, as may be desired.
Also shown in
Calibration
For the calibration algorithm, the sensor tracks the location of a tracked object using a combination of distance from the sensor and the location of an object on a display screen. This is different from tracking an object using a pure 3D coordinate system.
After the calibration is performed good estimates will be established for the sensor's max horizontal viewing angle, the sensor's max vertical viewing angle, and the ratio to convert the sensor's unit of distance into a common unit of measurement used by the display (e.g. pixels). This information is needed to calculate the Observation Point X-Angle, Observation Point Y-Angle, and length of the angular position vector.
Procedure
See
The sensor calculates the distance D0 to the viewer in the sensor's unit of measurement for distance.
where: Sensor Width and Height are the dimensions of the sensor's screen tracking grid.
Visual Augmentation Calculations
All rotations are performed by multiplying the rotation matrix R in the manor described in the Rotation Matrix definition.
The flowchart of
Number | Date | Country | |
---|---|---|---|
61593976 | Feb 2012 | US |