Google Patent | Multi-View Back-Projection To A Light-Field
Publication Number: 10354399
Publication Date: 20190716
Dense light-field data can be generated from image data that does not include light-field data, or from image data that includes sparse light-field data. In at least one embodiment, the source light-field data may include one or more sub-aperture images that may be used to reconstruct the light-field in denser form. In other embodiments, the source data can take other forms. Examples include data derived from or ancillary to a set of sub-aperture images, synthetic data, or captured image data that does not include full light-field data. Interpolation, back-projection, and/or other techniques are used in connection with source sub-aperture images or their equivalents, to generate dense light-field data.
CROSS-REFERENCE TO RELATED APPLICATION
The present application is related to U.S. Utility application Ser. No. 14/302,826 for “Depth Determination for Light-Field Images”, filed on Jun. 12, 2014 and issued on Mar. 24, 2015 as U.S. Pat. No. 8,988,317, which is incorporated herein by reference.
The present application is also related to U.S. Utility application Ser. No. 12/703,367 for “Light-Field Camera Image, File and Configuration Data, and Method of Using, Storing and Communicating Same,”, filed on Feb. 10, 2010, which is incorporated herein by reference.
The present application is also related to U.S. Utility application Ser. No. 13/774,971 for “Compensating for Variation in Microlens Position During Light-Field Image Processing,”, filed on Feb. 22, 2013 and issued on Sep. 9, 2014 as U.S. Pat. No. 8,831,377, which is incorporated herein by reference.
The present disclosure relates to systems and methods for reconstructing dense light-field data from sparse light-field data and/or from image data that does not include light-field data.
Light-field imaging is the capture of four-dimensional light-field data that provides not only spatial information regarding light received from a scene, but also angular information indicative of the angle of incidence of light received from the scene by the camera’s optical elements. Such four-dimensional information may be used to reconstruct a variety of two-dimensional images, including images at various focus depths, relative to the camera. More precisely, a plurality of sub-aperture images may be projected from a light-field. Each of these two-dimensional sub-aperture images can be considered a two-dimensional slice of the four-dimensional information. In a plenoptic light-field camera, a microlens array is used to capture an array of smaller images, each of which pertains to one of the microlenses. Each sub-aperture image is the image captured by combining pixels at the same location in each of the smaller images.
Unfortunately, known systems and methods lack the ability to easily generate four-dimensional light-field data from image data that does not include light-field data, or from image data that includes sparse light-field data.
According to various embodiments, dense light-field data can be generated from image data that does not include light-field data, or from image data that includes sparse light-field data. In at least one embodiment, the source light-field data may include one or more sub-aperture images that may be used to reconstruct the light-field in denser form. The source light-field may depict, for example, a two-dimensional or four-dimensional light-field. A first sub-aperture image that depicts the light-field from a first viewpoint may be retrieved, and a first value of interest pertinent to the first sub-aperture may be obtained. For a two-dimensional light-field, the first sub-aperture image may be a one-dimensional image. For a four-dimensional light-field, the first sub-aperture image may be a two-dimensional image.
The first value of interest may be used to generate the reconstructed light-field by extrapolating corresponding values for other sub-aperture images. The other sub-aperture images may include second and third sub-aperture images that depict the light-field from second and third viewpoints, respectively. Extrapolating the corresponding values may include extrapolating second and third values pertinent to the second and third sub-aperture images, respectively, based on relative positions of the first, second, and third viewpoints. Additional sub-aperture images may be retrieved and used to help fill holes in the reconstructed light-field resulting from occlusions caused by overlap of objects visible from the viewpoint(s) from which the sub-aperture images are captured.
The values of interest may be depths of one or more objects visible in the reconstructed light-field. Additionally or alternatively, the values of interest may be image values, such as hue, luminance, saturation, intensity, and/or color value, for the reconstructed light-field. Image values may be reconstructed by back-projecting images and depth maps for each of multiple viewpoints, and then combining the resulting light-fields into the reconstructed light-field. Additionally or alternatively, image values may be reconstructed by back-projecting depth maps first to generate a depth-field for the reconstructed light-field. The depth-field may then be used to back-project the images from the multiple viewpoints to generate the reconstructed light-field.
In other embodiments, the source data can take other forms. For example, in at least one embodiment, it can be data derived from or ancillary to a set of sub-aperture images. This data may include, for example, optical flow vectors, alpha masks, contours, gradients, surface normals, and/or the like.
In another embodiment, the source data can be synthetic data. For example, the source data may include computer-generated imagery that includes depth information; the equivalent of sub-aperture images can be generated from such synthetic data and used in the manner described herein to generate a reconstructed light-field.
In yet another embodiment, the source data can include captured image data that includes views and depth information, but does not include full light-field data. The captured views can be used as the equivalent of sub-aperture images, for applicability to the techniques described herein.
BRIEF DESCRIPTION OF THE DRAWINGS
The accompanying drawings depict several embodiments. Together with the description, they serve to explain the principles of the embodiments. One skilled in the art will recognize that the particular embodiments depicted in the drawings are merely exemplary, and are not intended to limit scope.
FIG. 1 depicts a portion of a light-field image, according to one embodiment.
FIG. 2 depicts an example of an architecture for implementing the methods of the present disclosure in a light-field capture device, according to one embodiment.
FIG. 3 depicts an example of an architecture for implementing the methods of the present disclosure in a post-processing system communicatively coupled to a light-field capture device, according to one embodiment.
FIG. 4 depicts an example of an architecture for a light-field camera for implementing the methods of the present disclosure according to one embodiment.
FIG. 5 is a flowchart diagram depicting a method by which a light-field may be reconstructed through the use of one or more sub-aperture images, according to one embodiment.
FIGS. 6A and 6B are a one-dimensional image and a two-dimensional light-field, respectively, in which the two-dimensional light-field has been reconstructed from the one-dimensional image with a positive depth value, according to one embodiment.
FIGS. 6C and 6D are a one-dimensional image and a two-dimensional light-field, respectively, in which the two-dimensional light-field has been reconstructed from the one-dimensional image with a negative depth value, according to one embodiment.
FIGS. 7A through 7C are a one-dimensional image, a two-dimensional light-field, and an original light-field, respectively, in which the two-dimensional light-field has been reconstructed from the one-dimensional image, according to one embodiment.
FIG. 8 depicts back-projections of various views, according to one embodiment.
FIG. 9 depicts the use of three one-dimensional sub-aperture views of the original light-field of FIG. 7C, according to one embodiment.
FIG. 10 depicts a merged back-projected light-field, which may be obtained via combination of the center sub-aperture, the left sub-aperture, the right sub-aperture, the top sub-aperture, and the bottom sub-aperture of FIG. 8, according to one embodiment.
FIG. 11 depicts the use of three one-dimensional sub-aperture views of an original light-field, according to one embodiment.
FIG. 12 is a process flow diagram depicting per-view back-projection, according to one embodiment.
FIG. 13 is a process flow diagram depicting depth-first back-projection, according to one embodiment.
FIG. 14 depicts the use of mosaics of images and depth maps to reconstruct a four-dimensional light-field, according to one embodiment.
FIG. 15 is an image depicting an exemplary arrangement of cameras in a circular format, as in a nine-camera rig, according to one embodiment.
FIGS. 16A and 16B are images depicting disparity, in pixels, at minimum and maximum lambda, respectively, according to one embodiment.
FIG. 17 is an image depicting the relative positions of the camera rig, the minimum lambda, the checkerboard target, the maximum lambda, and a computer-generated scene, according to one embodiment.
For purposes of the description provided herein, the following definitions are used: Aperture: an opening through which light enters a camera. Conventional image: an image that does not include angular information regarding captured rays of light (most commonly a two-dimensional image of a scene). Data store: a hardware element that provides volatile or nonvolatile digital data storage. Depth-field: depth data for every light-field ray indicative of the depth of one or more object in a scene, from multiple viewpoints. Disk: a region in a light-field image that is illuminated by light passing through a single microlens; may be circular or any other suitable shape. Epipolar image: an image formed by taking the (x,u) slice of the light-field at each (y, v), or (y,v) slice at each (x, u). This is defined in more detail in U.S. Utility application Ser. No. 14/302,826 for “Depth Determination for Light-Field Images”, filed on Jun. 12, 2014 and issued on Mar. 24, 2015 as U.S. Pat. No. 8,988,317, which is incorporated herein by reference. Epipolar slope: the slope of a line in an epipolar image. Lines in an epipolar image correspond to points in the real world, with the slope being proportional to its depth. Four-dimensional coordinate, or 4-D coordinate: The coordinates (x, y, u, v) used to index a four-dimensional light-field sample. (x, y) may be referred to as the spatial coordinate and (u, v) may be referred to as the angular coordinate. In a plenoptic light-field camera, (x, y) is the coordinate of the intersection point of a light ray with the microlens array, and (u, v) is that with the aperture plane. Image: a two-dimensional array of pixel values, or pixels, each specifying a color. Image data: digital data captured at a sensor that contains at least a portion of an image Image sensor, sensor, or photosensor: a sensor that produces electrical signals in proportion to light received. Light-field, or light-field data: image data representing a scene from multiple viewpoints. A light-field can exist in a variety of dimensions, such as two dimensions or four dimensions, with four dimensions being the most commonly captured for viewing. A light-field need not necessarily represent a scene in the real world, but may instead be represent a virtual scene such as a computer-generated scene. Light-field image: an image that contains a representation of light-field data captured at the sensor, including information regarding the angle at which light is received in the sensor. Light-field images are most commonly four-dimensional images, with two spatial coordinates and two angular coordinates, but may take other forms. Main lens: a lens or set of lenses that directs light from a scene along an optical path leading to an image sensor Microlens: a small lens, typically one in an array of similar microlenses. Microlens array: a pattern of microlenses. Plenoptic light-field camera: a camera that uses a microlens array to capture four-dimensional light-field data. Reconstructed light-field: a light-field that has been generated through the use of a subset of data representative of an entire light-field, such as one or more views of the entire light-field, which may be obtained from light-field image data, conventional image data, and/or synthetic image data. Sub-aperture image: for a plenoptic light-field camera, an image generated from light-field data from the same location on each microlens of a microlens array. Synthetic data: data regarding a synthetic scene, such as view and/or image data, as opposed to a scene that exists in the real world. Synthetic data is typically generated rather than captured. View: an image formed by taking the (x,y) slice of the light-field at a (u,v) coordinate; equivalent to and inclusive of a sub-aperture image for a plenoptic light-field camera. Value of interest: value to be reconstructed in a reconstructed light-field, such as depth and/or image values.
In addition, for ease of nomenclature, the term “camera” is used herein to refer to an image capture device or other data acquisition device. Such a data acquisition device can be any device or system for acquiring, recording, measuring, estimating, determining and/or computing data representative of a scene, including but not limited to two-dimensional image data, three-dimensional image data, and/or light-field data. Such a data acquisition device may include optics, sensors, and image processing electronics for acquiring data representative of a scene, using techniques that are well known in the art. One skilled in the art will recognize that many types of data acquisition devices can be used in connection with the present disclosure, and that the disclosure is not limited to cameras. Thus, the use of the term “camera” herein is intended to be illustrative and exemplary, but should not be considered to limit the scope of the disclosure. Specifically, any use of such term herein should be considered to refer to any suitable device for acquiring image data.
In the following description, several techniques and methods for processing light-field images are described. One skilled in the art will recognize that these various techniques and methods can be performed singly and/or in any suitable combination with one another.
In at least one embodiment, the system and method described herein can be implemented in connection with light-field images captured by light-field capture devices including but not limited to those described in Ng et al., Light-field photography with a hand-held plenoptic capture device, Technical Report CSTR 2005-02, Stanford Computer Science. Referring now to FIG. 2, there is shown a block diagram depicting an architecture for implementing the method of the present disclosure in a light-field capture device such as a camera 200. Referring now also to FIG. 3, there is shown a block diagram depicting an architecture for implementing the method of the present disclosure in a post-processing system 300 communicatively coupled to a light-field capture device such as a camera 200, according to one embodiment. One skilled in the art will recognize that the particular configurations shown in FIGS. 2 and 3 are merely exemplary, and that other architectures are possible for camera 200. One skilled in the art will further recognize that several of the components shown in the configurations of FIGS. 2 and 3 are optional, and may be omitted or reconfigured.
In at least one embodiment, camera 200 may be a light-field camera that includes light-field image data acquisition device 209 having optics 201, image sensor 203 (including a plurality of individual sensors for capturing pixels), and microlens array 202. Optics 201 may include, for example, aperture 212 for allowing a selectable amount of light into camera 200, and main lens 213 for focusing light toward microlens array 202. In at least one embodiment, microlens array 202 may be disposed and/or incorporated in the optical path of camera 200 (between main lens 213 and image sensor 203) so as to facilitate acquisition, capture, sampling of, recording, and/or obtaining light-field image data via image sensor 203. Referring now also to FIG. 4, there is shown an example of an architecture for a light-field camera, or camera 200, for implementing the method of the present disclosure according to one embodiment. The Figure is not shown to scale. FIG. 4 shows, in conceptual form, the relationship between aperture 212, main lens 213, microlens array 202, and image sensor 203, as such components interact to capture light-field data for one or more objects, represented by an object 401, which may be part of a scene 402.
In at least one embodiment, camera 200 may also include a user interface 205 for allowing a user to provide input for controlling the operation of camera 200 for capturing, acquiring, storing, and/or processing image data. The user interface 205 may receive user input from the user via an input device 206, which may include any one or more user input mechanisms known in the art. For example, the input device 206 may include one or more buttons, switches, touch screens, gesture interpretation devices, pointing devices, and/or the like.
Similarly, in at least one embodiment, post-processing system 300 may include a user interface 305 that allows the user to initiate processing, viewing, and/or other output of light-field images. The user interface 305 may additionally or alternatively facilitate the receipt of user input from the user to establish one or more parameters of subsequent image processing.
In at least one embodiment, camera 200 may also include control circuitry 210 for facilitating acquisition, sampling, recording, and/or obtaining light-field image data. For example, control circuitry 210 may manage and/or control (automatically or in response to user input) the acquisition timing, rate of acquisition, sampling, capturing, recording, and/or obtaining of light-field image data.
In at least one embodiment, camera 200 may include memory 211 for storing image data, such as output by image sensor 203. Such memory 211 can include external and/or internal memory. In at least one embodiment, memory 211 can be provided at a separate device and/or location from camera 200.
For example, camera 200 may store raw light-field image data, as output by image sensor 203, and/or a representation thereof, such as a compressed image data file. In addition, as described in related U.S. Utility application Ser. No. 12/703,367 for “Light-Field Camera Image, File and Configuration Data, and Method of Using, Storing and Communicating Same,”, filed on Feb. 10, 2010 and incorporated herein by reference, memory 211 can also store data representing the characteristics, parameters, and/or configurations (collectively “configuration data”) of device 209. The configuration data may include light-field image capture parameters such as zoom and focus settings.
In at least one embodiment, captured image data is provided to post-processing circuitry 204. The post-processing circuitry 204 may be disposed in or integrated into light-field image data acquisition device 209, as shown in FIG. 2, or it may be in a separate component external to light-field image data acquisition device 209, as shown in FIG. 3. Such separate component may be local or remote with respect to light-field image data acquisition device 209. Any suitable wired or wireless protocol can be used for transmitting image data 221 to circuitry 204; for example, the camera 200 can transmit image data 221 and/or other data via the Internet, a cellular data network, a Wi-Fi network, a Bluetooth communication protocol, and/or any other suitable means.
Such a separate component may include any of a wide variety of computing devices, including but not limited to computers, smartphones, tablets, cameras, and/or any other device that processes digital information. Such a separate component may include additional features such as a user input 215 and/or a display screen 216. If desired, light-field image data may be displayed for the user on the display screen 216.
* Light-Field Imaging Overview*
Light-field images often include a plurality of projections (which may be circular or of other shapes) of aperture 212 of camera 200, each projection taken from a different vantage point on the camera’s focal plane. The light-field image may be captured on image sensor 203. The interposition of microlens array 202 between main lens 213 and image sensor 203 causes images of aperture 212 to be formed on image sensor 203, each microlens in microlens array 202 projecting a small image of main-lens aperture 212 onto image sensor 203. These aperture-shaped projections are referred to herein as disks, although they need not be circular in shape. The term “disk” is not intended to be limited to a circular region, but can refer to a region of any shape.
Light-field images include four dimensions of information describing light rays impinging on the focal plane of camera 200 (or other capture device). Two spatial dimensions (herein referred to as x and y) are represented by the disks themselves. For example, the spatial resolution of a light-field image with 120,000 disks, arranged in a Cartesian pattern 400 wide and 300 high, is 400.times.300. Two angular dimensions (herein referred to as u and v) are represented as the pixels within an individual disk. For example, the angular resolution of a light-field image with 100 pixels within each disk, arranged as a 10.times.10 Cartesian pattern, is 10.times.10. This light-field image has a 4-D (x,y,u,v) resolution of (400,300,10,10). Referring now to FIG. 1, there is shown an example of a 2-disk by 2-disk portion of such a light-field image, including depictions of disks 102 and individual pixels 101; for illustrative purposes, each disk 102 is ten pixels 101 across.
In at least one embodiment, the 4-D light-field representation may be reduced to a 2-D image through a process of projection and reconstruction. As described in more detail in related U.S. Utility application Ser. No. 13/774,971 for “Compensating for Variation in Microlens Position During Light-Field Image Processing,”, filed on Feb. 22, 2013 and issued on Sep. 9, 2014 as U.S. Pat. No. 8,831,377, the disclosure of which is incorporated herein by reference, a virtual surface of projection may be introduced, and the intersections of representative rays with the virtual surface can be computed. The color of each representative ray may be taken to be equal to the color of its corresponding pixel.
* Light-Field Reconstruction*
There are many instances in which it may be desirable to construct, or reconstruct, a dense light-field from sparse light-field image data, or from image data that does not include light-field data. Four applications for these techniques will be discussed herein; those of skill in the art will recognize that these are merely exemplary, and the systems and methods provided herein may be used in many other instances.
First, the light-field may be captured with a light-field camera, but may not be captured with the desired level of density, or may not be preserved in the course of data transmission and/or processing. For example, if the light-field camera used to capture the light-field does not provide the desired angular resolution, it may be desirable to reconstruct the light-field so that it has higher resolution than that with which it was captured. Similarly, if the light-field data captured initially are compressed for storage and/or transmission, it may be desirable to reconstruct the density of the original light-field. In such instances, the systems and methods provided herein may be used to fill out the density of the light-field through the extrapolation of re-projections, such as sub-aperture views, of the sparse light-field.
Second, it may be desirable to utilize data derived from or ancillary to such sub-aperture images to reconstruct the light-field. For example, optical flow vectors, alpha masks, contours, gradients, surface normals, and/or the like may be obtained in connection with sub-aperture views. Such ancillary data may be used, for example, to apply traditional two-dimensional image processing techniques to a light-field without the need to rework them for four-dimensional application. Rather, such ancillary data may be extended from one or more views to additional views in order to apply image processing across the light-field.
Third, a light-field may be generated from synthetic data (i.e., image data that has not been captured by a camera). For example, computer generated renders from a camera rig, deep images, matte paintings, and/or the like may be used to provide image data from which a light-field may be constructed. In some embodiments, the synthetic data may optionally be used as the basis of a light-field that matches a captured light-field in some respects. Notably, in this application, “reconstruction” of a light-field will be interpreted to include construction of a light-field that never actually existed, as may be accomplished with re-projection of synthetic image data.
Fourth, a light-field may be generated based on the capture of non-light-field data, such as conventional imagery. For example, one or more camera rigs may be used to capture one or more images and/or associated depth information, without capturing the full light-field. The one or more camera rigs may be conventional cameras rather than light-field cameras. The systems and methods provided herein may be used to extrapolate the full light-field based on the limited images and/or depth information captured. Again, in this application, “reconstruction” of a light-field will be interpreted to include construction of a light-field that never actually existed.
The present disclosure will focus on the first use case provided above, i.e., use of sparse light-field data to reconstruct a denser light-field, by way of example. Thus, in many instances, the description below refers to sub-aperture images. However, those of skill in the art will recognize that the methods and techniques applied below to sub-aperture images may also be applied to any type of image data, which may include any type of view, including but not limited to sub-aperture images, views obtained from conventional images, and views obtained from synthetic image data, as mentioned above. In such applications and embodiments, the system may generate or obtain image data that is used as the equivalent of sub-aperture images for purposes of reconstruction or generation of a light-field using the techniques described herein.
Traditionally, generating a light-field requires a large number of views as input. Via the approach provided in the present disclosure, a smaller subset of views and a subset of depth maps may be used to reconstruct the light-field. In this application, the term “reconstruct” does not require the precise replication of an original light-field, but rather applies to approximations, with the possibility of loss of some color and/or depth information from the light-field to be reconstructed, or to generation of a new light-field based on synthetic image data. Furthermore, as mentioned above, such “reconstruction” can include techniques for generating a light-field where none existed before.
Referring to FIG. 5, a method is depicted, by which a light-field may be reconstructed through the use of one or more sub-aperture images, according to one embodiment. The light-field may have been captured by one or more plenoptic light-field cameras such as the light-field camera 200 of FIG. 2. Additionally or alternatively, the light-field may have been captured through the use of a different camera system.
The method may start 500 with a step 510 in which one or more sub-aperture images may be retrieved, for example, from a data store such as the memory 211 of the light-field camera 200 of FIG. 2 and/or the memory 211 of the post-processing system 300 of FIG. 3. The sub-aperture images may have been previously stored, for example, as part of a data compression process for reducing the stored size of the light-field. The sub-aperture images may be generated from the light-field to be reconstructed. As mentioned previously, the sub-aperture images may be generated by combining the pixels at the same location on each of the disk images of the light-field image. As mentioned previously, other types of image data can be used in place of sub-aperture images, particularly in applications where the light-field is being generated where none existed before.
In a step 520, a value of interest may be obtained from each of the one or more sub-aperture images. This value of interest may be the value that is to be reconstructed in the reconstructed light-field. For example, the value of interest may be a depth of one or more objects depicted in the sub-aperture images, if reconstructing the light-field is to include reconstruction of depth data. Additionally or alternatively, if reconstruction of the light-field is to include reconstruction of image data (for example, hue, luminance, saturation, and/or intensity data), the value of interest may be the image data for one or more pixels of the one or more sub-aperture images.
In a step 530, the value(s) of interest obtained in the step 520 may be used to generate the reconstructed light-field by extrapolating corresponding values for other sub-aperture images. This may yield values of interest, such as depth values and/or image values, for other sub-aperture images that were not retrieved in the step 510. These values of interest may be used, for example, via back-projection, to obtain the reconstructed light-field. The method may then end 590.
Examples will be presented below, depicting various ways in which the method may be carried out. The examples presented hereafter will commence with a discussion of reconstruction of the depth data, and then proceed to a discussion of reconstruction of the image data.
* Depth Back-Projection*
Initially, the case of back-projecting a depth map from single view into a light-field depth map will be presented. For simplicity, rather than looking at a four-dimensional light-field used to project two-dimensional images, a two-dimensional light-field and corresponding one-dimensional images will be presented.
Given a depth value in a single view (such as a center sub-aperture image), that value may be expanded along its epipolar slope to extrapolate depth values to the rest of the light-field. Epipolar slopes and images are described in related U.S. Utility application Ser. No. 14/302,826 for “Depth Determination for Light-Field Images”, filed on Jun. 12, 2014 and issued on Mar. 24, 2015 as U.S. Pat. No. 8,988,317, which is incorporated herein by reference. An epipolar image may be an image of a single line across a body of light-field data, which may provide an x,u plot of the data.
Expansion along epipolar slopes may provide depth values at every light-field point, and not just the points at the sub-aperture location. This will be shown and described in connection with FIGS. 6A through 6D.
FIGS. 6A and 6B depict a one-dimensional image 600 and a two-dimensional light-field 620, respectively, in which the two-dimensional light-field 620 has been reconstructed from the one-dimensional image 600 with a positive depth value, according to one embodiment. Similarly, FIGS. 6C and 6D depict a one-dimensional image 640 and a two-dimensional light-field 660, respectively, in which the two-dimensional light-field 660 has been reconstructed from the one-dimensional image 640 with a negative depth value, according to one embodiment.
Given a single background object at positive lambda (orange), as in FIG. 6A, the one-dimensional image 600 provides depth at the center sub-aperture. This is represented in the x,u plane of FIG. 6A as the orange line at u=0. The light-field refocusing equations provide that: .DELTA.x.varies..lamda..DELTA.n Accordingly, it follows that: dx/du.varies..lamda. Accordingly, the depth value can be extrapolated to the rest of the light-field by following the slope given by lambda. The same is true for FIG. 6C, in which a single background object is at negative lambda (blue). Some techniques for expanding values along epipolar slopes include, but are not limited to, resampling and ray height-field tracing, as known in the art.
A problem may arise when foreground and background objects are mixed. This will be described with reference to FIGS. 7A through 7C.
FIGS. 7A through 7C depict a one-dimensional image 700, a two-dimensional light-field 720, and an original light-field 740, respectively, in which the two-dimensional light-field 720 has been reconstructed from the one-dimensional image 700, depicting a foreground object (blue) in front of a larger background object (orange), according to one embodiment. The depth expansion along the epipolar slopes may end up looking like FIG. 7B, assuming that the foreground object occludes the background. As shown, there are significant holes in the back-projected depth map.
The disparities between FIGS. 7B and 7C show the loss of depth information that may occur. Specifically, FIG. 7C depicts how the reconstructed light-field should appear. However, since the information behind the occlusion is missing, holes are present in the back-projection of FIG. 7B. One potential solution is to interpolate in the missing values, which in this case would be filling in the holes with orange. However, this may not necessarily be correct, since it is not known, from the one-dimensional image 700 of FIG. 7A, whether the occluded values behind the blue object are actually orange. They may have a different depth that does not correspond to that of the orange portion of FIG. 7B. For example, the holes may more appropriately be represented by a color that is neither orange nor blue.
Techniques for filling in such holes are known in the art. Additionally or alternatively, more than one view may be used for back-projection to help fill in such holes, as described in the following section, with reference to image back-projection which will be described in greater detail in connection with FIGS. 12 and 13.
FIG. 8 depicts back-projections of various views, according to one embodiment. Specifically, back-projection of a center sub-aperture 810, a left sub-aperture 820, a right sub-aperture 830, a top sub-aperture 840, and a bottom sub-aperture 850 are depicted. Each of these sub-aperture views may contain holes (black) due to occlusion. These holes align differently depending on the position of the sub-aperture. Accordingly, information from these different sub-aperture views may be combined to fill in holes in the back-projection, as will be described below.
* Multi-View Back-Projection*
As mentioned above, one possible solution to the problem of holes in the back-projection is to employ more views. This may provide the ability to “look around” the occlusion and propagate the discovered values into the reconstructed light-field. For example, the light-field depth map of FIG. 7C may be used, but rather than using a single sub-aperture view, three views may be acquired. This will be shown and described in connection with FIG. 9.
FIG. 9 depicts the use of three one-dimensional sub-aperture views of the original light-field 740 of FIG. 7C, according to one embodiment. In addition to a center sub-aperture 922, a left sub-aperture 920 and a right sub-aperture 924 may also be used. Each of the center sub-aperture 922, the left sub-aperture 920 and the right sub-aperture 924 sub-aperture may be a one-dimensional slice of the two-dimensional, original light-field 740. Each of these one-dimensional slices may be expanded to extrapolate information from original light-field 740. In alternative embodiments, more or fewer sub-aperture views may be used.
For each of the center sub-aperture 922, the left sub-aperture 920 and the right sub-aperture 924, the same process of expanding the depth values along the epipolar slope may be applied, resulting in three back-projected depth maps. Specifically, FIG. 9 depicts a center depth map 932 back-projected from the center sub-aperture 922, a left depth map 930 back-projected from the left sub-aperture 920, and a right depth map 934 back-projected from the right sub-aperture 924. The center depth map 932, the left depth map 930, and the right depth map 934 may each have holes, but the holes are in different places for each depth map. Thus, the center depth map 932, the left depth map 930, and the right depth map 934 may be combined into a single one, yielding a reconstructed light-field 940 that is not missing depth data.
This combination may be carried out in various ways. According to one example, weighted averages may be used to combine the center depth map 932, the left depth map 930, and the right depth map 934. In any case, the result may be that a sparse light-field, such as a subset of sub-aperture views, can be extrapolated to a dense light-field by utilizing the constraints imposed by known depth maps. This may facilitate the reconstruction of a light-field of higher angular resolution from a light-field captured at lower resolution, a light-field compressed and represented through the use of a limited number of sub-aperture views, and/or the like.
FIG. 10 depicts a merged back-projected light-field 1000, which may be obtained via combination of the center sub-aperture 810, the left sub-aperture 820, the right sub-aperture 830, the top sub-aperture 840, and the bottom sub-aperture 850 of FIG. 8, according to one embodiment. Combination of these views has enabled occlusions to be filled in the back-projected light-field 1000.
* Keyhole Problem*
In some cases of occlusion, the use of a pre-defined set of additional sub-aperture views may not be sufficient to fill in the holes in the reconstructed light-field. For example, in a “keyhole” problem, a background object is only visible through a small hole in the foreground object. Because the hole is so small, the left and right sub-aperture views may only partially look around the occlusion. Combining the back-projected depths may still result in holes, although the holes may be smaller.
FIG. 11 depicts the use of three one-dimensional sub-aperture views of an original light-field 1110, according to one embodiment. In addition to a center sub-aperture 1122, a left sub-aperture 1120 and a right sub-aperture 1124 may also be used, as in FIG. 9. A center depth map 1132 may be back-projected from the center sub-aperture 1122, a left depth map 1130 may be back-projected from the left sub-aperture 1120, and a right depth map 1134 may be back-projected from the right sub-aperture 1124.
The center depth map 1132, the left depth map 1130, and the right depth map 1134 may each have holes; these holes may be in different places for each depth map. Unfortunately, the geometry of the occlusions may cause holes to be present in the reconstructed light-field 1140 generated from the combination of the center depth map 1132, the left depth map 1130, and the right depth map 1134.
This problem may be solved in various ways. According to some embodiments, the remaining holes may be filled by adding additional views, or by interpolating the existing information. Some reconstruction methods may employ iterative processes by which reconstruction is initially carried out with a limited number of sub-aperture views, and then new sub-aperture views are added as needed to enable such holes to be filled in.
* Image Back-Projection*
In the above examples, the depth values themselves were back-projected into a light-field. However, the systems and methods of the present disclosure are not limited to back-projection of depth values. Rather, any values can be back-projected, including image values. As described above in connection with depth values, the image values may be expanded along epipolar slopes. In cases in which image data is back-projected from sub-aperture views the result may be the creation of a dense light-field from a sparse light-field. There are many ways to accomplish this. Two ways will be described herein: per-view back-projection and depth-first back-projection.
* Per View Back-Projection*
FIG. 12 is a process flow diagram 1200 depicting per-view back-projection, according to one embodiment. In the case where the sub-aperture images have co-aligned depth maps, each view can be back-projected independently, and then the resulting back-projected light-fields can be combined together, for example via weighted averaging.
Thus, in FIG. 12, a view represented by a first image 1210 and a first depth map 1212 corresponding to the first image 1210 may be back-projected 1220 to generate a first light-field 1230. The same process may be carried out for one or more other views, up to an nth image 1240 and an nth depth map 1242 corresponding to the nth image 1240, which may be back-projected 1250 to generate an nth light-field 1260. The first light-field 1230 through the nth light-field 1260 may be merged 1270 together, for example via averaging or weighted averaging, to generate the reconstructed light-field 1280.
In the most straightforward case, the image values may be back-projected directly from the sub-aperture image (for example, the first image 1210 through the nth image 1240) given its corresponding depth map (the first depth map 1212 through the nth depth map 1242). In the alternative, the depth map may be back-projected first; the back-projected depth value may then be used to back-project the image value. This alternative method may be less straightforward in implementation, but may allow for more flexibility. In particular, back-projecting values using an already back-projected depth map may not require epipolar slope expansion.
For back-projecting values after depth back-projection, a depth value .lamda. for each light-field point (x, y, u, v) may be easily obtained. For a given sub-aperture at location (u’, v’), that light-field coordinate would project to x’=x-.lamda.(u-u’) and y’=y-.lamda.(v-v’). The normalization factor has been ignored here. The sub-aperture image may simply be sampled at (x’, y’) to obtain the light-field value at (x, y, u, v). In the case of occlusion, no .lamda. may exist, and the ray may correctly receive no information from this view.
One exemplary algorithm for carrying out per-view back-projection is as follows:
TABLE-US-00001 Input: views, lightfieldCoordinates numViews = views.size( ) for i = 0 to numViews – 1: backprojection[i] = BackProjectView(view[i], lightfieldCoordinates) endfor totalWeight = 0 for i = 0 to numViews – 1: (u, v) = view[i].coord( ) weight = Weight(u, v, lightfieldCoordinates) backprojection += backprojection[i]weight totalWeight += weight endfor backprojection /= totalWeight end // This implementation uses heightfield ray tracing BackProjectView(view, lightfieldCoordinates): backprojection = AllocateBuffer(lightfieldCoordinates) for (x, y, u, v) in lightfieldCoordinates: lambda = RayTraceHeightField(view.depth, x, y, u, v) if lambda: (x’, y’) = ProjectRay(x, y, u, v, view.coord( ), lambda) backprojection[x, y, u, v] = view.image.Sample(x’, y’)* end for return backprojection end**
Per-view back-projection may have some noteworthy advantages. The primary advantage of this approach may be simplicity. In particular, occlusion may be (mostly) automatically handled. A secondary advantage is flexibility, since not all views have to be processed to generate a back-projected light-field. In one use case, a minimal number of views may be back-projected, and if occlusions still exist (i.e. due to the keyhole problem), additional views may be back-projected without having to reprocess the original views. If memory efficiency is desired, the back-projected depth map may not need to be generated if back-projection is carried out directly from the sub-aperture images without back-projecting the depth map first.
* Depth-First Back-Projection*
FIG. 13 is a process flow diagram 1300 depicting depth-first back-projection, according to one embodiment. In this approach, the depth maps may be back-projected first and then combined into a single depth light-field (a “depth-field”). Thus, in FIG. 13, a plurality of depth maps, from a first depth map 1310 to an nth depth map 1312, are back-projected 1320 to generate a depth-field 1330.
Once the depth-field 1330 has been created, each view, for example, each of a plurality of images, from a first image 1340 to an nth image 1342, may be back-projected 1370 using the depth-field 1330. The resulting back-projections may be combined to generate the reconstructed light-field 1380. Through the aid of the present disclosure, a person of skill in the art will recognize how the exemplary algorithm for per-view back-projection may be modified to carry out depth-first back-projection.
During the back-projection of the images, care must be taken to handle occlusion. The depth-field 1330 will likely be fully populated, but this does not mean that a view will contain information for every ray.
Depth-first back-projection may also have a number of advantages. The principal advantage may be that the depth maps (the first depth map 1310 through the nth depth map 1312) need not necessarily be co-aligned with the sub-aperture images (the first image 1340 through the nth image 1342). A second advantage is that because the back-projected depth maps are combined first, additional processing can be used to improve the depth accuracy. Such additional processing can lead to more accurate depth values used during image back-projection.
Per-view back-projection and depth-first back-projection may both utilize the extrapolation methods set forth previously. Thus, a mosaic of images and/or depth maps may be used to generate the reconstructed light-field. This process is not limited to the one-dimensional sub-aperture images and two-dimensional light-fields provided in the preceding examples. Rather, such back-projection processes may be applied to two-dimensional sub-aperture images and depth maps, and may be used to reconstruct a four-dimensional (x,y,u,v) light-field.
FIG. 14 depicts the use of mosaics of images and depth maps to reconstruct a four-dimensional light-field, according to one embodiment. A mosaic 1400 of two-dimensional sub-aperture images and a mosaic 1420 of two-dimensional depth maps may be used as the inputs for a back-projection process, such as the depth-first back-projection process discussed previously. The result may be the generation of a four-dimensional reconstructed light-field 1440.
* Back-Projection of Computer-Generated Image Data to Light-Field*
In at least one embodiment, computer-generated imagery may be back-projected to reconstruct a light-field. According to one example, a first step is to render a number of views of the computer-generated scene. Since the rendering quality for such scenes is generally high and the depth information is often exact, it may not be necessary to back-project more than a subset of views. In at least one embodiment, in order to avoid aliasing artifacts, the views may be rendered at high resolution.
FIG. 15 depicts an example of an arrangement 1500 for back-projection of views captured by a nine-camera rig. Cameras 1510 are arranged in a circular format, as in a nine-camera rig, according to one embodiment. To achieve the proper convergence at the focal point (zero parallax), the lenses of the cameras 1510 may be shifted by a specific offset determined by the optics of the cameras 1510. The magnitude of the offset may be directly proportional to the exit pupil baseline of the light-field. The magnitude of the shift may be calculated so that parallax vanishes at a convergence point aligned with the focus plane. The disparity (in pixels) at the minimum and maximum refocusing distances may match the micro-lens diameter in pixels, as shown in FIGS. 16A and 16B.
Referring to FIGS. 16A and 16B, an image 1600 and an image 1650 depict the disparity, in pixels (gray region), at minimum and maximum lambda, respectively, according to one embodiment. Minimum and maximum lambda may represent the refocus distance limits when projecting a checkerboard target, as shown. These refocus limits can be calculated analytically for a given light-field capture setup.
Referring to FIG. 17, an image 1700 depicts the relative positions of the camera rig 1710, the minimum lambda 1720, the checkerboard target 1730, the maximum lambda 1740, and a computer-generated scene 1750, according to one embodiment. The computer-generated scene 1750 may advantageously match up with the physical layout of the captured light-field. Rendering a view may require color (for example, RGB) and depth data for the specific view to be rendered. In addition to the RGB data, alpha and/or other data may also be back-projected to the light-field. To improve back-projection quality, the render output may advantageously be higher resolution than the native sub-aperture views of the camera rig 1710.
The above description and referenced drawings set forth particular details with respect to possible embodiments. Those of skill in the art will appreciate that the techniques described herein may be practiced in other embodiments. First, the particular naming of the components, capitalization of terms, the attributes, data structures, or any other programming or structural aspect is not mandatory or significant, and the mechanisms that implement the techniques described herein may have different names, formats, or protocols. Further, the system may be implemented via a combination of hardware and software, as described, or entirely in hardware elements, or entirely in software elements. Also, the particular division of functionality between the various system components described herein is merely exemplary, and not mandatory; functions performed by a single system component may instead be performed by multiple components, and functions performed by multiple components may instead be performed by a single component.
Reference in the specification to “one embodiment” or to “an embodiment” means that a particular feature, structure, or characteristic described in connection with the embodiments is included in at least one embodiment. The appearances of the phrase “in one embodiment” in various places in the specification are not necessarily all referring to the same embodiment.
Some embodiments may include a system or a method for performing the above-described techniques, either singly or in any combination. Other embodiments may include a computer program product comprising a non-transitory computer-readable storage medium and computer program code, encoded on the medium, for causing a processor in a computing device or other electronic device to perform the above-described techniques.
Some portions of the above are presented in terms of algorithms and symbolic representations of operations on data bits within a memory of a computing device. These algorithmic descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. An algorithm is here, and generally, conceived to be a self-consistent sequence of steps (instructions) leading to a desired result. The steps are those requiring physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical, magnetic or optical signals capable of being stored, transferred, combined, compared and otherwise manipulated. It is convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers, or the like. Furthermore, it is also convenient at times, to refer to certain arrangements of steps requiring physical manipulations of physical quantities as modules or code devices, without loss of generality.
It should be borne in mind, however, that all of these and similar terms are to be associated with the appropriate physical quantities and are merely convenient labels applied to these quantities. Unless specifically stated otherwise as apparent from the following discussion, it is appreciated that throughout the description, discussions utilizing terms such as “processing” or “computing” or “calculating” or “displaying” or “determining” or the like, refer to the action and processes of a computer system, or similar electronic computing module and/or device, that manipulates and transforms data represented as physical (electronic) quantities within the computer system memories or registers or other such information storage, transmission or display devices.
Certain aspects include process steps and instructions described herein in the form of an algorithm. It should be noted that the process steps and instructions of described herein can be embodied in software, firmware and/or hardware, and when embodied in software, can be downloaded to reside on and be operated from different platforms used by a variety of operating systems.
Some embodiments relate to an apparatus for performing the operations described herein. This apparatus may be specially constructed for the required purposes, or it may comprise a general-purpose computing device selectively activated or reconfigured by a computer program stored in the computing device. Such a computer program may be stored in a computer readable storage medium, such as, but is not limited to, any type of disk including floppy disks, optical disks, CD-ROMs, magnetic-optical disks, read-only memories (ROMs), random access memories (RAMs), EPROMs, EEPROMs, flash memory, solid state drives, magnetic or optical cards, application specific integrated circuits (ASICs), and/or any type of media suitable for storing electronic instructions, and each coupled to a computer system bus. Further, the computing devices referred to herein may include a single processor or may be architectures employing multiple processor designs for increased computing capability.
The algorithms and displays presented herein are not inherently related to any particular computing device, virtualized system, or other apparatus. Various general-purpose systems may also be used with programs in accordance with the teachings herein, or it may prove convenient to construct more specialized apparatus to perform the required method steps. The required structure for a variety of these systems will be apparent from the description provided herein. In addition, the techniques set forth herein are not described with reference to any particular programming language. It will be appreciated that a variety of programming languages may be used to implement the techniques described herein, and any references above to specific languages are provided for illustrative purposes only.
Accordingly, in various embodiments, the techniques described herein can be implemented as software, hardware, and/or other elements for controlling a computer system, computing device, or other electronic device, or any combination or plurality thereof. Such an electronic device can include, for example, a processor, an input device (such as a keyboard, mouse, touchpad, trackpad, joystick, trackball, microphone, and/or any combination thereof), an output device (such as a screen, speaker, and/or the like), memory, long-term storage (such as magnetic storage, optical storage, and/or the like), and/or network connectivity, according to techniques that are well known in the art. Such an electronic device may be portable or nonportable. Examples of electronic devices that may be used for implementing the techniques described herein include: a mobile phone, personal digital assistant, smartphone, kiosk, server computer, enterprise computing device, desktop computer, laptop computer, tablet computer, consumer electronic device, television, set-top box, or the like. An electronic device for implementing the techniques described herein may use any operating system such as, for example: Linux; Microsoft Windows, available from Microsoft Corporation of Redmond, Wash.; Mac OS X, available from Apple Inc. of Cupertino, Calif.; iOS, available from Apple Inc. of Cupertino, Calif.; Android, available from Google, Inc. of Mountain View, Calif.; and/or any other operating system that is adapted for use on the device.
In various embodiments, the techniques described herein can be implemented in a distributed processing environment, networked computing environment, or web-based computing environment. Elements can be implemented on client computing devices, servers, routers, and/or other network or non-network components. In some embodiments, the techniques described herein are implemented using a client/server architecture, wherein some components are implemented on one or more client computing devices and other components are implemented on one or more servers. In one embodiment, in the course of implementing the techniques of the present disclosure, client(s) request content from server(s), and server(s) return content in response to the requests. A browser may be installed at the client computing device for enabling such requests and responses, and for providing a user interface by which the user can initiate and control such interactions and view the presented content.
Any or all of the network components for implementing the described technology may, in some embodiments, be communicatively coupled with one another using any suitable electronic network, whether wired or wireless or any combination thereof, and using any suitable protocols for enabling such communication. One example of such a network is the Internet, although the techniques described herein can be implemented using other networks as well.
While a limited number of embodiments has been described herein, those skilled in the art, having benefit of the above description, will appreciate that other embodiments may be devised which do not depart from the scope of the claims. In addition, it should be noted that the language used in the specification has been principally selected for readability and instructional purposes, and may not have been selected to delineate or circumscribe the inventive subject matter. Accordingly, the disclosure is intended to be illustrative, but not limiting.