IP Library Granted Patent US 8,917,346
Granted Patent B2
US 8,917,346 · App. 13/965,758 · Granted Dec 23, 2014

Focus error estimation in images

Inventors: Wilson Geisler (Austin, TX); Johannes Burge (Austin, TX)
Assignee: Board of Regents, The University of Texas System
H04N5/235G02B7/36H04N5/23212
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,917,346
App. No.
13/965,758
Granted
Dec 23, 2014
Kind
B2
Abstract

Estimating focus error in an image involves a training phase and an application phase. In the training phase, an optical system is represented by a point-spread function. An image sensor array is represented by one or more wavelength sensitivity functions, one or more noise functions, and one or more spatial sampling functions. The point-spread function is applied to image patches for each of multiple defocus levels within a specified range to produce training data. Each of the images for each defocus level (i.e. focus error) is sampled using the wavelength sensitivity and spatial sampling functions. Noise is added using the noise functions. The responses from the sensor array to the training data are used to generate defocus filters for estimating focus error within the specified range. The defocus filters are then applied to the image patches of the training data and joint probability distributions of filter responses to each defocus level are characterized. In the application phase, the filter responses to arbitrary image patches are obtained and combined to derive continuous, signed estimates of the focus error of each arbitrary image patch.

Claims (125)

1. A method for focus error processing, the method comprising:

receiving image data of an object onto a sensor array of an optical system;

calculating a filter response value of a defocus filter to a patch of the received image data for each defocus filter in a set of one or more defocus filters for the optical system, such that the calculated filter response values for the set of defocus filters produces a filter response vector of the received image data;

calculating a probability for each of multiple defocus levels within a predetermined set of defocus levels from the filter response vector of the received image data; and

determining an estimate of focus error from the received image data based on the calculated probabilities of the multiple defocus levels;

wherein calculating the probability of each of the multiple defocus levels comprises using a parametric function of a training set of images comprising image patches having defocus levels corresponding to the predetermined set of defocus levels to determine a probability for each defocus level of the predetermined set of defocus levels;

wherein determining an estimate of focus error comprises selecting a defocus level from the predetermined set of defocus levels that is most similar to training filter response vectors associated with a defocus level.

2. The method as in claim 1 , wherein selecting a defocus level comprises selecting from the predetermined set of defocus levels according to a Bayes' Rule technique to determine the most similar training filter response vector.

3. The method as in claim 1 , wherein calculating a filter response value for each defocus filter in the set of one or more defocus filters comprises:

calculating a Fourier transform of the patch of the received image data;

computing a radially averaged power spectrum from the Fourier transform of the received image data; and

calculating a dot product of the radially averaged power spectrum with each defocus filter to produce a response value for each filter;

wherein the set of response values for the filters comprises the filter response vector.

4. The method as in claim 1 , further comprising:

adjusting the optical system to compensate for the determined estimate of focus error and to obtain an image at the sensor array that is substantially in focus.

5. The method as in claim 4 , wherein the optical system comprises a digital camera.

6. The method as in claim 4 , wherein the optical system comprises a digital microscope.

7. The method as in claim 4 , wherein the optical system comprises a digital telescope.

8. The method as in claim 4 , wherein the optical system comprises a digital video camera.

9. The method as in claim 4 , wherein the optical system comprises a device that is controlled in response to the received image data.

10. A system for focus error processing, the system comprising:

an optical system;

a sensor array that receives image data of an object viewed through the optical system; and

a processor configured to calculate a filter response value of a defocus filter to a patch of the received image data for each of one or more defocus filters for the optical system, such that the calculated filter response values produce a filter response vector of the received image data,

calculate a probability for each of multiple defocus levels within a predetermined set of defocus levels from the filter response vector of the received image data, and

determine an estimate of focus error in the received image data based on the calculated probabilities of the multiple defocus levels;

wherein the processor is further configured to

calculate the probability of each of the multiple defocus levels using a parametric function of a training set of images comprising image patches having defocus levels corresponding to the predetermined set of defocus levels to determine a probability for each defocus level of the predetermined set of defocus levels, and

determine the estimate of focus error by selecting a defocus level from the predetermined set of defocus levels that is most similar to training filter response vectors associated with a defocus level.

11. The system as in claim 10 , wherein the processor selects a defocus level by selecting from the predetermined set of defocus levels according to a Bayes' Rule technique to determine the most similar training filter response vector.

12. The system as in claim 10 , wherein the processor calculates a filter response vector comprising a filter response value for each of the one or more defocus filters by calculating a Fourier transform of the patch of the received image data, computing a radially averaged power spectrum from the Fourier transform of the received image data, and calculating a dot product of the radially averaged power spectrum with each defocus filter to produce a response value for each filter, wherein the set of response values for the filters comprises the filter response vector.

13. The system as in claim 10 , wherein the processor is further configured to adjust the optical system to compensate for the determined estimate of focus error and to obtain an image at the sensor array that is substantially in focus.

14. The system as in claim 13 , wherein the optical system comprises a digital camera.

15. The system as in claim 13 , wherein the optical system comprises a digital microscope.

16. The system as in claim 13 , wherein the optical system comprises a digital telescope.

17. The system as in claim 13 , wherein the optical system comprises a digital video camera.

18. The system as in claim 13 , wherein the optical system comprises a device that is controlled in response to the received image data.

19. A method for estimating focus error in an image received through an optical system, the method comprising:

computing filter responses for a set of image patches from a training set of images, for each of multiple defocus levels in a predetermined set of defocus levels for each image patch in the training set of images, for each of one or more defocus filters in a set of defocus filters for the optical system;

obtaining a distribution of filter response vectors from said computed filter responses for the set of image patches from the training set of images, for each defocus level of the multiple defocus levels; and

estimating a focus error for each defocus level based on the distribution of filter response vectors.

20. The method as in claim 19 , wherein the set of defocus filters is determined from the training set of images for each defocus level using a point-spread function that represents the optical system, for each of the multiple defocus levels in the predetermined set of defocus levels for each image patch in the training set of images;

wherein each image patch in the training set of images is sampled using at least one wavelength sensitivity function, at least one a spatial sampling function, and at least one noise function for at least one class of sensor in a sensor array of the optical system, producing a representation of the image received through the optical system at the sensor array;

wherein the set of defocus filters is obtained from said sensor responses from said sensor array for each of said multiple defocus levels.

21. The method as in claim 19 , wherein the set of defocus filters is obtained from said filter responses for each of said multiple defocus levels using a statistical technique comprising accuracy maximization analysis (AMA).

22. The method as in claim 19 , wherein the set of defocus filters is obtained from said filter responses for each of said multiple defocus levels using a statistical technique comprising principle components analysis (PCA).

23. The method as in claim 19 , the method further comprising:

characterizing each said filter response vector distribution by fitting a parametric function to the distribution, wherein the parametric function comprises a conditional likelihood distribution function.

24. The method as in claim 23 , the method further comprising:

interpolating conditional likelihood distributions for defocus levels that have values between defocus levels in the said set of training defocus levels.

25. The method as in claim 19 , further comprising:

estimating a focus error for an arbitrary image patch by

calculating a defocus filter response value for each of the one or more defocus filters in response to the arbitrary image patch, and

computing a probability of each defocus level using said set of conditional likelihood distributions and using the training filter response vector;

wherein the training filter response vector is generated in response to the arbitrary image patch, from the said set of defocus filters, and said combination of filter responses from said set of defocus filters.

26. The method as in claim 19 , wherein said range of defocus level is within a range from approximately 0 diopters to approximately 2.25 diopters at an interval of approximately 0.25 diopters.

27. The method as in claim 19 , wherein said range of defocus level is within a range from approximately −2.25 diopters to approximately 2.25 diopters at an interval of approximately 0.25 diopters.

28. The method as in claim 19 , further comprising:

performing a Fourier transform of said sensor responses from said sensor array for said class of sensor.

29. The method as in claim 19 , further comprising:

obtaining responses from said sensor array for more than one class of sensor in the sensor array.

30. The method as in claim 19 , wherein the set of defocus filters is determined for more than one class of sensor in a sensor array of the optical system, such that the set of defocus filters provide information that defines magnitude and sign of defocus level.

31. A computer program product embodied in a computer readable storage medium for estimating focus error, the computer program product comprising programming instructions recorded on the medium such that, when executed by a computer processor, the programming instructions provide a method for:

computing filter responses for a set of image patches from a training set of images, for each of multiple defocus levels in a predetermined set of defocus levels for each image patch in the training set of images, for each of one or more defocus filters in a set of defocus filters for the optical system;

obtaining a distribution of filter response vectors from said computed filter responses for the set of image patches from the training set of images, for each defocus level of the multiple defocus levels; and

estimating a focus error for each defocus level based on the distribution of filter response vectors.

32. The computer program product as in claim 31 , wherein the set of defocus filters is determined from the training set of images for each defocus level using a point-spread function that represents the optical system, for each of the multiple defocus levels in the predetermined set of defocus levels for each image patch in the training set of images;

wherein each image patch in the training set of images is sampled using at least one wavelength sensitivity function, a spatial sampling function, and at least one noise function for a class of sensor in a sensor array of the optical system, producing a representation of the image received through the optical system at the sensor array;

wherein the set of defocus filters is obtained from said sensor responses from said sensor array for each of said multiple defocus levels.

33. The computer program product as in claim 31 , wherein the set of defocus filters is obtained from said filter responses for each of said multiple defocus levels using a statistical technique comprising accuracy maximization analysis (AMA).

34. The computer program product as in claim 31 , wherein the set of defocus filters is obtained from said filter responses for each of said multiple defocus levels using a statistical technique comprising principle components analysis (PCA).

35. The computer program product as in claim 31 , wherein the processor further performs:

characterizing each said filter response vector distribution by fitting a parametric function to the distribution, wherein the parametric function comprises a conditional likelihood distribution function.

36. The computer program product as in claim 35 , the executed method further comprising:

interpolating conditional likelihood distributions for defocus levels that have values between defocus levels in the said set of training defocus levels.

37. The computer program product as in claim 31 , wherein the processor further performs:

estimating a focus error for an arbitrary image patch by

calculating a defocus filter response value for each of the one or more defocus filters in response to the arbitrary image patch, and

computing a probability of each defocus level using said set of conditional likelihood distributions and using the training filter response vector;

wherein the training filter response vector is generated in response to the arbitrary image patch, from the said set of defocus filters, and said combination of filter responses from said set of defocus filters.

38. The computer program product as in claim 31 , wherein said range of defocus level is within a range from approximately 0 diopters to approximately 2.25 diopters at an interval of approximately 0.25 diopters.

39. The computer program product as in claim 31 , wherein said range of defocus level is within a range from approximately −2.25 diopters to approximately 2.25 diopters at an interval of approximately 0.25 diopters.

40. The computer program product as in claim 31 , further comprising:

performing a Fourier transform of said sensor responses from said sensor array for said class of sensor.

41. The computer program product as in claim 31 , further comprising:

obtaining responses from said sensor array for more than one class of sensor in the sensor array.

42. The computer program product as in claim 31 , wherein the set of defocus filters is determined for more than one class of sensor in a sensor array of the optical system, such that the set of defocus filters provide information that defines magnitude and sign of defocus level.

43. A system comprising:

a memory unit for storing a computer program for estimating focus error in an image; and

a processor coupled to said memory unit, wherein said processor comprises circuitry for, responsive to executing said computer program:

computing filter responses for a set of image patches from a training set of images, for each of multiple defocus levels in a predetermined set of defocus levels for each image patch in the training set of images, for each of one or more defocus filters in a set of defocus filters for the optical system;

obtaining a distribution of filter response vectors from said computed filter responses for the set of image patches from the training set of images, for each defocus level of the multiple defocus levels; and

estimating a focus error for each defocus level based on the distribution of filter response vectors.

44. The system as in claim 43 , wherein the set of defocus filters is determined from the training set of images for each defocus level using a point-spread function that represents the optical system, for each of the multiple defocus levels in the predetermined set of defocus levels for each image patch in the training set of images;

wherein each image patch in the training set of images is sampled using at least one wavelength sensitivity function, a spatial sampling function, and at least one noise function for a class of sensor in a sensor array of the optical system, producing a representation of the image received through the optical system at the sensor array;

wherein the set of defocus filters is obtained from said sensor responses from said sensor array for each of said multiple defocus levels.

45. The system as in claim 43 , wherein the set of defocus filters is obtained from said filter responses for each of said multiple defocus levels using a statistical technique comprising accuracy maximization analysis (AMA).

46. The system as in claim 43 , wherein the set of defocus filters is obtained from said filter responses for each of said multiple defocus levels using a statistical technique comprising principle components analysis (PCA).

47. The system as in claim 43 , wherein the processor further performs:

characterizing each said filter response vector distribution by fitting a parametric function, wherein the parametric function comprises a conditional likelihood distribution function.

48. The system as in claim 47 , the method further comprising:

interpolating conditional likelihood distributions for defocus levels that have values between defocus levels in the said set of training defocus levels.

49. The system as in claim 43 , wherein the processor further performs:

estimating a focus error for an arbitrary image patch by

calculating a defocus filter response value for each of the one or more defocus filters in response to the arbitrary image patch, and

computing a probability of each defocus level using said set of conditional likelihood distributions and using the training filter response vector;

wherein the training filter response vector is generated in response to the arbitrary image patch, from the said set of defocus filters, and said combination of filter responses from said set of defocus filters.

50. The system as in claim 43 , wherein said range of defocus level is within a range from approximately 0 diopters to approximately 2.25 diopters at an interval of approximately 0.25 diopters.

51. The system as in claim 43 , wherein said range of defocus level is within a range from approximately −2.25 diopters to approximately 2.25 diopters at an interval of approximately 0.25 diopters.

52. The system as in claim 43 , further comprising:

performing a Fourier transform of said sensor responses from said sensor array for said class of sensor.

53. The system as in claim 43 , further comprising:

obtaining responses from said sensor array for more than one class of sensor in the sensor array.

54. The system as in claim 43 , wherein the set of defocus filters is determined for more than one class of sensor in a sensor array of the optical system, such that the set of defocus filters provide information that defines magnitude and sign of defocus level.

55. A method of determining focus error in an image received at a sensor array of an optical system, the method comprising:

computing filter responses for a set of training image patches, received on a sensor array, that were defocused in simulation using a point-spread function that represents the optical system, for each of multiple defocus levels within a range of defocus for each image patch in the set of training image patches, for a plurality of filters, said filter responses comprising a filter response vector for each of said plurality of filters;

sampling each of said set of training image patches on said sensor array using a wavelength sensitivity function and a spatial sampling function that represent the sensor array;

obtaining sensor responses from said sensor array for a class of sensor in the sensor array;

generating a set of defocus filters from said sensor responses from said sensor array for each of said multiple defocus levels;

determining a probability likelihood of each filter response vector by obtaining a distribution of the filter response vectors for each of the training image patches in the set of training image patches;

characterizing the filter response vector distributions corresponding to each defocus level in the training image patches set with a parametric multi-dimensional function;

interpolating conditional likelihood distributions for defocus levels in between the defocus levels in the training image patches set; and

deriving an estimate of focus error for an arbitrary image patch with an unknown focus error by:

computing the filter response vector in response to the arbitrary patch,

computing the probability of each defocus level within the specified range of defocusing, and deriving an estimate of focus error from the computed probability.

Assignments (4)
CONFIRMATORY LICENSE Recorded Oct 15, 2014
From: OFFICE OF TECHNOLOGY COMMERCIALIZATION
To: NATIONAL INSTITUTES OF HEALTH (NIH), U.S. DEPT. OF HEALTH AND HUMAN SERVICES (DHHS), U.S. GOVERNMENT
Reel/Frame 033988/0738 →
CONFIRMATORY LICENSE Recorded Oct 8, 2014
From: OFFICE OF TECHNOLOGY COMMERCIALIZATION THE UNIVERSITY OF TEXAS AT AUSTIN
To: NATIONAL INSTITUTES OF HEALTH (NIH), U.S. DEPT. OF HEALTH AND HUMAN SERVICES (DHHS), U.S. GOVERNMENT
Reel/Frame 033917/0249 →
CONFIRMATORY LICENSE Recorded Oct 3, 2014
From: OFFICE OF TECHNOLOGY COMMERCIALIZATION
To: NATIONAL INSTITUTES OF HEALTH (NIH), U.S. DEPT. OF HEALTH AND HUMAN SERVICES (DHHS), U.S. GOVERNMENT
Reel/Frame 033889/0386 →
CONFIRMATORY LICENSE Recorded Sep 10, 2014
From: OFFICE OF TECHNOLOGY COMMERCIALIZATION THE UNIVERSITY OF TEXAS AT AUSTIN
To: NATIONAL INSTITUTES OF HEALTH (NIH), U.S. DEPT. OF HEALTH AND HUMAN SERVICES (DHHS), U.S. GOVERNMENT
Reel/Frame 033712/0588 →
Continuity (3)
Continuation PCTUS2012026817 · Feb 27, 2012
Provisional Application 61446566 · Feb 25, 2011
Related Publication 20130329122A1 · Dec 12, 2013