Abstract:
In processing topographical information necessary for the traveling of a robot or the like furnished with an automatic traveling function; topography is predicted from the topographical information previously given, so as to prepare a predictive image, a difference image between the predictive image and an actual image caught by a television camera installed on the robot or the like is obtained, and the obtained result if used for correcting the topographical information previously given.

Description:
This application is a continuation of U.S. application Ser. No. 536,874, filed Sept. 29, 1983, now abandoned. 
    
    
     BACKGROUND OF THE INVENTION 
     The present invention relates to an image processing apparatus and a processing method which can efficiently correct and collect topographical information. More particularly, it relates to an image processing apparatus and processing method which are well-suited to provide topographical information to vehicles or robots having an automatic traveling function. 
     A map which indicates topographical information, namely, the arrangement of roads, buildings, obstacles, etc. is indispensible to a traveling type robot. In a conventional traveling type robot, input images in the form of topographical information have been handled independently for respective frames of data. In, for example, a system having a plurality of photographing devices, the outputs of the respective photographing devices have been stored in independent memory devices, and images inputted in time series have also been stored in respectively separate memory devices. 
     With such a storage method, however, the information is overlappingly stored, and hence, a large storage capacity is required. This has resulted in the disadvantage that, in determining the action to be taken by the traveling type robot, a considerable effort is required for extracting essential information. 
     SUMMARY OF THE INVENTION 
     The present invention has for its object to provide an image processing apparatus and processing method which can prepare a correct map by revising a previously given map on the basis of topographical information delivered from an image input device in time series with the traveling of an automatic traveling object, such as a robot. 
     In one aspect of performance of the present invention, an image processing apparatus comprises storage means for storing data representing a previously given map, calculation means for preparing a predictive topographical image on the basis of the data, means for inputting actual image information successively during the traveling of an automatic traveling object, means for comparing the predictive image with the actual image, and correction means for updating the map data within the storage means on the basis of the comparison result. 
     In another aspect of performance of the present invention, an image processing method comprises a first step of reading out map data from storage means, a second step of predicting an output of an image input means and calculating a predictive image on the basis of the map data, a third step of comparing an input image delivered from the image input means and the predictive image so as to obtain a difference image, and a fourth step of updating the map data of the storage means on the basis of the difference image. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG. 1 is a block diagram showing an example of a traveling robot control system which employs an image processing apparatus according to the present invention; 
     FIG. 2 is a diagram showing an embodiment of the image processing apparatus of the present invention; 
     FIG. 3A is a diagram of the image memory; 
     FIG. 3B is a flow diagram of processing of data from the image memory to produce the predictive image; 
     FIGS. 4 to 6 are diagrams for explaining another embodiment of the arithmetic unit in FIG. 2; and 
     FIGS. 7 to 10 are diagrams for explaining an embodiment of a correction unit in FIG. 2. 
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     FIG. 1 is a block diagram showing an example of a traveling robot system to which the present invention is applied. Referring to the figure, numeral 1 designates a traveling robot which is equipped with a crawler 10 and a manipulator M driven by respective motors. The detailed construction of such a robot is disclosed in U.S. patent application Ser. No. 476,271 by way of example. 
     The control circuit 2 of the robot 1 is connected to the storage device 6 of a control station 5 through transmitter-receivers 3, 4. The storage device 6 includes a general building file 61 and an individual building file 62. Upon receiving a radio signal from the control station 5, the control circuit 2 controls the operation of the robot 1. The robot 1 includes an image input device 7, such as television camera, the output of which is applied to an image processor 8. Information on the actual traveling direction and velocity of the robot 1 are sent from an encoder 11 and a gyroscope 12 to the control circuit 2, and are used for the control of the robot 1 and for image correction, as will be described in more detail hereinafter. 
     FIG. 2 is a block diagram showing an embodiment of the image processor 8 in FIG. 1. Referring to FIG. 2, the image processor 8 includes a main memory 82 for storing map data, an arithmetic unit 83 which calculates a predictive image from the map data received from the main memory 82, an auxiliary memory 84 which stores the difference between an input image received from the image input device 7 and the predictive image calculated by the arithmetic unit 83, and a correction unit 85 which updates the content of the main memory 82 on the basis of the difference signal stored in the auxiliary memory 84. The image input device 7 is placed on the traveling robot, and is manipulated by another manipulation means. 
     A map is stored in the main memory 82. In accordance with the present invention, the expression &#34;map&#34; signifies data providing information as to the positions, sizes, shapes etc. of roads, buildings, obstacles, etc. existing around the robot. More specifically, a member which employs storage elements arrayed in, e.g., two dimensions, and in which the data of the items, sizes, shapes etc. of roads, buildings, obstacles etc. are written in the arrayed elements shall be called the &#34;map&#34;. In other words, the content of the main memory 82 expresses the surroundings of the robot in the form of electric signals. For example, as seen in FIG. 3A, the image memory may be implemented by an array of storage cells Im (i, j), where i and j represent the addresses along respective axes. Such an array may comprise 255 storage cells in each of the i and j directions so that the boundaries are: 
     S1[i=0, 0≦j≦255] 
     S2[i=255, 0≦j≦255] 
     S3[0≦i≦255, j=0] 
     S4[0≦i≦255, j=0] 
     At each array element specified in terms of i and j, for example the height of the object located at the spatial point is stored. It should be noted that the capacity of the image memory 82 is dependent only on the complexity and the number of objects to be identified for robot operation and is independent of the positioning accuracy and the number of the points at which the robot observes the environment for positioning. 
     The arithmetic unit 83 calculates the projection of the topography (the configuration of the surrounding objects on the ground) expressed by the map, on the basis of the map stored in the main memory 82, the position of the robot, the photographing direction of the image input device 7, and the focal length of the lens used. This calculation is done for the following purpose. 
     The content of the main memory 82 signifies topography created on the basis of information obtained through the image input device 7 and used to update topography data previously stored and based on theoretical knowledge of the topography, and so, is not definite topography obtained by surveying the actual surroundings. Accordingly, the topography indicated by main memory 82 does not always agree with the actual one. In this sense, the map of the present invention expresses an imaginary landscape. Here, a subject for approaching the propriety of the map will be considered. At this time, when it is remembered that the actual topography cannot be directly measured and that only the image obtained through the image input device 7 is utilizable, a processing is performed on the basis of the level of the input image to correct the stored topography. More specifically, an image is obtained by correlating the topography expressed by the map of the main memory 82 to that observed through the image input device 7, whereby the propriety of the map is determined. As stated above, the arithmetic unit 83 delivers as its output the image which is forecast to arise from the imaginary landscape. In this sense, the output of the arithmetic unit 83 shall be called the &#34;predictive image&#34;. 
     A process for correcting the map by the use of the predictive image will be explained below with reference to FIGS. 1 and 2. 
     Step 1; The data stored in the general building file 61 is transmitted to the main memory 82. 
     Step 2; The traveling movement of the robot 1 is started. This traveling movement of the robot 1 is controlled by the control circuit 2. 
     Step 
     3; The outputs of the encoder 11 and gyroscope 12 are integrated, and then applied to the arithmetic unit 83. 
     Step 
     4; The predictive image is prepared by the arithmetic unit 83 on the basis of the data read out of the main memory 82 and the data inputted at Step 3. 
     Step 
     5; The photographed (actual) image produced by the image input device 7 is applied to the auxiliary memory 84. 
     Step 
     6; The reverse image of the output (predictive image) of the arithmetic unit 83 is applied (added) to the auxiliary member 84. 
     Step 
     7; The difference image representing the difference between the photographed image and the predictive image is applied to the correction unit 85. 
     Step 
     8; The output of the correction unit 85 is added to the content of the main memory 82, thereby to correct the data stored in the main memory 82. 
     Step 9; The data of the main memory 82 is transmitted to the individual building file 62. 
     Step 10; Whether or not the robot is present at a stop position is discriminated. Unless it is present at a stop position, the process returns to Step 1. If it is present at a stop position, the subsequent operation is stopped. 
     In obtaining the predictive image at Step 4, a view along an optical path which extends from a topographical item such as a building to the image input device 7 may be calculated. The series of processing for calculating the predictive image can be performed by digital operations. To this end, the simulation of the optical path which extends from the road, building, obstacle or the like stored in the main memory 82, to the image input device 7 may be done with a computer. 
     An example of the simulation is illustrated in FIGS. 4 to 6. First, it is assumed that a map of the contents indicated by numerals 820 and 821 in FIGS. 4 and 5 by way of example are stored in the main memory 82. In the figures, the symbols 0 1 , 0 2  and 0 3  shall indicate objects such as buildings and obstacles. It is also assumed that the image input device 7 is positioned at a point corresponding to point p on the map and is delivering an image of a landscape in a range corresponding to θ 0  -θ 1 . A predictive image 830 in FIG. 6 to be obtained on the basis of the map 820, 821 is prepared in accordance with the following algorithm, which is illustrated by the flow diagram of FIG. 3B: 
     [Algorithm A] 
     The range θ 0  -θ 1  is divided by N K  (eight in the example of FIG. 6) to determine dθ and K is set to zero. (Step A1) Thereafter, in Step 2A, i is set to ip, j is set to zero; after which θ is set to θ 0  +K*dθ, resulting in θ=θ 0 . (Step 3A) 
     An object is retrieved successively in the direction θ from the point p. In the example of FIG. 5, the object 0 1  is found at a distance aO from the point p. This is performed by decrementing i (Step A5) and calculating j based on the angle θ(Step A6). This is followed by calculating the distance γ along the angle θ(Step A7). This is repeated until the object 0 1  is detected by reading out a height value from memory 82. 
     The height l a  of the object 0 1  is read from the main memory 82. (Step A8) The magnification α(γ aO ) of the lens in the image input device 7 is evaluated as a function of the distance γ aO , and an image height l a  &#39; is calculated as follows: 
     
         l.sub.a &#39;=α(γ.sub.aO)·l.sub.a 
    
     A device of the height l a  &#39; is depicted at the position θ 0  on the predictive image plane 830. (Step A9) Then the height angel L is updated (Step A10) based on the image height l a  and the distance γ. 
     The retrieval continues from γ aO  in the direction θ. At this time, objects of height less than (γ/γ aO )l a  for various γ&#39;s are neglected. (Steps A9 and A10 are skipped) In the example of FIG. 4, the object 0 2  is found at a point γ=γ bO . 
     The height l b  of the object 0 2  is read from the main memory 82. (Step A8) The magnification α(γ bO ) of the lens is evaluated as a function of the distance γ bO , an image height l b  &#39; is calculated as follows: ##EQU1## 
     A device of the height l b  &#39; is added over the device corresponding to the object 0 1 , at the position θ 0  on the predictive image plane 830. (Step A9) 
     Until the distance reaches the boundary of the map, operations similar to (Step A3)-(Step A10) are repeated. When the boundary of the map is reached, θ is altered to the next division by incrementing K (Step A11), and the process is returned to (Step A2). Further, when θ=θ 1  holds, the operations are ended. 
     While, in the aforementioned [Algorithm A], the retrieval is performed successively in the direction θ, such processing may well be done in parallel. 
     Next, a process for correcting the map with the predictive image will be described in detail with reference to FIGS. 7 to 10. First, it will be assumed that, at an initial time t O , a map as indicated by symbol 820A in FIG. 7 is stored in the main memory 82. Here it is supposed that the existence of a building a and a T-shaped road b are known surroundings at the time t O  at which the motion of the robot starts. Of course, in a case where no knowledge of the surroundings is available at the time t O , the stored content 820A is blank, that is, a road is assumed to extend over the whole surface. Even in this case, the process to be stated below applies quite similarly. In the map 820A shown in FIG. 7, a circle ○  (P O ) denotes the position of the robot, and an arrow indicates the traveling direction thereof. 
     Here , it is assumed that the robot is traveling so as to be positioned at the fore end P 1  of the arrow at a time t 1  (t 0  &lt;t 1 ) At this time, the arithmetic unit 83 carries out the computation as explained in conjunction with FIGS. 4 to 6 and delivers a predictive image as indicated by symbol 830A in FIG. 8. It is now assumed that an input image as shown in 840A in FIG. 9 is received from the image input device 7 at the time t 1 . Herein, the following differences are detected between the predictive image 830A of FIG. 8 and the input image 840A of FIG. 9: 
     (i) Topographical items e 1  and e 2  appear in the input image 840A. 
     (ii) In the images the positions of the roads are different. 
     (iii) On the basis of the detected results, the correction unit 85 updates the stored content of the main memory 82 into a map 820B shown in FIG. 10. Here, a building a&#39; is added in correspondence with e 1 , and the position of the robot is corrected from P 1  into P 1  &#39;. Here, it is decided that the item e 2  is a figure depicted on the road and is omitted on the map. The decision is made on the basis of a position where the difference image e 2  exists, or the position of an object which is thought to produce the difference image e 2 . 
     Here, the new object a&#39; is added on the map. This is performed in conformity with the following algorithm: 
     [Algorithm 1] 
     (Step 1-1) 
     Among objects which might produce difference images, the largest one is placed on the map. 
     (Step 1-2) 
     In the object set anew, a part which is contradictory to a known road, building or obstacle is deleted. 
     (Step 1-3) 
     An input image is gained anew, and the algorithm is returned to Step 1-1. 
     [Algorithm 2] 
     (Step 2-1) 
     Among objects which might produce difference images, the smallest one is added on the map. 
     (Step 2-2) 
     An input image is gained anew, and the algorithm is returned to Step 2-1. 
     In the aforementioned algorithm 1, the unknown object contracts with the addition of information based on the input image. In contrast, in the algorithm 2, the unknown object expands with increase in information. In either case, it is to be understood that, as more information is stored with the traveling movement of the robot, or the like, the map converges to the true topography. 
     As described above, the function of the correction unit 85 for use in the present invention is realized by a computer. In this case, however, the operator&#39;s judgment may well be utilized. It is of course possible that the operator performs all the correcting operations. Especially in the latter case, the predictive image and the input image are arrayed and presented in front of the operator, whereby the computation of the difference image can be omitted. 
     As set forth above, according to the present invention, the efficient storage of image information becomes possible. As a result, the control of a machine which operates using the image information as inputs can be facilitated.