INTRODUCTION Cameras with automatic focusing systems usually measure the distance to the center of a finder's view. This method, however, is inaccurate when the object of interest is not at the center of the view (Figure 1). Measuring more than one distance is an approach that may solve this problem. The following example shows the application of fuzzy inference as a means of automatically determining correct focus distance. FUZZY INFERENCE Objective Determine the object distance using three distance measures for an automatic camera focusing system. Definition of Input/Out Variables Inputs to the FIU (Fuzzy Inference Unit) are three distance measures at left, center and right points in the finder view. Outputs are the plausibility values associated with these three points (Figure 2). The point with the highest plausibility is deemed to be the object of interest. Its distance is then forwarded to the automatic focusing system. Each input variable, representing distance, has three labels: Near, Medium, and Far. Each output variable, representing plausibility, has four labels: Low, Medium, High, and VeryHigh. Membership functions corresponding to these labels are shown in Figures 3a and 3b. Fuzzy Rules The guiding principle for establishing rules of this automatic focusing system is that the likelihood of an object being at medium distance (typically 10 meters) is high, and becomes very low as distance increases (say, more than 40 meters). Source Code of Fuzzy Inference Unit $ FILENAME: camera/af1.fil $ DATE: 07/29/92 $ UPDATE: 08/06/92 $ Three inputs, three outputs, decision making for $ Automatic Focusing System $ INPUT(S): Left(Distance), Center(Distance), $ Right(Distance) $ OUTPUT(S): Plau(sibility)_of_Left, $ Plau(sibility)_of_Center, Plau(sibility)_of_Right $ FIU HEADER fiu tvfi (min max) *8; $ DEFINITION OF INPUT VARIABLE(S) invar Left "meter" : 1 () 100 [ Far (@10, 0, @40, 1, @100, 1), Medium (@1, 0, @10, 1, @40, 0), Near (@1, 1, @10, 0) ]; invar Center "meter" : 1 () 100 [ Far (@10, 0, @40, 1, @100, 1), Medium (@1, 0, @10, 1, @40, 0), Near (@1, 1, @10, 0) ]; invar Right "meter" : 1 () 100 [ Far (@10, 0, @40, 1, @100, 1), Medium (@1, 0, @10, 1, @40, 0), Near (@1, 1, @10, 0) ]; $ DEFINITION OF OUTPUT VARIABLE(S) outvar Plau_of_Left "degree" : 0 () 1 * ( VeryHigh = 1.0, High = 0.8, Medium = 0.5, Low = 0.3 ); outvar Plau_of_Center "degree" : 0 () 1 * ( VeryHigh = 1.0, High = 0.8, Medium = 0.5, Low = 0.3 ); outvar Plau_of_Right "degree" : 0 () 1 * ( VeryHigh = 1.0, High = 0.8, Medium = 0.5, Low = 0.3 ); $ RULES if Left is Near then Plau_of_Left is Medium; if Center is Near then Plau_of_Center is Medium; if Right is Near then Plau_of_Right is Medium; if Left is Near and Center is Near and Right is Near then Plau_of_Center is High; if Left is Near and Center is Near then Plau_of_Left is Low; if Right is Near and Center is Near then Plau_of_Right is Low; if Left is Medium then Plau_of_Left is High; if Center is Medium then Plau_of_Center is High; if Right is Medium then Plau_of_Right is High; if Left is Medium and Center is Medium and Right is Medium then Plau_of_Center is VeryHigh; if Left is Medium and Center is Medium then Plau_of_Left is Low; if Right is Medium and Center is Medium then Plau_of_Right is Low; if Left is Far then Plau_of_Left is Low; if Center is Far then Plau_of_Center is Low; if Right is Far then Plau_of_Right is Low; if Left is Far and Center is Far and Right is Far then Plau_of_Center is High; if Left is Medium and Center is Far then Plau_of_Center is Low; if Right is Medium and Center is Far then Plau_of_Center is Low end Input/Output Response Now let us compile the FIU source code given above and use the FIDE analyzer to see how this unit works. Figures 4a and 4b provide two input/output response surfaces of the FIU. From Figure 4a, we see that Plausibility_of_Center becomes high when the distance at the center is around 10 meters, a distance we defined to be Medium in the definition of input variables. It becomes lower when the distance increases, especially when the distance on the left is Medium. Figure 4b shows the Plausibility_of_Left is high when the distance on the left is around 10 meters. In this case, when the distance at the center is about the same as that on the left, we choose center as the desired object. The Plausibility_of_Right is similar to the Plausibility_of_Left. The three outputs of the FIU are compared to identify the point with highest plausibility. The distance at this point is the focus distance. By adjusting the membership functions of the distance labels, we can achieve different response surfaces for different purposes. COMMENTS Remember that this example is provided only for easy-to-use compact cameras targeted for the mass market. For professional photographers it may be inappropriate to provide strictly automatic camera focusing using the three distance measures method. However, if suitable manual overrides were available, it would still be useful as an option in some situations (e.g. when speed is important). Besides automatic focusing(AF), fuzzy logic can be used in automatic exposure(AE) and automatic zooming(AZ). For AE and and AZ, the input/output variables and rules of the FIU will be different from those shown above for AF, but the design process is very similar. (Weijing Zhang, Applications Engineer, Aptronix Inc.) For Further Information Please Contact: Aptronix Incorporated 2150 North First Street #300 San Jose, CA 95131 Tel (408) 428-1888 Fax (408) 428-1884 FuzzyNet (408) 428-1883 data 8/N/1 Aptronix Company Overview Headquartered in San Jose, California, Aptronix develops and markets fuzzy logic-based software, systems and development tools for a complete range of commercial applications. The company was founded in 1989 and has been responsible for a number of important innovations in fuzzy technology. Aptronix's product Fide (Fuzzy Inference Development Environment) -- is a complete environment for the development of fuzzy logic-based systems. Fide provides system engineers with the most effective fuzzy tools in the industry and runs in MS-Windows(TM) on 386/486 hardware. The price for Fide is $1495 and can be ordered from any authorized Motorola distributor. For a list of authorized distributors or more information, please call Aptronix. The software package comes with complete documentation on how to develop fuzzy logic based applications, free telephone support for 90 days and access to the Aptronix FuzzyNet information exchange. Automatic Focusing System FIDE Application Note 002-150892 Aptronix Inc., 1992