IP Library Granted Patent US 9,930,271
Granted Patent B2
US 9,930,271 · App. 15/080,280 · Granted Mar 27, 2018

Automatic composition of video with dynamic background and composite frames selected based on frame 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 9,930,271
App. No.
15/080,280
Filed
Mar 24, 2016
Granted
Mar 27, 2018
Kind
B2
Art Unit
2665
USPC
382/181
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 (65)

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

receiving a current video frame for processing from the sequence of frames;

determining, by a processing device, whether the current video frame meets first criteria;

responsive to the current video frame meeting the first criteria, performing, by the processing device, a foreground/background segmentation based on a predictive model to extract a foreground object image from the current video frame, the foreground object image comprising a representation of a foreground object depicted in the current video frame with background pixels subtracted, and storing the foreground object image to a foreground object list that stores a plurality of previously extracted foreground object images;

overlaying each of the foreground object images in the foreground object list onto the current video frame to generate a composite video frame;

determining whether the current video frame meets second criteria; and

responsive to the current video frame meeting the second criteria, updating the predictive model.

2. The method of claim 1 , further comprising:

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.

3. The method of claim 1 , wherein determining whether the current video frame meets the first criteria comprises:

determining if a frame number of the current video frame is a multiple of a predefined integer Y.

4. The method of claim 1 , wherein determining whether the current video frame meets second criteria comprises:

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

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:

receiving a current video frame for processing from the sequence of frames;

determining whether the current video frame meets first criteria;

responsive to the current video frame meeting the first criteria, performing a foreground/background segmentation based on a predictive model to extract a foreground object image from the current video frame, the foreground object image comprising a representation of a foreground object depicted in the current video frame with background pixels subtracted, and storing the foreground object image to a foreground object list that stores a plurality of previously extracted foreground object images;

overlaying each of the foreground object images in the foreground object list onto the current video frame to generate a composite video frame;

determining whether the current video frame meets second criteria; and

responsive to the current video frame meeting the second criteria, updating the predictive model.

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

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.

9. The non-transitory computer-readable storage medium of claim 7 , wherein determining whether the current video frame meets the first criteria comprises:

determining if a frame number of the current video frame is a multiple of a predefined integer Y.

10. The non-transitory computer-readable storage medium of claim 7 , wherein determining whether the current video frame meets second criteria comprises:

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

11. The non-transitory computer-readable storage medium of claim 7 , 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.

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

13. A system comprising:

one or more processors; and

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 the one or more processors causing the one or more processors to perform steps comprising:

receiving a current video frame for processing from the sequence of frames;

determining whether the current video frame meets first criteria;

responsive to the current video frame meeting the first criteria, performing a foreground/background segmentation based on a predictive model to extract a foreground object image from the current video frame, the foreground object image comprising a representation of a foreground object depicted in the current video frame with background pixels subtracted, and storing the foreground object image to a foreground object list that stores a plurality of previously extracted foreground object images;

overlaying each of the foreground object images in the foreground object list onto the current video frame to generate a composite video frame;

determining whether the current video frame meets second criteria; and

responsive to the current video frame meeting the second criteria, updating the predictive model.

14. The system of claim 13 , wherein the instructions when executed further cause the one or more processors to perform steps including:

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.

15. The system of claim 13 , wherein determining whether the current video frame meets the first criteria comprises:

determining if a frame number of the current video frame is a multiple of a predefined integer Y.

16. The system of claim 13 , wherein determining whether the current video frame meets second criteria comprises:

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

17. The system of claim 13 , 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.

18. The system of claim 13 , wherein the predictive model comprises an adaptive Gaussian Mixture Model.

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 Sep 5, 2018
From: GOPRO, INC.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 047016/0417 →
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 038117/0390 →
Continuity (2)
Provisional Application 62233882 · Sep 28, 2015
Related Publication 20170094192A1 · Mar 30, 2017