Arithmetic unit for image transformation

Abstract: An arithmetic unit for image transformation is disclosed for transforming a fisheye image obtained by using a fisheye lens (2) into a plane image for display, comprising: a first coordinate calculating unit (35) for obtaining first projection coordinates derived by projecting coordinates on the plane image onto a fisheye image face as an imaginary object face; and a second coordinate calculating unit (36) for obtaining second projection coordinates derived by projecting the first projection coordinates obtained by the first coordinate calculating unit (35) onto the fisheye image face.

Description: BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to an arithmetic unit for image transformation and a monitoring system. More particularly, the invention relates to an arithmetic unit for image transformation for transforming an image obtained by using a fisheye lens into a plane image for display and a monitoring system having the arithmetic unit. 2. Description of the Related Art An arithmetic unit for image transformation is used in, for example, a monitoring system using a monitoring camera. The operator monitors the state in a space (for example, shop) in which the monitoring camera is installed, by watching images from the monitoring camera displayed on a monitor provided for the monitoring system. When a lens attached to the camera is an ordinary standard lens, the space can be monitored only within the range of the angle of view of the standard lens. In order to monitor the entire space in which the camera is installed, it is necessary to provide a mechanism for properly changing the orientation of the camera. In case of providing such a mechanism, the cost increases and the camera has to be remote controlled. It consequently becomes hard for the operator to handle it. There is an idea such that a fisheye lens having the wide angle of view is attached to the camera and monitoring is performed by using the fisheye lens. An image produced by the fisheye lens is, however, distorted as compared with an image obtained by using the standard lens and is very hard for the operator to watch it. A technique for transforming an image produced by the fisheye lens into a plane image is disclosed as a camera orientation system in WO92/21208. The system transforms a circular image obtained by using the fisheye lens into an image produced by a normal image pickup lens (for example, standard lens) by an arithmetic process and a plane image seen from an arbitrary view point can be obtained. In this case, when a high speed arithmetic unit is used, plane image data can be obtained at real time rates only by software. In most of the cases, it takes long time for a communicating process, operation as a human interface, and the like in a terminal device connected to a network. It is therefore preferable to realize a part in which the same process is repeated in an image transforming process, by hardware. Since the projecting method (stereoscopic projection, equidistant projection, orthogonal projection, or the like) of projecting a fisheye lens image onto an image pickup device (such as CCD) provided for the camera is determined at the time of designing, by executing arithmetic computations according to mathematical expressions by hardware, the image can be transformed to a plane image. As disclosed in WO92/21208, however, when calculations upon transformation are expressed by mathematical equations and executed according to the mathematical equations by hardware, it is necessary to realize many calculations of not only addition, subtraction, multiplication, and division, but also square root, trigonometric function, and the like by the hardware. The unit consequently cannot help becoming expensive inevitably. Similar computation-intensive calculation must be also carried out in the approach disclosed in US-A-5 694 531, which describes a fisheye image transformation that operates through two steps: a first step for mapping an acquired fisheye image onto a sphere, and a second step for mapping this mapped spherical image onto a planar surface for display. Other known fisheye image transformation techniques make use of lookup tables for pre-storing transformation parameters, as disclosed e.g. in US-A-5 870 135 and EP-A-0 695 085. However, neither US-A-5 870 135 nor EP-A-0 695 085 mentions using an imaginary spherical surface as an intermediate projection between display image and fisheye image. The invention has been achieved in consideration of the actual condition of the conventional technique and it is an object of the invention to provide an arithmetic unit for image transformation capable of providing inexpensive hardware for transforming a fisheye image obtained by using a fisheye lens into a plane image for display. SUMMARY OF THE INVENTION In order to achieve the object, an arithmetic unit for image transformation according to the appended claims 1 and 2 is provided, said unit transforming a fisheye image obtained by using a fisheye lens into a plane image for display. A monitoring system according to the appended claim 3 is characterized by comprising the arithmetic unit for image transformation. According to the invention, the arithmetic unit can be constructed by combining simple arithmetic circuits and the cost of the hardware part in the arithmetic unit for image transformation can be reduced, so that an inexpensive monitoring system can be provided. BRIEF DESCRIPTION OF THE DRAWINGS Fig. 1 is a diagram showing setting of a coordinate system; Fig. 2 is a diagram for explaining a correction coefficient k 1 ; Fig. 3 is a diagram for explaining a procedure of transforming coordinates by hardware; and Fig. 4 is a block diagram of circuits mounted on a PCI bus substrate. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS A preferred embodiment of an arithmetic unit for image transformation according to the invention will be described in detail with reference to the drawings. <Positional relation of coordinate system> Referring to Fig. 1, the positional relation of coordinates to be transformed will be described. The coordinate system will be set as follows. As a space for showing the position of an object, an (X, Y, Z) coordinate space in which the position of a fisheye lens is the origin and the direction of the optical axis is the Z axis is set. The azimuth (ϕ) and the zenithal angle () are set as parameters indicating the position of the object seen from the origin. Since the position on an image pickup device (such as CCD), of an object whose image is obtained through the fisheye lens is determined at an angle seen through the fisheye lens, it is assumed that the object is positioned on the surface of a hemisphere of radius of 1. The hemispherical face is called an imaginary object face. A plane image to be obtained is shown by an (u, v) coordinate system in Fig. 1. It is assumed that the center (origin) of the (u, v) coordinate system is in the position apart from the origin of the (X, Y, Z) coordinate system by distance 1 and is in contact with the hemispherical face as the imaginary object face. The plane expressed by the (u, v) coordinate system is made to correspond to pixels of a display image on a monitor. The angle between the u axis of the coordinate system and the (X, Y) plane, that is, the angle between the u axis and an intersecting line of a plane which passes the origin of the (u, v) coordinate system and is parallel with the (X, Y) plane is set as (α). A plane image (fisheye image) obtained through the fisheye lens is expressed by a (p, q) coordinate system as shown in Fig. 1. It is assumed that the (p, q) coordinate system is parallel to the (X, Y) plane and has the origin on the Z axis. In a position on an image pickup face (for example, position of a pixel on a CCD image pickup device), the image circle diameter differs according to the size of the image pickup device and the focal distance of the fisheye lens. Consequently, it is assumed that a fisheye image is projected in a circle of radius 1 of an image of an object positioning at 90 degrees (Z = 0) from the front of the lens. At the time of actual use, magnification adjustment is performed. An image is transformed as follows. The projecting position on the image pickup face (p, q coordinates) of a point (u, v coordinates) on a plane image is obtained by arithmetic operation. By referring to luminance information at the point, data of the plane image to be obtained can be generated. Information of the view points (ϕ, , α) and the scale factor (zoom ratio) as the size of the plane image is information inputted by the operator through a keyboard, pointing device, or the like and is obtained and set in advance as data for calculation by a higher-order arithmetic processing unit. Necessary parameters are, as shown in Figs. 1 and 2, (X 0 , Y 0 , Z 0 ) indicative of the center (origin) of a plane image and change amounts ∂ux, ∂vx, ∂uy, ∂vy, ∂uz, ∂vz in the respective axes of the (X, Y, Z) coordinates when a point is moved in the respective directions on the (u, v) coordinate system by an amount of one pixel (corresponding to one pixel on the monitor screen). The parameters can be easily obtained from the angle information (ϕ, , α) of the view point and the magnification of the image. <Calculating procedure for image transformation> A calculating procedure for image transformation will now be described with reference to Fig. 3. The calculating procedure is performed by, broadly, two steps of first and second steps. Step 1 First, the coordinates of a point P' (first projection coordinates) on the hemispherical face as an imaginary object face, which is a projection of a point P on a plane image (the u, v coordinates) are obtained. When it is assumed that the (X, Y, Z) coordinates of the point P are (X 1 , Y 1 , Z 1 ) and the (u, v) coordinates are (u 1 , v 1 ), the following are given. X 1 = X 0 + u 1 · ∂ux + v 1 · ∂vx Y 1 = Y 0 + u 1 · ∂uy + v 1 · ∂vy Z 1 = Z 0 + u 1 · ∂uz + v 1 · ∂vz As clearly shown in Fig. 2, the point P' is on the line connecting O and P. When a coefficient is set to k 1 , the following relation is satisfied. (X 2 , Y 2 , Z 2 ) = k 1 ·(X 1 , Y 1 ,Z 1 ) The distance between the origin O of the (X, Y, Z) coordinate system and the point P' expressed by the coordinates (X 2 , Y 2 , Z 2 ) is 1. The distance between the origin (X 0 , Y 0 , Z 0 ) of the (u, v) coordinate system and the point P' expressed by the coordinates (X 2 , Y 2 , Z 2 ) is 2 sin ( 1 / 2 arctg u 2 1 +v 2 1 ). The distance L from the origin of the (u, v) coordinate system to the point P is obtained as follows. L = (u 2 + v 2 ) 0.5 When the distance L is determined, k 1 is constant. Consequently, a table of k 1 with respect to the distance L is formed as a lookup table and multiplication by k 1 obtained from the lookup table is executed, thereby enabling (X 2 , Y 2 , Z 2 ) to be obtained as follows (refer to Fig. 3). X 2 = k 1 ·X 1 Y 2 =k 1 ·Y 1 Z 2 = k 1 ·Z 1 In this manner, the first projection coordinates on the hemispherical face are determined. Step 2 As a second step of the calculation, a procedure of obtaining second projection coordinates w(p 1 , q 1 ) on a fisheye image face from the first projection coordinates (X 2 , Y 2 , Z 2 ) determined (refer to Fig. 1 with respect to w) will be explained. As described above, since the point P' is on the surface of the hemisphere of radius of 1, the zenithal angle ( 1 ) is unconditionally determined from the value of Z 2 (refer to Fig. 1 with respect to  1 ). The following equation (1) is therefore derived.  1 = cos -1 (Z 2 ) Since the azimuth of the point w on the image pickup face and that of the point P' on the hemispherical face are the same, the following equation (2) is satisfied. (p 1 , q 1 ) = k 2 ·(X 2 , Y 2 ) Since the height (h) from the origin on the fisheye image face (origin of the p, q coordinate system) to the point w is expressed as a function of  1 according to the fisheye image projecting method, the following equation (3) is satisfied. h = F( 1 ) Some examples of specific functions F( 1 ) according to the projecting method will be shown. When it is assumed that the focal distance of the fisheye lens is f, the following relations are established. equidistant projection: h = f· stereoscopic projection: h = 2f·tan(/2) When the equation (1) is substituted for the equation (3), the following equation (4) is given. h can be expressed as a function determined by Z 2 . h = F(cos -1 (Z 2 )) With respect to the distance r from the origin of the (X, Y, Z) coordinate system to the point Q obtained by projecting the point P' onto the (X, Y) plane, since the point P' is a point on the surface of the hemisphere of radius of 1, the following equation (5) is satisfied. r = (1- Z 2 2 ) 0.5 The following equation (6) is therefore given from the equations (4) and (5). k 2 = h/r = F(cos -1 (Z 2 ))/(1-Z 2 2 ) 0.5 That is, the coefficient k 2 of the equation (2) can be derived as a function of Z 2 . With respect to the coefficient k 2 , a lookup table for obtaining the coefficient k 2 from the value of Z 2 in accordance with the equation (3) is generated. By using the value, second projection coordinates (p 1 , q 1 ) on the image pickup face are obtained as follows. p 1 =k 2 ·X 2 q 1 = k 2 ·Y 2 As described above, in the first step for image transformation, calculation is limited to addition and multiplication, and the other functions are obtained from the lookup table. The calculation in the second step is limited to multiplication and the other calculation of functions and the like is handled by referring to the lookup table. By executing the calculations in accordance with the steps, a simple arithmetic circuit (logic circuit such as an adder) can have a pipelined architecture. The circuit scale of the part of the complicated function calculation is suppressed by using the lookup table. Further, by changing the table for obtaining k 2 in the second step, a fisheye lens of a different projecting method can be dealt with easily, moreover, by the same arithmetic circuit. <Example of circuit configuration> A specific circuit block configuration will now be described with reference to Fig. 4. The configuration relates to an example of a substrate which is configured for a computer system having a PCI (Peripheral Component Interconnect) bus. A fisheye lens 2 is attached to a CCD camera 1 and image information obtained by the CCD camera 1 is sent to a PCI bus substrate 3 and subjected to processes for image transformation. The PCI bus substrate 3 comprises: a camera interface 30 for obtaining fisheye image data from a CCD provided for the CCD camera 1; a frame memory 31 for storing fisheye image data of one frame; an interpolation computing unit 32 for executing an interpolating computation on the basis of the calculation result of an operation part 40; an FIFO memory 33; a capture control unit 34 for controlling capture of the fisheye image data to the frame memory 31; the operation part 40 (part surrounded by a broken line) having the configuration which characterizes the invention; and a PCI bus interface 39 for sending plane image data obtained by the coordinate transformation. The operation part 40 comprises a first coordinate calculating unit 35, a second coordinate calculating unit 36, a first lookup table 37 connected to the first coordinate calculating unit 35, and a second lookup table 38 connected to the second coordinate calculating unit 36. Further description will be given in relation to the coordinate transforming procedure. The first coordinate calculating unit 35 is a part of executing the calculation of the first step shown in Fig. 3 and can obtain the first projection coordinates (X 2 , Y 2 , Z 2 ) on the hemispherical face from the (u, v) coordinates in the plane image. The first lookup table 37 is a table for obtaining the correction coefficient k 1 from the distance L. The second coordinate calculating unit 36 is a part of executing the calculation of the second step in Fig. 3 and can obtain the second projection coordinates (p 1 , q 1 ) on the fisheye image face from the first projection coordinates (X 2 , Y 2 , Z 2 ) derived by the first coordinate calculating unit 35. The second lookup table 38 is a table for obtaining the correction coefficient k 2 . <Description of circuit operation> The operation of the circuit shown in Fig. 4 will now be described. Fisheye image data obtained by the CCD camera 1 is written into the frame memory 31 via the camera interface 30. Since the coordinates (p, q) on the image pickup face corresponding to the coordinates (u, v) on the display screen are obtained in the operation part 40, image data corresponding to the coordinates (p, q) sequentially designated by the operation part 40 is read from the frame memory 31 and is sent to the interpolation computing unit 32. Strictly, the position of a pixel on the fisheye image does not coincide with a pixel on the plane image to be displayed on the monitor. Plural data of pixels nearby is consequently read from the frame memory 31 and interpolation is performed by obtaining a weighted mean of the data, thereby enabling a natural plane image to be obtained. The interpolated image data is subjected to speed adjustment by the FIFO memory and resultant data is transferred to a memory on the host computer side via the PCI bus interface 39. In case of the example of the configuration of Fig. 4, since the processes such as coordinate calculation and interpolating calculation can be executed by a middle-scale FPGA (or gate array), the hardware can be constructed relatively cheap.

Claims: An arithmetic unit for image transformation for transforming a fisheye image obtained by using a fisheye lens (2) into a plane image for display, comprising: a first coordinate calculating unit (35) for obtaining first projection coordinates (x 2 , y 2 , z 2 ) derived by projecting coordinates (u 1 , v 1 ) the plane image onto an imaginary hemispherical object face; and a second coordinate calculating unit (36) for obtaining second projection coordinates (p 1 , q 1 ) derived by projecting the first projection coordinates obtained by the first coordinate calculating unit (35) onto the fisheye image face, characterized in that the logic circuit of the first and second calculating units is limited to calculations of addition and multiplication, and other function calculations are handled by referring to lookup tables (37, 38), and in that the second coordinate calculating unit (36) is used to obtain the second projection coordinates by multiplying the first projection coordinates by a predetermined coefficient (k 2 ), wherein the predetermined coefficient (k 2 ) is obtained from a lookup table (38). The arithmetic unit according to claim 1, characterized in that the logic circuit has a pipelined architecture in each of the first and second coordinate calculating units (35, 36). A monitoring system comprising a CCD camera (1) to which a fisheye lens (2) is attached and a Peripheral Component Interconnect (PCI) bus substrate (3) connected to the CCD camera (1) and having an arithmetic unit according to claim 1 or 2.

Inventors: MATSUI TETSUJI, SHIOTA FUMINORI, MATSUI, TETSUJI, SHIOTA, FUMINORI
Applicants: ADVANET INC, FIT KK, RIOS CORP, ADVANET, INC., FIT CORPORATION, RIOS CORPORATION
Application year: 2000
Main classification: G06T3
IPC codes: H04N7, G06T3, H04N5