Patent Publication Number: US-9413927-B2

Title: Method for processing wide angle images with barrel distortion and a surveillance system

Description:
BACKGROUND 
     The object of the invention is a method for processing wide angle images with barrel distortion, in particular in order to obtain a plurality of images of a different angular resolutions to be used in visual surveillance systems. 
     Visual surveillance systems are used to observe an area. In particular, real-time observation systems can be used by a security guard to monitor the behaviour of people in a given area, such as a sports stadium. Such systems require cameras with high zoom capabilities and high resolution, in order to efficiently track behaviour of selected individuals of interest. However, when the observed person moves quickly across the area of sight, it is relatively hard to track the person&#39;s path of movement, which may easily go outside the viewing range. The cameras must therefore provide quick zooming capabilities in order to quickly change the viewing angular resolution. Typical narrow-angle cameras provide adequate viewing resolution, but they need sophisticated electronic and mechanical systems to provide adequate zooming and movement capabilities. 
     There are known wide-angle cameras, such as cameras with a fisheye lens, which produce a wide panoramic image. They can be used to observe an area larger than for narrow-angle lens, at the cost of barrel-type distortion. There are known algorithms to convert the distorted image produced by a fisheye lens to a reconstructed rectangular image, at the cost of decrease of resolution close to the image boundary. 
     In order to obtain a high-quality image of a large area for a surveillance system, a camera with a fisheye lens and large-resolution image sensor could be used. However, high-resolution images need high processing power. Therefore, the currently available typical high-resolution surveillance systems provide high quality images, but at a low frame rate, typically not exceeding a few frames per second. Increase of the frame rate requires substantial processing power, which significantly increases the cost of the system. 
     It would be therefore desirable to provide a surveillance system enabling wide observation angle, quick zooming capabilities and low processing power requirements in order to provide image at a high frame rate. 
     There are known various algorithms for processing barrel-distorted images. 
     An article “A Real-time FPGA Implementation of a Barrel Distortion Correction Algorithm with Bilinear Interpolation” (K. T. Gribbon et al, Proceedings of Image and Vision Computing New Zealand, 2003) discloses FPGA implementation of a barrel distortion correction algorithm with a focus on reducing hardware complexity. In order to perform real-time correction in hardware the undistorted output pixels must be produced in raster order. To do this the implementation uses the current scan position in the undistorted image to calculate which pixel in the distorted image to display. The magnification factor needed in this calculation is stored in a special look-up table that reduces the complexity of the hardware design, without significant loss of precision. The application of bilinear interpolation to improve the quality of the reconstructed image is also discussed and a real-time approach is presented. 
     The following articles present further methods for processing barrel-distorted images:
         “Nonparametric correction of distortion” (Stevenson D. E. et al, Technical report TR 95-07, University of Iowa, Computer Science),   “Non-metric calibration of wide-angle lenses and polycameras” (Swaminathan R. et al, IEEE Computer Society Conference CVPR 99, Vol. 2, pp. 413-419, 1999)   “A versatile camera calibration technique for high-accuracy 3D machine Visio metrology using off-the-shelf TV cameras and lenses.” (Tsai R. Y, IEEE Journal of Robotics and Automation, Vol. RA-3, No. 4, pp. 323-344, August 1987)   “Robot Aerobics: Four Easy Steps to a More Flexible Calibration” (Stevenson D. E. et al, Intern. Conf. on Computer Vision, pp. 34-39, 1995)   “Simultaneous linear estimation of multiple view geometry and lens distortion”, (Fitzgibbon, A. W., CVPR2001).       

     It is also known to improve distortion in order to improve image quality in postproduction to represent an image on small-diameter screens. Methods of this type have been disclosed in “Applying and removing lens distortion in post production” (G. Vass et al, Camera (2003), Pages: 9-16) and “Applying image quality in cell phone cameras: lens distortion” (D. Baxter, Proceedings of SPIE (2009)). 
     Barrel distortion curves for fisheye lens are discussed in “Fisheye lens designs and their relative performance” (J. “Jay” Kumlera at al, Proc. SPIE, vol. 4093, pp. 360-369, 2000) and “Accuracy of fish-eye lens models” (C. Hughes at al, Applied Optics, Vol. 49, Issue 17, pp. 3338-3347 (2010)). 
     SUMMARY 
     The aim of the invention is to provide a method for processing wide angle images with barrel distortion in order to obtain a plurality of images of a different angular resolutions to be used in visual surveillance systems, the method being characterized in optimized computational requirements. 
     The object of the invention is a computer-implemented method for processing a distorted wide angle image with barrel distortion to obtain a plurality of reconstructed images, which comprises the steps of: determining, on the basis of a mapping function representing the distortion of the distorted image, a reconstruction function representing the position of points (r 0 ) of reconstructed image as a function of position of points (r 1 ) on the distorted image, determining a plurality of viewing angles (α 1 , α 2 , α 3 ), for each viewing angle (α 1 , α 2 , α 3 ), generating a reconstructed image comprising points of the distorted image comprised within the particular viewing angle (α 1 , α 2 , α 3 ) and reconstructed using the reconstruction function, such that each reconstructed image has its central point corresponding to the same point of the distorted image. 
     Preferably, each reconstructed image has dimensions which are not greater than the dimensions of the distorted image. 
     Preferably, each reconstructed image has the same dimensions. 
     Preferably, the method further comprises the step of generating a display screen comprising at least two reconstructed images corresponding to different viewing angles (α 1 , α 2 , α 3 ). 
     Preferably, the method further comprises the step of determining at least one viewing angle (α) in response to an input received via a user interface. 
     Preferably, the method further comprises the step of identifying a graphical object on one of the images and highlighting the points corresponding to the identified object on at least two of the reconstructed images. 
     Preferably, at least two reconstructed images are generated using the reconstruction function which has a different scale coefficient (f a , f b ) for each reconstructed image. 
     Preferably, the method further comprises the step of identifying coordinates of object on a reconstructed image as a function of the coordinates of that object on another reconstructed image and a quotient of scale coefficients (f a , f b ) for that reconstructed images. 
     The object of the invention is also a computer program comprising program code means for performing all the steps of the method according to the invention when said program is run on a computer. 
     The invention also relates to a surveillance system comprising a camera with wide angle lens coupled with an image sensor providing a distorted wide angle image with barrel distortion, the system further comprising: an image processor configured to: determine, on the basis of a mapping function representing the distortion of the distorted image, a reconstruction function representing the position of points (r 0 ) of reconstructed image as a function of position of points (r 1 ) on the distorted image, determine a plurality of viewing angles (α 1 , α 2 , α 3 ), for each viewing angle (α 1 , α 2 , α 3 ), generate a reconstructed image comprising points of the distorted image comprised within the particular viewing angle (α 1 , α 2 , α 3 ) and reconstructed using the reconstruction function, such that each reconstructed image has its central point corresponding to the same point of the distorted image. 
     Preferably, each reconstructed image has dimensions which are not greater than the dimensions of the distorted image. 
     Preferably, each reconstructed image has the same dimensions. 
     Preferably, the system further comprises a display interface configured to generate a display screen comprising at least two reconstructed images corresponding to different viewing angles (α 1 , α 2 , α 3 ). 
     Preferably, the image processor is further configured to determine at least one viewing angle (α) in response to an input received via a user interface. 
     Preferably, the image processor is further configured to identify a graphical object on one of the images and highlighting the points corresponding to the identified object on at least two of the reconstructed images. 
    
    
     
       BRIEF DESCRIPTION OF DRAWINGS 
       The present invention is shown by means of exemplary embodiment on a drawing, in which: 
         FIG. 1  shows an exemplary structure of a surveillance system; 
         FIG. 2  shows plots of functions transforming the viewing area; 
         FIG. 3  shows exemplary calculation of position of points using a reconstruction function; 
         FIGS. 4A and 4B  show exemplary calculation of points from one line of distorted image to a reconstructed image for a full viewing angle and half viewing angle, respectively; 
         FIGS. 5A-5D  show exemplary images of different viewing angles generated from a distorted image ( 5 A), wherein  FIG. 5B  shows a reconstructed image for a full viewing angle (wide-angle image),  FIG. 5C  shows a reconstructed image for a narrow viewing angle, and  FIG. 5D  shows a reconstructed image for an intermediate viewing angle, 
         FIG. 6  shows dependencies between the distorted image and reconstructed image, 
         FIG. 7  shows schematically the transition between the distorted image and the reconstructed image, 
         FIG. 8  shows a situation of object tracking in a surveillance system by using multiple images of different viewing angles. 
     
    
    
     DETAILED DESCRIPTION 
     The present invention enables to obtain, from a single distorted image obtained from a wide angle lens camera, a plurality of reconstructed images having selectable angular resolution. It provides the effect of immediate, smooth change of focal length for fixed focal length lens, which is particularly useful for the purpose of tracking an object captured by the surveillance system camera. 
       FIG. 1  shows an exemplary structure of a surveillance system according to the present invention. The system comprises a camera  10  with a wide-angle lens  11  such as fisheye lens, for receiving an original image, coupled with a digital sensor  12  for capturing the distorted image generated by the lens  11 . The distorted image is sent from the sensor  12  to a processor  20 . The operation of the processor  20  is controlled by a viewing angle controller  30 , which specifies a plurality of viewing angles. For each specified viewing angle, the processor  20  generates a reconstructed image that corresponds to that viewing angle and sends it to a display interface  40  to be presented to the user of the surveillance system. 
     The present invention is applicable to wide-viewing angle lens. As an exemplary embodiment, fisheye lens with barrel-type distortion will be presented. Persons skilled in the optics will recognize that the principles underlying the invention can be applied to other types of equivalent lens. 
     In a fisheye lens with barrel distortion, the image area is calculated using a particular mapping function, such as: 
     
       
         
           
             
               
                 equidistant 
               
               
                 
                   
                     r 
                     = 
                     
                       f 
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       α 
                     
                   
                   , 
                 
               
             
             
               
                 stereographic 
               
               
                 
                   
                     r 
                     = 
                     
                       2 
                       ⁢ 
                       f 
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       
                         tan 
                         ⁡ 
                         
                           ( 
                           
                             α 
                             2 
                           
                           ) 
                         
                       
                     
                   
                   , 
                 
               
             
             
               
                 orthographic 
               
               
                 
                   
                     r 
                     = 
                     
                       f 
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       
                         sin 
                         ⁡ 
                         
                           ( 
                           α 
                           ) 
                         
                       
                     
                   
                   , 
                 
               
             
             
               
                 
                   equisolid 
                   ⁢ 
                   
                       
                   
                   ⁢ 
                   angle 
                 
               
               
                 
                   r 
                   = 
                   
                     2 
                     ⁢ 
                     f 
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     
                       sin 
                       ⁡ 
                       
                         ( 
                         
                           α 
                           2 
                         
                         ) 
                       
                     
                   
                 
               
             
           
         
       
     
     The present invention is particularly effective with orthographic and equisolid angle mapping, as they highly compensate the edges of the frame, and therefore provide better resolution in the centre of the frame. 
     A lens which does not distort the space (all lines in the image are straight) transforms the points viewed at angle α to a position of points on the sensor according to a formula:
 
 r   0   =f   0  tan( k   0 α)  (1)
 
wherein r 0  represents the distance between the point and the centre of the sensor, and parameters k 0  and f 0  are characteristic for the particular lens and represent the scale of the transformation and distance between the focus point and the sensor, respectively. The distance f 0  influences the size of the distorted image generated in the sensor.
 
     However, for a lens with significant compression of frame edges, which is applicable for the present invention, the distortion is represented by a formula corresponding to a mapping function. For example, for orthographic mapping function, the following formula can be applicable:
 
 r   1   =f   1  sin( k   1 α)  (2)
 
wherein r 1  is the radius of a circle positioned in the centre of the sensor, which determines the fragment of the distorted image of  FIG. 5A  and  FIG. 6  (dependencies between the distorted image and reconstructed image). The plots of the functions are shown in  FIG. 2 .
 
     In the present invention, in order to obtain a reconstructed image, the distorted image is transformed using a function which is a combination of functions (1) and (2) assuming that we are looking for position of points for a specific angle α. 
     Therefore, from equation (2) it can be inferred that the angle α is given by: 
     
       
         
           
             ∝ 
             
               = 
               
                 
                   1 
                   
                     k 
                     1 
                   
                 
                 ⁢ 
                 
                   
                     sin 
                     
                       - 
                       1 
                     
                   
                   ( 
                   
                     
                       r 
                       1 
                     
                     
                       f 
                       1 
                     
                   
                   ) 
                 
               
             
           
         
       
     
     Then by substituting α to equation (1) one obtains a reconstruction function: 
     
       
         
           
             
               
                 
                   
                     r 
                     o 
                   
                   = 
                   
                     
                       f 
                       o 
                     
                     ⁢ 
                     
                       tan 
                       ( 
                       
                         
                           
                             k 
                             o 
                           
                           
                             k 
                             1 
                           
                         
                         ⁢ 
                         
                           
                             sin 
                             
                               - 
                               1 
                             
                           
                           ( 
                           
                             
                               r 
                               1 
                             
                             
                               f 
                               1 
                             
                           
                           ) 
                         
                       
                       ) 
                     
                   
                 
               
               
                 
                   ( 
                   4 
                   ) 
                 
               
             
           
         
       
     
     The reconstruction function (4), plotted on  FIG. 4 , is used to calculate the position of a point (r 0 ) in the reconstructed image based on position of that point (r 1 ) in the distorted image. It will be evident for a skilled person that the reconstruction function (4) depends on the mapping function used. 
     The reconstructed image is generated, as shown schematically on  FIG. 7 , by generating rectangular intermediate images representing quarters I, II, III, IV of the distorted image. Each intermediate image is generated using formula:
 
 P   reconstructed ( x,y )= P   distorted ( r ,β)
 
First, initial values of pixels x′ and y′ are calculated using formulas:
 
               x   ′     =       f   0     ⁢     tan   (         k   0       k   1       ⁢       sin     -   1       (     r     f   1       )       )     ⁢     cos   ⁡     (   β   )                       y   ′     =       f   0     ⁢     tan   (         k   0       k   1       ⁢       sin     -   1       (     r     f   1       )       )     ⁢     sin   ⁡     (   β   )               
Next, the initial values of P′ reconstructed (x′, y′) have their signs corrected depending on the quarter and the values are scaled depending on the desired size of the reconstructed image P reconstructed (x, y). For example, in case no scaling is used (the size of the reconstructed image is to be equal to the diameter of the distorted image), the following formulas are used:
 
 x=x′+x′   max  
 
 y=y′   max −( y′+y′   max )
 
wherein x′ max  and y′ max  are the maximum values corresponding to the maximum distance r (in case of a perfectly round image).
 
     For computational efficiency, it is most preferable when all reconstructed images have a size smaller than the distorted image. Moreover, it is preferable that the size of all reconstructed images is equal. The sizing of the images is achieved by adequate interpolation or extrapolation of information from the disrupted image. 
     The present invention improves the efficiency of the surveillance systems by providing a plurality of reconstructed images from a distorted image obtained from single sensor, the reconstructed images having different angular resolutions, in a method which does not require substantial processing power requirements. 
     Due to small computational resources necessary to generate the reconstructed images, a plurality of reconstructed images can be displayed on a single screen and updated with a high frequency, e.g. 25 frames/second. The user interface screen may have a form e.g. such as shown on the page comprising  FIGS. 5A-5D , i.e. showing three reconstructed images on the same screen. Due to the fact that a plurality of images are displayed on screen, if the object tracked by the camera leaves the area of the image with the narrowest viewing angle (i.e. providing the largest zoom), the object can be instantaneously spotted on the other images providing wider viewing angle. As the zooming functionality is provided by computation and not by mechanics of the camera, the camera only needs a mechanical system to control its position, which makes it less costly to manufacture. 
       FIG. 8  shows a situation of object tracking in a surveillance system by using multiple images of different viewing angles. In most applications of surveillance systems the main area of interest is the centre of the image, where the object being tracked is located (due to action of system operator or automatic object-following systems). However, when the object moves quickly, it may easily escape the current view in a narrow-angle camera. In a wide-angle camera, however, the view covers an area of 180 degrees or more, and therefore in practical situations the object is always within the sight of the widest viewing angle. Even if the object moves close to the boundary of the widest image, it is still visible on the image (although at a lower resolution at the boundary) and due to that fact it is easier to track the object to point the centre of the sight to that object. Moreover, by knowing the coordinates of the object at a particular image, i.e. its distance from the centre of the image, it is easy to calculate the displacement of the camera lens necessary to centre the image at the object. In order to facilitate object tracking, additional algorithms could be employed to identify a graphical object on one of the images and highlight the points corresponding to the identified object on at least two of the reconstructed images. 
     The following example illustrates how to determine the position of a specific object on different images. 
     Assume image A (e.g. the image with 15 degrees viewing angle on  FIG. 8 ) is generated using the following reconstruction formula: 
     
       
         
           
             
               r 
               a 
             
             = 
             
               
                 f 
                 a 
               
               ⁢ 
               
                 tan 
                 ⁡ 
                 
                   ( 
                   
                     
                       
                         k 
                         a 
                       
                       
                         k 
                         1 
                       
                     
                     ⁢ 
                     
                       
                         sin 
                         
                           - 
                           1 
                         
                       
                       ( 
                       
                         
                           r 
                           i 
                         
                         
                           f 
                           1 
                         
                       
                       ) 
                     
                   
                   ) 
                 
               
             
           
         
       
     
     Assume image B (e.g. the image with 90 degrees viewing angle on  FIG. 8 ) is generated using the following reconstruction formula: 
               r   b     =       f   b     ⁢     tan   (         k   b       k   1       ⁢       sin     -   1       (       r   i       f   1       )       )             
The coefficients f a  and f b  are used to scale the size of the image and the coefficients k a  and k b  must be the same to reconstruct images of different viewing angles according to the same curve. Let&#39;s assume determination of new coefficients in relation to the image centre (point 0,0 in the centre of the image).
 
     The different coefficients (x, y) for images A and B are to represent the same point, i.e. the point which lies on the same circle having a radius r i  in the distorted image. Therefore, the same point on a circle having radius r i  is present on images A and B on circles having a radius, respectively, r a  and r b . Therefore, we are looking for a scale coefficient which will allow transformation of r a  to r b , in order to quickly recalculate coefficients of one image to another image. 
     The following two cases shall be assessed:
         a) images having a wider viewing angle have also a higher size, and images having a narrower viewing angle are comprised within the images of the wider viewing angle. In such case, f a =f b  and therefore:       

     The coefficient of coordinates scaling s=1 and: 
     
       
         
           
             { 
             
               
                 
                   
                     
                       x 
                       b 
                     
                     = 
                     
                       x 
                       a 
                     
                   
                 
               
               
                 
                   
                     
                       y 
                       b 
                     
                     = 
                     
                       y 
                       a 
                     
                   
                 
               
             
               
           
         
       
         
         
           
             b) images having different viewing angles have the same size. In such case, f a &lt; &gt;f b  and therefore: 
           
         
       
    
     The scale coefficient: 
     
       
         
           
             s 
             = 
             
               
                 
                   r 
                   b 
                 
                 
                   r 
                   a 
                 
               
               = 
               
                 
                   f 
                   b 
                 
                 
                   f 
                   a 
                 
               
             
           
         
       
       
         
           
             { 
             
               
                 
                   
                     
                       x 
                       b 
                     
                     = 
                     
                       
                         s 
                         * 
                         
                           x 
                           a 
                         
                       
                       = 
                       
                         
                           
                             f 
                             b 
                           
                           
                             f 
                             a 
                           
                         
                         * 
                         
                           x 
                           a 
                         
                       
                     
                   
                 
               
               
                 
                   
                     
                       y 
                       b 
                     
                     = 
                     
                       
                         s 
                         * 
                         
                           y 
                           a 
                         
                       
                       = 
                       
                         
                           
                             f 
                             b 
                           
                           
                             f 
                             a 
                           
                         
                         * 
                         
                           y 
                           a 
                         
                       
                     
                   
                 
               
             
           
         
       
     
     In general, for images A and B having arbitrary sizes which are transformed using the same characteristics, the transformation of coefficients is represented by: 
     
       
         
           
               
             
               { 
               
                 
                   
                     
                       
                         x 
                         b 
                       
                       = 
                       
                         
                           
                             f 
                             b 
                           
                           
                             f 
                             a 
                           
                         
                         * 
                         
                           x 
                           a 
                         
                       
                     
                   
                 
                 
                   
                     
                       
                         y 
                         b 
                       
                       = 
                       
                         
                           
                             f 
                             b 
                           
                           
                             f 
                             a 
                           
                         
                         * 
                         
                           y 
                           a 
                         
                       
                     
                   
                 
               
             
           
         
       
     
     Taking the above into account, it is evident that the present invention enables very quick and easy calculation of coefficients of an object visible on one reconstructed image to coefficients of that object on another reconstructed image.