# Patent

## Title
Synthetic image and video generation from ground truth data

## Abstract

A system and a method are disclosed for generating video. Object information is received. A path of motion of the object relative to a reference point is generated. A series of images and ground for a reference frame are generated from the ground truth and the generated path. A system and a method are disclosed for generating an image. Object information is received. Image data and ground truth may be generated using position, the image description, the camera characteristics, and image distortion parameters. A positional relationship between the document and a reference point is determined. An image of the document and ground truth are generated from the object information and the positional relationship and in response to user specified environment of the document.

## Background
CROSS-REFERENCE TO RELATED APPLICATIONS
This application is a divisional of U.S. application Ser. No. 11/624,466, entitled “Synthetic Image and Video Generation from Ground Truth Data” and filed Jan. 18, 2007, the entirety of which is herein incorporated by reference.


BACKGROUND
1. Field of Art
The present invention generally relates to the field of image and video generation, and more specifically, to image and video generation using ground truth data.
2. Description of the Related Art
Various models have been used for generating images of documents in view of image degradations. The appropriate model for document image degradations has been the subject of numerous papers (Y. Li, D. Lopresti, G. Nagy, and A. Tomkins, “Validation of Image Defect Models for Optical Character Recognition,” IEEE Trans. Pattern Anal. Mach. Intell. 18, 2 (Feb. 1996), pp. 99-108. Pavlidis proposed a model including horizontal and vertical scaling, rotation, sampling rate, and quantization threshold (T. Pavlidis, “Effects of Distortions on the Recognition Rate of a Structural OCR System,” In Pro. Conf on Comp. Vision and Pattern Recog., pp. 303-309, Washington, D.C., 1983). Baird suggested a model where variable parameters include font size, spatial sampling rate, rotation, horizontal and vertical scaling, horizontal and vertical translation, pixel displacement, Gaussian point-spread function, pixel sensor sensitivity, and quantization threshold. (H. Baird, “Document Image Defect Models,” In Proc. Of IAPR Workshop on Syntactic and Structural Pattern Recognition, pp. 38-46, Murray Hill, N.J., June 1990; and H. Baird, “The State of the Art of Document Image Degradation Modeling,” In Proc. of 4th IAPR International Workshop on Document Analysis Systems, Rio de Janeiro, Brazil, pp. 1-16, 2000.) Smith experimented with a model that varies the width of the point-spread function, and the binarization threshold (E. H. Barney Smith and T. Andersen, “Text Degradations and OCR Training,” International Conference on Document Analysis and Recognition 2005, Seoul, Korea, August 2005.). Khoubyari and Hull simulated character defects by thickening character strokes and then randomly flipping some black pixels to white (Khoubyari, S. and J. J. Hull, “Keyword Location in Noisy Document Images,” Second Annual Symposium on Document Analysis and Information Retrieval, Las Vegas, Nev., pp. 217-231, April, 1993.). Kanungo et. al. model the curl distortions that result from scanning bound documents Kanungo, T.; Haralick, R. M.; Phillips, I, “Global and Local Document Degradation Models,” Document Analysis and Recognition, 1993., Proceedings of the Second International Conference on Document Analysis and Recognition ICDAR-93, Volume, Issue, 20-22 Oct. 1993 Page(s): 730-734.). Zi also considers the effects of bleed-through from text and images underneath or on the reverse side of the document of interest (G. Zi, “Groundtruth Generation and Document Image Degradation,” University of Maryland Language and Media Processing Laboratory Technical Report (LAMP-TR-121), 2005.).
These models deal with images on scanners or bi-level images. These models do not provide imaging of non-planar forms. Further, these models use large sets of data for imaging video. What is needed is a more generalized imaging system model.
SUMMARY
One embodiment of a disclosed system and method generates video. Object information is received. A path of motion of the object relative to a reference point is generated. A series of images and ground truth for a reference frame are generated from the object information and the generated path.
One embodiment of a disclosed system and method generates an image. Object information is received. Image data and ground truth may be generated using position, the image description, the camera characteristics, and image distortion parameters. A positional relationship between the document and a reference point is determined. An image of the document and ground truth is generated from the object information and the positional relationship and in response to the user specified environment of the document.
The features and advantages described in the specification are not all inclusive and, in particular, many additional features and advantages will be apparent to one of ordinary skill in the art in view of the drawings, specification, and claims. Moreover, it should be noted that the language used in the specification has been principally selected for readability and instructional purposes, and may not have been selected to delineate or circumscribe the inventive subject matter.



BRIEF DESCRIPTION OF DRAWINGS
The disclosed embodiments have other advantages and features which will be more readily apparent from the detailed description and the appended claims, when taken in conjunction with the accompanying drawings, in which:
FIG. 1 is a diagram illustrating an image generation system according to the present invention.
FIG. 2 is a block diagram illustrating one embodiment of the image generation system of FIG. 1.
FIG. 3 is an image of a source document of FIG. 1 and marked regions indicating ground truth of the source document.
FIG. 4 is a pictorial diagram illustrating ray tracing from a source document to a camera.
FIG. 5 is a block diagram illustrating the image generation model of the image generation system of FIG. 2.
FIG. 6 is a three dimensional diagram illustrating an exemplary video trajectory over a source document.
FIG. 7 is a three dimensional diagram illustrating an estimation of the trajectory of FIG. 6 using a minimum energy driving force.
FIG. 8 is a picture illustrating a sample checkerboard calibration target of 20 images and the camera calibration toolbox.
FIG. 9 is a diagram illustrating a sensor noise model.
FIG. 10A is a diagram illustrating a shadow mask.
FIG. 10B is a diagram illustrating a virtual image having a shadow generated using the shadow mask of FIG. 10A.
FIG. 11A is a diagram illustrating various shadows and the penumbra and umbra regions of an image.
FIG. 11B is a three dimensional diagram illustrating brightness of the image with shadows, penumbra and umbra regions.
FIG. 12 is a diagram illustrating an image with vignetting.
FIG. 13A is a three-dimensional diagram illustrating a Gaussian PSF of a focus blur model.
FIG. 13B is a diagram illustrating an image formed using the focus blur model.
FIG. 14 is a diagram of an illustrative example of a video frame blurred using the motion blur model.
FIGS. 15A and 15B are three-dimensional diagrams illustrating quadratic and cubic families, respectively, of curves in one direction of an image.
FIG. 16 is a diagram illustrating a virtual image generated by a general lighting model to replicate the effects of flash photography.
FIG. 17 illustrates an exemplary background image.
FIG. 18 is a flowchart illustrating the operation of the image generation system of FIG. 1.
FIGS. 19A, 19B and 19C are diagrams illustrating three embodiments for human behavior models and associated control points.



DETAILED DESCRIPTION
The figures and the following description relate to preferred embodiments of the present invention by way of illustration only. It should be noted that from the following discussion, alternative embodiments of the structures and methods disclosed herein will be readily recognized as viable alternatives that may be employed without departing from the principles of the claimed invention.
Reference will now be made in detail to several embodiments, examples of which are illustrated in the accompanying figures. It is noted that wherever practicable similar or like reference numbers may be used in the figures and may indicate similar or like functionality. The figures depict embodiments of the present invention for purposes of illustration only. One skilled in the art will readily recognize from the following description that alternative embodiments of the structures and methods illustrated herein may be employed without departing from the principles described herein.
A method and system for image and video generation includes generating an image or series of images using ground truth data, and models for parameters of the camera, and the environment of the object being imaged. The modeling may include image degradation and images captured by a variety of image capturing devices including handheld devices. The method and system also allows for arbitrary placement of the image capturing devices and the document being imaged as well as isometric deformations of the source document and arbitrary lighting conditions. The method and system also models the following effects: focus blur, motion blur, histogram compression, sensor noise, intrinsic and extrinsic camera parameters, shadows, sensor resolution, vignetting, background clutter, document deformations, and specular, ambient, and diffuse lighting and material properties. In one embodiment, this is accomplished by using a general ray tracing model for the generation of the virtual image based on the position of the virtual camera and its intrinsic parameters.
FIG. 1 is a diagram illustrating an image generation system 100. A printer 102 generates a printed source document 106 and provides print information to the image generation system 100. An image capturing device 104 detects and captures the source document 106 and generates an image 108. The image capturing device 104 may be, for example, a handheld image capturing device, such as digital camera or a cell phone, or a fixed image capturing device, such as a web camera. By way of example, the image capturing device 104 will also be referred to as camera 104 in this application. The image generation system 100 generates a virtual image 110 in response to the print information from the printer 102. The print information (not shown) represents the source document 106, and may be data in a page description language, for example, Postscript® or PCL. Print information can also be a sequence of graphics device interpreter (GDI) commands that are converted to a raster image by the computer operating system (e.g., Windows XP). The print information may include ground truth data for each object in the source document. The virtual image 110 is a generated image of the print document 106 produced from the print information that includes ground truth data. In one embodiment, a page description language file is converted to a raster representation such as tiff, jpeg or bmp with an interpreter such as ghostscript. In one embodiment, the virtual image 110 is a single image. In another embodiment, the virtual image 110 is a sequence of images or frames, such as a video. In one embodiment, the virtual image 110 is representative of the image 108. The image generation system 100 generates the virtual image 110 using the print information, parameters of the camera 104, and environmental parameters of the source document 106.
The image generation system 100 may include a processor, such as a Pentium 4 or Xeon processor manufactured by Intel Corporation, and executes the image generation as software. The image generation system 100 may also be generated in whole or in part as software on the graphics processing unit (GPU) on the video card of a personal computer.
The image generation system 100 may be used to generate data for facial recognition or medical imaging systems.
FIG. 2 is a block diagram illustrating one embodiment of a video generator 200 which may be the image generator 100. The video generator 200 comprises a path generator 202 and an image generation model 204.
The path generator 202 generates a sequence of coordinates for the position of the camera 104 relative to a given image, such as the document 106. In one embodiment, the path generator 202 generates the sequences of coordinates (shown as coordinates xt, yt, zt, pt, tt, and zt) in response to a model of human behavior for movement of the camera 104, a path of the movement, and the frame rate of the camera 104. In one embodiment, the path of the movement is specified as a series of control points and the human model represents human behavior for moving the camera between the control points. The path of the movement of the camera 104 is user-specified to define the movement that a person makes with the camera, or may be received from the camera 104.
The image generation model 204 may use characteristics of the camera 104, image distortion parameters, and object information comprising image description and ground truth data from the printer 102 to produce a single image or a sequence of frames, one for each set of coordinates. The characteristics of the camera 104 and image distortion parameters may be user inputted. Each frame is distorted to account for a given warp and shadow of the source document 106. The received object information about the source document 106 includes information that allows the image to be generated. For a series of images, large sets of data representing motion are typically used. The image generation model 204 uses the object information representative of the image, which may be three-dimensional in instances such as facial recognition and medical imaging, to generate an image or video. In one embodiment, the object information includes a raster image (e.g., tiff, jpeg, bmp, etc.) of a document and the ground truth information specifying the identity and location of every character. (Note: location can be specified as the x-y of the upper left corner of the character and the number of columns and rows in the box that covers it.) In another embodiment, the object information is print information in a page description language (PDL) such as Postscript or PCL and part of the processing of the image generation model 204 is “rendering” an image of the document from the PDL using an interpreter such as Ghostscript. In another embodiment, the object information for a three-dimensional application such as facial recognition or medical imaging is provided as a virtual reality markup language (VRML) or Extensible 3D (X3D) file and part of the processing of the image generation model 204 is rendering three-dimensional views of the object using an interpreter such as OpenVRML, Xj3D or Flux. The image generation model 204 may generate ground truth data for the virtual image 110. In one embodiment, a mapping table is output that transforms any input x-y coordinates in the source document 106 to a corresponding output coordinates x′-y′ in the virtual image 110. This allows for the transformation of the geometric position of any ground truth information, such as the positions of the bounding box data shown in the source document of FIG. 3, to their corresponding positions in the virtual image 110. A “reverse” mapping table may also be provided by the image generation model 204 that transforms any x′-y′ coordinate in the virtual image 110 to the corresponding x-y position in the source document 106. The mapping table may take the form of a conventional array or hash table with an entry for every x-y or x′-y′ that occurs in the source document or real image. In an alternative embodiment, a function may be provided that is given an x-y or x′-y′ pair and computes the corresponding pair in the other image. Examples of mapping functions include a projective transformation as well as other well known geometric transformations. In some cases the mapping table may provide more than one output position. Furthermore, those positions may be associated with a likelihood value that indicates the amount of their image characteristics (e.g. intensity, color, etc.) that were contributed to the input position. Thus, the image generation model 204 may receive ground truth data for a single image, and generate the ground truth data for a series of frames of a video. This reduces the amount of ground truth data that is generated before generating the virtual image 110. In one embodiment, the image generation model 204 generates the virtual image 110 using parameters of the image capturing device 104, sensor noise, contrast degradation, shadow, vignetting, focus blur, motion blur, background, isometric surfaces, and general lighting. The image generation model 204 may include parameters of the image motion including warping, and shadows. The image generation model 204 may use machine learning to estimate the parameters.
FIG. 3 is an image of a source document 106 and marked regions 301 that are represented by ground truth data. The ground truth of the marked regions 301 may include font faces, font sizes, and locations on the source document 106. The image generation model 204 receives the ground truth from the printer 102 or another source, or generates the ground truth from the print information. The ground truth may be processed as an overlay of the marked regions 301 on an image. The ground truth for an image can also include meta data about the source document and how it was generated such as the time, date and location where the corresponding paper version of the document was printed, an identification of the printer, the PC, and the person who printed the document. The ground truth can also include the location, path and name of the original source file (e.g., Word, PDF, and the like). This would be sufficient to locate the source file later.
FIG. 4 is a pictorial diagram illustrating ray tracing from a source document 106 to a camera 104. The image generation model 204 uses ray tracing to generate the virtual image 110 by tracing rays from portions of the source document 106 to the camera 104 using the extrinsic camera parameters as described below in conjunction with FIG. 5. Rays are traced from each portion of the document 106 to the camera 104 to generate an image of the document. As the camera 104 is moved according to the coordinates from the path generator 202, rays are traced from the document 106 to the camera 104.
FIG. 5 is a block diagram illustrating the image generation model 204, which comprises a camera extrinsic parameter model 502, a camera intrinsic model 504, and a plurality of effects models 506, 508, 510, 512, 514, 516, 518, 520, 522, 524 and 526. The effects models 506, 508, 510, 512, 514, 516, 518, 520, 522, 524 and 526 include a sensor noise model 506, a histogram effects model 508, a shadow mask model 510, a vignetting model 512, a focus blur model 514, a motion blur model 516, an isometric surfaces model 518, a general lighting model 520, a background model 522, an image compression model 524, and bleed through model 526. The image generation model 204 uses the camera extrinsic parameter model 502 for the ray tracing. The image generation model 204 uses the camera intrinsic parameter model 504 to simulate the effects on the image from the camera 104. The image generation model 204 uses the effects models 506, 508, 510, 512, 514, 516, 518, 520, 522, 524 and 526 to simulate photographic, lighting, and the environment on the image 106.
The extrinsic parameters of the camera 104 may include translation and orientation information of the camera 104 in relation to the image 106. In one embodiment, the position of the camera 104 is represented by the global X, Y, and Z values of the camera position (e.g., in inches) of the camera 104 relative to the source document 106 (the center of which is considered the origin). The orientation of the camera is represented by the three Euler angles, θx, θy, and θz. In one embodiment, the image generation model 204 uses ray tracing to generate the image 110 using the extrinsic parameters of the extrinsic parameter model 502.
FIG. 6 is a three-dimensional diagram illustrating an exemplary video trajectory 601 over a source document 106. The path generator 202 estimates the position of the camera 104 for a given source document 106 using a model for human behavior and an ordered set of control points. The path generator 202 computes the motion of the camera 104 along a trajectory between control points at the frame rate of the camera 104.
The model for human behavior specifies the name for a task being simulated, a mathematical time function that determines the amount of time for moving between control points and the time the camera 104 hovers at each point, a mathematical transit motion function that determines the path between control points, and a mathematical hover motion function that determines the movement of the camera 104 when it reaches each control point. The control points are provided as an ordered set of (x, y, z, thetax, thetay, thetaz) values. The names of simulated tasks include but are not limited to “information browsing,” “point and click for insertion,” “point and click for retrieval,” “augmented reality interface,” “mouse,” “information browsing”, and “gesture.” Mathematical time functions include a set of user-specified constants for both motion time and hover time. Fitts law or Accot's law can be used to predict the time required to navigate between points. Mathematical transit motion functions are given an ordered set of control points, the total time for the motion between each pair of control points and a camera frame rate (typically specified as a sampling rate in frames per second). The transit motion functions calculate the position of the camera each time a frame is captured. Mathematical transit motion functions include user-specified constants such as a straight line or a manual specification for the position of the camera every time a frame is generated. In some cases, a null transit motion function is used and the system creates images only at the control points. The number of images would be determined by the hover time and the camera frame rate. A linear dynamical system is another example of a transit motion function. A Kalman filter is a transit motion function that can be trained from examples of human motion and can generate paths that simulate how humans move a camera between control points. Examples of other transit motion functions include an extended Kalman filter, a particle filter, an extended particle filter, a Bayesian filter, an extended Bayesian filter and other techniques well known in the art. Mathematical hover motion functions are given a starting position as a control point, the amount of time the camera hovers at that point, and a specification for the movement of the camera during that time. Examples of movement include a steady hover. Typically the camera 104 jitters nearby the control point to simulate a human hand. Other movements include zooming in and out. This simulates a user's attempts to focus the camera 104 by adjusting the distance to the source document 106. Another hover motion function is a rotation. The hover motion function can also be an arbitrary combination of the elementary motions mentioned as well as others. The hover motion function could be a manual specification for the position of the camera every time a frame is generated during the hover. The amount of hover time allocated to each motion can be uniform, user-specified, or it can be specified by another mathematical function.
FIGS. 19A, 19B and 19C are diagrams illustrating three embodiments for human behavior models and associated control points. In the example shown in FIG. 19A, a task named “information browing” is simulated. The time between control points is specified as a set of constants that determine both the time to navigate between points and the time to hover at each point. A linear dynamical system is used to determine the path between control points. The first control point p0 specifies the camera 104 is at rest—all coordinates are zero. The second control point p1 specifies that it's 2 inches to the right of the upper left corner of the document, 3 inches down from the upper left corner, 3 inches above the page and perpendicular to the document—all three Euler angles are zero. p1 specifies a change in x, y, z position and different Euler angles: thetax=20 degrees, thetay=10 degrees, and thetaz=10 degrees.
In the example shown in FIG. 19B, a task named “point and click for insertion” is simulated. The time between control points is determined by an application of Fitts law and the hover time is specified as a constant value (5 secs.). The motion function is determined by a Kalman filter. The control points are specified as a beginning point p0 at rest. The camera 104 is 2 inches to the left of the document and 3 inches down from the top. The second control point is automatically determined by a function that calculates the center of the upper left-most paragraph on a source document 106.
In the example shown in FIG. 19C, a task named “augmented reality” is simulated. Three control points are provided, the first p0 showing the camera at rest. The time to navigate from p0 to p1 is calculated by Accot's law. The camera hovers at p1 for 6 secs. The transit motion between p0 and p1 is determined by a Kalman filter and the camera 104 zooms in and out while hovering at p1. The time to move from p1 to p2 is determined by Fitt's law and the transit motion by a Kalman filter. While hovering at p2, the camera 104 zooms in and out for 40% of the hover time and rotates left for the remaining 60% of the hover time.
The path generator 202 may use a discrete-time linear dynamical system as the transit motion function that determines the trajectory 601 between control points as a series of states including position, velocity, acceleration and jerk. In one embodiment, the path generator 202 includes noise. FIG. 7 is a three dimensional diagram illustrating an estimation of the trajectory 601 using a minimum energy driving force. In one embodiment, the position estimation may use feature matching techniques such as those employed by T. Sato, S. Ikeda, M. Kanbara, A. Iketani, N. Nakajima, N. Yokoya, and K. Yamada, “High-resolution Video Mosaicing for Documents and Photos by Estimating Camera Motion,” Proceedings of SPIE 5299, 246 (2004), the subject matter of which is incorporated herein by reference, for video mosaicing for estimating ego-motion during video sequences. In one embodiment, general image registration such as the Fourier-Mellin transform may be used because of the presence of ground-truth data.
In one embodiment, the path generator 202 performs a minimum energy analysis as the transit motion function that determines the path between control points. The position and orientation of the camera 104 is represented by the three position parameters and three Euler angles. Each of these is updated using a discrete-time linear dynamical system. For example, the position of the camera 104, with respect to the origin of the source document 106 (in inches) is given by X. The state of the camera's X location at time n is given by:

Xn=[P[n]V[n]A[n]J[n]]′

where P[n] is the position of the camera 104 in the X direction, V[n] is the velocity, A[n] is the acceleration, and J[n] is the jerk. The state of the camera's X location at time n+1 is given by the following relation:

Xn+1=A*Xn+B*u(t)

where u(t) is known as the driving force and



  
    A
    =
    
      (
      
        
          
            1
          
          
            1
          
          
            0
          
          
            0
          
        
        
          
            0
          
          
            1
          
          
            1
          
          
            0
          
        
        
          
            0
          
          
            0
          
          
            1
          
          
            1
          
        
        
          
            0
          
          
            0
          
          
            0
          
          
            1
          
        
      
      )
    
  




  
    and
  




  
    B
    =
    
      (
      
        
          
            0
          
        
        
          
            0
          
        
        
          
            0
          
        
        
          
            0
          
        
      
      )
    
  



From linear dynamical systems, if a state, Xdes, is reachable in n steps, then the controllability matrix is:

Cn=[B AB . . . Ann−1B]

Using the minimum energy solution for getting from a starting point to a desired state Xdex in n steps provides:

u(t)=CnT(CnCnT)−1Xdex 

The image generation model 204 may also use a camera intrinsic model 504 to determine camera intrinsic parameters for generating the image 110. The image generation model 204 calculates ray tracing using the camera intrinsic parameters to determine where rays cast through each pixel of the sensor from the camera origin will intersect with the source document 106. In one embodiment, the intrinsic parameters of the camera are the two focal lengths, fx and fy (in pixels), principal point coordinates, ccx and ccy (in pixels), the skew coefficient, and five coefficients describing radial and tangential distortions. In another embodiment, the intrinsic parameters are analyzed using a model described in Z. Zhang, “A flexible new technique for camera calibration,” IEEE Transactions on Pattern Analysis and Machine Intelligence, v. 22, no. 11, Nov. 2000, 1330-1334, the contents of which are incorporated herein by reference. FIG. 8 is a picture illustrating a sample checkerboard calibration target of 20 images and the result of calibration. The calibration may account for focal lengths, optical center, skew, and radial and tangential distortions. Alternatively, a set of stock parameters for the type of camera 104 may be used.
The image generation model 204 may reduce aliasing in the final image by jittering the x, y locations of the traced rays in the image plane by half a pixel in both the x and the y directions, and then using the average value of the four resulting intersections of the ray with the page.
The image generation model 204 may include a sensor noise model 506 to generate the image. In one embodiment, the sensor noise model 506 is a sensor noise model comprising both signal dependent and signal independent noise, such as the virtual sensor design of Costantini, R. and Süsstrunk, S., “Virtual Sensor Design”, Proceedings of the SPIE, Volume 5301, pp. 408-419 (2004), the contents of which are incorporated herein by reference. In another embodiment, the sensor noise model 506 includes only pixel gain non-uniformity. The sensor noise model 506 may include a uniform variable, with mean 1, and a range that can be adjusted to achieve a desired level of noise. The image generation model 204 multiplies the gain non-uniformity by the calculated intensity value for a pixel calculated via ray tracing.
FIG. 9 is a diagram illustrating an exemplary sensor noise model 506. The scale factor for the pixel gain non-uniformity can be estimated for a real image using a machine learning approach. In one embodiment, the sensor noise model includes a Downhill Simplex (Nelder-Mead) algorithm to maximize the similarity between the distribution of spatial frequencies in the virtual image, and the real image being matched. (see Kanungo, T. and Zheng, Q., “A Downhill Simplex Algorithm for Estimating Morphological Degradation Model Parameters,” University of Maryland Technical Report, LAMP-RT-066, the contents of which are incorporated herein by reference.)
In one embodiment, the sensor noise model 506 uses a Neighborhood Frequency Distribution (NFD) which is defined as follows. For each 8×8 pixel block 901 in an image, the 2D Fast Fourier Transform (FFT) is calculated (shown as 902). Blocks may be discarded at this point if the DC coefficient of the FFT indicates that the block is mostly text or mostly background. Diagonal components of the upper-left-hand corner of the log of the magnitude of the 2D FFT are averaged. There are 6 frequency bands considered in total.
A six-bit feature vector 903 is then constructed where each bit indicates whether or not there was a significant component in each of the frequency bands. Significant in this case has been defined as larger than the average for a population of similar images (determined ahead of time).
The samples of this feature vector 903 for all of the 8×8 pixel blocks in an image can be compared with those from another image using the two-sample version of the Kolmogorov-Smironv test (KS test). As the cost-function input for the Downhill Simplex algorithm, the sensor noise model 506 uses the KS statistic that the KS test yields. It approaches zero as two populations come closer to satisfying the null hypothesis (that the two populations were in fact drawn from a single parent population). An advantage of using the Downhill Simplex algorithm is that it does not take derivatives of the objective function. Because the optimization function may not be convex, multiple random restarts of the algorithm with different initial simplex guesses may be done. In one embodiment, a pixel gain non-uniformity scale value on the order of 0.01 is where the algorithm converges.
The image generation model 204 includes a histogram effects model 508. In practice, the range of the histograms of images captured using a real sensor is smaller than the range of intensity values present in the scene. The histogram effects model 508 may model this effect either by mapping the histogram values of the virtual image to fall within the range of values appearing in some sample image taken with a real camera, or by a more complicated histogram matching which attempts to transform the histogram of the virtual image in such a way that its cumulative distribution of pixel values matches that of the example image by way of a look-up table transformation.
In one embodiment, the histogram effects model 508 includes a desired histogram having maximum and minimum values, and the histogram of the virtual image is adjusted to match the desired histogram. In another embodiment, the desired histogram is taken from a user-specified sample image.
The image generation model 204 includes a shadow mask model 510 to generate shadows cast over document images. In order to model the large global shadows often cast over document images by the user's arm or the camera itself, a shadow mask is used. FIG. 10A is a diagram illustrating a shadow mask 1001. FIG. 10B is a diagram illustrating a virtual image having a shadow generated using the shadow mask 1001. The shadow mask 1001 is multiplied, element-wise, with the virtual image to produce the virtual image with a shadow.
In one embodiment, the global shadow mask in the user-specified sample image is estimated using a technique suggested by M. Baba, M. Mukunoki, and N. Asada, “Shadow Removal from a Real Image Based on Shadow Density,” Poster at SIGGRAPH2003, the contents of which are incorporated herein by reference. The sample image is first filtered using a maximum value filter, then a minimum value filter, and then a smoothing filter. The result is the global brightness of the image. In the virtual document image generator, this is used directly as the shadow mask, although further thresholding could be done to yield separate umbra and penumbra masks. FIG. 11A is a diagram illustrating various shadows and the penumbra and umbra regions of an image generated using the shadow mask model 510. FIG. 11B is a three dimensional diagram illustrating brightness of the image with shadows, penumbra and umbra regions. In an alternative embodiment, a number of shadow masks are pre-calculated for a given set of camera positions (X, Y, Z, thetax, thetay, thetaz). The shadow mask model 510 is modified to choose the shadow mask whose position is closest to the position of the camera. The decision about closeness can be made with a Euclidean distance measure or other commonly used distance measures (e.g., city block distance, etc.). In another alternative embodiment, the shadow mask is generated dynamically given the position of the camera, the general lighting model, and a model for the objects that may cast shadows. The shadow mask model 510 is modified so that it provides the camera position to the dynamic shadow generation algorithm and multiplies the shadow it calculates element-wise with the virtual image to produce a virtual image with a shadow.
The image generation model 204 includes a vignetting model 512. The vignetting model 512 includes in the image a vignetting-like effect to capture the “cosine-fourth” falloff in brightness as the angle between the ray corresponding to an image pixel and the optical axis of the camera increases by multiplying a pixel's value by the cosine of that angle raised to the fourth power. Vignetting in real images is the result of distant off-axis light rays not reaching the physical aperture due to obstruction by lens elements. The vignetting model 512 may be, for example, the vignetting model described in Aggarwal, M., Hua, H., and Ahuja, N., “On Cosine-fourth and Vignetting Effects in Real Lenses”, Int. Conf on Computer Vision (ICCV) Proceedings, Volume 1, Vancouver, Canada, Jul. 9-12, 2001 Page(s): 472-479, the contents of which are incorporated herein by reference. FIG. 12 is a diagram illustrating an image with vignetting. In one embodiment, vignetting effects are also well captured by the shadow mask estimation procedure, so the cosine-fourth effect can be disabled.
The image generation model 204 includes a focus blur model 514 to account for blur created by the camera 104 not being focused using the coordinates from the path generator 202 and the camera intrinsic parameters. In one embodiment, the focus blur model 514 includes a single Gaussian point spread function (PSF) having a standard deviation that is calculated as the absolute value of the difference between the distance to the page along the optical axis of the camera 104 and the distance at which the camera has empirically been determined to be “in focus” (both in inches). The focus blur model 514 then scales the standard deviation by a focus blur scale parameter, which may be user-specified, to control the magnitude of the focus blur. The blur therefore increases and decreases linearly as the camera is moved. FIG. 13A is a three-dimensional diagram illustrating a Gaussian PSF of a focus blur model. FIG. 13B is a diagram illustrating an image formed using the focus blur model 514.
The focus blur scale parameter may also be estimated using the Neighborhood Frequency Distributions and a Downhill Simplex algorithm, which are described above in conjunction with the sensor noise parameter. The Downhill Simplex algorithm can optimize multiple parameters simultaneously. In one embodiment, the focus blur scale factors are the range of about 0.3 to about 0.5.
The image generation model 204 includes a motion blur model 516 for modeling blur of the image caused by motion of the camera 104 relative to the image 106. In one embodiment, the motion blur model 516 includes a global blur model that models a blur for all portions of the image using a common blur. This model does not include actual parameters of the camera such as exposure time, and does not include distance differences between pixels and the image. The latter does not account for some sensor pixels being close to the paper than others, and thus may have less motion blur. In this embodiment, the global blur is an artificial, but perceptually believable motion blur that is achieved by replacing each pixel of the final image by the average of the pixel values along a path whose direction and magnitude are determined by blur parameters blur_dx and blur_dy, which represent the amount of blur in two orthogonal directions, such as x and y, that would occur if the camera 104 has been moved during the exposure time, and may be user selected.
In another embodiment, the motion blur model 516 generates a plurality of intermediate images for corresponding different camera positions and combines the images into one image to represent the blur. The image is re-rendered k times with fractional position changes corresponding to the desired exposure time and camera velocity. As an illustrative example, the motion blur model 516 sets both the blur_dx and blur_dy blur parameters set to zero, and generates a blur for the virtual image by calculating at a set number, k, of equally-spaced, intermediate positions that the camera 104 would occupy if it were moving with a certain velocity and had a given exposure time. The final image is the average of these k intermediate images. This embodiment may provide a tradeoff between the smoothness of the final image that increases with larger k, and the time it takes to render a set of images, which will increase linearly with k. FIG. 14 is a diagram of an illustrative example of a video frame blurred using the motion blur model 516, with k=3.
The image generation model 204 includes an isometric surfaces model 518 to generate images having developable surfaces, caused by, for example, warping or curling of folded papers or bound volumes. A developable surface may be, for example, a surface that “can be unrolled onto a plane without tearing or stretching.” (J. Liang, D. DeMenthon, and D. Doermann, “Flattening Curved Documents in Images,” In Proc. Of the IEEE Conf on Computer Vision and Pattern Recognition (CVPR), 2005, the contents of which are incorporated herein.) These are isometric mappings because distances along the surface of the document remain the same. When the source document is modeled as being warped in this way, the ray-plane intersection calculation becomes the more general ray-function intersection. FIGS. 15A and 15B are three-dimensional diagrams illustrating quadratic and cubic families, respectively, of curves in one direction of an image.
The image generation model 204 includes a general lighting model 520 to model the effects of material and illuminant properties. The effects may include ambient, diffuse, and specular components, such as described by T. Akenine-Moller and E. Haines., “Real-Time Rendering”, A. K. Peters, Natick, M A. 2nd Edition (2002), pp. 70-84, the subject matter of which is incorporated herein by reference. The effects may be calculated during ray tracing. The ambient component of the total lighting intensity is the product of the paper's ambient constant, and the light source's ambient constant. (For example, if a source shed no ambient light, its ambient constant would be zero). The diffuse component is the product of the diffuse constants of the paper and the light source multiplied by the dot product of the vector from the point of interest on the paper to the light source and the normal vector at that point. Finally, the specular component is the product of the specular constants of the paper and light source and the dot product of the normalized half vector between the lighting vector and the normal vector and the normal vector, raised to the power of a shininess component. When the ambient, diffuse, and specular components are added, the total intensity value is used to modulate the amplitude of the corresponding pixel in the virtual image. FIG. 16 is a diagram illustrating a virtual image generated by a general lighting model to replicate the effects of flash photography. In a first embodiment, the paper's (or generally an object's) and a light source's ambient, diffuse and specular constants as well as the number of position of the light sources are fixed. In an alternative embodiment, the position of the light source can change as a function of elapsed time, frame number, or arbitrary user setting. In another alternative embodiment, the ambient, diffuse, and specular constants can also change dynamically as a function of elapsed time, frame number, or arbitrary user setting. This can simulate a change in the physical composition of the object such as its natural aging, or in a paper document, its fading in the presence of intense light or some other force such as heat. This could simulate the fading of a thermal paper document.
The image generation model 204 includes a background model 522 to mimic the effect of background clutter. The user may specify a background image to be displayed in areas of the image that are outside the bounds of the source document 106. FIG. 17 illustrates an exemplary background image. Background clutter provides extra information in a test or training image, and thereby causes problems in applications, such as optical character recognition. The background model mimics background clutter by using high-resolution images of desktop scenes as backgrounds for ray tracing to provide pixel values when traced rays intersected the plane of the paper outside the margins of the document. In one embodiment, the images have a small depth of field, with the scene plane being parallel to the image plane of the camera. A single fixed background image may be used. In an alternative embodiment, several background images are provided and the background model probabilistically chooses one of them using a random number generator. For example, one image might be used 60 percent of the time, another 30 percent of the time and another in ten percent of all frames. In yet another alternative embodiment, the background image could be provided as a video clip and the particular frame used as background would be determined by the time elapsed from the first generated fame, the number of fames previously generated, or by a user setting. The particular frame used as background could be ray traced as before if the background is co-planar with the source document as it would be if the source document was shown on a video display and the background changed dynamically. In an alternative embodiment, the particular frame used as background could be ray traced but under different settings for its distance from the camera than the source document and given the position of the camera (X, Y, Z, thetax, thetay, thetaz). In an alternative embodiment, a three-dimensional model for a background is used that can be ray-traced to generate the background image.
The image generation model 204 includes an image compression model 524 to model the image compression of the camera 104. The image compression may be, for example, still image compression or video compression. The image generation model 204 generates the virtual image in various image formats with varying levels of compression.
The image generation model 204 may include a model 526 for page bleed-through. Bleed-through often occurs with scanned document images. In one embodiment, the page bleed-through model includes combining a second document image (which may be rotated about the longitudinal axis for book bleed-through) with a first document image. When a ray intersects the source document the following heuristic may be used. If the ray intersects at a text pixel (dark), the sensor pixel value is set to that value. If the ray intersects at a non-text pixel (light), however, the sensor pixel value is set to A*α+B*(1−α) where A is the source document's value at that pixel, B is the reverse-side document's value at that pixel, and α is the blending value (e.g., 0.85 might be an appropriate value for realistic, visible bleed-through).
FIG. 18 is a flowchart illustrating the operation of the image generation system 100. The image generation system 100 receives 1802 a motion specification that includes a model for human behavior, a set of control points, and a camera frame rate, object information that can be converted to both a raster and ground truth, camera characteristics, and image distortion parameters. The path generator 202 generates 1804 a path of motion of the object relative to a reference point, or generates a position of the object relative to the reference point. The image generation model 204 generates 1806 a series of images or an image for the reference frame from the ground truth and the generated path. The image generation model 204 may also generate image or video data, including ground truth information, using the path or position, the object information, the camera characteristics, and image distortion parameters.
In one embodiment, the image generation system 100 may generate an image or a video of a person from object information, which is then compared to an actual image or video of one or more persons for facial recognition. In another embodiment, an image or video of a portion of a person is generated for comparison to medical imaging and for diagnosis.
As used herein any reference to “one embodiment” or “an embodiment” means that a particular element, feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment. The appearances of the phrase “in one embodiment” in various places in the specification are not necessarily all referring to the same embodiment.
Some embodiments may be described using the expression “coupled” and “connected” along with their derivatives. It should be understood that these terms are not intended as synonyms for each other. For example, some embodiments may be described using the term “connected” to indicate that two or more elements are in direct physical or electrical contact with each other. In another example, some embodiments may be described using the term “coupled” to indicate that two or more elements are in direct physical or electrical contact. The term “coupled,” however, may also mean that two or more elements are not in direct contact with each other, but yet still co-operate or interact with each other. The embodiments are not limited in this context.
As used herein, the terms “comprises,” “comprising,” “includes,” “including,” “has,” “having” or any other variation thereof, are intended to cover a non-exclusive inclusion. For example, a process, method, article, or apparatus that comprises a list of elements is not necessarily limited to only those elements but may include other elements not expressly listed or inherent to such process, method, article, or apparatus. Further, unless expressly stated to the contrary, “or” refers to an inclusive or and not to an exclusive or. For example, a condition A or B is satisfied by any one of the following: A is true (or present) and B is false (or not present), A is false (or not present) and B is true (or present), and both A and B are true (or present).
In addition, use of the “a” or “an” are employed to describe elements and components of the invention. This is done merely for convenience and to give a general sense of the invention. This description should be read to include one or at least one and the singular also includes the plural unless it is obvious that it is meant otherwise.
Upon reading this disclosure, those of skill in the art will appreciate still additional alternative structural and functional designs for a system and a process for generating synthetic images or video using ground truth through the disclosed principles herein. Thus, while particular embodiments and applications have been illustrated and described, it is to be understood that the present invention is not limited to the precise construction and components disclosed herein and that various modifications, changes and variations which will be apparent to those skilled in the art may be made in the arrangement, operation and details of the method and apparatus of the present invention disclosed herein without departing from the spirit and scope of the invention as defined in the appended claims.

## Claims

1. A method for generating a virtual image, the method comprising:
receiving, from a device, object information representative of an object;
determining a positional relationship between the object and the device;
generating a plurality of simulated effects for the object; and
generating the virtual image of the object and ground truth data for the virtual image from the object information, the plurality of simulated effects, the positional relationship and a user specified environment of the object.

2. The method of claim 1, wherein generating the virtual image of the object and ground truth data for the virtual image comprises:
generating image data and ground truth data using at least one of a position, an image description, a characteristic of the device and an image distortion parameter.

3. The method of claim 1, further comprising determining the positional relationship using a model for human behavior for movement of the device.

4. The method of claim 1, wherein the plurality of simulated effects includes at least one of a focus blur, a motion blur, a histogram effect, a shadow, a sensor noise, a bleed through effect, an image compression and a background clutter.

5. The method of claim 1, wherein the user specified environment of the object includes at least one of a characteristic of the device, a characteristic of the object and a lighting of the object.

6. The method of claim 5 wherein the characteristic of the object includes a shape of the object.

7. The method of claim 1, wherein the device is a capture device.

8. The method of claim 1, wherein the object is a document.

9. A system for generating a virtual image, the system comprising:
an interface to receive, from a device, object information representative of an object;
a path generator to determine a positional relationship between the object and the device; and
an image generator to generate a plurality of simulated effects for the object and to generate the virtual image of the object and ground truth data for the virtual image from the object information, the plurality of simulated effects, the positional relationship and a user specified environment of the object.

10. The system of claim 9, wherein the image generator generates image data and ground truth data using at least one of a position, an image description, a characteristic of the device and an image distortion parameter.

11. The system of claim 9, wherein the path generator further determines the positional relationship using a model for human behavior for movement of the device.

12. The system of claim 9, wherein the device is a handheld imaging device.

13. The system of claim 9, wherein the device is a capture device.

14. The system of claim 9, wherein the object is a document.

15. A computer program product comprising a non-transitory computer useable medium including a computer readable program, wherein the computer readable program when executed on a computer causes the computer to perform steps comprising:
receiving, from a device, object information representative of an object;
determining a positional relationship between the object and the device;
generating a plurality of simulated effects for the object; and
generating a virtual image of the object and ground truth data for the virtual image from the object information, the plurality of simulated effects, the positional relationship and a user specified environment of the object.

16. The computer readable program of claim 15 when executed causes the computer to perform a further step comprising:
generating image data and ground truth data using at least one of a position, an image description, a characteristic of the device and an image distortion parameter.

17. The computer readable program of claim 15, wherein determining the positional relationship further comprises using a model for human behavior for movement of the device.

18. The computer readable program of claim 15, wherein the plurality of simulated effects includes at least one of a focus blur, a motion blur, a histogram effect, a shadow, a sensor noise, a bleed through effect, an image compression and a background clutter.

19. The computer readable program of claim 15, wherein the user specified environment of the object includes at least one of a characteristic of the device, a characteristic of the object and a lighting of the object.

20. The computer readable program of claim 15 wherein the characteristic of the object includes a shape of the object.