Abstract:
Systems and methods for reconstruction of missing data using iterated geometric harmonics are described herein. A method includes receiving a dataset having missing entries, initializing missing values in the dataset with random data, and then performing the following actions for multiple iterations. The iterated actions include selecting a column to be updated, removing the selected column from the dataset, converting the dataset into a Gram matrix using a kernel function, extracting rows from the Gram matrix for which the selected column does not contain temporary values to form a reduced Gram matrix, diagonalizing the reduced Gram matrix to find eigenvalues and eigenvectors, constructing geometric harmonics using the eigenvectors to fill in missing values in the dataset, and filling in missing values to improve the dataset and create a reconstructed dataset. The result is a reconstructed dataset. The method is particularly useful in reconstructing image and video files.

Description:
RELATED APPLICATION INFORMATION 
       [0001]    This patent claims priority from provisional patent application No. 62/067,555 filed Oct. 23, 2014, the contents of which are incorporated herein in their entirety. 
     
    
     NOTICE OF COPYRIGHTS AND TRADE DRESS 
       [0002]    A portion of the disclosure of this patent document contains material which is subject to copyright protection. This patent document may show and/or describe matter which is or may become trade dress of the owner. The copyright and trade dress owner has no objection to the facsimile reproduction by anyone of the patent disclosure as it appears in the Patent and Trademark Office patent files or records, but otherwise reserves all copyright and trade dress rights whatsoever. 
       BACKGROUND 
       [0003]    1. Field 
         [0004]    This disclosure relates to image processing, and more specifically, to data reconstruction and imputation of missing data. 
         [0005]    2. Description of the Related Art 
         [0006]    The technique of geometric harmonics was introduced as a method of extending empirical functions defined on a dataset in the form of a point cloud. 
         [0007]    The term “geometric harmonics” refers to an eigenbasis for an incomplete Gram matrix, constructed empirically by means of a variant of what is known by those skilled in the art as the Nystrom method. The Nystrom method is a quadrature rule that allows a solution to an integral equation to be approximated by subsampling in which the integral is replaced by a sum of function values, where the function is evaluated on sample points weighted according to the quadrature rule. 
         [0008]    When data is missing for any of a various reasons, it is difficult to reconstruct. Discarding incomplete data is a poor choice, as it can easily bias the remaining data or leave the analyst with too little data for a proper analysis or rendering. The present state-of-the-art technique for dealing with missing data is known as multiple imputation, in which multiple complete versions of the data are simulated by filling in missing entries in a purely stochastic manner. The analyses of different simulated versions are then averaged or pooled. This essentially linear technique does not perform well when the data has a strongly nonlinear structure. In addition, other techniques for imputation of missing data require some portion of the dataset to be intact. The intact subset of the data is called a “training set”. The method described herein is distinguishable in that it can be applied when no training set is available. 
     
    
     
       DESCRIPTION OF THE DRAWINGS 
         [0009]      FIG. 1  is a block diagram of a personal computer system on which the methods described herein may be implemented and executed. 
           [0010]      FIG. 2  is an image of the Olivetti faces dataset with missing data. 
           [0011]      FIG. 3  is an image of the Olivetti faces dataset with missing data reconstructed according to the methods described herein. 
           [0012]      FIG. 4  shows images of original, damaged and reconstructed versions of a photograph. 
           [0013]      FIG. 5  is a flow chart of a method of reconstruction of missing data using iterated geometric harmonics. 
           [0014]      FIG. 6  are graphs of original, damaged and reconstructed versions of a dataset consisting of weather data. 
       
    
    
       [0015]    Throughout this description, elements appearing in figures are assigned three-digit reference designators, where the most significant digit is the figure number and the two least significant digits are specific to the element. An element that is not described in conjunction with a figure may be presumed to have the same characteristics and function as a previously-described element having a reference designator with the same least significant digits. 
       DETAILED DESCRIPTION 
       [0016]    The methods described herein allow for reconstruction of datasets which are incomplete due to missing values due to recording errors, transmission loss, storage medium integrity failures and the like. The method described herein is limited to working with datasets having missing data (for example, drop outs) and not with datasets having corrupted or altered data. Applications of the method include image processing, image reconstruction and video reconstruction, as video media naturally contains large numbers of similar images or frames. 
       System 
       [0017]      FIG. 1  is a block diagram of a personal computer  110  on which the methods described herein may be implemented and executed. The methods described herein are implemented in software and may be application software. The software may be written in a high level language and/or in a machine or assembler language. The software is stored on a machine readable storage media and executed on a computing device such as personal computer  110 . Similarly, the data set described herein may be stored as one or multiple files on machine readable storage media accessible either directly or via a storage device included with or otherwise coupled with or attached to a computing device. The dataset may be stored on the same machine readable storage media or a different machine readable storage media from the storage media on which software that executes the methods described herein is stored. 
         [0018]    A computing device as used herein refers to a device with memory, a storage device and/or storage media, and at least one processor that executes instructions including, but not limited to, personal computers, computer workstations, mini computers, server computers, computing tablets, portable computers, and laptop computers. These computing devices run an operating system such as, for example, the Unix, Linux, Microsoft Windows, and Apple Mac operating systems. 
         [0019]    The machine readable storage media may be included in a storage device and is included with or coupled or attached to a computing device. That is, the software is stored on a machine readable storage media. Storage media include magnetic media such as hard disks; optical media such as compact disks (CD-ROM and CD-RW), digital versatile disks (DVD and DVD±RW) and BLU-RAY disks; silicon or chip-based storage media including flash memory cards, thumb drives, silicon storage devices; and other magnetic, optical or silicon-based storage media. As used herein, a storage device is a device that allows for reading and/or writing to a storage medium. Storage devices include hard disk drives (HDDs), silicon storage devices (SSDs), DVD drives, flash memory devices, and others. 
         [0020]    Referring again to  FIG. 1 , personal computer  110  includes or is coupled with a display, such as display  112 , one or more user input devices, including, for example, keyboard  114 , mouse  116 , a track ball, a scroll wheel, a touch pad, a key pad, a touch screen, navigation buttons, a joystick, a pen and tablet, a stylus, and/or others. A user uses a user input device to click on, select, or otherwise activate or control a user interface item such as a button, link, slider, etc. and to provide input to the operating system or programs running on the personal computer via a graphical user interface, text interface or other user interface provided on the computing device. Personal computer  110  includes at least one primary storage device such as hard disk drive  118  or other storage device. The personal computer  110  and other computing devices may include a network interface. Locally attached and/or remotely accessible storage media may be accessed over a network through the network interface, and the dataset described herein may be stored locally or accessed over a network through the network interface. The methods described herein may be implemented on a single computing device such as personal computer  110 , or may be implemented on a group of computing devices arranged in a network, cluster, or other organization. The personal computer  110  and other computing devices may include other components known to those skilled in the art including, for example WiFi, Universal Serial Bus (USB) and others, which are not discussed herein. 
       Processes 
       [0021]    The methods described herein can reconstruct data with a high level of accuracy, even when the portion of missing data reaches very high levels.  FIGS. 2, 3 and 4  show examples in which 70% of the original data was lost. This far exceeds the capability of earlier methods, including those that require a training set of complete data. Referring to  FIG. 2 , an image ( 200 ) of the Olivetti faces dataset with missing data is shown. In this example, missing data values have been replaced with black pixels. The damage to the image is readily apparent upon viewing. The unusable images are made usable by reconstructing them according the methods described herein.  FIG. 3  is an image ( 300 ) of the Olivetti faces dataset with missing data reconstructed according to the methods described herein. The improvement is readily apparent. Here, in this image set, 10 different images each of 40 people are depicted. Due to the recurring features in the images, the method iteratively analyzed and reconstructed missing data based on the data from other photos in the group. 
         [0022]      FIG. 4  shows images of original ( 410 ), damaged ( 420 ) and reconstructed ( 430 ) versions of a photograph. Here, 30 images of this individual having size 112×92 pixels were included in a group. Due to the recurring features in the images, the method iteratively analyzed and reconstructed missing data based on the data from other photos in the group. The results are not perfect, but the reconstructed images that result from application of the method described herein are useful for human identification and evaluation purposes. 
         [0023]    Referring now to  FIG. 5 , a method of reconstructing missing data using iterated geometric harmonics is provided in a flow chart. The method starts with a dataset having missing entries, as shown in block  500 . A dataset X may be a group of imperfect or damaged image files having missing data, such as JPG or PNG format files, and the dataset may be data representing one or more frames from a video. The dataset is in the form of a matrix. In one embodiment, missing values in the dataset are identified and initialized with random data, as shown in block  510 . In other embodiments, missing data may be replaced with a flag or identifiable value or may be a value representing a particular color such as black, red or yellow. 
         [0024]    The iterative nature of the method is achieved by repeating the actions in block  520  multiple or N times. In some versions of the method repeating the actions in block  520  multiple times allows for reconstruction or imputation of the missing data based on surrounding related or other similar data. This is a form of interpolation or extrapolation, depending on the implementation. The iterations may be repeated several times (in one implementation, four to six times) dependent on the number of items in the recurring data in the dataset, the size of the dataset and the amount of missing data. As such, other numbers of iterations may be effective in other implementations dependent on the characteristics of the particular dataset. 
         [0025]    A column with missing data to be updated is selected and removed from the dataset, as shown in block  522 . In practice, new matrix X (j)  is formed by deleting column j from X. 
         [0026]    The dataset is converted into a Gram matrix using a kernel function, as shown in block  524 . In practice, a (restricted) Gram matrix K (j)  is computed by applying the following equation to the rows of X (j) . For a dataset with n records, the method requires computing an n×n Gram matrix K with entries in which 
         [0000]      K(i, j)=k(x i , x j ), 
         [0000]    where 
         [0000]      k:           d ×           d →         +
 
         [0000]    is a symmetric, nonnegative, and typically positive semidefinite function. 
         [0027]    Rows of the Gram matrix for which the removed column does not contain temporary values are extracted, as shown in block  525 . In practice, a set of rows of the dataset X for which λ j  is defined is created as A j . That is, the set A j  includes those rows of X for which x ij  is not a missing value. 
         [0028]    The reduced Gram matrix is diagonalized to produce eigenvalues and eigenvectors, as shown in block 526. That is, the eigendata of K (j) *K (j)  is computed. This may be achieved by evaluating 
         [0000]      λ l   (j) ∈          and ψ l   (j) ∈           |A     j     | 
 
         [0000]    that satisfy the following equation for l=1, . . . , |Aj|: 
         [0000]    
       
         
           
             
               
                 ∑ 
                 
                   m 
                   ∈ 
                   
                     A 
                     j 
                   
                 
               
                
               
                 
                   K 
                    
                   
                     ( 
                     
                       i 
                       , 
                       m 
                     
                     ) 
                   
                 
                  
                 
                   
                     ψ 
                     l 
                     
                       ( 
                       j 
                       ) 
                     
                   
                    
                   
                     ( 
                     m 
                     ) 
                   
                 
               
             
             = 
             
               
                 λ 
                 l 
                 
                   ( 
                   j 
                   ) 
                 
               
                
               
                 
                   
                     ψ 
                     l 
                     
                       ( 
                       j 
                       ) 
                     
                   
                    
                   
                     ( 
                     i 
                     ) 
                   
                 
                 . 
               
             
           
         
       
     
         [0029]    The geometric harmonics are constructed using the eigenvectors to fill in missing values, as shown in block  527 . The geometric harmonics are constructed according to the following equation: 
         [0000]    
       
         
           
             
               
                 Ψ 
                 l 
                 
                   ( 
                   j 
                   ) 
                 
               
                
               
                 ( 
                 i 
                 ) 
               
             
             := 
             
               
                 1 
                 
                   λ 
                   l 
                   
                     ( 
                     j 
                     ) 
                   
                 
               
                
               
                 
                   ∑ 
                   
                     m 
                     ∈ 
                     
                       A 
                       j 
                     
                   
                 
                  
                 
                   
                     K 
                      
                     
                       ( 
                       
                         i 
                         , 
                         m 
                       
                       ) 
                     
                   
                    
                   
                     
                       
                         ψ 
                         l 
                         
                           ( 
                           j 
                           ) 
                         
                       
                        
                       
                         ( 
                         m 
                         ) 
                       
                     
                     . 
                   
                 
               
             
           
         
       
     
         [0030]    Missing data is filled in to improve the dataset, as shown in block  528 . This is achieved according to the equation: 
         [0000]    
       
         
           
             
               
                 
                   γ 
                   ^ 
                 
                 j 
               
                
               
                 ( 
                 i 
                 ) 
               
             
             = 
             
               
                 ∑ 
                 
                   l 
                   = 
                   1 
                 
                 
                    
                   
                     A 
                     j 
                   
                    
                 
               
                
               
                 
                   〈 
                   
                     
                       γ 
                       j 
                     
                     , 
                     
                       ψ 
                       l 
                       
                         ( 
                         j 
                         ) 
                       
                     
                   
                   〉 
                 
                  
                 
                   A 
                   j 
                 
                  
                 
                   
                     
                       Ψ 
                       l 
                       
                         ( 
                         j 
                         ) 
                       
                     
                      
                     
                       ( 
                       i 
                       ) 
                     
                   
                   . 
                 
               
             
           
         
       
     
         [0031]    The actions in blocks  522 ,  524 ,  525 ,  526 ,  527  and  528  are repeated multiple or N times. In one implementation the iteration is four to six times. Additional or fewer iterations may be required based on factors including desired amount of reconstruction, time available to reconstruct, the condition of the original data set, namely the amount of missing data. 
         [0032]    Although the methods are described herein are applicable to images and series of images such as frames of video, the method is applicable to other kinds of datasets. For example the method has been applied to weather data having missing values.  FIG. 6  are graphs of original ( 610 ), damaged ( 620 ) and reconstructed ( 630 ) versions of a dataset consisting of weather data. The ability of the method to improve the dataset with damaged (that is, missing) data is readily apparent upon viewing the graphs shown in  FIG. 6 . These graphs are of a 25-dimensional dataset embedded into three dimensions using t-SNE (t-distributed Stochastic Neighborhood Embedding), an iterative stochastic method that constructs a visual representation of data. Here, in this example, the weather dataset included 2000 records containing 25 parameters, including average and quantile measurements of temperature, pressure, dew point, wind velocity, and cloud cover recorded hourly. 
         [0033]    The method is applicable to any high-dimensional dataset (for example, 5 to 50,000 characteristics per data record) with the data having continuity properties that is, for example, where if 95% of the entries of x and y are very close, it is very likely the other or remaining entries of x and y are also very close. The method is particularly well-suited to dealing with datasets which have very high dimension, and relatively few records. For example, 10 seconds of video might have 240 frames (where the frames are considered data records), each with over 10 million pixel values (such that dimension d&gt;10,000,000). The method improves dramatically when there is redundancy in the dataset, that is, when there are many similar records in the dataset. In addition to weather data, any other large sets of data with recurring related features or characteristics may be evaluated and reconstructed according to the method described herein. 
       Closing Comments 
       [0034]    Throughout this description, the embodiments and examples shown should be considered as exemplars, rather than limitations on the apparatus and procedures disclosed or claimed. With regard to flowcharts, additional and fewer steps may be taken, and the steps as shown may be combined or further refined to achieve the methods described herein. Acts, elements and features discussed only in connection with one embodiment are not intended to be excluded from a similar role in other embodiments. 
         [0035]    As used herein, “plurality” means two or more. As used herein, a “set” of items may include one or more of such items. As used herein, whether in the written description or the claims, the terms “comprising”, “including”, “carrying”, “having”, “containing”, “involving”, and the like are to be understood to be open-ended, that is, to mean including but not limited to. Only the transitional phrases “consisting of” and “consisting essentially of”, respectively, are closed or semi-closed transitional phrases with respect to claims. Use of ordinal terms such as “first”, “second”, “third”, etc., in the claims to modify a claim element does not by itself connote any priority, precedence, or order of one claim element over another or the temporal order in which acts of a method are performed, but are used merely as labels to distinguish one claim element having a certain name from another element having a same name (but for use of the ordinal term) to distinguish the claim elements. As used herein, “and/or” means that the listed items are alternatives, but the alternatives also include any combination of the listed items.