IP Library Granted Patent US 10,051,206
Granted Patent B2
US 10,051,206 · App. 15/080,292 · Granted Aug 14, 2018

Automatic composition of video with dynamic background and composite frames selected based on frame and foreground object criteria

Inventors: Balineedu Chowdary Adsumilli (San Mateo, CA); Ryan Lustig (Encinitas, CA)
Assignee: GOPRO, INC.
H04N5/272G06T5/002G06T7/11G06T7/143G06T7/174G06T7/194G06T7/20G06T7/254G06T11/60G06T15/503H04N5/2356H04N13/0022G06T2207/10016G06T2207/10021G06T2207/20036H04N2013/0085H04N2013/0092
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 10,051,206
App. No.
15/080,292
Granted
Aug 14, 2018
Kind
B2
Abstract

A processing device generates composite images from a sequence of images. The composite images may be used as frames of video. A foreground/background segmentation is performed at selected frames to extract a plurality of foreground object images depicting a foreground object at different locations as it moves across a scene. The foreground object images are stored to a foreground object list. The foreground object images in the foreground object list are overlaid onto subsequent video frames that follow the respective frames from which they were extracted, thereby generating a composite video.

Claims (82)

1. A method for generating a composite output video from an input video having a sequence of frames, the method comprising:

selecting from the sequence of frames, a range of frames for processing; training a predictive model based on a plurality of training video frames, the predictive model determining whether a pixel in a given video frame belongs to a background model or foreground object;

performing, by a processing device, a foreground/background segmentation on each of the frames in the range of frames to extract a plurality of candidate foreground object images based on the predictive model, each of the candidate foreground object images comprising a representation of the foreground object depicted in a corresponding video frame with background pixels subtracted;

selecting, based on an image metric, a selected foreground object image from the plurality of candidate foreground object images;

storing the selected foreground object image to a foreground object list;

overlaying the stored foreground object image in the foreground object list on a current video frame to generate a composite video frame;

determining if a frame number of the current video frame is a multiple of a predefined integer X and responsive to the frame number of the current video frame being the multiple of the predefined integer X, updating the predictive model.

2. The method of claim 1 , wherein selecting the selected foreground object image comprises:

determining an image quality metric for each of the candidate foreground object images; and

determining that the selected foreground object image has a highest quality metric.

3. The method of claim 1 , wherein selecting the selected foreground object image comprises:

determining a face detection likelihood on each of the candidate foreground object images; and

determining that the selected foreground object image has a highest face detection likelihood.

4. The method of claim 1 , wherein selecting the selected foreground object image comprises:

determining a motion parameter for each of the candidate foreground object images; and

determining that the selected foreground object image has a motion parameter best matching a predefined motion criteria.

5. The method of claim 1 , wherein performing the foreground/background segmentation comprises:

obtaining a preliminary foreground object image;

applying a filter to reduce noise in the preliminary foreground object image to generate a filtered image;

detecting a filled convex hull region in the preliminary foreground object image;

adding extra pixels from the filtered image to the preliminary foreground object image to generate a temporary image;

discarding pixels in the temporary image outside the filled convex hull region to generate a noisy convex hull image; and

closing gaps in foreground regions of the noisy convex hull image to generate the foreground object image.

6. The method of claim 1 , wherein the predictive model comprises an adaptive Gaussian Mixture Model.

7. A non-transitory computer-readable storage medium storing instructions for generating a composite output video from an input video having a sequence of frames, the instructions when executed by a processor causing the processor to perform steps comprising:

selecting from the sequence of frames, a range of frames for processing;

performing a foreground/background segmentation on each of the frames in the range of frames to extract a plurality of candidate foreground object images based on a predictive model, each of the candidate foreground object images comprising a representation of a foreground object depicted in a corresponding video frame with background pixels subtracted;

selecting, based on an image metric, a selected foreground object image from the plurality of candidate foreground object images;

storing the selected foreground object image to a foreground object list; and

overlaying the stored foreground object image in the foreground object list on a current video frame to generate a composite video frame;

wherein the performing of the foreground/background segmentation comprises:

obtaining a preliminary foreground object image;

applying a filter to reduce noise in the preliminary foreground object image to generate a filtered image;

detecting a filled convex hull region in the preliminary foreground object image;

adding extra pixels from the filtered image to the preliminary foreground object image to generate a temporary image;

discarding pixels in the temporary image outside the filled convex hull region to generate a noisy convex hull image; and

closing gaps in foreground regions of the noisy convex hull image to generate the foreground object image.

8. The non-transitory computer-readable storage medium of claim 7 , wherein selecting the selected foreground object image comprises:

determining an image quality metric for each of the candidate foreground object images; and

determining that the selected foreground object image has a highest quality metric.

9. The non-transitory computer-readable storage medium of claim 7 , wherein selecting the selected foreground object image comprises:

determining a face detection likelihood on each of the candidate foreground object images; and

determining that the selected foreground object image has a highest face detection likelihood.

10. The non-transitory computer-readable storage medium of claim 7 , wherein selecting the selected foreground object image comprises:

determining a motion parameter for each of the candidate foreground object images; and

determining that the selected foreground object image has a motion parameter best matching a predefined motion criteria.

11. The non-transitory computer-readable storage medium of claim 7 , wherein the instructions when executed further cause the processor to perform a step of:

training the predictive model based on a plurality of training video frames, the predictive model to predict whether a pixel in a given video frame belongs to a background model or the foreground object.

12. The non-transitory computer-readable storage medium of claim 11 , wherein the instructions when executed further cause the processor to perform the steps of:

determining if a frame number of the current video frame is a multiple of a predefined integer X; and

responsive to the frame number of the current video frame being the multiple of the predefined integer X, updating the predictive model.

13. The non-transitory computer-readable storage medium of claim 7 , wherein the predictive model comprises an adaptive Gaussian Mixture Model.

14. A camera apparatus comprising:

one or more processor apparatus; and

a non-transitory computer-readable storage medium configured to store instructions for generating a composite output video from an input video having a sequence of frames, the instructions being configured to, when executed by the one or more processor apparatus, cause the camera apparatus to:

select from the sequence of frames, a range of frames for processing;

perform a foreground/background segmentation on each of the frames in the range of frames to extract a plurality of candidate foreground object images based on a predictive model, each of the candidate foreground object images comprising a representation of a foreground object depicted in a corresponding video frame with background pixels subtracted;

select, based on an image metric, a selected foreground object image from the plurality of candidate foreground object images;

store the selected foreground object image to a foreground object list;

overlay the stored foreground object image in the foreground object list on a current video frame to generate a composite video frame;

determine if a frame number of the current video frame is a multiple of a predefined integer X; and

responsive to the frame number of the current video frame being the multiple of the predefined integer X, update the predictive model.

15. The camera apparatus of claim 14 , wherein the selection of the selected foreground object image comprises:

determination of an image quality metric for each of the candidate foreground object images; and

determination that the selected foreground object image has a highest quality metric.

16. The camera apparatus of claim 14 , wherein the selection of the selected foreground object image comprises:

determination of a face detection likelihood on each of the candidate foreground object images; and

determination that the selected foreground object image has a highest face detection likelihood.

17. The camera apparatus of claim 14 , further comprising wherein the selection of the selected foreground object image comprises:

determination of a motion parameter for each of the candidate foreground object images; and

determination that the selected foreground object image has a motion parameter best matching a predefined motion criteria.

18. The camera apparatus of claim 14 , wherein the instructions that cause the camera apparatus to perform the foreground/background segmentation further comprise instructions configured to cause the camera apparatus to:

obtain a preliminary foreground object image;

apply a filter to reduce noise in the preliminary foreground object image to generate a filtered image;

detect a filled convex hull region in the preliminary foreground object image;

add extra pixels from the filtered image to the preliminary foreground object image to generate a temporary image;

discard pixels in the temporary image outside the filled convex hull region to generate a noisy convex hull image; and

close gaps in foreground regions of the noisy convex hull image to generate the foreground object image.

19. The camera apparatus of claim 14 , wherein the instructions are further configured to, when executed by the one or more processor apparatus, cause the camera apparatus to train the predictive model based on a plurality of training video frames, the predictive model configured to predict whether a pixel in a given video frame belongs to a background model or the foreground object.

20. The camera apparatus of claim 14 , wherein the camera apparatus is configured to be in data communication with a network, the network comprising the camera apparatus and one or more of a server entity and a client device;

wherein the client device comprises a user device configured to receive inputs from a user, and transmit and receive data via the network; and

wherein the server entity is configured to store multimedia data captured by the camera apparatus, and provide a user interface for interaction by a user.

Assignments (6)
SECURITY INTEREST Recorded Aug 4, 2025
From: GOPRO, INC.
To: FARALLON CAPITAL MANAGEMENT, L.L.C., AS AGENT
Reel/Frame 072340/0676 →
SECURITY INTEREST Recorded Aug 4, 2025
From: GOPRO, INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS AGENT
Reel/Frame 072358/0001 →
RELEASE OF PATENT SECURITY INTEREST Recorded Jan 25, 2021
From: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
To: GOPRO, INC.
Reel/Frame 055106/0434 →
SECURITY INTEREST Recorded Dec 3, 2018
From: GOPRO, INC.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 047713/0309 →
SECURITY AGREEMENT Recorded Aug 29, 2016
From: GOPRO, INC.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 039851/0611 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 28, 2016
From: ADSUMILLI, BALINEEDU CHOWDARY; LUSTIG, RYAN
To: GOPRO, INC.
Reel/Frame 038276/0046 →
Continuity (2)
Provisional Application 62233882 · Sep 28, 2015
Related Publication 20170094194A1 · Mar 30, 2017