Computational camera using fusion of image sensors

A camera device includes monochromatic and color image sensors that capture an image as a clear image in monochrome and as a Bayer image. The camera device implements image processing algorithms to produce an enhanced, high-resolution HDR color image. The Bayer image is demosaiced to generate an initial color image, and a disparity map is generated to establish correspondence between pixels of the initial color image and clear image. A mapped color image is generated to map the initial color image onto the clear image. A denoised clear image is applied as a guide image of a guided filter that filters the mapped color image to generate a filtered color image. The filtered color image and the denoised clear image are then fused to produce an enhanced, high-resolution HDR color image, and the disparity map and the mapped color image are updated based on the enhanced, high-resolution HDR color image.

BACKGROUND

Portable electronic devices, such as mobile phones, tablet computers, multimedia devices, and the like often include multimedia capabilities that enable a user to capture images (e.g., digital photos), record video, and/or communicate using communication features of a device. To implement these multimedia capabilities, the portable devices are implemented with a camera device that can be used to capture the images, which are then processed and saved as digital photos. Often, the quality of the captured and saved digital photos is dependent on the image processing features of the camera device, and users typically want the highest-resolution quality images for viewing and sharing. Some camera devices that are implemented as a digital camera or as a component of a portable device, such as a mobile phone, are designed for high dynamic range (HDR) imaging to capture digital photos having a greater dynamic range. This can be accomplished by capturing different exposures of the same subject matter at different exposure levels, and then combining the different exposures to generate a digital photo.

DETAILED DESCRIPTION

Embodiments of a computational camera using fusion of image sensors are described, such as for a camera device that includes monochromatic image sensors that capture the light of an image as a clear image in monochrome, and includes HDR color image sensors that capture the light of the image as a Bayer image. For example, a camera device that is implemented as a digital camera or as a component of a portable device, such as a mobile phone, can be designed for high dynamic range (HDR) imaging to capture digital photos with both monochromatic image sensors and HDR color image sensors. The camera device also implements image processing algorithms of an image fusion application to produce an enhanced, high-resolution HDR color image that has a high signal-to-noise ratio based on the clear image. The image enhancements to generate the enhanced, high-resolution HDR color image are achieved with reduced computational complexity over conventional techniques.

In the described techniques, a demosaicing algorithm of the image fusion application is implemented to demosaic the Bayer image and generate an initial color image in linear RGB space. A dynamic shifts algorithm (also referred to as a stereo correspondence algorithm) then generates a disparity map to establish correspondence of image points produced by all of the sensors in the camera device. In a Bayer-Clear HDR array camera, correspondence between color image pixels of the initial color image and clear image pixels of the clear image are established. In implementations having more sensors, this correspondence can be established more reliably.

In implementations, the dynamic shifts algorithm can generate a minimum spanning tree (MST) or pixels, which can be extended to a segmentation tree, where an image is first segmented and then the minimum spanning tree is built within every segment. The minimum spanning tree can be created for any particular image, and every node corresponds to the image pixels and every edge represents the difference between pixels intensity or RGB values (or some other metric). The MST is useful for fast calculations of distance between pixels in a sense of difference of their intensities. Minimum spanning tree models are created for the clear image and the initial color image, where nodes of the MST represent the pixels of the clear image and the color image. A clear image pixel node of the MST contains an intensity of the pixel, whereas a color image pixel node contains the color of the pixel with the three R, G, and B components.

The MST can be used to calculate stereo correspondence that produces a disparity map. Segmented trees provides for an increased quality of disparity map, and provides for a more precise depth estimation. The resulting correspondence and disparity map defines a mapping of the clear pixels of the monochromatic sensor image into the pixels of the color image or images produced from one or more Bayer sensors. In implementations, left and right disparities that are built on respective left or right MST trees can be used to find both reliable and unreliable regions for a better quality disparity map. Using the disparity map, mapping algorithm generates a mapped color image that is obtained by mapping of the initial color image onto the clear image. A denoising algorithm of the image fusion application generates a denoised clear image from the clear image, and the denoised clear image is applied as a guide image of a guided filter that filters the mapped color image to generate a filtered color image. Guided filter is a technique that allows filtering of one image using kernels built from information of another image.

A fusion algorithm of the image fusion application then fuses the filtered color image and the denoised clear image to produce the enhanced, high-resolution HDR color image. The fusion is a recombination of a reference channel (e.g., the clear image, also referred to as the clear channel) with non-reference channels (e.g., the initial color image or multiple color images from multiple sensors and/or additional monochromatic images) using the mapped color images and/or clear images that produces a higher quality color image from the multiple clear images and the multiple color images. In the simplest case, a single clear image and a single color image are used to produce the higher quality color image.

Stereo correspondence is typically computed in undistorted image space to remove lens distortion, and therefore, a simpler approach is to perform image fusion in the undistorted image space. However, in embodiments described herein, the image fusion application can then reiterate and perform image fusion in the initial distorted space of the image, thus preventing extra resampling steps that will avoid loss of related sharpness. When reiterating and returning to the undistorted image space, a MST of the clear image can be created in that space. Mapping of the color image is implemented to map the undistorted clear image pixels to the undistorted color image pixels, and even to non-demosaiced sensor pixels of the HDR color image sensors. With this mapping, an enhanced color demosaicing can be created using the clear image MST and mapping the Bayer sensor pixels to it, which assigns the R, G or B values to corresponding MST nodes.

Most of the tree nodes will have some values assigned, but some nodes may remain without any value. Then for every color channel of R, G, or B, a corresponding channel color in every node can be approximated using the MST. For example, if there are two nodes of the tree that have an R (red) value, and there are a few nodes between them without an R value, then the missing R values can be modeled as if R is a linear function of clear pixel intensity values in the nodes. The same process can be applied for the G (green) and B (blue) channels, and the process relies on a higher frequency sampling of the clear channel, which allows for a higher resolution color image to be restored than by using conventional debayering techniques. For areas of an image with occlusions or disparity jumps, the resulting gap in the image can be filled by color from the further (smaller disparity) plane. The result of demosaicing then can produce a higher quality color image that is already mapped to the clear channel, and that can be further used in a fusion process.

A recombination part of the image fusion process then utilizes a denoised clear image that can be generated with any one of various denoising algorithms, such as a Bilateral Filter, a Non Local Means (NLM) Filter, a Wavelet Denoising Filter, or others. Color images can also be denoised utilizing denoising filtering. Further, the color images can be filtered using a guided filter that utilizes a denoised clear channel as a guide. The guide can also account for a color difference using color images to prevent over-filtering of the edges between different colors that may happen to have similar luma values. A guided filter can be utilized more than once to provide a proper level of color noise suppression. The guided filter can be applied in the RGB color space, or it can be applied in the YUV color space, which can be beneficial because the aggressiveness of the filter on U and V can typically be higher and provide better color noise reduction. The described techniques for image fusion can also be extended to producing an image not only from the clear channel standpoint, but also from the Bayer channel standpoint, where clear data is mapped to the Bayer image and used for the guided filtering in areas where the mapping is reliable and consistent (e.g., does not have significant discontinuities).

When clear and color images are denoised as described above, they are fused using a linear recombination model (which may also use a second order model). The linear recombination can be done in the RGB or YUV color space, as described further below. As a result of the fusing process, a fused image is generated that is the enhanced, high-resolution HDR color image having a high signal-to-noise ratio derived from the denoised clear image. The noise level in the resulting enhanced, high-resolution HDR color image will be noticeably higher than the noise level in a typical color image obtained from a Bayer sensor because the noise level of the clear image is higher due to the lack of color filters.

While features and concepts of a computational camera using fusion of image sensors can be implemented in any number of different devices, systems, and/or configurations, embodiments of a computational camera using fusion of image sensors are described in the context of the following example devices, systems, and methods.

FIG. 1illustrates an example portable device100in which embodiments of a computational camera using fusion of image sensors can be implemented. The portable device100may be any type of portable electronic and/or computing device, such as a mobile phone, tablet computer, communication, entertainment, handheld navigation, portable gaming, media playback, and/or any other type of electronic and/or computing device. The portable device100includes a camera device102, such as an array camera that performs computations to implement the fusion of image sensors. An array camera is designed for high dynamic range (HDR) imaging and includes at least one monochromatic (clear) channel and at least one Bayer (color) channel providing color output. In implementations, the portable device100may be implemented as the camera device itself. In this example, the camera device102is implemented with one or more monochromatic image sensors104that capture the light of an image as a clear image106in monochrome. The camera device102also includes one or more HDR color image sensors108that capture the light of the image as a Bayer image110in red, green, and blue (RGB) color with a Bayer color filter array. Each pixel of the Bayer image is only one of red, green, or blue as captured by the Bayer pattern of the color filter array.

The example portable device100can include a wired and/or battery power source to power device components, such as a processing system112. The portable device100can include memory114, as well as any number and combination of components as further described with reference to the example device shown inFIG. 6. The portable device100includes an image fusion application116that can be implemented as a software application or module (e.g., executable instructions) stored on computer-readable storage memory, such as any suitable memory device or electronic data storage (e.g., the memory114). The portable device100can be implemented with computer-readable storage memory as described with reference to the example device shown inFIG. 6. In implementations, the image fusion application116includes image processing algorithms that implement the techniques for image fusion described herein.

The image fusion application116includes a demosaicing algorithm118to demosaic the Bayer image110and generate an initial color image120. The pixels of the initial color image120are generated to have all of the RGB colors from the pixels of the Bayer image110that are each only one of the red, green, or blue color. As shown in the example, the demosaicing algorithm118receives an input of the Bayer image110and generates an output as the initial color image120. A traditional demosaicing technique can be implemented to reconstruct a full color image (e.g., the initial color image120) from incomplete color samples that are output from an image sensor, such as described by Keigo Hirakawa et al. in “Adaptive Homogeneity-Directed Demosaicing Algorithm”(AHID algorithm) (IEEE Transactions on Image Processing Vol: 14, Issue:3, Mar. 2005). The demosaicing algorithm118may also be implemented for adaptive homogenous interpolation demosaicing (AHID) or extensions thereof for HDR modes, or may utilize a linear interpolation technique.

The image fusion application116includes a dynamic shifts algorithm122that is implemented for images rectification124and to generate a disparity map126. The images rectification124can be based on a model of the camera lens that is used to capture the images, and is implemented for pixel correction to undistort the clear image106and the initial color image120. The dynamic shifts algorithm122generates the disparity map126, which establishes correspondence between color image pixels of the initial color image and clear image pixels of the clear image. As shown in the example, the dynamic shifts algorithm122receives inputs of the clear image106and the initial color image120, and then generates an output as the disparity map126.

The dynamic shifts algorithm122can also generate a minimum spanning tree (MST)128or pixels, which can be extended to a segmentation tree, where an image is first segmented and then the minimum spanning tree is built within every segment. The minimum spanning tree can be created for any particular image, and every node corresponds to the image pixels and every edge represents the difference between pixels intensity or RGB values (or some other metric). The MST is useful for fast calculations of distance between pixels in a sense of difference of their intensities. Minimum spanning tree models are created for the clear image106and the initial color image120, where nodes of the MST represent the pixels of the clear image and the color image. In the minimum spanning tree128, every node represents the color intensity of a pixel or a set of pixels, and the edges between nodes represent the difference between node intensities. A clear image pixel node of the MST contains an intensity of the pixel, whereas a color image pixel node contains the color of the pixel with the three R, G, and B components. In implementations, the minimum spanning tree128can be created using different techniques. Use of a minimum spanning tree for stereo correspondence matching is a known technique as described by Q. Yang, A Non-Local Cost Aggregation Method for Stereo Matching” (IEEE Conference on Computer Vision and Pattern Recognition (CVPR) 2012, 1402-1409).

The dynamic shifts algorithm122can then calculate the disparity map126based on the minimum spanning tree128that maps color image pixels of the initial color image120to clear image pixels of the clear image106. An example of an algorithm to generate a disparity map is described by Q. Yang, A Non-Local Cost Aggregation Method for Stereo Matching” (IEEE Conference on Computer Vision and Pattern Recognition (CVPR) 2012, 1402-1409). In implementations, the disparity map126(also referred to as a depth map) may also be calculated by different techniques, such as using the technique described by Xing Mei et al. in “Segment-Tree based Cost Aggregation for Stereo Matching” (CVPR2013). In implementations, the mapping is calculated using clear channel (e.g., the clear image) and a luma component from the initial color image, calculated using a simple or traditional version of debayer. This calculation can also use segmentation and the minimum spanning tree. Additionally, use of a penalty function can be census, or census in combination with sum of absolute difference.

The image fusion application116also includes a mapping algorithm130that is implemented to generate a mapped color image132based on the disparity map126to map the initial color image120onto the clear image106. As shown in the example, the mapping algorithm130receives inputs of the initial color image120and the disparity map126, and generates an output as the mapped color image132. The signal-to-noise ratio (SNR) is higher in the clear image106, having better sharpness (e.g., better sampling than in the color image), and the disparity map126is used to map the initial color image onto the clear image. In implementations, the mapped color image132may be mapped as a red, green, blue (RGB) color image from which a filtered color image is generated and used to produce an enhanced, high-resolution HDR color image. Alternatively, the mapped color image132may be mapped as a luma and chrominance (YUV) components image from which the filtered color image is generated and used to produce the enhanced, high-resolution HDR color image.

The image fusion application116includes a denoising algorithm134that is implemented to denoise the clear image106and generate a denoised clear image136. As shown in the example, the denoising algorithm134receives an input of the clear image106and then generates an output as the denoised clear image136. The image fusion application116also includes a fusion algorithm138that is implemented to apply the denoised clear image136as a guide image of a guided filter140that filters the mapped color image132to generate a filtered color image142. As shown in the example, the fusion algorithm138receives inputs of the mapped color image132and the denoised clear image136, and then generates an output as the filtered color image142utilizing the guided filter140. The denoised clear image136is used as the guide image to construct the guided filter140, which can then be applied to the RGB color space, or the YUV space of the mapped color image132, to generate the filtered color image142. Guided filter is a technique that allows filtering of one image using kernels built from information of another image, and is described by K. He et al. in “Guided Image Filtering” (European Conference on Computer Vision (ECCV), 2010, pp. 1-14).

The fusion algorithm138implements fusion144(also referred to as recombination) to combine the filtered color image142and the denoised clear image136to produce an enhanced, high-resolution HDR color image146. This technique preserves the high resolution of the clear image106(e.g., via the denoised clear image136which has a high signal-to-noise ratio) and preserves the color from the initial color image120(e.g., via the mapped color image132). The image fusion application116is implemented to then reiterate at148in the undistorted image space and produce a higher quality debayered image using the MST based technique and using a clear image MST and Bayer pattern. This then produces the higher quality color image that allows to further (optionally) update the disparity map126and the mapped color image132based on the enhanced, high-resolution HDR color image146to map the enhanced, high-resolution HDR color image onto the clear image. The image fusion application may update the minimum spanning tree128that models color sampling of the initial color image120to regenerate disparity map126and improve the color sampling over the initial color image, if needed. The image fusion application116effectively utilizes the clear image106to debayer the Bayer image110based on the reiterated use of the enhanced, high-resolution HDR color image146that updates the disparity map126and the mapped color image132.

The dynamic shifts algorithm122can reiterate several passes to improve the color sampling and disparity map126output. Initially, the demosaicing algorithm118approximates the initial color image120based on the red, green, or blue color value of each pixel in the Bayer image110. However, given the known minimum spanning tree128and the enhanced, high-resolution HDR color image146, the initial color image120can be replaced and then used for mapping to generate the disparity map126and the mapped color image132. Components and features of the image fusion application116are further shown and described with reference toFIG. 2.

For nodes of the minimum spanning tree128having less than the three RGB colors, neighboring nodes are looked to in the minimum spanning tree, and the colors can be interpolated between the nodes. The image fusion application116is implemented to leverage the distance between the nodes of the tree, such as to determine a node having the shortest distance on the tree and that has lacking color. The image fusion application can determine a few of these nodes, and then utilize various techniques to interpolate the color into the pixels that are lacking a given color. One such technique that may be implemented is a linear combination with weights equal to a distance from the node to neighboring nodes with known color.

For example, if the red (R) color pixel is missing in the current node, the image fusion application116can traverse up the minimum spanning tree128to find a node that has an R pixel present, and also back down the tree to find another node that has the R pixel. The image fusion application can then interpolate the R color in the node that is missing the R color with unknown R by averaging the R color from the up and down neighboring nodes using the distance on the edges as a weight. This approach can be applied for all RGB channels, and to provide the pixel colors for all of the minimum spanning tree nodes in all three of the R, G, and B components. This results in a segmented tree-based Debayer mapped to clear channel, providing an image with known RGB values assigned to every pixel of the clear image.

As described, the image fusion application116generates the coloring of the minimum spanning tree nodes and the clear channel pixel values are determined, from which the image fusion application can implement the fusion algorithm138to recombine the clear and colors in RGB space or in YUV space. Additionally, if multiple bayer channels are implemented, then more of the color pixels in the same node (coming from different Bayer sensors) can be evaluated, and the values of RGB from the different sensors averaged over the pixels in a node for a more precise color value within the node.

Additionally, averaging the color pixel values over a node can be performed even when a single Bayer array is utilized, which can increase the signal-to-noise ratio (SNR) in larger flat areas or patches of an image. In an implementation, the clear channel and Bayer channel resolution are the same, where the Bayer channel has significantly less resolution than traditional Bayer. The advantage of this algorithm is that, in many cases, it will result in very sharp color output because the color boundaries in most cases can be derived by grouping pixels in the clear channel reflected by the segmentation tree. If the described algorithm does not take into account transitions of colors preserving the same luma, the image fusion application116can be implemented to detect the transitions and utilize the output of traditional Debayer in such areas, which can be performed on a traditionally debayered image. The resolution may be somewhat limited by the traditional debayer in such areas, however, occurrences of such boundaries are not very frequent and in areas where luma has edges, the areas will have proper coloring with luma defined resolution.

The image fusion application116may also be implemented to perform other operations, such as lens shading, as well as undistortion for every channel prior to a disparities calculation. The disparities calculation utilizes stereo calibration prior, and uses calibration parameters from the calibration stage for the disparities calculation. The pixel mapping that is derived from the disparities calculation can be used in the undistorted or distorted (initial) image, such as to allow for a decrease in noise influence in the distorted image on the quality of the output picture.

FIG. 2illustrates an example200of the image fusion application116and the image processing algorithms, as described with reference toFIG. 1, and that is implemented to fuse the filtered color image142(e.g., Bayer channel image) and the denoised clear image136(e.g., clear channel image). The image fusion application116receives the clear image106as the clear channel identified as the “W reference” (e.g., a white reference channel Wi), a luma component202identified as “W2” in the example, and the initial color image120identified as RGB in the illustrated example200. The RGB input includes a red channel (Ri), a green channel (Gi), and a blue channel (Bi). Generally, a white channel color recombination processor combines the white channel with the RGB color channels, and the image fusion application116then outputs a red channel (Ro), a green channel (Go), and a blue channel (Bo). In implementations, the color input channels are scaled so that they will match the W reference channel (e.g., the clear channel) in intensity. The scaler can be derived at the calibration stage and stored in the calibration data, and the scaling itself can be performed as a pixel multiplication operation.

The image fusion application116implements a joint demosaicing with a Bayer filter204after a dynamic shift using the luma component202and the RGB from the initial color image120. The image fusion application116is also implemented to extract the color information from RGB utilizing an RGB to YCbCr linear transformation, where:
Cb=Kcb_r*Ri+Kcb_g*Gi+Kcb_b*Bi;
Cr=Kcr_r*Ri+Kcr_g*Gi+Kcr_b*Bi;

The luma channel is created by a linear combination of the input color channels Ri, Gi, and Bi, and the input clear channel W reference (Wi) to form a new Y channel (Yw), where Yw=(c00*Ri+c01*Gi+c02*Bi+c03*Wi). The [c00-c03] coefficients can be derived at the calibration stage and stored in the calibration data. The clear channel (e.g., clear image106) identified as the “W reference” is input to the noise filter206for noise suppression (e.g., an example of the denoising algorithm134). Other algorithms for noise suppression may also be implemented, such as non-local means (NLM), bilateral filtering, Gaussian filters, and the like. The image fusion application can also be implemented to perform a white balance208and a color correction210of the initial color image120(e.g., the RGB color inputs). The newly created Yw channel data can be enhanced by adding edge information at212, where Yee=Yw+EEi. An edge extraction filter214is implemented to extract edges from the clear channel and boost the edges to define sharpness.

The image fusion application116implements the guided filter140that combines the luma component202identified as the “W2” input, the clear channel106identified as the “W reference” input, and the RGB color input of the initial color image120. An implementation of the guided filter140is described by Kaiming He et al. in “Guided Image Filtering” (European Conference on Computer Vision (ECCV), 2010, pp. 1-14). The guided filter140forms a filtering kernel in every image locality, and a kernel calculation is based on one image as it is applied to another image. A bilateral filter may be implemented as a particular type of the guided filter when both images coincide. A conventional implementation uses an approximation of optimal kernel by several box filters, which allows for a fast implementation. The image fusion application116then converts back to the RGB color space at216from the Yw and Cr, Cb channels that are processed as described above. This is accomplished with:
Ro=Yw+Krc_r*Cr;
Go=Y+Kg_cb*Cb+Kg_cr*Cr;
Bo=Y+Kb_cb*Cb;

In embodiments, the image fusion application116can be implemented to perform the recombination in the YUV space, rather than RGB. The recombination algorithm calculates a recombined luma of the clear channel and the Bayer channel from the luma of the clear channel (W) and the UV components of the Bayer channels. The model fuses luma Yw as: Yw=p*U+s*V+q(u, v)*W, where q(u, v)=qw+qu*U+qv*V. This is a second order model with respect to UV that uses a scaled clear channel luma and Bayer UV for a high SNR output luma. For a full-color output, the recombination algorithm utilizes Yw and noise filtered UV components from the Bayer channel. Further, the Yw luma can be improved when using sharpness information EE as mentioned above for RGB recombination.

The image fusion application116can also be implement a calibration stage, where measurements for every type of light and measure of the RGB intensities over the patches of MacBeth chart data, and solve them for an over-determined system using LSF. The model parameters qw, qu, qv can be determined so that data points best fit the linear curve (plane), and the overall error is minimized. An error determined for the i-th measurement is Eri=qi(u, v)*Wi+p*Ui+s*Vi Ywi, where qi(u, v)=qw+qu*Ui+qv*Vi. The variables Ui and Vi are UV values determined from the Bayer channel; the Wi are values determined from the clear channel; and the Ywi is determined from the MacBeth chart patches definition.

This is a second order model. However, if qu=qv=0, then the model is of a first order similar to RGB. The Sum(Eri^2) is minimized, which drives the sum error to zero as much as possible. This can be solved by LSF, the same as for the RGB case. A runtime stage can use this equation for recombining Yw=q(u, v)*W+p*U+s*V. An advantage of implementing the recombination in the YUV space is that UV components are typically very low pass, which allows strong noise suppression without loss of useful information. This in particular allows for a decrease of the color noise.

Example methods300and400are described with reference to respectiveFIGS. 3 and 4in accordance with implementations of a computational camera using fusion of image sensors. Generally, any of the services, components, modules, methods, and operations described herein can be implemented using software, firmware, hardware (e.g., fixed logic circuitry), manual processing, or any combination thereof. The example methods may be described in the general context of executable instructions stored on computer-readable storage media that is local and/or remote to a computer processing system, and implementations can include software applications, programs, functions, and the like.

FIG. 3illustrates example method(s)300of a computational camera using fusion of image sensors. The order in which the method is described is not intended to be construed as a limitation, and any number or combination of the described method operations can be performed in any order to perform a method, or an alternate method.

At302, the light of an image is captured as both a Bayer image and a clear image in monochrome. For example, the camera device102implemented in the portable device100(FIG. 1) includes the monochromatic image sensors104that capture the light of an image as the clear image106in monochrome, and includes the HDR color image sensors108that capture the light of the image as the Bayer image110.

At304, the Bayer image is demosaiced to generate an initial color image. For example, the portable device100implements the image fusion application116that includes the demosaicing algorithm118, which demosaics the Bayer image to generate the initial color image120.

At306, a disparity map is generated to establish correspondence between color image pixels of the initial color image and clear image pixels of the clear image. For example, the image fusion application116includes the dynamic shifts algorithm122that generates the disparity map126to establish correspondence between color image pixels of the initial color image120and clear image pixels of the clear image106. The dynamic shifts algorithm122also implements the images rectification124to rectify the initial color image120and the clear image106for pixel correction to generate the disparity map.

At308, a mapped color image is generated based on the disparity map to map the initial color image onto the clear image. For example, the image fusion application116includes the mapping algorithm130that generates the mapped color image132based on the disparity map126to map the initial color image120onto the clear image106. In implementations, a pixel correspondence of Bayer color image pixels are mapped to clear channel image pixels to map the color image to the clear image. The mapped color image can be generated as a red, green, blue (RGB) color image from which a filtered color image is generated and used to produce an enhanced, high-resolution HDR color image. Alternatively, the mapped color image can be generated as a luma and chrominance (YUV) components image from which the filtered color image is generated and used to produce the enhanced, high-resolution HDR color image.

At310, the clear image is denoised to generate a denoised clear image. For example, the image fusion application116includes the denoising algorithm134that denoises the clear image106to generate the denoised clear image136. At312, the denoised clear image is applied as a guide image of a guided filter that filters the mapped color image to generate a filtered color image. For example, the image fusion application116includes the fusion algorithm138that applies the denoised clear image136as a guide image of a guided filter140that filters the mapped color image132to generate the filtered color image142. The denoised clear image136is used as the guide image to construct the guided filter140, which can then be applied to the RGB color space, or the YUV space of the mapped color image132, to generate the filtered color image142.

At314, the filtered color image and the denoised clear image are fused to produce an enhanced, high-resolution HDR color image. For example, the image fusion application116includes the fusion algorithm138that implements fusion144(also referred to as recombination) to combine the filtered color image142and the denoised clear image136to produce the enhanced, high-resolution HDR color image146. The enhanced, high-resolution HDR color image is generated having a high signal-to-noise ratio derived from the denoised clear image. At316, the image fusion application116reiterates to update the disparity map126and the mapped color image132based on the enhanced, high-resolution HDR color image146to map the enhanced, high-resolution HDR color image onto the clear image.

FIG. 4illustrates other example method(s)400of a computational camera using fusion of image sensors. The order in which the method is described is not intended to be construed as a limitation, and any number or combination of the described method operations can be performed in any order to perform a method, or an alternate method.

At402, a minimum spanning tree is generated that models the clear image and the initial color image. For example, the portable device100(FIG. 1) implements the image fusion application116that includes the dynamic shifts algorithm122, which generates the minimum spanning tree128to model the clear image106and the initial color image120, where nodes of the minimum spanning tree represent the pixels of the clear image and the color image.

At404, a disparity map is calculated based on the minimum spanning tree. For example, the image fusion application116includes the dynamic shifts algorithm122that calculates the disparity map126to establish correspondence between color image pixels of the initial color image120and clear image pixels of the clear image106. In implementations, the disparity map126is calculated utilizing the clear channel image pixels (e.g., of the clear image) and a luma component of the initial color image120that is generated utilizing the demosaicing algorithm118applied to the Bayer image110.

At406, a determination is made as to whether mapped nodes of the minimum spanning tree include the RGB colors for all of the pixels of a respective node. For example, the image fusion application116determines, for each of the mapped nodes of the minimum spanning tree, whether a mapped node includes the all of the RGB colors for all of the pixels of the node. If a mapped node does include all of the RGB colors for all of the pixels of a respective node (i.e., “Yes” from406), then at408, the RGB colors are propagated to all of the pixels of the respective node. For example, the image fusion application116propagates the RGB colors to all of the pixels of the respective mapped node. If a mapped node does not include all of the RGB colors for all of the pixels of a respective node (i.e., “No” from406), then at410, the missing RGB colors for the pixels of a respective node are interpolated from neighboring nodes. For example, the image fusion application116interpolates the missing RGB colors for the pixels of a respective node from neighboring nodes.

FIG. 5illustrates an example image processing system500of a computational camera using fusion of image sensors, as described with reference toFIGS. 1-4. The computational camera generates the enhanced, high-resolution HDR color image146having resolution in the Y-component that is much higher than would be available from a traditional Bayer camera, and has resolution in the UV colors, or separately in the RGB colors, which are also higher than would be available from a traditional Bayer camera. The processing system500(or “pipeline”) implements some conventional features that are known for providing high-quality output images, such as with HDR imaging. Additionally, the disparity estimation502correlates with the dynamic shifts algorithm122of the image fusion application116as shown inFIG. 1. The disparity based image warping504is utilized to align one image to another, such as the clear image106and the initial color image120, followed by the same type channels fusion506to merge more than two sensors captured images. The color correction508followed by the image channels guided filtering510can be implemented as a bilateral filter for custom denoising of each pixel (or point) in an image, to generate a quality denoised image.

FIG. 6illustrates various components of an example device600that can be implemented as any portable device and/or camera device as described with reference to any of the previousFIGS. 1-5. The device600includes communication transceivers602that enable wired and/or wireless communication of device data604, such as the captured images. Example transceivers include wireless personal area network (WPAN) radios compliant with various IEEE 802.15 (Bluetooth™) standards, wireless local area network (WLAN) radios compliant with any of the various IEEE 802.11 (WiFi™) standards, wireless wide area network (WWAN) radios for cellular telephony, wireless metropolitan area network (WMAN) radios compliant with various IEEE 802.15 (WiMAX™) standards, and wired local area network (LAN) Ethernet transceivers.

The device600may also include one or more data input ports606via which any type of data, media content, and/or inputs can be received, such as user-selectable inputs, messages, music, television content, recorded content, and any other type of audio, video, and/or image data received from any content and/or data source. The data input ports may include USB ports, coaxial cable ports, and other serial or parallel connectors (including internal connectors) for flash memory, DVDs, CDs, and the like. These data input ports may be used to couple the device to components, peripherals, or accessories such as microphones and/or cameras.

The device600includes a processor system608of one or more processors (e.g., any of microprocessors, controllers, and the like) and/or a processor and memory system (e.g., implemented in an SoC) that processes computer-executable instructions. The processor system may be implemented at least partially in hardware, which can include components of an integrated circuit or on-chip system, an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), a complex programmable logic device (CPLD), and other implementations in silicon and/or other hardware. Alternatively or in addition, the device can be implemented with any one or combination of software, hardware, firmware, or fixed logic circuitry that is implemented in connection with processing and control circuits, which are generally identified at610. Although not shown, the device can include a system bus or data transfer system that couples the various components within the device. A system bus can include any one or combination of different bus structures, such as a memory bus or memory controller, a peripheral bus, a universal serial bus, and/or a processor or local bus that utilizes any of a variety of bus architectures.

The device600also includes one or more memory devices612that enable data storage, examples of which include random access memory (RAM), non-volatile memory (e.g., read-only memory (ROM), flash memory, EPROM, EEPROM, etc.), and a disk storage device. A disk storage device may be implemented as any type of magnetic or optical storage device, such as a hard disk drive, a recordable and/or rewriteable disc, any type of a digital versatile disc (DVD), and the like. The device600may also include a mass storage media device.

A memory device612provides data storage mechanisms to store the device data604, other types of information and/or data, and various device applications614(e.g., software applications). For example, an operating system616can be maintained as software instructions with a memory device and executed by the processor system608. The device applications may also include a device manager, such as any form of a control application, software application, signal-processing and control module, code that is native to a particular device, a hardware abstraction layer for a particular device, and so on. The device may also include an image fusion application618, such as described with reference toFIGS. 1-5.

The device600also includes an audio and/or video processing system620that generates audio data for an audio system622and/or generates display data for a display system624. The audio system and/or the display system may include any devices that process, display, and/or otherwise render audio, video, display, and/or image data. Display data and audio signals can be communicated to an audio component and/or to a display component via an RF (radio frequency) link, S-video link, HDMI (high-definition multimedia interface), composite video link, component video link, DVI (digital video interface), analog audio connection, or other similar communication link, such as media data port626. In implementations, the audio system and/or the display system are integrated components of the example device.

The device600can also include a power source628, such as when the device is implemented as a wearable device (e.g., a glasses device). The power source may include a charging and/or power system, and can be implemented as a flexible strip battery, a rechargeable battery, a charged super-capacitor, and/or any other type of active or passive power source.

Although embodiments of a computational camera using fusion of image sensors have been described in language specific to features and/or methods, the subject of the appended claims is not necessarily limited to the specific features or methods described. Rather, the specific features and methods are disclosed as example implementations of a computational camera using fusion of image sensors.