IMAGE PROCESSING DEVICE AND METHOD FOR COLOR BALANCING
20170316585 · 2017-11-02
Inventors
Cpc classification
H04N23/88
ELECTRICITY
H04N1/486
ELECTRICITY
H04N1/6086
ELECTRICITY
H04N13/243
ELECTRICITY
International classification
H04N9/73
ELECTRICITY
Abstract
An image processing device performing color balancing of a first image and at least a second image is provided. The image processing device comprises a color balancing determination unit and a color balancing calculation unit.
The color balancing determination unit determines a global gain vector (t) comprising at least two gain factors (â.sup.n, â.sup.n+1) of the first and second images by minimizing a cost function based upon reference pixel values of the first and second images. The first and second image reference pixels depict a shared color scene of the two images.
The color balancing calculation unit performs color balancing of the first image based upon the gain factor (â.sup.n) of the first image and to perform a color balancing of the second image based upon the gain factor (â.sup.n+1) of the second image.
Claims
1. An image processing device for performing a color balancing of at least a first image recorded by a first camera and a second image recorded by a second camera, comprising a color balancing determination unit and a color balancing calculation unit, wherein the color balancing determination unit is adapted to determine a global gain vector (t) comprising at least one gain factor (â.sup.n) of the first image and at least one gain factor (â.sup.n+1) of the second image by minimizing a pre-determined cost function based upon reference pixel values of the first image and reference pixel values of the second image, wherein the first and second image reference pixels depict a shared color scene of the first and second images, and wherein the color balancing calculation unit is adapted to perform a color balancing of the first image based upon the at least one gain factor (â.sup.n) of the first image, and perform a color balancing of the second image based upon the at least one gain factor (â.sup.n+1) of the second image.
2. The image processing device according to claim 1, wherein the first image and the second image each comprise at least three color channels, wherein the color balancing determination unit is adapted to minimize separate cost functions for each color channel of the images, wherein the color balancing calculation unit is adapted to perform the color balancing of the first image separately for each color channel, and perform the color balancing of the second image separately for each color channel.
3. The image processing device according to claim 1, wherein the shared color scene of the first image and the second image is a scene that captures at least one same object or area, and wherein the at least one same object or area is within a shared field of view of the first camera and the second camera.
4. The image processing device according to claim 1, wherein the shared color scene of the first image and the second image is a scene that captures at least one same color, and wherein the at least one same color is not within a shared field of view of the first camera and the second camera.
5. The image processing device according to claim 1, wherein the image processing device is adapted to perform a color balancing of at least the first image recorded by the first camera, the second image recorded by the second camera, and a third image recorded by a third camera, wherein the color balancing determination unit is adapted to, after the color balancing calculation unit has performed the color balancing of the first image and the second image, resulting in a color balanced first image and a color balanced second image: determine a further global gain vector comprising at least one further gain factor of the second image and at least one gain factor of the third image by minimizing a pre-determined cost function based upon reference pixel values of the second color balanced image and reference pixel values of the third image, wherein the reference pixels of the color balanced second image and the third image depict a shared color scene of the color balanced second image and the third image, and wherein the color balancing calculation unit is adapted to perform a color balancing of the second color balanced image based upon the at least one further gain factor of the second image, and perform a color balancing of the third image based upon the at least one gain factor of the third image.
6. The image processing device according to claim 1, wherein minimizing the pre-determined cost function comprises minimizing
J′=[y.sub.j.sup.(1) y.sub.j.sup.(2)][a.sup.(2)−a.sup.(1)].sup.T, wherein j is a pixel number, y.sub.j.sup.(1) is a value of pixel number j measured by the first camera, y.sub.1.sup.(2) is a value of pixel number j measured by the second camera, a.sup.(1) is a gain factor by which a reference color value of the pixel j has to be multiplied to equal y.sub.j.sup.(1), and a.sup.(2) is a gain factor by which the reference color value of the pixel j has to be multiplied to equal y.sub.j.sup.(2).
7. The image processing device according to claim 6, wherein a global gain vector t is assumed to achieve
J=Y.Math.t, where
Y=[y.sup.(1) y.sup.(2)],
y.sup.(n)=[y.sub.1.sup.(n). . . y.sub.i.sup.(n). . . y.sub.1.sup.(n)]T, and
t=[a.sup.(2)−a.sup.(1)].sup.T, wherein t is the global gain vector, Y is a vector of values y measured for a single pixel by first camera and the second camera, n is a pixel number, i is an intermediary pixel number, and 1 is a last pixel number, and minimizing the pre-determined cost function comprises determining a non-trivial nullspace of a matrix R.sub.yy=Y.sup.T.Math.Y by preferably performing an eigenvalue decomposition of R.sub.yy Ryy=Â.Math.Ryy.Math.Â.sup.T wherein Ryy is a diagonal matrix with the eigenvalues at its main diagonal, and  is a unitary matrix, and using the eigenvectors with the smallest eigenvalues {circumflex over (t)} as the first color balancing information â.sup.(1) and the second color balancing information â.sup.(2), wherein
t=[a.sup.(2)−a.sup.(1)].sup.T.
8. The image processing device according to claim 7, wherein performing of the color balancing comprises: dividing pixel values y.sub.j.sup.(1) of the first camera by the gain factor â.sup.(1), and dividing pixel values y.sub.j.sup.(1) of the second camera by the gain factor â.sup.(2).
9. An imaging system comprising an image processing device according to claim 1 and at least a first camera and a second camera.
10. The imaging system according to claim 9, wherein the first camera and the second camera have an at least partially shared field of view.
11. The imaging system according to claim 9, comprising a third camera.
12. The imaging system according to claim 11, wherein the each of the cameras has at least a partially shared field of view with at least one further of the cameras.
13. Image processing method for performing a color balancing of at least a first image recorded by a first camera and a second image recorded by a second camera, wherein the following steps are performed: determining a global gain vector (t) comprising at least one gain factor (â.sup.n) of the first image and at least one gain factor (â.sup.n+1) of the second image by minimizing a pre-determined cost function based upon reference pixel values of the first image and reference pixel values of the second image, wherein the first and second image reference pixels depict a shared color scene of the first and second images, and performing a color balancing of the first image based upon the at least one gain factor (â.sup.n) of the first image, and performing a color balancing of the second image based upon the at least one gain factor (â.sup.n+1) of the second image.
14. A non-transitory computer readable medium comprising a program code for performing the method according to claim 13 when the computer program runs on a computer.
Description
BRIEF DESCRIPTION OF DRAWINGS
[0074] The present disclosure is in the following explained in detail in relation to embodiments of the disclosure in reference to the enclosed drawings, in which
[0075]
[0076]
[0077]
[0078]
[0079]
DESCRIPTION OF EMBODIMENTS
[0080] First we demonstrate the general construction and function of the imaging system and image processing device according to the first and second aspects of the disclosure along
[0081] In
[0082] In
[0083] A first image 11a generated by a first camera 11 and a second image 12a generated by a second camera 12 are provided to the color balancing determination unit 20. The first image 11a and the second image 12a each comprise reference pixels depicting a shared color scene of the first and second images. A color scene is the spectral radiances of a view of the natural world as measured from one or more vantage points in space. A shared color scene is a scene or scene portion that captures at least one same object or area within a shared view of the first camera 11 and the second camera 12 or captures at least one same color that may not be within a shared field of view (e.g., different areas of a uniformly blue sky).
[0084] The color balancing determination unit 20 determines a global gain vector t comprising at least one gain factor ân of the first image 11a and at least one gain factor ân+1 of the second image 12a by minimizing a pre-determined cost function based upon the reference pixel values. These gain factors are handed on to the color balancing calculation unit 21, which performs a color balancing of the first image 11a and the second image 12a by dividing the pixel values of the first image 11a by the gain factor ân and by dividing the pixel values of the second image 12a by the gain factor ân+1. Resulting from this calculation by the color balancing calculation unit 21 is a first color balanced image 11b and a second color balanced image 12b.
[0085] In the following, the detailed mathematics performed within the color balancing determination unit 20 and color balancing calculation unit 21 are shown.
[0086] Assuming a number of J=2 cameras, the output of each camera in each channel is given as a set of pixels y.sub.i.sup.(n) with
y.sub.i.sup.(1)=a.sup.(1).Math.x.sub.i, (1)
y.sub.i.sup.(2)=a.sup.(2).Math.x.sub.i, (2)
where x.sub.i is denoting the i-th pixel of a reference image (e.g., a “true” color value of an object) and x.sub.i ∈ {x.sub.i,r, x.sub.i,g, x.sub.i,b} where the indices r, g, and b corresponds to the camera color channels, red, green, and blue respectively or also some other color basis such as {HSV}, {YUV}, etc.
[0087] The superscript denotes the camera index. Accordingly, a.sup.(j) ∈ {a.sub.r.sup.(j), a.sub.g.sup.(j), a.sub.b.sup.(j)}, with j ∈ {1, . . . , J}.
[0088] To calibrate the cameras to the common reference multichannel image which is represented by the pixels x.sub.i, identify the channels gain factors a.sub.i.
[0089] Multiplying the output of each camera by the gain of the other one leads to an identical quantity. Hence, in our approach, we minimize quantity
[0090] In the assumed model, a global channel gain factor has to be determined for all pixels of a reference image. Let us define
J:=Y.Math.t, (4)
Where
[0091]
Y:=[y.sup.(1) y.sup.(2)], (5)
y.sup.(n):=[y.sub.1.sup.(n) . . . y.sub.i.sup.(n) . . . y.sub.l.sup.(n)].sup.T, (6)
a vector built up with the pixel values, and {.Math.}.sup.T is denoting the transponation operator, and
[0092] Minimizing the energy of the vector is equivalent to determine the non-trivial nullspace of the matrix R.sub.YY:=Y.sup.TY. We determine this, preferably, by an eigenvalue decomposition of the R.sub.YY.
R.sub.YY=Â
where
and  is a unitary matrix.
[0093] The nullspace is spanned by the eigenvectors corresponding to the zero-valued eigenvalues
[0094] In practice, due to the camera noise, the eigenvalues are in general all different from noise; therefore, we select the eigenvetors with the smallest eigenvalues. This eigenvector is then interpreted as an estimation of t. To calibrate both cameras. The output is divided by the estimated gain factors in {circumflex over (t)}.
[0095] The resulting gain factors are estimated such that [0096] i) the camera corrected colors have minimal difference, and [0097] ii) the corrected colors tend to the unknown but common reference colors.
[0098] It is important to note that the shared color scene does not mean that the first image and the second image necessarily share a field of view. The shared color scene merely means that either the images depicted an identical object or area and thereby share a field of view or the images merely depict objects of closely matching color without the images sharing a field of view.
[0099] Moreover, it is important to note, that in case of color images, the above-described process is separately performed for each different color channel of the images. This means that a separate cost function is minimized for each color channel of the images and a separate color balancing is performed for each individual color channel of the images.
[0100] In
[0101] Let us assume, we have already estimations of â.sup.(1) and â.sup.(2) for all channels of the two cameras. To obtain an estimation for the channels gain â.sup.(3) by constraining â.sup.(1) we consider again the nullspace determination problem
with
With (9), we obtain
[0102] For an inverse of R.sub.YY′ that insures, the second coefficient of the unknown vector is 0, we use
With r.sub.yy,11 the element at the first row and first column of the matrix R.sub.YY′. Hence,
where we employed for â.sup.(1) in the vector b the estimated value from a previous step.
[0103] Given 2 images from paired cameras, the channel gain factors are estimated such that
[0104] i) the camera corrected colors have minimal difference, and
[0105] ii) the corrected colors tend to the reference colors.
[0106] The calibration itself is done finally by dividing the pixels by the estimating channel gain parameters.
[0107] Moreover, in
[0108] In
[0109] In a second step 101, a global gain vector t comprising a gain factor ân of the first image 11a and a gain factor ân+1 of the second image 12a is determined by minimizing a cost function based upon reference pixel values from the first and second images 11a, 12a.
[0110] In a third step 102, a color balancing of the first and second images 11a, 12a is performed using the respective gain factors ân, ân+1.
[0111] Regarding the details of the individual steps, it is also referred to the elaborations regarding
[0112] The disclosure is not limited to the examples and especially not to a specific number of images. Also the disclosure is not limited to images with or without overlapping fields of view. The characteristics of the exemplary embodiments can be used in any combination.
[0113] The disclosure has been described in conjunction with various embodiments herein. However, other variations to the disclosed embodiments can be understood and effected by those skilled in the art in practicing the claimed disclosure, from a study of the drawings, the disclosure and the appended claims. In the claims, the word “comprising” does not exclude other elements or steps and the indefinite article “a” or “an” does not exclude a plurality. A single processor or other unit may fulfill the functions of several items recited in the claims. The mere fact that certain measures are recited in usually different dependent claims does not indicate that a combination of these measures cannot be used to advantage.
[0114] Embodiments of the disclosure may be implemented in a computer program for running on a computer system, at least including code portions for performing steps of a method according to the disclosure when run on a programmable apparatus, such as a computer system or enabling a programmable apparatus to perform functions of a device or system according to the disclosure.
[0115] A computer program is a list of instructions such as a particular application program and/or an operating system. The computer program may for instance include one or more of: a subroutine, a function, a procedure, an object method, an object implementation, an executable application, an applet, a servlet, a source code, an object code, a shared library/dynamic load library and/or other sequence of instructions designed for execution on a computer system.
[0116] The computer program may be stored internally on computer readable storage medium or transmitted to the computer system via a computer readable transmission medium. All or some of the computer program may be provided on transitory or non-transitory computer readable media permanently, removably or remotely coupled to an information processing system. The computer readable media may include, for example and without limitation, any number of the following: magnetic storage media including disk and tape storage media; optical storage media such as compact disk media (e.g., CD-ROM, CD-R, etc.) and digital video disk storage media; nonvolatile memory storage media including semiconductor-based memory units such as FLASH memory, EEPROM, EPROM, ROM; ferromagnetic digital memories; MRAM; volatile storage media including registers, buffers or caches, main memory, RAM, etc.; and data transmission media including computer networks, point-to-point telecommunication equipment, and carrier wave transmission media, just to name a few.
[0117] A computer process typically includes an executing (running) program or portion of a program, current program values and state information, and the resources used by the operating system to manage the execution of the process. An operating system (OS) is the software that manages the sharing of the resources of a computer and provides programmers with an interface used to access those resources. An operating system processes system data and user input, and responds by allocating and managing tasks and internal system resources as a service to users and programs of the system.
[0118] The computer system may for instance include at least one processing unit, associated memory and a number of input/output (I/O) devices. When executing the computer program, the computer system processes information according to the computer program and produces resultant output information via PO devices.
[0119] The connections as discussed herein may be any type of connection suitable to transfer signals from or to the respective nodes, units or devices, for example via intermediate devices. Accordingly, unless implied or stated otherwise, the connections may for example be direct connections or indirect connections. The connections may be illustrated or described in reference to being a single connection, a plurality of connections, unidirectional connections, or bidirectional connections. However, different embodiments may vary the implementation of the connections. For example, separate unidirectional connections may be used rather than bidirectional connections and vice versa. Also, plurality of connections may be replaced with a single connection that transfers multiple signals serially or in a time multiplexed manner. Likewise, single connections carrying multiple signals may be separated out into various different connections carrying subsets of these signals. Therefore, many options exist for transferring signals.
[0120] Those skilled in the art will recognize that the boundaries between logic blocks are merely illustrative and that alternative embodiments may merge logic blocks or circuit elements or impose an alternate decomposition of functionality upon various logic blocks or circuit elements. Thus, it is to be understood that the architectures depicted herein are merely exemplary, and that in fact many other architectures can be implemented which achieve the same functionality.
[0121] Thus, any arrangement of components to achieve the same functionality is effectively “associated” such that the desired functionality is achieved. Hence, any two components herein combined to achieve a particular functionality can be seen as “associated with” each other such that the desired functionality is achieved, irrespective of architectures or intermedial components. Likewise, any two components so associated can also be viewed as being “operably connected,” or “operably coupled,” to each other to achieve the desired functionality.
[0122] Furthermore, those skilled in the art will recognize that boundaries between the above described operations merely illustrative. The multiple operations may be combined into a single operation, a single operation may be distributed in additional operations and operations may be executed at least partially overlapping in time. Moreover, alternative embodiments may include multiple instances of a particular operation, and the order of operations may be altered in various other embodiments.
[0123] Also for example, the examples, or portions thereof, may implemented as soft or code representations of physical circuitry or of logical representations convertible into physical circuitry, such as in a hardware description language of any appropriate type.
[0124] Also, the disclosure is not limited to physical devices or units implemented in nonprogrammable hardware but can also be applied in programmable devices or units able to perform the desired device functions by operating in accordance with suitable program code, such as mainframes, minicomputers, servers, workstations, personal computers, notepads, personal digital assistants, electronic games, automotive and other embedded systems, cell phones and various other wireless devices, commonly denoted in this application as ‘computer systems’.