US2009174676A1PendingUtilityA1

Motion component dominance factors for motion locking of touch sensor data

Assignee: APPLE INCPriority: Jan 4, 2008Filed: Sep 25, 2008Published: Jul 9, 2009
Est. expiryJan 4, 2028(~1.4 yrs left)· nominal 20-yr term from priority
G06V 10/421G06T 7/337G06F 3/04883G06F 3/0418
49
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

An image jaggedness filter is disclosed that can be used to detect the presence of ungrounded objects such as water droplets or coins, and delay periodic baseline adjustments until these objects are no longer present. To do otherwise could produce inaccurate normalized baseline sensor output values. The application of a global baseline offset is also disclosed to quickly modify the sensor offset values to account for conditions such as rapid temperature changes. Background pixels not part of any touch regions can be used to detect changes to no-touch sensor output values and globally modify the sensor offset values accordingly. The use of motion dominance ratios and axis domination confidence values is also disclosed to improve the accuracy of locking onto dominant motion components as part of gesture recognition.

Claims

exact text as granted — not AI-modified
1 . A method for processing touch images using separable control, comprising:
 computing a scale_dominance_ratio (SDR) value and a rotate_dominance_ratio (RDR) value as a function of identified contacts on a touch sensor panel, the SDR and RDR values representing dominance values of a scaling component and a rotational component, respectively, of motion associated with the contacts;   utilizing the SDR and RDR values to determine a motion component to lock onto when performing gesture identification.   
   
   
       2 . The method of  claim 1 , further comprising computing the SDR and RDR values as a function of fingers and thumbs associated with the contacts. 
   
   
       3 . The method of  claim 1 , further comprising:
 capturing multiple images of touch;   extracting motion components from the captured images of touch;   computing a smooth translation speed, a smooth rotate speed, and a smooth scale speed from the motion components; and   utilizing the smooth translation speed, the smooth rotate speed, and the smooth scale speed along with the SDR and RDR values to determine the motion component to lock into when performing gesture identification.   
   
   
       4 . The method of  claim 3 , the motion components comprising an x-direction velocity (Vx), a y-direction velocity (Vy), a rotational velocity (Vr), and a scaling velocity (Vs). 
   
   
       5 . The method of  claim 4 , further comprising applying a mathematical low pass filter (LPF) to compute the smooth translation speed, the smooth rotate speed, and the smooth scale speed as: 
     
       
         
               
               
             
                   
                   
               
                   
                 Smooth_translation_speed = (LPF(Vx) 2  + LPF(Vy) 2 ) 0.5 ; 
               
                   
                 Smooth_rotate_speed = LPF(Vr); and 
               
                   
                 Smooth_scale_speed = LPF(Vs). 
               
                   
                   
               
           
              
             
             
              
              
              
              
             
          
         
       
     
   
   
       6 . The method of  claim 2 , further comprising setting the SDR and RDR values to 2.5 if a thumb is detected as one of the identified contacts. 
   
   
       7 . The method of  claim 2 , further comprising setting the SDR and RDR values below 2.5 if two or more fingers but no thumbs are detected as the identified contacts. 
   
   
       8 . The method of  claim 7 , further comprising setting the SDR to about 0.25 if a finger separation between at least two of the fingers is between 0 and about 3 cm, setting the SDR between about 0.25 and about 1.25 if the finger separation is between about 3 cm and about 6 cm, and setting the SDR to between about 1.25 and about 2.5 if the finger separation is greater than about 6 cm. 
   
   
       9 . The method of  claim 8 , further comprising setting the SDR to 0.25 even if the finger separation is greater than about 3 cm if a downward translation is detected along with a scale contraction. 
   
   
       10 . The method of  claim 3 , further comprising:
 locking onto a translation component and clipping the scaling component of the motion associated with the contacts if the smooth translation speed is greater than the SDR multiplied by the smooth scale speed; and   locking onto the translation component and clipping the rotational component of the motion associated with the contacts if the smooth translation speed is greater than the RDR multiplied by the smooth rotate speed.   
   
   
       11 . The method of  claim 10 , further comprising computing an axis domination confidence value as a representation of an unambiguousness of the motion component to lock onto as:
 if the smooth translation speed is less than the smooth scale speed plus the smooth rotate speed, then   
     
       
         
           
             
               
                 axis_domination 
                  
                 _confidence 
               
               = 
               
                 1 
                 - 
                 
                   
                     smooth 
                      
                     
                         
                     
                      
                     translation 
                      
                     
                         
                     
                      
                     speed 
                   
                   
                     ( 
                     
                       
                         
                           
                             
                               smooth_scale 
                                
                               _speed 
                             
                             + 
                           
                         
                       
                       
                         
                           
                             smooth_rotate 
                              
                             _speed 
                           
                         
                       
                     
                     ) 
                   
                 
               
             
             , 
             
               
 
             
              
             otherwise 
             , 
             
               
 
             
              
             
               
                 axis_domination 
                  
                 _confidence 
               
               = 
               
                 1 
                 - 
                 
                   
                     
                       ( 
                       
                         
                           
                             
                               
                                 smooth_scale 
                                  
                                 _speed 
                               
                               + 
                             
                           
                         
                         
                           
                             
                               smooth_rotate 
                                
                               _speed 
                             
                           
                         
                       
                       ) 
                     
                     
                       smooth 
                        
                       
                           
                       
                        
                       translation 
                        
                       
                           
                       
                        
                       speed 
                     
                   
                   . 
                 
               
             
           
         
       
     
   
   
       12 . The method of  claim 11 , further comprising delaying the locking onto the motion component by an amount proportional to the axis domination confidence value. 
   
   
       13 . The method of  claim 11 , further comprising multiplying the axis domination confidence value by any non-clipped motion components to delay a locking decision. 
   
   
       14 . A computer-readable storage medium storing program code for processing touch images using separable control, the program code for causing performance of a method comprising:
 computing a scale_dominance_ratio (SDR) value and a rotate_dominance_ratio (RDR) value as a function of identified finger and thumb contacts on a touch sensor panel, the SDR and RDR values representing dominance values of a scaling component and a rotational component, respectively, of motion associated with the contacts;   utilizing the SDR and RDR values to determine a motion component to lock onto when performing gesture identification, the motion components including an x-direction velocity (Vx), a y-direction velocity (Vy), a rotational velocity (Vr), and a scaling velocity (Vs).   
   
   
       15 . The computer-readable storage medium of  claim 14 , the program code further for causing performance of a method comprising:
 capturing multiple images of touch;   extracting the motion components from the captured images of touch;   computing a smooth translation speed, a smooth rotate speed, and a smooth scale speed from the motion components; and   utilizing the smooth translation speed, the smooth rotate speed, and the smooth scale speed along with the SDR and RDR values to determine the motion component to lock into when performing gesture identification.   
   
   
       16 . The computer-readable storage medium of  claim 15 , the program code further for causing performance of a method comprising applying a mathematical low pass filter (LPF) to compute the smooth translation speed, the smooth rotate speed, and the smooth scale speed as: 
     
       
         
               
               
             
                   
                   
               
                   
                 Smooth_translation_speed = (LPF(Vx) 2  + LPF(Vy) 2 ) 0.5 ; 
               
                   
                 Smooth_rotate_speed = LPF(Vr); and 
               
                   
                 Smooth_scale_speed = LPF(Vs). 
               
                   
                   
               
           
              
             
             
              
              
              
              
             
          
         
       
     
   
   
       17 . The computer-readable storage medium of  claim 14 , the program code further for causing performance of a method comprising setting the SDR and RDR values to 2.5 if a thumb is detected as one of the identified contacts. 
   
   
       18 . The computer-readable storage medium of  claim 14 , the program code further for causing performance of a method comprising setting the SDR and RDR values below 2.5 if two or more fingers but no thumbs are detected as the identified contacts. 
   
   
       19 . The computer-readable storage medium of  claim 18 , the program code further for causing performance of a method comprising setting the SDR to about 0.25 if a finger separation between at least two of the fingers is between 0 and about 3 cm, setting the SDR between about 0.25 and about 1.25 if the finger separation is between about 3 cm and about 6 cm, and setting the SDR to between about 1.25 and about 2.5 if the finger separation is greater than about 6 cm. 
   
   
       20 . The computer-readable storage medium of  claim 19 , the program code further for causing performance of a method comprising setting the SDR to 0.25 even if the finger separation is greater than about 3 cm if a downward translation is detected along with a scale contraction. 
   
   
       21 . The computer-readable storage medium of  claim 15 , the program code further for causing performance of a method comprising:
 locking onto a translation component and clipping the scaling component of the motion associated with the contacts if the smooth translation speed is greater than the SDR multiplied by the smooth scale speed; and   locking onto the translation component and clipping the rotational component of the motion associated with the contacts if the smooth translation speed is greater than the RDR multiplied by the smooth rotate speed.   
   
   
       22 . The computer-readable storage medium of  claim 21 , the program code further for causing performance of a method comprising computing an axis domination confidence value as a representation of an unambiguousness of the motion component to lock onto as:
 if the smooth translation speed is less than the smooth scale speed plus the smooth rotate speed, then   
     
       
         
           
             
               
                 axis_domination 
                  
                 _confidence 
               
               = 
               
                 1 
                 - 
                 
                   
                     smooth 
                      
                     
                         
                     
                      
                     translation 
                      
                     
                         
                     
                      
                     speed 
                   
                   
                     ( 
                     
                       
                         
                           
                             
                               smooth_scale 
                                
                               _speed 
                             
                             + 
                           
                         
                       
                       
                         
                           
                             smooth_rotate 
                              
                             _speed 
                           
                         
                       
                     
                     ) 
                   
                 
               
             
             , 
             
               
 
             
              
             otherwise 
             , 
             
               
 
             
              
             
               
                 axis_domination 
                  
                 _confidence 
               
               = 
               
                 1 
                 - 
                 
                   
                     
                       ( 
                       
                         
                           
                             
                               
                                 smooth_scale 
                                  
                                 _speed 
                               
                               + 
                             
                           
                         
                         
                           
                             
                               smooth_rotate 
                                
                               _speed 
                             
                           
                         
                       
                       ) 
                     
                     
                       smooth 
                        
                       
                           
                       
                        
                       translation 
                        
                       
                           
                       
                        
                       speed 
                     
                   
                   . 
                 
               
             
           
         
       
     
   
   
       23 . The computer-readable storage medium of  claim 22 , the program code further for causing performance of a method comprising delaying the locking onto the motion component by an amount proportional to the axis domination confidence value. 
   
   
       24 . The computer-readable storage medium of  claim 22 , the program code further for causing performance of a method comprising multiplying the axis domination confidence value by any non-clipped motion components to delay a locking decision. 
   
   
       25 . A mobile telephone including a computer-readable storage medium storing program code for processing touch images using separable control, the program code for causing performance of a method comprising:
 computing a scale_dominance_ratio (SDR) value and a rotate_dominance_ratio (RDR) value as a function of identified contacts on a touch sensor panel, the SDR and RDR values representing dominance values of a scaling component and a rotational component, respectively, of motion associated with the contacts;   utilizing the SDR and RDR values to determine a motion component to lock onto when performing gesture identification.   
   
   
       26 . A media player including a computer-readable storage medium storing program code for processing touch images using separable control, the program code for causing performance of a method comprising:
 computing a scale_dominance_ratio (SDR) value and a rotate_dominance_ratio (RDR) value as a function of identified contacts on a touch sensor panel, the SDR and RDR values representing dominance values of a scaling component and a rotational component, respectively, of motion associated with the contacts;   utilizing the SDR and RDR values to determine a motion component to lock onto when performing gesture identification.   
   
   
       27 . A personal computer including a computer-readable storage medium storing program code for processing touch images using separable control, the program code for causing performance of a method comprising:
 computing a scale_dominance_ratio (SDR) value and a rotate_dominance_ratio (RDR) value as a function of identified contacts on a touch sensor panel, the SDR and RDR values representing dominance values of a scaling component and a rotational component, respectively, of motion associated with the contacts;   utilizing the SDR and RDR values to determine a motion component to lock onto when performing gesture identification.

Join the waitlist — get patent alerts

Track US2009174676A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.