Optical mouse with cursor rotating ability
09733727 · 2017-08-15
Inventors
Cpc classification
G06F3/0317
PHYSICS
G06F3/0308
PHYSICS
International classification
G06F3/033
PHYSICS
G06F3/0354
PHYSICS
Abstract
A surface navigation device for a computer or similar graphical display and methods for implementing its operation. The device moves sensitively and precisely over a surface such as a desktop and operator generated changes in its position relative to targetable objects on that desktop arranged about the circumference of a pseudo-circle are described in terms of a lumped motion vector. The motion vector is decomposed into a translational and rotational part by metrical and topological methods. The device communicates each part of the decomposed motion quickly and accurately to a computer screen or other display where it may implement the motion of a cursor or it may be used to manipulate objects having a 3D character by providing them with translational and rotational motions. The rotational parameter generated by the device may also be used independently to trigger some computer action.
Claims
1. A device for manipulating the position of an object or controlling a function of a computer or electronic system linked to a displaying device, comprising: a movable portion positioned against a reference surface over which said movable portion has a relative motion and wherein said reference surface has a plurality of fixed targetable objects thereon; a cavity formed in or on said movable portion wherein said cavity has an opening facing a portion of said reference surface wherein said portion includes said targetable objects; one and only one optical sensor embedded in said cavity, wherein said optical sensor is a multi-pixel image sensor; at least one light source embedded in said cavity; said device being configured to create an image frame defined by said one and only one optical sensor which is located within said cavity, wherein said image frame is configured to be electronically represented as a pixel image digitally representing a portion of said reference surface having said multiple targetable objects thereon; wherein said portion of said reference surface is illuminated by light from said at least one light source and whereby said plurality of targetable objects is captured in said pixel image and wherein said plurality of targetable objects is chosen to be in the form of clusters of targetable objects arranged about the periphery of a virtual circle denoted a “pseudo-circle” and wherein the motion of said targetable objects is represented in terms of the motion of said pseudo-circle; said device being configured to form a plurality of said pixel images corresponding to said reference surface with said targetable objects thereon, wherein said plurality of images correspond to the relative positions of said movable portion with respect to said reference surface; said device being configured to make an image frame comparison, whereby differences between successive images in said plurality of images are compared metrically and/or geometrically using said pseudo-circle as a moving reference system to provide what are denoted lumped motion vectors for said multiple targetable objects corresponding to said changes in said successive images; wherein each said lumped motion vector is capable of being decomposed into a translational part and a rotational part.
2. The device of claim 1 wherein said plurality of targetable objects that are selected as clusters of targetable objects to be arranged about said pseudo-circle, are arranged generally uniformly about said pseudo-circle, wherein each cluster has a center that is representable as a single point object and wherein the motion of each said center as obtained from data supplied by successive sensor frames is a lumped motion vector that is the combination of a translational and a rotational motion vector and wherein the averaged data of said lumped motion vectors, calculated in a weighted or non-weighted manner, of each of said centers is a translation motion vector that is used as a common term by said computer or electronics, whereby a subtraction of said translation vector from said lumped motion vector of each of said centers produces said rotational part of said lumped motion vector.
3. The device of claim 1 wherein said plurality of targetable objects have no motion relative to each other on said reference surface during the relative motion of said movable portion.
4. The device of claim 1 wherein said multiple targetable objects comprise optical artifacts such as shadows, scintillations and multi-colored hues that are captured by said at least one optical sensor.
5. The device of claim 1 wherein rotational and translational parts of said lumped motion vector correspond to translational motions and rotational motions of said movable portion relative to said reference surface and are used to provide independent control of translational and rotational motions of said object being manipulated on said display.
6. The device of claim 1 wherein said lumped motion vector is determined metrically using block matching algorithms MAD (mean absolute difference) or MSE (mean square error) or algorithms with equivalent merit, to compare a plurality of image frames digitally representing a motion produced by operation of said device.
7. The device of claim 6 wherein said lumped motion vector(s) has a linear dependence on the translational motion of said movable portion and wherein said lumped motion vector has a rotational component that is identified as a result of a non-linear dependence on the motion of said motion feature.
8. The device of claim 1 wherein a digital representation of said lumped motion vector is Fourier transformed to enable the positional representation of said lumped motion vector to be analyzed in a frequency domain.
9. The device of claim 1 wherein said plurality of individual clusters of objects are arranged along a circumference of a pseudo-circle and wherein a rotational motion vector is computed geometrically based on an angular displacement of said clusters around said circumference.
10. The device of claim 9 wherein a nearly symmetric location of light sources determines a rotational symmetry group whose group representation is utilized to determine said rotational motion vector.
11. The device of claim 1 wherein said targetable objects on said reference surface are shadows and wherein movement of said shadows as said motion feature is moved provides information for computation of a rotational motion vector.
12. The device of claim 11 wherein said shadows are formed by light sources of different wavelengths and wherein movement of said shadows is computed from variations of the relative intensities in the hues of each shadow corresponding to said wavelengths.
13. The device of claim 1 wherein said one and only one optical sensor is a monochromatic optical sensor and said at least one light source is a source of monochromatic light.
14. The device of claim 1 wherein said one and only one optical sensor is a polychromatic sensor that is sensitive to a first plurality of light beams formed by lights of different wavelengths and wherein said at least one light source is a second plurality of monochromatic sources wherein at least one source of said second plurality provides light within said first plurality of optical wavelengths.
15. The device of claim 1 wherein said one and only one optical sensor includes a filter layer that alters its chromatic sensitivity and increases its depth of field.
16. The device of claim 1 wherein pixel comparisons are interpreted using fuzzy logic, wherein said comparisons are satisfied only in a probabilistic sense as being more or less likely to be true.
17. The device of claim 1 wherein said rotational part produces a rotation of a cursor or a graphically generated object on a display screen.
18. The device of claim 1 wherein said rotational part activates a functionality used by said computer or electronic system.
19. The device of claim 1 used as a game controller.
20. The device of claim 1 embedded in a smart phone.
21. The device of claim 1 wherein said pixel images are images of fingerprints.
22. The device of claim 1 being an optical touch pad or being embedded in an optical touch pad.
23. The device of claim 1 wherein said one and only one optical sensor is capable of detecting a gestural movement of a human hand, finger, elbow or arm.
24. A method for moving a graphically generated image on an electronic display screen or switching on or off a function controlled by a computer corresponding to the motion of a device being navigated over a reference surface, comprising: providing a reference surface having a plurality of targetable objects thereon; providing a pseudo-circle to form a co-moving reference frame about whose periphery selected clusters of said targetable objects are arranged; providing a device capable of changing its position relative to said reference surface, wherein said device has a cavity that faces said reference surface via an opening, wherein said device comprises an optical sensor and at least one source of light whose wavelength corresponds to that of a sensitivity of said optical sensor, wherein said device forms a succession of image frames of a portion of said reference surface, whereby within said image frames said targetable objects are traced corresponding to a motion of said device relative to said reference surface; determining a lumped motion vector of said targetable objects by comparison of their positions in two successive image frames; decomposing said lumped motion vector into a translational component and a rotational component by use of said pseudo-circle; communicating said components to said computer or electronic system.
25. The method of claim 24 wherein an image on a display screen linked to said computer or electronic system is translated and rotated in a correspondence with said translational and rotational components respectively.
26. The method of claim 24 wherein said rotational component is used to activate or deactivate a computer functionality or to switch on or off a function of an electronic system.
27. The method of claim 24 wherein said motion of said device includes motions produced by hand and finger gestures of a device operator.
28. The method of claim 24 wherein said lumped motion vector is determined metrically from an arrangement of identifiable clusters of targetable objects positioned around said pseudo-circle.
29. The method of claim 28 wherein said metric determination utilizes a BMA (block matching algorithm).
30. The method of claim 28 wherein, using a geometrical analysis, non-linear terms are extracted from said lumped displacement vector and identified as the rotational part or high order part of said displacement vector.
31. The method of claim 24 wherein said targetable objects include both fixed physical objects and optical artifacts such as shadows, scintillations and multi-colored hues that can be captured by said optical sensor.
32. The method of claim 29 wherein said block matching algorithms comprise MAD (mean absolute difference), MSE (mean square error) methods or methods of equivalent functionality, to metrically compare image frames digitally represented as pixel blocks.
33. The method of claim 24 wherein said translational component has a linear dependence on the relative motion of said device and wherein said rotational component has a non-linear dependence on the relative motion of said device.
34. The method of claim 24 wherein said portion of said reference surface comprises a plurality of individual clusters of said targetable objects and wherein said individual clusters are arranged around a circumference of a pseudo circle and wherein a rotational motion vector is computed based on an angular displacement of said clusters around said circumference.
35. The method of claim 24 wherein a subset of said clusters is chosen to be farther from a rotational center so that an enhanced capability of said device in the determination of a rotational vector is obtained.
36. The method of claim 24 wherein a symmetric location of light sources determines a rotational symmetry group whose group representation is utilized to determine a rotational vector.
37. The method of claim 24 wherein said targetable objects on said reference surface cast shadows and wherein movement of said shadows provides information for computation of a rotational motion vector.
38. The method of claim 24 wherein said one and only one optical sensor is a single monochromatic optical sensor and said at least one light source is a single source of monochromatic light.
39. The method of claim 24 wherein said one and only one optical sensor is a single polychromatic sensor that is sensitive to a first plurality of optical wavelengths and wherein said at least one light source is a second plurality of monochromatic sources wherein at least one source of said second plurality provides light within said first plurality of optical wavelengths.
40. The method of claim 39 wherein said single polychromatic sensor comprises a layer working conjunctionally to increases the depth of field of said polychromatic sensor.
41. The method of claim 24 wherein said rotational motion vectors are interpreted using fuzzy logic, wherein the conditions of said fuzzy logics are satisfied only in a probabilistic sense as being more or less likely to be true.
42. The method of claim 41 wherein said fuzzy logic interpretation is used to trigger a computer action that corresponds to a range of values of a parameter rather than a single value.
43. The method of claim 37 wherein said movement of shadows is interpreted using fuzzy logic, whereby the rotation of an object is asserted to have a certain probability of being within a range of angles.
44. The method of claim 43 wherein said fuzzy logic interpretation is used to trigger a computer action that occurs when a parameter has a certain range of values rather than a single value.
45. The method of claim 28 wherein a positional representation of said lumped- motion vector is Fourier transformed to enable said positional representation to be analyzed in a frequency domain.
46. The method of claim 24 wherein said reference surface is a desktop.
47. A method of motion detection comprising: acquiring a first plurality of images wherein each image in said first plurality contains a second plurality of objects; grouping said second plurality of objects into discernable clusters and arranging said clusters about the circumferential periphery of a pseudo-circle; determining lumped motion vectors for each cluster by analyzing an intensity variation of light cast from said objects and captured within said images; determining a common linear motion vector of said clusters of objects as the linear motion vector of the center of the pseudo-circle; determining a non-linear motion vector of each of said clusters of objects; using data acquired from said linear motion vectors and from said non-linear motion vectors, determining a value or a status of a specific function used by a computer, electronic system or a system of equivalent functionality.
48. A motion detection device comprising: an image processing system capable of acquiring a first plurality of images wherein said first plurality of images include a second plurality of objects captured therein; wherein said image processing system is capable of grouping said second plurality of objects into a multiplicity of clusters and of arranging said clusters about the circumferential periphery of a pseudo-circle; wherein said image processing system is capable of determining a lumped motion vector for each of said multiplicity of clusters using variations of light intensity of light cast by said second plurality of objects within said first plurality of images; wherein using said pseudo-circle, said image processing system is further capable of determining a common linear motion vector for said clusters of objects; wherein said image processing system is capable of determining non-linear motion vectors for each of said multiplicity of clusters of objects; whereby, using data acquired from said common linear motion vector and from said non-linear motion vectors, said image processing system is capable of determining a status or a value of a specific function used by a computer, electronic system or a system of equivalent functionality.
49. A device for manipulating the position of an object or controlling a function of a computer or electronic system linked to a displaying device, comprising: a movable portion positioned against a reference surface over which said movable portion has a relative motion and wherein said reference surface has a plurality of fixed targetable objects thereon; a cavity formed in or on said movable portion wherein said cavity has an opening facing a portion of said reference surface wherein said portion includes said targetable objects; at least one optical sensor embedded in said cavity; at least one light source embedded in said cavity; said device being configured to create an image frame defined by said at least one optical sensor which is located in said cavity, wherein said image frame is capable of being electronically represented as a pixel image digitally representing a portion of said reference surface having said multiple targetable objects thereon; wherein said portion of said reference surface is illuminated by light from said at least one light source and whereby said plurality of targetable objects is captured in said pixel image and wherein said plurality of targetable objects is chosen to be in the form of clusters of targetable objects arranged about the periphery of a virtual circle denoted a “pseudo-circle” and wherein the motion of said targetable objects is represented in terms of the motion of said pseudo-circle; said device being capable of forming a plurality of said pixel images, corresponding to said reference surface with said targetable objects thereon, wherein said plurality of images correspond to the relative positions of said movable portion to said reference surface; said device being capable of making an image frame comparison, whereby differences between said images are compared metrically and/or geometrically using said pseudo-circle as a moving reference system to provide what are denoted lumped motion vectors for said multiple targetable objects corresponding to said changes in said images; wherein each said lumped motion vector is capable of being decomposed into a translational part and a rotational part.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)
(13)
(14)
(15)
(16)
(17)
(18)
(19)
(20)
(21)
(22)
DETAILED DESCRIPTION
(23) The present disclosure provides a navigation device, having a motional (motion detecting) feature, for moving cursors or other graphically generated objects on a display screen. The navigation device is described as being linked to a computer or electronic system, where “linked” refers to communicably linked in the sense that data can be transferred from the device to the computer or electronic system in a form that can be used by the computer or electronic system to enable the performance of its display functionality. The navigation device is suitable for use in next generation computers and other electronic products requiring a display that is both responsive to the gestures of the operator's forgers and can simultaneously and continuously provide both translations and rotations of object images.
(24) Embodiments of the device disclosed herein, which will be called a three-dimensional (3D) optical mouse, will be classified as a single-light-source type or a multiple-light-source type in terms of the methods used by it for image capture. The multiple-light-source type will be further classified as one that uses monochromatic light sources or one that uses polychromatic light sources.
(25) Associated with each of these embodiments, there will be described several mathematical methods that will be implemented to create the corresponding 3D movement of a cursor or other object on a display screen. These mathematical methods are for decomposing the general motion of a multiplicity of targeted objects on a reference plane, such as a desktop, relative to the device, into a translational part and a rotational part. These methods will in turn rely on analyses that enable the comparison of successive image frames captured by the device, expressed as digitized blocks of pixels, so that vector displacements and velocities of the device can be obtained.
(26)
(27) Referring, then, first to
(28) The device includes a body 204 having a lower surface, 214, and a cavity 203 formed in the body. The cavity has an opening through the lower surface of the body that faces the desktop surface and whose perimeter defines a portion of the desktop surface that will provide the boundaries of an image frame as the device is navigated.
(29) An image sensor 201 capable of capturing an image frame by the opening and closing of a shutter mechanism (not shown) and a light source 202 are mounted within the cavity, shown herein mounted at the upper portion of cavity 203, but other mounting positions are possible. An activation element 205 enables the device to transmit data to the computer display unit. The cavity opening in the body lower surface is positioned over a desktop surface 220 and, in this example, it faces three exemplary targetable objects on the surface, denoted for convenience as fixed point objects P, Q, and R. These objects have no intrinsic structure, and at this particular time they are located on the desktop surface within the opening of the cavity. Note that P, Q and R are all illustrated in the cross-section of
(30) When the surface and its objects P, Q and R is illuminated by light source 202, a series of image frames containing the objects P, Q, and R is captured by the image sensor 201 using the reflected light from P, Q and R. It is assumed that the elapsed time between the formation of successive image frames (i.e. successive shutter openings and closings) is of sufficiently short duration that the same three objects remain within the same image frame as will be shown in
(31) While the body of the device 204 is moving, the relative distance between object P and image sensor 201 changes accordingly; the same situation happens for objects Q and R as well. This leads to the displacement of each of the respective objects relative to their old positions in the image frame captured by 201 in
(32) The next position of the objects is shown in a second, overlapping image frame, subsequent to the movement of the device. The same objects, in their new positions relative to the device, are now denoted P′, Q′, and R′ and they are shown in schematic
(33) Measuring the positional difference for the captured images of the points in their respective image frames, such as the positional differences between P and P′, Q and Q′, and R and R′, a motion vector V.sub.T can be calculated and one is shown here schematically as an arrow pointing to the right. Note that this motion vector could represent a relative velocity vector (as it now does) or a displacement vector (in which case it would be shown connecting points C and C′), and the two types of vector are related through division by the elapsed time between successive images. It is to be noted that what
(34) Referring now to an underside view of schematics
(35) Referring next to
(36) As is now shown in
(37) In accordance with the geometry, the magnitude of rotational (tangential velocity) motion vector V.sub.R is proportional to r, which is the geometrical distance between the pivot C″ and the circumference of the circle on which the respective rotating objects reside. Specifically, as
V.sub.R=rω (22)
(38) In the prior art, the rotational motion vector, either as a displacement or a velocity, is typically not of interest since its magnitude and direction cannot be easily measured. It is conventionally treated as “noise.” In short, in the prior art optical mouse there is no rotational motion, but there is noise. To cope with this measurement “fiction”, it is necessary to reduce the amount of actually occurring rotational motion so that it can legitimately be considered as noise. The prior art, therefore, tries to trace only the motion of objects that are located as close to the pivot point C″ as possible (i.e. r˜0), so that the effects of taking the “noise” data into account inadvertently can be minimized. The present disclosure includes a method to extract the rotational vector from what we call the “lumped motion vector” that would include the effects of both rotational and translational motion. Note we use the phrase “lumped motion vector” because we intentionally put all the data ingredients into an indiscriminate group and then, subsequently, extract the rotational part from the total.
(39) By superposition, the apparent motion vector (V.sub.apparent)) of the targeted points as seen by image sensor 201 is a combined vector (a vector sum) of V.sub.T and V.sub.R; specifically as shown in equation (23):
V.sub.apparent=V.sub.T+V.sub.R (23)
where V.sub.apparent is the apparent motion vector. Here, we consider V.sub.T to be a linear term, in that it is proportional to (i.e., it is linearly dependent on) the translational motion of the targeted object. The rotational motion vector V.sub.R, on the other hand, is considered a non-linear term in the sense that it is independent of (i.e., not linearly dependent on) the translational motion of the device.
(40) It may not be feasible for the device to identify only three objects that are exactly located on a single envisioned circle on the desktop surface and still expect that each one of them deviates from the other by 120 degrees (as exemplary
(41) Today most of the conventional arts use a CMOS image sensor containing thousands of pixels to trace the targeted objects; such a resolution seems to be too low to characterize the rotational movement precisely. Since the present disclosure is intended to form images of clusters of objects, the desired resolution should be higher than that of the conventional art. Based on today's semiconductor manufacturing technology, the resolution of a CMOS image sensor can be easily in the range of millions of pixels, so the above technological requirement should pose no difficulty to the implementation of the present method, although this approach has not been exploited by the conventional art.
(42) Referring to schematic
(43) Point C″ in
(44) Finding the translational displacement vector V.sub.T is done as follows. Referring back to
(45) Cluster P″ contains the actual point objects 301A, 301B, 301C and 301D. Cluster Q″ contains the actual point objects 302A, 302B, 302C and 302D and cluster R″ contains the actual point objects 303A, 303B, 303C and 303D. We will use these point-clusters for deriving the translation displacement vector.
(46) By taking a series of images in time to indicate the motion of each cluster of objects, the present device is able to calculate three motion vectors for the local geometric centers of the respective clusters (i.e. 301A,B,C,D; 302A,B,C,D and 303A,B,C,D) where these local centers are being labeled collectively as points P″, Q″, and R″ respectively. We now designate the motion (i.e. displacement) vector components for cluster P″ as (Δx.sub.p″, Δy.sub.p″). Concurrently, using the same sensor images taken for cluster P″ (in which the objects of cluster Q″ also appear), one is able, in the same way, to derive the motion vector components for cluster Q″ as (Δx.sub.Q′, Δy.sub.Q″). The same situation applies to cluster R″ (i.e. the pair (Δx.sub.R″, Δy.sub.R″)). Note the above motion is the result of a translation and a rotation, therefore the resulting motion vector is the “lumped” sum of a translational motion vector and a rotational motion vector. At this stage, however, we still don't know the values of the separate translational and rotational motion vectors. However, the lumped motion vectors: (Δx.sub.P″, Δy.sub.P″), (Δx.sub.Q″, Δy.sub.Q″), and (Δx.sub.R″, Δy.sub.R″), will have translational components that are equivalent, both in magnitude and direction, because the clustered objects on the desktop surface do not have motions relative to each other. Thus, upon taking the average of the apparent motion vector, as is done below in Equ's (24) and (25), the rotational portions will be canceled out by symmetry, since the three clusters are separated by the same angle on the circle and this angle is fixed during the motion. If this common average value of the translational motion vector were not the same as the translational velocity of the center of the circle, then the point clusters would be moving away from the center of the circle and its shape would not be maintained. Thus, we conclude that there is a common value of the translational motion which must also be the value for the circle center and pivot point, C″:
(47)
where ΔX.sub.T is the translational motion vector in x direction of the pivot point C″, and ΔY.sub.T is the translational motion vector in y direction of the pivot point C″. From equations (24) and (25) we draw the following conclusion: regardless of the rotational movement of the device, which could easily be caused by the smallest human finger gestures in certain cases, the translational motion vector can be derived from the average value of the lumped motion vector; and the result will be quite accurate. Having found the common translational motion vector, we can subtract it from each of the lumped total motion vectors of the separate clusters and obtain the rotational motion vectors of each cluster as shown in
(48) We must assume, however, that the geometric centers of each of the clusters P″, Q″, and R″ do not jitter (a result of relative motions within the clusters) in the series of image frames. To suppress this jittering effect, one may:
(49) (1) Increase the number of targeted objects in each cluster;
(50) (2) Adjust the value r for each cluster in accord with practical observations, and then adjust Eq. (24) and (25) by appropriate weighting factors.
(51) Using the above methods, a highly precise translational motion vector will be derived. If one is still seeking higher accuracy, one may recognize that the rotational vector V.sub.R is influenced by the other factors such as r in Eq. (22). Thus, Eq. (23) can be rewritten as:
V.sub.apparent=V.sub.linear+V.sub.Non-linear (26)
(52) In (26), V.sub.apparent is the apparent motion vector (i.e. the lumped motion vector), V.sub.Linear is the linear part of the motion vector, and V.sub.Non-linear is the non-linear part of the motion vector of the respective clusters of objects (i.e. the clusters within P″, Q″, and R″). Again, we use the term “linear” to emphasize that a motion vector is proportional to (i.e., linearly dependent on) the translational motion vector of the device itself on the desktop surface. From Eq's. (23) to (26), we changed the description of V.sub.apparent because in practical cases, there are various factors (other than just the translation and rotation of the surface points relative to the sensor) that can influence V.sub.apparent. For example, there are various optical phenomena associated with the way in which pixels in the image frame move that will influence the “apparent” determination of the motion of objects that have been cast in pixel form. V.sub.R, merely denotes the rotational vector. For example, we shall see below that the relative positions of a shadow and the object that casts the shadow on the desktop surface will change whenever there is a rotational movement. If the device selects a shadow as the targeted object with which to detect motion, then Equ.(26) would be further modified as
V.sub.apparent=V.sub.Linear+V.sub.Non-linear1+V.sub.Non-linear2+ . . . (27)
where V.sub.Non-linear1 denotes the rotational vector of the object body and V.sub.Non-linear2 denotes the movement of the shadow of said object which, itself, depends on rotation of the object body because of the rotation of the light source that creates the shadows. If one still takes additional factors into account, then Eq. (27) can be expanded as a series. Thus, Eq. (27) reveals an important fact: the first non-linear term on the right hand side of the equation, V.sub.Non-linear1 provides the image sensor with rotation vector sensing capability. The second non-linear term, V.sub.Non-linear2 has to do with such other optical artifacts as changes of shadow position, depth of field or scintillation effects, which often contribute to the content of this term.
(53) In the conventional (prior) art, the rotational motion vector is not a desired quantity since its magnitude and direction cannot be measured easily. To cope with this problem, prior art typically will trace the objects that are located as close to the pivot point C″ as possible (i.e. r˜0), so that the problem of taking the “noise” data into account inadvertently can be minimized. We recall that the “noise” may, in fact, not be noise at all, but may be the result of rotations.
(54) The present method also traces objects that are not necessarily located near the pivot pinot C″, although the objects on or nearby the pivot point C″ still can be used for calculating the translational motion vector.
(55) In an image frame, everything is static once the picture is formed; there is no motion in that static picture. The conventional method of deriving a motion vector from a sequence of static pictures is based on the fundamental principle of video technology, which calculates the positional displacements of an object that appears in a series of picture frames (i.e. pixel frames). Thus, the positional displacement of a targeted object (ΔX, ΔY) can be a function of time. Note carefully that the above stated time will generally be a composite one, which comprises frame rate (e.g. in the units of frames/sec) and camera shutter time (μsec/pixel exposure time). Therefore, after the elapsed period of time during which image formation occurs, the resulting data (ΔX, ΔY) will also be a composite, with all the events that that have taken place within the different elapsed time periods having their own impacts on (ΔX, ΔY)).
(56) For the composite motion vector of an object or cluster of objects, the motion beginning at an particular time t.sub.0 and going to some later time t measured from the opening of the shutter at time t.sub.0, such as the displacement along the x axis (i.e. the horizontal axis as in
(57)
(58) As for ΔY, the displacement of each object in y axis, similarly, has a lumped motion vector (i.e. apparent motion vector) as
(59)
(60) Human hands, particularly fingers, are capable of many gestures. When a human hand moves, the present device will sense a motion that may not necessarily be solely translational. There are many factors capable of generating the second or even third term on the right hand side of Eq. (28A) through (28F). Together, these terms provide the contributions of delicate motion vectors of the hand gestures such as jittering, waving, rotation and stroking, that the conventional art does not have the comprehensible knowledge to utilize. Being able to detect and manipulate the respective signals (i.e. variations in the pixel values) in the non-linear regime will make the next generation object navigation device described herein and the operation systems, computer, and electronic devices that use it, much more interactive with their operators.
(61) In conventional art, the mathematical and electronic methods of creating motion pictures and comparing them in a frame-by-frame (and pixel by pixel) manner are associated with the MAD (Mean Absolute Difference) or MSE (Mean Square Error) methodologies, whose formulae are illustrated in the following equations:
(62)
In (29) and (30), C.sub.i, j is the measurable value (e.g. intensity, grey level) of the (i, j) pixel in one image frame. R.sub.i, j is the value of the corresponding (i, j) pixel in another image frame to which it is to be compared. M and N denote the resolution of the pixel block used for comparison (i.e. M×N being the total number of pixels in this case). In MAD, it is the absolute differences that furnish the comparisons, in MSE it is the squares of the differences.
(63) In the prior art, the above methods (MAD and MSE) are often referred to as the block matching algorithms (BMA), since they allow comparison between the appearance of an image in two frames. Note that MAD and MSE approach their minimal values when a pixel block containing the C pixels identically matches the pixel block that contains the R pixels. However, the means of determining these pixel blocks can be different, depending on the algorithms used, and the respective MAD and MSE will vary correspondingly. Thus, although the position of an object may be static in a given set of image frames (e.g. there being no movement in successive frames), certain non-linear terms in the motion vector still may arise as artifacts of the calculation methods (i.e. algorithms) used. To illustrate this phenomenon, we will start with the two-dimensional Fourier Transformation, F(u, v) of a discrete function f(x, y), which is the pixel value of an image frame being treated as a discrete function.
(64)
In (31) and (32) the discrete function ƒ(x, y) represents the function ƒ(x.sub.0+aΔx, y.sub.0+bΔy) for a=0, 1, 2, . . . , M−1 and b=0, 1, 2, . . . , N−1 and x.sub.0 and y.sub.0 are arbitrary initial values of the digitized coordinates. Then, θ(x, y) is the pixel value at each set of coordinates. The sampling increment in the pixel domain (x, y) and the frequency domain (u, v) are related by
(65)
(66) Eq's. (31) through (32) expresses the relationship between a discrete function (i.e. ƒ(x, y)) and its Fourier Transformation, i.e. F(u, v). To measure the motion vector of the same object in two image frames, one has to compare the locations of the same object in the two corresponding pixel frames. We may use the known methods of pattern recognition, speckle tracing, or pixel block matching to derive the motion vectors (e.g. ΔX and ΔY). On the other hand, as a result of various optical artifacts, even the same object may generate slightly different images in the respective pixel frames. In other words, from the optical point of view, the same objects do not generally appear exactly the same (i.e. in grey levels) when they are viewed in different pixel frames. The slight changes of contours, brightness, and other optical factors inherent to the objects are all subject to the effects of rotational movement, variation of illumination conditions, angle of incident light, etc. Because they are affected by these phenomena, as is known in the prior art, the calculated values of ΔX and ΔY are not precise data; they vary as a result of many factors, and as a result, there are usually some errors in the calculation. To trace the origin of these errors, we now use Eq. (35) and (36) to show how effects of movement in the positional pixel frame appear in the frequency frame.
(67)
As Eq's. (35) and (36) show, when an object is translated in the pixel domain (x, y), the corresponding Fourier Transform (i.e. F(u−u.sub.0, v−v.sub.0)) undergoes a corresponding translational movement in frequency domain (u, v). In Eqs. (35) and (36), we have let M=N, so a single parameter N denotes the length of one edge of the image frame. This simplification will not affect the general results as stated.
(68) A similar situation occurs with respect to the rotational movement. We will change the coordinate system to polar coordinates in order to illustrate this phenomenon. We let
x=r cos θ,y=r sin θ,u=ω cos φv=ω sin φ (37)
Thus, ƒ(x, y) and F(u, v) can be converted to ƒ(r, θ) and F(ω, φ).
When we put Eq. (37) into Eq. (35) and (36) we find that
ƒ(r,θ+θ.sub.0)F(ω,φ+θ.sub.0) (38)
(69) Equ. (38) means that when a function (e.g. data in a pixel array) is moved by a rotational angle θ.sub.0, its Fourier transform will be moved by the same rotational angle θ.sub.0 in frequency domain. This phenomenon provides the fundamental rules by which the present device can extract motion vectors. The error associated with whatever algorithm is used thus can be addressed.
(70) To begin the task of extracting displacement vectors from pixel images, we must first know that conventional art performs motion detections by raster scanning the targeted pixel blocks. This method is in effect the application of an algorithm that searches for the objects in the frequency domain that have undergone a translational shift (i.e. similar to what Eqs (35) and (36) describe). Specifically, whenever searching for an object in successive pixel frames, conventional art will generally raster scan the respective data blocks in the memory unit. To do this, requires that the intensity of pixel data be converted to digital data and stored as an array in the memory of the present device. The best matching condition results when two memory blocks yield a satisfactorily low MAD or MSE.
(71) As has been said, the above described process is effectively shifting an object in an image frame by a translational motion vector (i.e. (ΔX, ΔY)). According to Eq. (35) and (36), after performing a Fourier Transformation, the new data set is like the original data set, but shifted by a translational motion vector. Since no other errors would be produced by the method (i.e. by shifting the pixel blocks), theoretically, two closely matching pixel blocks should yield very low values of MAD and MSE. We thus understand that raster scanning an image frame (or a corresponding pixel block) in such a way would provide the minimal calculation error for translational motion vector measurement (i.e. MAD or MSE.fwdarw.0). This, then, is the fundamental reason why prior art desires to provide the translational motion vector but not the rotational ones. If motional detection is limited to translations, then a confident conclusion can be drawn that the correct set of objects has been chosen and that their motion has been determined.
(72) Characterizing rotational movement is different. Slightly careless data processing may lead to a large calculation error. This can be explained by the Fourier transformation process again. According to equation (37), an object that has been rotated in the pixel domain will have its corresponding data in frequency domain also rotated by the same angle. Unfortunately, the object searching method used by prior art is still raster scanning (i.e. applying BMA in the pixel domain). But this is like using a Cartesian coordinate system in which to represent an object that is only to be moved by a rotational motion vector. The coordinate system is poorly matched to the motion being described and, therefore, will produce a description that is extremely complex. Thus, it is not surprising that the conventional method (i.e. block matching algorithm, raster scanning in pixel domain, etc.) cannot yield low MAD or MSE whenever the object has a rotational movement. Thus, in the prior art, limiting the motion identification to translation, the BMAs can produce a confident conclusion that the correct images have been identified and followed.
(73) One may find that the use of a Cartesian coordinate system to trace the rotational movement of an object creates a loss of accuracy associated with rθ (i.e. r denotes the distance between the object and the pivot point, and θ denotes the rotational angle, respectively). Thus, for the same angular displacement θ, the resulting positional displacement of the respective pixels of a rotating object (in pixel domain) can be increased with the increased value of r. In the frequency domain, this means that high frequency data are prone to generate more errors (on motion vector data). We refer back to the Fourier series and envision that the DC term (i.e. zero frequency) is most accurate for the use of deriving translational motion vectors. As for the AC terms (i.e. frequency not zero), the calculation error in the conventional art increases with increasing frequency. Here the AC terms will denote the pattern or shape of the object (e.g. serif of text, edges, and corners of square, surface roughness). On the other hand, the AC terms can also be associated with noise. So the device user faces the following dilemma. When an object is rotating, the device user desires to use some of the AC terms to recognize the object from its shape; but the device engineer also desires to remove the AC terms that are associated with noise. In most situations, the device engineer really doesn't know which of the AC term(s) is (are) the best for identifying the rotating objects and which are the noise. Hence, solely relying on MAD or MSE as a means to locate a rotating object in a series of image frames may easily lead to a soaring calculation load in the prior art, and the search result is by no means guaranteed when the value of MAD or MSE is not convergent.
(74) Thus, it is evident now that this issue should be addressed by alternative means such as fuzzy logic or neural functions. In fuzzy logic, the outcome of a situation is decided by its propensity to happen, a characteristic that is similar to probability. The present disclosure thus provides a possible parameter for deciding whether two sets of pixels are describing the same object when that object is rotating:
(75)
(76) The expressions in Eq. (39) denotes the probability of mistaking two objects lying in two different pixel blocks as being the same object. If MAD=0, then, regardless of the noise level,
(77)
is always zero, which means that the probability of mistaking two different objects as the same one is zero because one can always find the object (i.e. MAD=0; there is no difference between the two pixel blocks being compared) in whatever noise level exists. On the other hand, if the noise level of Eq. (39) is very high, then, regardless of the value of MAD, the term
(78)
is always very low, and this denotes an extreme situation in which the object(s) simply cannot be identified. In essence, the objects in the image frame have been smeared out to such a degree by the noise that nothing is left to be mistaken.
(79) In practice, the performance of the conventional optical mouse lies between the above two extremes, i.e. MAD>0, and noise level is not low. Similarly, as in the prior art, the initial motion vector derived using the present device is not a perfect one, as it is described by both translational and rotational motion vectors, as well as errors. And it should be noted that this imperfectly described motion vector is a generic problem, but not necessarily a problem to the present device.
(80) What differentiates the present device and the present method from the conventional prior art device and its method, is that the present method and device uses topological (e.g. as described in
(81) In short, the present disclosure addresses the problem of dealing with non-linear terms faced by the conventional art by using the DC term and AC terms intelligently (i.e. applying further geometrical/topological rules to the motion vectors derived). Thus benefitting from the combined application of topological means and optical means, from low order to high order (i.e. terms in Eq. (28A) through (28F)), the present device and its method of use can identify different types of motion vectors (e.g. rotation, shadow movement, etc.).
(82) In the following description of Embodiment 1, various ways of using the non-linear term(s) to achieve the desired sensitivity to different kinds of motions are presented. This will enable the present device as well as future object navigation devices to explore many graphical applications and provide the operator with the ability to perform device manipulations (e.g. finger gesture sensing, wrist gesture sensing, etc.) that are presently not available.
(83) Embodiment 1
(84) Embodiment 1 represents a single light-source device and its method of use that enables the rotational motion vector to be extracted from the lumped motion vector. The device is the one illustrated in
(85) Referring to schematic
(86) Inside cluster P″, four numbered objects 301A, 301B, 301C, and 301D are selected for use in motion detection. Similarly, for cluster Q″, objects 302A, 302B, 302C, and 302D are selected for motion detection use and cluster R″ is composed of object 303A, 303B, 303C, and 303D, that are likewise selected for motion detection.
(87) Clusters 301A, 301B, 301C and 301D, 302A, 302B, 302C and 302D, and 303A, 303B, 303C and 303D and their corresponding centers P″, Q″ and R″ are located on the same imagined circle 300, which has a fixed radial distance 304 to its center, point C″. In practice, the numbers of objects in the respective clusters are not necessarily the same, and the rule of thumb is that larger numbers of objects lead to more accurate calculations.
(88) Within each cluster, it is desirable that the objects are located as closely together as possible. But the objects of the different clusters should be far apart. The three clusters in this example are separated from each other by about 120 degrees on the circle. Through a series of image capturing processes using the device sensor (see sensor 202 in
(89)
Here V.sub.301 denotes the motion vector of cluster 301, V.sub.301A denotes the motion vector of object 301A, V.sub.301B denotes the motion vector of object 301B, V.sub.301C denotes the motion vector of object 301C, and V.sub.301D denotes the motion vector of object 301D.
(90) Using the same averaging method, the device calculates the motion vector for the remaining two clusters, which are, respectively,
(91)
where V.sub.302 denotes the motion vector of cluster 302, V.sub.302A denotes the motion vector of object 302A, V.sub.302B denotes the motion vector of object 302B, V.sub.302C denotes the motion vector of object 302C, and V.sub.302D denotes the motion vector of object 302D.
(92) Likewise, V.sub.303 denotes the motion vector of cluster 303, V.sub.303A denotes the motion vector of object 303A, V.sub.303B denotes the motion vector of object 303B, V.sub.303C denotes the motion vector of object 303C, and V.sub.303D denotes the motion vector of object 303D.
(93) The translational motion vector of the geometrical center of cluster 301, 302, and 303 (i.e. point C″ in
(94)
(95) To derive the rotational motion vector, V.sub.R, 301 (etc.) one calculates the difference between the total motion vectors of each of the respective clusters and V.sub.T. Thus,
V.sub.R,301=V.sub.301−V.sub.T (44)
V.sub.R,302=V.sub.302−V.sub.T (45)
V.sub.R,303=V.sub.303−V.sub.T (46)
where V.sub.R, 301, V.sub.R, 302, and V.sub.R, 303 are the rotational vectors of clusters 301, 302, and 303, respectively.
(96) Note that the present device does not necessarily have to send the values of V.sub.R, 301, V.sub.R, 302, and V.sub.R, 303 to the computer. An angular displacement vector θ can be derived by
(97)
(98) The device engineer/operator can designate any one of Equ. (47), (48), or (49) as the formula to be used in deriving the rotational vector (i.e. the angular displacement) of the device. Alternatively, the device engineer may use two or three of said formulas to increase the reliability of the device.
(99) Thus, by these methods, the present device is able to send a data stream consisting of V.sub.T and θ to the system for object navigation use. Alternatively, because it is independent of the translational motion, factor θ can be used for other computer functional purposes such as zoom in (e.g. θ>0) or zoom out (e.g. θ<0), or file open and close. Still further, there may be occasions when the device transmits V.sub.R (e.g. V.sub.R, 301) instead of θ to the computer. In this case the corresponding cursor or whatever object is in the display device will be capable of certain motions based on the particular algorithm used by the computer. In short, there are many applications that can be developed based on the new use of the rotational vector θ or V.sub.R.
(100) As yet another aspect of the method and device, we may find that the device, when used together with fuzzy logic or neural functions, may enable an innovative way of using those fuzzy logic or neural functions to enhance object/cursor navigation technology. As
(101) Using the basic principles already outlined, one may further develop or modify the present design by, for example, designating the number of clusters to be different than three. Or, the clusters may not necessarily be all located on the same pseudo-circle 300 (e.g. r may vary). Instead, the clusters can be located on an oval orbit or an arbitrary loop (i.e. r≠constant), and the ones that are positioned on a larger r (i.e. greater distance to the pivot point) will be more sensitive to the rotational movement, and the ones that are closer to the pivot point will be less sensitive. These variations of the method all stem from the same design rules of the present device (e.g. as in Embodiment 1).
(102) In yet another aspect of the method, the device may delegate the task of cluster recognition to the computer, in which case certain pixel blocks, or certain image frames as a whole will be transmitted to the computer for use in various applications. Pre- and post-image processing techniques (e.g. contour enhancement) may also be applied using the present device. The disclosed methodology literally opens a new technological terrain for next generation computer/electronic systems to maneuver objects on the displaying device.
(103) Embodiment 2
(104) Embodiment 2 will be understood in conjunction with schematic
(105) As shown further in schematic side cross-sectional view of
(106)
(107) In
(108) Note that the spectral performance of the respective light sources (e.g. color, or wavelength range, etc.) of
(109) To illustrate the method of achieving high performance for the present multi-light source device, we now arbitrarily designate the colors of the three light sources to be red, green, and blue. In addition, image sensor 403 is a color image sensor (polychromatic). The specific color sensitivity of the respective pixels in the image sensor can be explained by reference to schematic
(110) Referring first to
(111) The second merit of this embodiment—stray light cancelation—has to do with the spectral sensitivity of the color filters 504 that are deposited on pixel 501, 502, and 503, respectively. This effect has a significant influence on noise suppression and the sensitivity of the presently invented device to object motions. In
(112) Embodiment 3
(113) In this embodiment, the color tone (e.g. CIE1931 color index or the like) of a shadow cast by an object on the desktop is used to derive the rotational vectors. The device design concept of embodiment 3 is different than that of embodiment 2. In embodiment 2, the non-linear terms of the motion vector are desired to be removed by the multiple color light sources and color image sensor. In fact, certain non-liner terms also can be utilized to help detect shadows or motions that are associated with the special motions of the objects, and this in turn shall enhance the ultimate performance of the present device.
(114) In this embodiment, as illustrated in schematic
(115) When the device cavity 611 undergoes a rotational movement, the color (i.e. the wavelength of light) of the shadow changes in accordance with the rotational movement of the device and the corresponding movement of the light sources.
(116) For example, when a shadow is moved toward a red light source, it will be impinged upon by a greater amount of red light; and, by the same token, this shadow will receive less of an amount of green light when it is moved away from the green light source. By detecting the subtle changes in the intensity of light of different color within the shadows, the present device is able to determine the rotational vectors.
(117) Note that the above described technique of measuring the rotational motion vector by measuring shadow tinting can be done without hindering the process of calculating the translational motion vectors. There is essentially no block matching (BMA) process involved in tint detection, so the translational motion is independently determined. This means that the method and the device are able to provide both translational and rotational motion vectors concurrently and without mutual interference.
(118) Note also that the present device can use the analog signal generated by the measurement of its relative motion to control certain functions in associated applications that are used along with the device. There are many such applications for which triggering an event only requires a fuzzy (i.e., indefinite) signal, which can be easily provided by the tint analysis.
(119)
(120) We note again that the conventional optical mouse can only measure the lumped motion vector. The present device, together with its method of use, takes the lumped data and extracts the non-linear terms so that the translational part of the motion (linear part) and the rotational part (non-linear part) are cleanly separated.
(121) In practice, the selection of the ways of calculating the rotational motion vector depends on the surface condition of the object plane. For example, if the surface is very rough and shadows are many, then calculating the rotational motion vector based on the translation motion vector should be a robust method. On the other hand, when the desktop surface is very flat, but certain particles are seated thereon, then checking the color of the shadow of the dust would be an easier way to determine the rotational motion vector.
(122) Embodiment 4
(123) In a color image frame as is depicted by the polychromatic sensor of
(124) Fortunately the device does not really have to do so for every shadow, although it may still do so in certain applications. What the present motion sensing device does, as described in Embodiment 1, is to calculate the lumped motion vector of the targeted object in the respective sub-image(s) (e.g. as is done for multi-hued shadows in
(125) In embodiment 2 (i.e.
(126) For the motion navigation device as is depicted schematically in
(127)
(128) Rotational motion vectors do have similar relationships as the translational ones do. But, as has been stated above, the rotational motion vector is subjected to and displays the influence of more kinds of factors, including illumination effects and the effects of surface roughness. Thus, the device user would face more challenges upon using group theory to identify rotational motion vectors. Above all, Equations (50), (51), and (52) do hold for rotational motion vectors provided noise is not a concern.
(129) Equations (50), (51), and (52) are the generic formulas derived from C.sub.3 symmetry. If there are more than three light sources, or if the number of clusters is not three, or if the geometrical position of the light sources is not exactly in the C.sub.3 symmetry group, then the device user must modify equation (50) through (52) to fit the specific symmetry situation (e.g. C.sub.n). In essence, this embodiment provides a general method to verify/derive the translational and rotational motion vectors with high accuracy, and this method looks into the pixel plane with a geometrical perspective based on symmetry considerations. By analyzing the data derived from the pixel plane using group theory, the present technology (device plus method of analysis) reaches a level of unprecedented accuracy and reliability.
(130) In short, the nonlinear term embedded in the translational motion vector, the term that was caused by the rotational movement and shadows of surface roughness—the ones that were deemed by the prior art to be noise, now can be used to calculate the rotational vectors. Thus, multiple light sources and color image sensors also strengthen the ultimate performance of this disclosure, in a manner that has not been achieved by any prior art before. Applying group theory to an object navigation device (e.g. an optical mouse) has also never been done before.
(131) Embodiment 5
(132) This embodiment demonstrates that the present device can be utilized more generally for the detection of relative motions and for corresponding applications that are more general than cursor maneuvering. We will illustrate this contention using 2D and 3D graphic rendering processes and users of the presently disclosed method can refer to these examples and create their own applications while remaining within the spirit and scope of the method and its implementation.
(133) As is well known by those who practice the art of using computer generated graphics, the basic motional data transferred to the CPU (central processing unit) of the computer by a motion generating and navigational device, such as the one described herein, must be acquired by the GPU (graphical processing unit) of the graphics rendering system in a manner and form that allows movements of the navigational device to be implemented as some corresponding movement of the graphics image generated by the rendering system.
(134) Referring now to
(135) Using an exemplary set of instructions as might be found in Microsoft Direct 3D™, one might find that there are mainly three world matrices which provide the updated motion of the object. For example, in the instruction set, one may find the following:
D3DXMatrixTranslation(D3DXMATRIX*pout,FLOAT x,FLOAT y,FLOAT z); (53A)
D3DXMatrixRotationX(D3DXMATRIX*pOut,FLOAT angle) (53B)
D3DXMatrixRotationY(D3DXMATRIX*pOut,FLOAT angle) (53C)
D3DXMatrixRotationZ(D3DXMATRIX*pOut,FLOAT angle) (53D)
(136) Thus, by providing updated data of x, y, and z (Prefix FLOAT denotes the data are in floating point format), or rotational angle with regard to x-axis, y-axis, or z-axis, the operator is able to move a selected object by translational movement or rotational movement. On the other hand, since the conventional mouse is a 2D device, it does not provide 3D motion vector needed by Eq. 52 A thorough D directly. To derive the parameter z, one would have to resort to
(137) Referring to
x′=x−z cos θ (54A)
y′=y−z sin θ (54B)
(138) In conventional art, the angle θ in Eq. 54 A and 54B is often a predefined value. Thus, the operator is not able to adjust the z value easily.
(139)
(140) Note that the conventional graphic rendering system (i.e. the integrated system of CPU+GPU illustrated in
(141) Referring back to
(142) As is understood by a person skilled in the art, the present description is illustrative of the present disclosure rather than limiting of the present disclosure. Revisions and modifications may be made to methods, materials, structures and dimensions employed in forming and using a motion sensing, generating and navigation device for controlling and implementing the translational and rotational movement of graphical representations on a computerized graphical display while still forming and providing such a device and its method of use in accord with the spirit and scope of the present disclosure as defined by the appended claims.