Advances in Virtual Reality (VR) technologies have resulted in an increased demand for the generation of panoramic and three hundred and sixty degree (360-degree) video. The generation of detailed and accurate representations of a local environment, for example, can be of value in the production of immersive VR content used in games, simulators, and other VR applications.
Especially compelling video can be obtained when a video camera is attached to a robotic vehicle, such as an aerial drone, capable of providing environmental perspectives that are unavailable to a land based camera operator. In the case of 360-degree video, however, the aerial drone or other robotic vehicle will often be present in the field of view of the video camera, which undesirably reduces the immersion of a user viewing the 360-degree video.
There are provided systems and methods for performing image cancellation from video, substantially as shown in and/or described in connection with at least one of the figures, and as set forth more completely in the claims.
The following description contains specific information pertaining to implementations in the present disclosure. One skilled in the art will recognize that the present disclosure may be implemented in a manner different from that specifically discussed herein. The drawings in the present application and their accompanying detailed description are directed to merely exemplary implementations. Unless noted otherwise, like or corresponding elements among the figures may be indicated by like or corresponding reference numerals. Moreover, the drawings and illustrations in the present application are generally not to scale, and are not intended to correspond to actual relative dimensions.
As stated above, advances in Virtual Reality (VR) technologies have resulted in an increased demand for the generation of panoramic and three hundred and sixty degree (360-degree) video. The generation of detailed and accurate representations of a local environment, for example, can be of value in the production of immersive VR content used in games, simulators, and other VR applications.
Especially compelling video can be obtained when a video camera is attached to a robotic vehicle, such as an aerial drone, capable of providing environmental perspectives that are unavailable to a land based camera operator. However, and as also stated above, in the case of 360-degree video, the aerial drone or other robotic vehicle will often be present in the field of view of the video camera, which undesirably reduces the immersion of a user viewing the 360-degree video.
The present application discloses systems and methods for performing image cancellation from video that advantageously enable the selective cancellation of undesired object images from a frame of video. The present image cancellation solution includes mapping a video frame from its original representation to a centered representation in which the undesired object image is shifted within the frame so as not to intersect a boundary of the frame. By filtering the mapped frame to remove features of the undesired object image that appear to be in motion, and then inpainting the mapped frame, the present solution masks the presence of the undesired object image in the frame. By reverse mapping the mapped frame having the undesired object image masked to its original representation, and then compositing the reverse mapped frame with the video frame in its original form, the present solution enables selective cancellation of the undesired object image while advantageously preserving substantially all other features of the original video frame.
As further shown in
It is noted that although
As a result, hardware processor 104 and system memory 106 may correspond to distributed processor and memory resources within video processing system 100. Thus, it is to be understood that various portions of image cancellation software code 110, such as one or more of the features described below by reference to
According to the implementation shown by
Although user device 150 is shown as a desktop computer in
It is noted that, in various implementations, inpainted video 166, when produced using image cancellation software code 110, may be stored in system memory 106 and/or may be copied to non-volatile storage (not shown in
Also shown in
According to the implementation shown in
The functionality of image cancellation software code 110/210 will be further described by reference to
Also shown in
Video 460 and inpainted video 466 correspond respectively in general to video 160 and inpainted video 166, in
Referring now to
As noted above, video 160/460 includes multiple video frames corresponding to received frame of video 461. Referring to
As shown in
Flowchart 300 continues with detecting object image 580 for cancellation from received frame of video 461/561 (action 361). As noted above, in VR applications, especially compelling video can be obtained from a video camera mounted on a robotic vehicle, such as an aerial drone. However, and as also noted above, in the case of 360-degree video, portions of the aerial drone or other robotic vehicle will often be present in the field of view of the video camera, resulting in the presence of an undesirable image in the video frames. For example, according to the exemplary implementation shown in
It is noted that although object image 580 is depicted to include portions of an aerial drone, that representation is merely exemplary. More generally, object image 580 may correspond to any object image present in a frame of video and for which removal of the object image from the frame of video is desirable. Nevertheless, in the interest of conceptual clarity, object image 580 may be described as “aerial drone image 580” below with reference to
Detection of object image 580 for cancellation from received frame of video 461/561 may be performed by image cancellation software code 110/210/410, executed by hardware processor 104/254. In some implementations, the detection of object image 580 for cancellation from received frame of video 461/561 may be performed as an automated process by image cancellation software code 110/210/410, using object detection module 471. However, in other implementations, detection of object image 580 for cancellation from received frame of video 461/561 may be performed by image cancellation software code 110/210/410 based on an input from a human user, such as user 140, identifying object image 580 for cancellation.
Flowchart 300 continues with, mapping received frame of video 461/561 from an original representation, e.g., the equirectangular representation shown in
Referring to
Mapping of received frame of video 461/561 from its original representation to the centered representation shown by mapped frame 462/562 in
One technique for performing the mapping of action 362 includes rendering received frame of video 461/561 into a virtual fisheye camera that points upwards in the direction of the aerial drone body and has a sufficiently large field of view. Another technique for performing the mapping of action 362 is to rotate the coordinate system underlying the equirectangular representation of received frame of to video 461/561, as shown by exemplary mapped frame 462/562 of
Flowchart 300 continues with filtering mapped frame 462/562 to remove features of object image 580 that appear to be in motion, e.g., rotors 584 of aerial drown image 580 (action 363). Filtering of mapped frame 462/562 to remove features of object image 580 that appear to be in motion may be performed by image cancellation software code 110/210/410, executed by hardware processor 104/254, and using motion filtering module 473.
In one exemplary implementation, a temporal median filter may be utilized that discards sample points that are determined to be too close to the color distribution present in rotors 584 before evaluating the median.
Flowchart 300 continues with inpainting mapped and filtered frame of video 463/563 to mask object image 580 (action 364). Inpainting of mapped and filtered frame of video 463/563 to mask object image 580 may be performed by image cancellation software code 110/210/410, executed by hardware processor 104/254, and using inpainting module 474.
In implementations in which object image 580 is a rigid object fixed to the video camera or cameras capturing received frame of video 461/561, it is sufficient to have a single rough mask that segments the area occupied by object image 580. Such a mask can either be computed with common segmentation methods or may be specified by hand. It is typically not crucial to have an exact segmentation of object image 580. However, it is important to ensure that all of object image 580 is contained within the mask. As a result, it may be advantageous or desirable to perform some amount of dilation in case the mask was obtained from an automatic segmentation method.
Let the image domain be denoted by Ω ⊂ R2 and the mask that specifies the location of object image 580 be denoted by K ⊂ Ω such that object image is expected to be fully enclosed by K. A color channel of object image 580 may be expressed as f: Ω→R. Because the computation is equivalent for all color channels, the computation for only a single color channel is described herein. In that case, an inpainting problem can be phrased as computing an unknown function u that satisfies the following conditions:
u=f on Ω\K (1)
u−0 on K (2)
with a suitable differential operator and natural boundary conditions. Given that aerial drone image 580 is expected to occlude the sky, a differential operator =div2(u) may be selected that is well suited for creating smooth and substantially seamless fill-ins. That differential operator and the associated natural boundary conditions can be derived as the minimizer of the following energy function when using the calculus of variations:
E(u)=∫Ω∥u∥2dx. (3)
This corresponds to a thin plate spline energy, and denotes the Hessian matrix. The elliptic partial differential equation (2) can then be discretised using finite differences, and the resulting system of equations can be solved using the successive overrelaxation solver with relaxation parameter ω=1:8. It is noted that a solution needs to be computed only within the masked region K, while the rest of the pixels can remain untouched over the entire optimization process.
Flowchart 300 continues with reverse mapping the mapped and filtered frame of video having the object image masked, i.e., masked frame 464/564, to the original representation (action 365). Reverse mapping of masked frame 464/564 to the original representation shown by
Flowchart 300 can conclude with compositing reverse mapped frame 465 with received frame of video 461/561 to produce inpainted frame of video 467 from which object image 580 has been cancelled (action 366). Compositing of reverse mapped frame 465 with received frame of video 461/561 to produce inpainted frame of video 467 may be performed by image cancellation software code 110/210/410, executed by hardware processor 104/254, and using compositing module 476.
Referring to
As shown in
Thus, the present application discloses systems and methods for performing image cancellation from video that advantageously enable the selective cancellation of undesired object images from a frame of video. The present image cancellation solution includes mapping a video frame from its original representation to a centered representation in which the undesired object image is shifted within the frame so as not to intersect a boundary of the frame. By filtering the mapped frame to remove features of the undesired object image that appear to be in motion, and then inpainting the mapped frame, the present solution masks the presence of the undesired object image in the frame. By reverse mapping the mapped frame having the undesired object image masked to its original representation, and then compositing the reverse mapped frame with the video frame in its original form, the present solution enables selective cancellation of the undesired object image while preserving substantially all other features of the original video frame.
From the above description it is manifest that various techniques can be used for implementing the concepts described in the present application without departing from the scope of those concepts. Moreover, while the concepts have been described with specific reference to certain implementations, a person of ordinary skill in the art would recognize that changes can be made in form and detail without departing from the scope of those concepts. As such, the described implementations are to be considered in all respects as illustrative and not restrictive. It should also be understood that the present application is not limited to the particular implementations described herein, but many rearrangements, modifications, and substitutions are possible without departing from the scope of the present disclosure.
The present application claims the benefit of and priority to a pending Provisional Patent Application Ser. No. 62/472,723, filed Mar. 17, 2017, and titled “Inpainting Method for Drone Removal from 360-degree VR Video,” which is hereby incorporated fully by reference into the present application.
Number | Name | Date | Kind |
---|---|---|---|
9277122 | Imura | Mar 2016 | B1 |
9536335 | Abdollahian | Jan 2017 | B2 |
9886746 | Karande | Feb 2018 | B2 |
20040252886 | Pan | Dec 2004 | A1 |
20050129324 | Lemke | Jun 2005 | A1 |
20110044514 | Rahmes | Feb 2011 | A1 |
20160073023 | Rondinelli | Mar 2016 | A1 |
20160140392 | Gurbuz | May 2016 | A1 |
20160275708 | Abdollahian | Sep 2016 | A1 |
20170053169 | Cuban | Feb 2017 | A1 |
20170076429 | Russell | Mar 2017 | A1 |
Entry |
---|
Sayer, Peter. “The Janus 360 Drone Shoots Hi-Def. All-Around Immersive Video.” IT News, Jun. 15, 2016. pp. 1-4. |
“Aerial Stereoscopic 360 Video and Images for True Live-Action Virtual Reality.”, .OpticalFlow. . . Aug. 3, 2016. Web. Apr. 26, 2017. pp. 1-10. |
“Lowered Gimbal Mount to Remove Props from Video.” PhatomPilots.com, Web. Apr. 26, 2017. pp. 1-10. |
“Props in Video.” PhatomPilots.com. Web. Apr. 26, 2017. pp. 1-10. |
Number | Date | Country | |
---|---|---|---|
20180268527 A1 | Sep 2018 | US |
Number | Date | Country | |
---|---|---|---|
62472723 | Mar 2017 | US |