IP Library Granted Patent US 9,179,091
Granted Patent B2
US 9,179,091 · App. 14/212,780 · Granted Nov 3, 2015

Avoiding flash-exposed frames during video recording

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,179,091
App. No.
14/212,780
Granted
Nov 3, 2015
Kind
B2
Abstract

A flash removal system identifies and removes flash lighting from a video. The flash removal system identifies flash-exposed frames in the video based on a time stamp of the frame, an average luminance of the frame, or a user input. The flash removal system generates a replacement frame for each identified flash-exposed frame based on at least one frame of the video. The flash removal system replaces the flash-exposed frames with the replacement frames, generating a modified video having reduced flash lighting.

Claims (102)

1. A method for removing flash lighting from a video, the method comprising:

recording a video using a camera, the video including a plurality of frames;

capturing, by the camera, a still photograph, the capturing including firing of a flash device;

identifying, by a computer, a flash-exposed frame in the video, the flash exposure resulting from the firing of the flash device during capturing of the still photograph;

generating a replacement frame for the identified flash-exposed frame, the replacement frame generated using at least one of the other frames in the plurality of frames;

replacing the flash-exposed frame in the video with the generated replacement frame; and

storing the video including the replacement frame.

2. The method of claim 1 , wherein generating the replacement frame for the flash-exposed frame comprises:

determining motion vectors describing motion of pixels from a frame preceding the flash-exposed frame to a frame subsequent to the flash-exposed frame;

interpolating the motion of the pixels between the preceding frame and the subsequent frame based on the determined motion vectors; and

generating the replacement frame based on the interpolated motion.

3. The method of claim 1 , wherein generating the replacement frame for the flash-exposed frame comprises:

rendering the flash-exposed frame as a three-dimensional scene having a plurality of light sources;

subtracting a light source of the plurality of light sources;

re-rendering the three-dimensional scene without the subtracted light source; and

generating the replacement frame based on the re-rendered scene.

4. The method of claim 1 , wherein identifying the flash-exposed frame comprises:

receiving a time stamp of an image captured during recording of the video; and

identifying a frame of the video corresponding to the time stamp as the flash-exposed frame.

5. The method of claim 1 , wherein generating the replacement frame for the flash-exposed frame comprises:

duplicating a frame adjacent to the flash-exposed frame in the video.

6. The method of claim 1 , further comprising:

identifying two or more frames of the video as flash-exposed frames;

responsive to a percentage of the frames of the video identified as flash-exposed frames being less than a threshold:

duplicating a frame adjacent to each flash-exposed frame in the video, and

replacing each flash-exposed frame in the video with a corresponding duplicated frame; and

responsive to the percentage being greater than the threshold:

rendering each flash-exposed frame as a three-dimensional scene having a plurality of light sources,

subtracting a light source of the plurality of light sources from each rendered frame,

re-rendering each three-dimensional scene without the subtracted light sources, and

generating a replacement frame for each flash-exposed frame based on the re-rendered scenes.

7. The method of claim 1 , further comprising:

identifying another flash-exposed frame of the video; and

deleting the other flash-exposed frame from the video.

8. The method of claim 1 , wherein the computer is located within the camera.

9. The method of claim 1 , wherein the computer is in communication with the camera via a network.

10. A camera system comprising:

a camera configured to:

record a video including a plurality of frames; and

capture a still photograph, the capturing including firing of a flash device; and

a flash removal system including:

a processor for executing computer program functions;

a non-transitory computer-readable storage medium storing computer program instructions, the computer program instructions comprising:

a flash detection module, executable by the processor, adapted to receive the video and identify a flash-exposed frame in the video; and

a frame replacement module, executable by the processor, adapted to generate a replacement frame for the identified flash-exposed frame using at least one of the other frames in the plurality of frames and replace the flash-exposed frame in the video with the generated replacement frame; and

a video storage adapted to store the video including the replacement frame.

11. The camera system of claim 10 , wherein the frame replacement module is further adapted to generate the replacement frame for the flash-exposed frame by:

duplicating a frame adjacent to the flash-exposed frame in the video.

12. The camera system of claim 10 , wherein the frame replacement module is further adapted to generate the replacement frame for the flash-exposed frame by:

determining motion vectors describing motion of pixels from a frame preceding the flash-exposed frame to a frame subsequent to the flash-exposed frame;

interpolating the motion of the pixels between the preceding frame and the subsequent frame based on the determined motion vectors; and

generating the replacement frame based on the interpolated motion.

13. The camera system of claim 10 , wherein the frame replacement module is further adapted to generate the replacement frame for the flash-exposed frame by:

rendering the flash-exposed frame as a three-dimensional scene having a plurality of light sources;

subtracting a light source of the plurality of light sources;

re-rendering the three-dimensional scene without the subtracted light source; and

generating the replacement frame based on the re-rendered scene.

14. The camera system of claim 10 , wherein the flash detection module is further adapted to identify the flash-exposed frame by:

receiving a time stamp of an image captured during recording of the video; and

identifying a frame of the video corresponding to the time stamp as the flash-exposed frame.

15. The camera system of claim 10 , wherein the flash detection module is adapted to identify two or more frames of the video as flash-exposed frames, and wherein the frame replacement module is further adapted to:

responsive to a percentage of the frames of the video identified as flash-exposed frames being less than a threshold:

duplicate a frame adjacent to each flash-exposed frame in the video, and replace each flash-exposed frame in the video with a corresponding duplicated frame; and

responsive to the percentage being greater than the threshold:

render each flash-exposed frame as a three-dimensional scene having a plurality of light sources,

subtract a light source of the plurality of light sources from each rendered frame,

re-render each three-dimensional scene without the subtracted light sources, and

generate a replacement frame for each flash-exposed frame based on the re-rendered scenes.

16. A non-transitory computer-readable medium storing computer program instructions for removing flash from a video, the computer program instructions executable to perform steps comprising:

identifying, by a computer, a flash-exposed frame in a video recorded using a camera, the video having a plurality of frames, the flash exposure resulting from a firing of a flash device of the camera during capturing of a still photograph;

generating a replacement frame for the identified flash-exposed frame, the replacement frame generated using at least one of the other frames in the plurality of frames;

replacing the flash-exposed frame in the video with the generated replacement frame; and

storing the video including the replacement frame.

17. The non-transitory computer-readable medium of claim 16 , wherein identifying the flash-exposed frame comprises:

determining an average luminance of the plurality of frames; and

identifying a frame having a luminance greater than the average luminance by at least a threshold amount as the flash-exposed frame.

18. The non-transitory computer-readable medium of claim 16 , wherein identifying the flash-exposed frame comprises:

determining an average luminance of the received frames;

determining a frame having a luminance greater than a threshold above the average luminance; and

identifying the determined frame as the flash-exposed frame.

19. The non-transitory computer-readable medium of claim 16 , further comprising identifying another flash-exposed frame in the video and generating a replacement frame for the other flash-exposed frame by:

determining motion vectors describing motion of pixels from a frame preceding the other flash-exposed frame in the frame sequence to a frame subsequent to the other flash-exposed frame in the frame sequence;

interpolating the motion of the pixels between the preceding frame and the subsequent frame based on the determined motion vectors; and

generating the replacement frame for the other flash-exposed frame based on the interpolated motion.

20. The non-transitory computer-readable medium of claim 16 , further comprising identifying another flash-exposed frame in the video and generating a replacement frame for the other flash-exposed frame by:

rendering the other flash-exposed frame as a three-dimensional scene having a plurality of light sources;

subtracting a light source of the plurality of light sources;

re-rendering the three-dimensional scene without the subtracted light source; and

generating the replacement frame for the other flash-exposed frame based on the re-rendered scene.

21. The non-transitory computer-readable medium of claim 16 , wherein identifying the flash-exposed frame comprises:

receiving a time stamp of an image captured during recording of the video; and

identifying a frame of the video corresponding to the time stamp as the flash-exposed frame.

22. The non-transitory computer-readable storage medium of claim 16 , wherein the computer program instructions are further executable to perform steps comprising:

identifying two or more frames of the video as flash-exposed frames;

responsive to a percentage of the frames of the video identified as flash-exposed frames being less than a threshold:

duplicating a frame adjacent to each flash-exposed frame in the video, and

replacing each flash-exposed frame in the video with a corresponding duplicated frame; and

responsive to the percentage being greater than the threshold:

rendering each flash-exposed frame as a three-dimensional scene having a plurality of light sources,

subtracting a light source of the plurality of light sources from each rendered frame,

re-rendering each three-dimensional scene without the subtracted light sources, and

generating a replacement frame for each flash-exposed frame based on the re-rendered scenes.

Assignments (2)
CHANGE OF NAME Recorded Oct 2, 2017
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 044334/0466 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 27, 2015
From: BEZMAN, ARKADY; YANG, AUDREY YA-JUN
To: GOOGLE INC.
Reel/Frame 036442/0929 →