The present disclosure relates to human-computer interaction systems. More specifically, the disclosure relates to methods and systems directed to three-dimensional pointing, using a system allowing determination of an absolute location on an image display apparatus using both active and passive devices.
The present invention reveals how a user can get an absolute location on an image display apparatus using a system integrated with both active and passive devices. The system consists of a pointing device called Absolute Pointer 22, an image display apparatus 30 (e.g., a projector, a TV, a monitor, etc.), an image capture device 2 (e.g., a webcam), and a computer 4. A transferring protocol, which can be wired or wireless, is adopted between the image capture device 2 and the computer 4 (Error! Reference source not found.).
The Absolute Pointer 22 functions as an infrared pointer, except it moves a cursor instead of a red spot. When an operator O uses Absolute Pointer 22 to aim at a point (e.g., point 6) on the image display apparatus 30, a cursor will appear at the location pointed to by the Absolute Pointer 22. This cursor will move when the Absolute Pointer 22 is moved, but always to a location pointed to by the Absolute Pointer 22 on the image display apparatus 30.
The Absolute Pointer 22 can also be used as a mouse-like input device. The position specified by the Absolute Pointer 22 is acquired through a computation process by the computer, and coordinates of the specified position can be used to identify an item or icon on the screen of the computer. Therefore, by manipulating the Absolute Pointer 22, a user can interact with most operating systems (e.g., Android® or Microsoft® Windows®), such as select files, programs, or actions from lists, groups of icons, etc., and can freely move files, programs, etc., issue commands or perform specific actions, such as we do in a drawing program.
Three components are embedded in the Absolute Pointer 22: a LED light source 20 (at the front end), a control panel 18, and a relative positioning subsystem 16 (
The front LED light source 20 is used as an indicator of the location of a cursor by the system.
The control panel 18 consists of multiple buttons, which can provide direct functionality, such as the number keys, arrow keys, enter button, power button, etc.
The relative positioning subsystem 16 consists of a set of relative motion detecting sensors to provide relative motion information of the device (e.g., acceleration, rotations, etc) to the computer in real time through some wireless channel. The set of relative motion detecting sensors contained in the relative positioning subsystem 16 can include a g-sensor, a gyroscope sensor and so on.
The image capture device 2 functions as a viewing device for the computer. It takes images of the scene in front of the image display apparatus at a fixed frame rate per second and sends the images to the computer for subsequent processing. Most of the conventional single lens imaging devices, such as a standard webcam, can be used as a image capture device for the system. However, to provide a steady performance, the image capture device should have a frame rate that is at least 30 frames per second.
The computer 4 provides the functionality of light source location recognition that will recognize the location of the LED light source 20 in the image sent by the image capture device 2, and then converts the LED light source 20 location in the image to a point (e.g., point 6) on the image display apparatus 30. When the computer 4 receives an image from the image capture device 2, it first identifies the location of the LED light source 20 in the image using image recognition techniques, it then finds x- and y-coordinates of the LED light source location in the image with respect to the origin of the coordinate system of the image. In the meanwhile, using a tilt vector provided by the relative positioning subsystem 16, the computer 4 can compute the distance between the Absolute Pointer 22 and the image display apparatus 30. The x- and y-coordinates of the LED light source location in the image are then used with the distance between the Absolute Pointer 22 and the image display apparatus 30 to determine the location of a cursor in the x-y coordinate system of the image display apparatus 30. Therefore, by moving the Absolute Pointer around in front of the image display apparatus 30, one can determine the location of a cursor on the image display apparatus 30 through the LED light at the front end of the Absolute Pointer 22.
The calculation process of the system is shown in
, the axis of the tilt Absolute Pointer 22.
Combining Steps 504 and 508, we can construct the following equations:
Notation definitions (the underlined parts are known parameters):
P=(X, Y, 0): Calibration point
=(vx, vy, vz): Slope vector
L=(Lx, Ly, Lz) : Actual position of light spot
A=(Ax, Ay): Projected point on CCD
f: Webcam focal length
W: Scaling ratio between CCD and image resolution
By projection relationship:
By calibration relationship:
Combine the above two equations in (2) by Ly, then
The next questions are:
First, we notice that the solution is NOT unique (FIG. 6)!
=(vx, vy, vz) and a projection point A=(Ax, Ay) only, there could be an infinite number of solutions P. As shown, when the light source 20 of the Absolute Pointer 22 is at different distances from the image display apparatus 30 (e.g., Point L1 20D, Point L2 20E, and Point L3 20F) but projected to the same point (e.g., Point A) in perspective projection on CCD 60, the same tilt vector
will result at different positions on the image display apparatus 30 (e.g., Points P1, P2, and P3).
However, if we start at calibration location L=(Lx, Ly, Lz) (20J) and record the moving direction =(tx, ty, tz) (
Therefore, if the light source is moved from position 20J to another position (e.g. such as 20I), then it only needs to start with the calibrated 3D coordinates L=(Lx, Ly, Lz) and keeps recording the moving direction (using the relative positioning subsystem 16) to get the displacement vector tz. Thereafter, using tz in conjunction with the given ≈=(vx, vy, vz) and A=(Ax, Ay), the computer 4 can solve the new position P′ on the image display apparatus 30 pointed by the Absolute Pointer 22.
When there is no image capture device 2 as an auxiliary tool, we then use the nine-axis relative positioning subsystem 16 for direct calculation. If the front light source is moved from position 20H to another position (e.g. such as 20G in =(tx, ty, tz). Then, with the given
=(vx, vy, vz), the computer 4 can solve the new position P′ on the image display apparatus 30 pointed by the Absolute Pointer 22.
We can use
This utility patent application claims the benefit of priority in U.S. Provisional Patent Application Ser. No. 61/942,605 filed on Feb. 20, 2014, the entirety of the disclosure of which is incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
61942605 | Feb 2014 | US |