Abstract:
An autofocus method for obtaining clear images characterized by: adjusting the lens position with an initial dataset of focus values to obtain a estimated lens position; moving the lens to the estimated lens position and acquiring the corresponding focus value; determining whether the estimated lens position is sufficiently proximate to the prior estimated lens position, wherein, if it is, the autofocus process stops, and, if not, repeating the above-described steps until a lens position having an optimal focus value is obtained, thereby obtaining the clearest image with increased focusing speed and reduced time of lens movement and without the need of empirical parameters.

Description:
CROSS-REFERENCES TO RELATED APPLICATIONS 
     This application claims under 35 U.S.C. §119(a) the benefit of Taiwanese Application No. 98122866 filed Jul. 7, 2009 the entire contents of which is incorporated herein by reference. 
     BACKGROUND OF THE INVENTION 
     1. Field of the Invention 
     The present invention relates generally to autofocus camera, and more particularly, to an autofocus method that processes data of lens positions and focus values so as to obtain a lens position at which a sharp image can be captured. 
     2. Description of Related Art 
     In the autofocus process of a camera, the lens of the camera is moved from one position to another. At each lens position, the corresponding focus value is calculated. After each movement of the lens, a decision is made as to whether the maximum focus value is obtained. 
       FIG. 1A  is a diagram illustrating the relationship between focus values and lens positions. The peak point H shown in  FIG. 1A  corresponds to the maximum focus value.  FIG. 1B  shows a conventional autofocus process. The autofocus process continues until the maximum focus value is found, at which a focused image can be captured. That is, if the ideal lens position is found, the autofocus process terminates; otherwise, the direction and distance of the subsequent movement of the lens are determined, and the steps of moving the lens and calculating the focus value are repeated. 
     Various algorithms, such as global search, binary search, and rules-based search algorithms, can be applied to search for the lens position that gives rise to maximum focus value. 
     The global search algorithm records the focus value at each lens movement and goes through all lens positions to exhaustively determine which lens position gives rise to the maximum focus value. Therefore, a reasonably complete plot close to that shown in  FIG. 1A  is obtained, and the peak point H can be accurately identified. However, the global search algorithm is time consuming. 
     To overcome the above-described drawback, a two-stage search algorithm has been developed, wherein the search process comprises a coarse search stage and a fine search stage. The coarse search is first performed according to the gradient of the focus values with respect to the lens position so as to estimate which range the peak point H may fall within. Subsequently, a fine search is performed by fitting a second-order quadratic or Gaussian curve to the focus values as a function of lens position within the range of the peak point described above. 
     Furthermore, US Patent Application No. 20080180563 discloses another autofocus method, wherein a search step look-up table is established in accordance with the total number of lens movements and the corresponding focus values. During the autofocus process, the direction and the distance of lens movements are determined in accordance with the search step look-up table. 
     Compared with the global search algorithm, the above-described techniques can increase the speed and reduce the number of lens movements. However, all these techniques require parameter adjustment and may not be efficient enough for practical applications. In addition, these techniques may not be able to provide sufficiently accurate results. 
     SUMMARY OF THE INVENTION 
     In view of the above drawbacks, the present invention provides an autofocus method that comprises the steps of: (1) obtaining an initial dataset of focus samples containing lens positions and focus values corresponding to the lens positions; (2) fitting the focus samples in the initial dataset to estimate the ideal lens position; (3) moving the lens to the estimated lens position to obtain a estimated focus value corresponding to the estimated lens position; and (4) determining whether the estimated lens position is proximate to the prior lens position thereof, wherein, if it is, the autofocus process stops, and, if not, fitting a plurality of the focus samples obtained in the previous steps to re-estimate the subsequent lens position, and returning to step (3). 
     The present invention provides an autofocus method for obtaining a lens position where a clear image can be captured. If the estimated lens position is proximate to the prior lens position thereof, this indicates that a clear image can be captured at the estimated lens position. Otherwise, the present invention fits the focus samples consisting of lens positions obtained antecedently and the corresponding focus values until a newly estimated lens position is proximate to the prior newly estimated lens position thereof, thereby obtaining the lens position with the maximum focus value that gives rise to the clearest image. 
     As mentioned above, the present invention estimates the optimal lens position using the data of focus values and lens positions, instead of adjusting parameters, to increase the focusing speed and reduce the number of lens movements. 
    
    
     
       BRIEF DESCRIPTION OF DRAWINGS 
         FIG. 1A  is a plot illustrating the relationship between lens positions and focus values individually corresponding to the lens positions; 
         FIG. 1B  is a flowchart illustrating a conventional autofocus method; 
         FIG. 2  is a plot illustrating the relationship between lens positions and focus values individually corresponding to the lens positions according to an autofocus method of the present invention; 
         FIG. 3  is a flowchart showing an autofocus method according to an embodiment of the present invention; 
         FIG. 4  is a diagram showing the axis of a lens perpendicular to the lens; 
         FIG. 5  is a flowchart showing an autofocus method according to an embodiment of the present invention; and 
         FIG. 6  is a diagram showing an autofocus process with the position of the lens gradually approaching the position with the maximum focus value. 
     
    
    
     DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS 
     The following illustrative embodiments are provided to illustrate the disclosure of the present invention, these and other advantages and effects being apparent to those skilled in the art after reading the disclosure of this specification. The invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. It should be noted that various modification and variation may be performed without departing from the scope of the present invention. 
       FIG. 2  is a diagram illustrating the relationship between lens positions and focus values according to one embodiment of the present invention. An image can be captured at a lens position, and a focus value can be calculated according to the image, wherein the focus value represents the sharpness of the image. In the present embodiment, a bell-shaped curve can be drawn with all lens positions and focus values individually corresponding to the lens positions. 
     In the present embodiment, the present invention provides a full model F=G(a,b,c,(x−m)), wherein F represents a focus value, G represents a function, x represents a lens position, and a, b, c and m are parameters, wherein m represents the ideal lens position. The characteristics of the full model F=G(a,b,c,(x−m)) can be described through the parameters a, b, c and m. As shown in  FIG. 2 , H, denotes the peak point of the curve and U denotes the flat portion of the curve. The parameter ‘a’ controls the amplitude of the curve, i.e., the height of the peak point H, and the parameters ‘b’ and ‘c’ control the curvature from the peak point H to the flat portion U on both sides of the peak point H. In the present embodiment, only the parameters that are relative to the autofocus method of the present invention are provided in the model F=G(a,b,c,(x−m)). But it should be noted that the full model involving F=G(a,b,c,(x−m)) can have other parameters denoting other characteristics of the curve. 
     Further, the full model involving F=G(a,b,c,(x−m)) can be simplified into a simplified model F=G(a,b,J,(x−m)), wherein J is a fixed value. It should be noted that the full model can also be simplified into other models. Furthermore, in order to reduce the computational complexity, the simplified model F=G(a,b,J,(x−m)) is non-linearly transformed so as to obtain a function Z(F)=Ax 2 +Bx+C for estimating the ideal lens position, wherein Z represents a non-linear transformation. But it should be noted that the present invention is not limited thereto, for example, the Z(•) can be reciprocal transformation, Z(F)=1/F, wherein F is focus value(s). 
       FIG. 3  shows an autofocus method according to an embodiment of the present invention. In the present embodiment, the ideal lens position is estimated by fitting the function Z(F)=Ax 2 +Bx+C to an initial dataset of focus samples containing lens positions and focus values corresponding to the lens positions. The flowchart of  FIG. 3A  comprises a loop structure, wherein, if it is determined that the estimated lens position is not proximate to the prior estimated lens position, move the lens to the estimated lens position, and then add the estimated lens position m i  and the corresponding focus value f i  to the initial dataset to produce a new dataset, such that the function Z(F)=Ax 2 +Bx+C can be fitted to the focus samples in the new dataset, for estimating the subsequent lens position. Such iteration(s) will be performed until the estimated lens position is proximate to the prior estimated lens position. It should be noted that the mathematical symbols and loop structure in the drawing are not intended to limit the present invention. 
     As shown in  FIG. 3 , at step S 301 , an initial dataset of focus samples is obtained by moving the lens to different lens positions, wherein the initial dataset of focus samples contains a plurality of lens positions m 1 , m 2 , m 3 , . . . , m i-1  and focus values f 1 , f 2 , f 3 , . . . , f i-1  independently corresponding to the plurality of lens positions m 1 , m 2 , m 3 , . . . , m i-1 . As a specific embodiment, the lens is moved to three different lens positions m 1 , m 2 , and m 3  so as to obtain the focus values f 1 , f 2 , and f 3  corresponding to the lens positions, respectively. The three different lens positions m 1 , m 2 , and m 3  and the corresponding focus values are denoted as the initial dataset of focus samples. 
     In one embodiment, the three different lens positions can be arbitrarily chosen along the axis of the lens. In another embodiment, the three different lens positions refer to an initial lens position and two lens positions that are forward and backward from the initial lens position, respectively, both being at the same distance from the initial lens position. In another embodiment, the first and second lens positions are arbitrarily chosen and the corresponding focus values are obtained, and the third lens position is determined according to the gradient of the focus values at the first and second lens positions. For example, when the lens is moved from the first lens position m 1  to the second lens position m 2 , if the focus value at the second lens position m 2  is less than the focus value at the first lens position m 1 , the third lens position m 3  is selected such that the focus value at this position is greater than the focus values at the first position m 1 . That is, the first lens position m 1  is located between the second lens position m 2  and the third lens position m 3 . On the other hand, if the focus value at the second lens position m 2  is greater than the focus value at the first lens position m 1 , the third lens position m 3  is selected such that the focus value at the position is greater than the focus value at the second lens position m 2 . That is, the second lens position m 2  is located between the first lens position m 1  and the third lens position m 3 . Then, the process goes to step S 302 . 
     At step S 302 , fit the function Z(F)=Ax 2 +Bx+C to a plurality of focus samples in the initial dataset, to obtain parameters A i , B i , C i , the fitting preferably being a weighted fitting wherein the weight values of the weight fitting are independently proportional to each of the focus values corresponding to a plurality of the lens positions in the initial dataset. Further, obtain an estimated lens position m i  according to the estimated parameters A i , B i , and C i . Then, the process goes to step S 303 . 
     At step S 303 , move the lens to the estimated lens position m i , and then, at step S 304 , obtain the focus value f i  corresponding to the estimated lens position m i . Then, the process goes to step S 305 . 
     At step S 305 , determine whether the estimated lens position m i  is proximate to the prior estimated lens position thereof m i-1 ; that is, it is determined whether |m i −m i-1 | is less than or equal to a predetermined value M. If it is not, the process goes to step S 306 , and, if it is, the autofocus process is terminated. 
     At step S 306 , add the estimated lens position m i  and the corresponding focus value f i  into the initial dataset to produce a new dataset, and fit the function Z(F)=Ax 2 +Bx+C to a plurality of the lens positions m 1 , m 2 , m 3 , . . . , m i-1 , m i  contained in the new dataset and a plurality of the focus values f 1 , f 2 , f 3 , . . . , f i-1 , f i  individually corresponding to a plurality of the lens positions m 1 , m 2 , m 3 , . . . , m i-1 , m i  and then the value i is increased by one, to re-estimate the estimated lens position m i . Then, the process goes back to step S 303 . 
     Since the autofocus method performs focusing a model involving the lens position and the focus value, the ideal lens position may be obtained after only three lens movements. 
     Therefore, the method works by fitting the function Z(F)=Ax 2 +Bx+C to the focus samples in the dataset obtained through the previous steps until the ideal lens position is obtained. In theory, the value |m i −m i-1 | should be equal to zero; however, a sufficiently small value of |m i −m i-1 | is acceptable in practice. 
     As shown in  FIG. 4 , the axis of the lens is perpendicular to the lens. In the case, the sensor plane  20  of the camera is not moved, and there are about 1100 lens positions along the axis L. The predetermined value M can be five. In other embodiments, the predetermined value M can be determined according to the number of lens positions, the application area or the required accuracy. Preferably, the predetermined value M is zero, i.e., the estimated lens position is the ideal lens position (meaning that the clearest image can be captured at this position). 
     Since there are three parameters A, B and C in the function Z(F)=Ax 2 +Bx+C, the function can be fitted to three focus samples so as to estimate the parameters A, B and C. On the other hand, the full model F=G(a,b,c,(x−m)) has four parameters a, b, c and m, and, accordingly, the parameters a, b, c and m can be obtained by fitting the full model F to four focus samples. 
     According to the above-described steps, each time the lens is moved to an estimated lens position, the focus value is calculated and the function Z(F)=Ax 2 +Bx+C can further be fitted to the focus samples in the dataset, for estimating the subsequent lens position. Such a process is repeated until the estimated lens position is proximate to the current lens position, i.e., the difference between the estimated lens position and the current lens position is less than or equal to the predetermined value M. 
     Therefore, the autofocus method of the present invention does not need to move the lens to all lens positions to calculate the corresponding focus values. Instead, the present method only needs to fit the function to the focus samples in the dataset so as to estimate parameters of the function and the subsequent lens position. 
       FIG. 5  is a flowchart showing an autofocus method according to another embodiment of the present invention. As shown in  FIG. 5 , at step S 501 , an initial dataset of focus samples is obtained by moving the lens to different lens positions, wherein the initial dataset of focus samples contains a plurality of lens positions, m 1 , m 2 , m 3 , . . . , m i-1  and focus values f 1 , f 2 , f 3 , . . . , f i-1  independently corresponding to the lens positions m 1 , m 2 , m 3 , . . . , m i-1 . As a specific embodiment, the lens is moved to three different positions m 1 , m 2 , and m 3  so as to obtain the focus values f 1 , f 2 , and f 3  corresponding to the lens positions, respectively. The three different positions m 1 , m 2 , and m 3  and the corresponding focus values f 1 , f 2 , and f 3  are denoted as the initial dataset of focus samples. At step S 502 , fit a function Z(F)=Ax 2 +Bx+C to the focus samples in the initial dataset, to estimate an optimum lens position m opt  with maximum focus value f max . Preferably, the fitting is a weighted fitting in which weight values of the weight fitting are individually proportional to each of the focus values corresponding to the lens positions in the initial dataset. At step S 503 , move the lens to the optimum lens position m opt . Then, the process of the autofocus method is terminated. 
       FIG. 6  shows an autofocus process with the lens position gradually approaching the ideal lens position according to the embodiments shown in  FIG. 3 . 
     As shown in  FIG. 6 , first, a lens position P 1  is arbitrarily chosen and the focus value corresponding to the lens position P 1  is calculated. Next, another lens position P 2  is arbitrarily chosen and the corresponding focus value is calculated. Then, the focus values at these two lens positions P 1 , P 2  are compared such that a estimated lens position P 3  is chosen with its focus value greater than the focus values at the lens positions P 1 , P 2 . 
     Then, fit the function Z(F)=Ax 2 +Bx+C to focus samples in the dataset comprising the three lens positions P 1 , P 2 , and P 3  and the corresponding focus values, so as to estimate the subsequent lens position P 4 . Subsequently, move the lens to the position P 4  and the corresponding focus value is calculated. Thus, in total, there are four focus samples in the dataset comprising the four lens positions P 1 , P 2 , P 3  and P 4  and the corresponding focus values. Fit the function Z(F)=Ax 2 +Bx+C to the four focus samples so as to estimate another lens position P 5  in  FIG. 6 . Then, move the lens to the position P 5  and calculate the corresponding focus value. 
     Subsequently, determine whether the position P 5  is proximate to P 4 , i.e., whether the difference between the lens position P 4  and the lens position P 5  is less than or equal to the predetermined value M. For example, if the difference between the lens position P 5  and the lens position P 4  is within 5 lens positions, it means that the lens position is proximate to the ideal lens position. Then, terminate the autofocus process. On the other hand, if the difference between the lens position P s  and the lens position P 4  is greater than 5 lens positions, fit the function Z(F)=Ax 2 +Bx+C to the five focus samples obtained through the above-described steps so as to estimate another lens position and calculate the focus value corresponding to the lens position (such as P 6 , not shown). 
     The fitting steps are repeated until the difference between the estimated lens position and the current lens position is less than or equal to the predetermined value, that is, the estimated lens position approximates the ideal lens position. 
     Therefore, according to the present invention, the ideal lens position can be estimated by fitting the function Z(F)=Ax 2 +Bx+C to an initial dataset of focus samples containing lens positions and corresponding focus values, and determining whether the estimated lens position is proximate to the prior-estimated lens position, wherein, if it is not, fit a plurality of the lens positions obtained in previous steps and the focus values individually corresponding to a plurality of the lens positions, the fitting process being repeated for estimating the subsequent lens position; and, if it is proximate, the autofocus process is terminated. Compared with the prior art, the present invention increases the focusing speed and reduces the number of lens movements. In addition, the parameters of the present invention control the amplitude and curvature of the curve formed by the lens positions and the focus values, such that the ideal lens position can be estimated through these parameters. 
     Therefore, the autofocus method of the present invention accumulates the focus samples obtained each time the lens is moved to a lens position so as to rectify the estimated lens position, thereby making the lens position proximate to the ideal lens position. As a result, the autofocus process can be rapidly and accurately completed. 
     The above-described descriptions of the detailed embodiments are provided to illustrate the preferred implementation according to the present invention, and are not intended to limit the scope of the present invention. Accordingly, many modifications and variations completed by those with ordinary skill in the art will fall within the scope of present invention as defined by the appended claims.