IP Library Granted Patent US 11,637,971
Granted Patent B2
US 11,637,971 · App. 17/401,895 · Granted Apr 25, 2023

Automatic composition of composite images or videos from frames captured with moving camera

Inventors: Balineedu Chowdary Adsumilli (San Francisco, CA); Ryan Lustig (Encinitas, CA)
Assignee: GoPro, Inc.
H04N5/272G06T5/002G06T7/11G06T7/143G06T7/174G06T7/194G06T7/20G06T7/254G06T11/60G06T15/503H04N5/2356H04N13/128G06T2207/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 11,637,971
App. No.
17/401,895
Granted
Apr 25, 2023
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 (44)

1. A method for generating a composite image of an object from a plurality of image frames obtained via a camera experiencing motion, the method comprising:

generating foreground object images of the object from the plurality of image frames based on a foreground-background segmentation;

obtaining motion information of the camera for the plurality of image frames;

determining relative positions of the camera for the plurality of image frames with respect to a current position of the camera for a current frame based on the motion information of the camera;

generating transformed foreground object images by transforming the foreground object images based on the relative positions of the camera for the plurality of image frames with respect to the current position of the camera for the current frame, wherein the transforming of the foreground object images comprises applying a partial transparency to at least one of the foreground object images; and

generating the composite output image based an overlay of the transformed foreground object images onto the current frame.

2. The method of claim 1 , wherein the transforming of the foreground object images is performed based on an inverse of motion of the camera between the relative positions of the camera for the plurality of image frames with respect to the current position of the camera for the current frame.

3. The method of claim 1 , wherein the transforming of the foreground object images further comprises translating of the foreground object images based on a change in a pointing orientation of the camera.

4. The method of claim 1 , further comprising generating a set of candidate foreground object images based at least on the foreground-background segmentation, the generating of the foreground object images comprising selecting the foreground object images from the set of candidate foreground object images;

wherein the selecting of individual ones of the foreground object images occurs at least once every prescribed range of frames.

5. The method of claim 1 , wherein the transforming of the foreground object images further comprises changing lateral positions of the foreground object images within the current frame based on relative lateral positions of the camera for the plurality of image frames with respect to a current lateral position of the camera for the current frame.

6. The method of claim 1 , wherein the transforming of the foreground object images further comprises changing vertical positions of the foreground object images within the current frame based on relative vertical positions of the camera for the plurality of image frames with respect to a current vertical position of the camera for the current frame.

7. The method of claim 1 , wherein the transforming of the foreground object images further comprises changing sizes of the foreground object images within the current frame based on a relative forward-backward position of the camera for the plurality of image frames with respect to a current forward-background position of the camera for the current frame.

8. The method of claim 1 , wherein the partial transparency is applied to a given foreground object image based on an overlap of the given foreground object image with one or more foreground object images within the current frame such that the partial transparency is applied to a first foreground object image based on the first foreground object image overlapping with a second foreground object image within the current frame and the partial transparency is not applied to a third foreground object image based on the third foreground object image not overlapping with any foreground object image within the current frame.

9. The method of claim 1 , wherein the partial transparency is applied to a given foreground object image based on the given foreground object image taking up more than a threshold amount of the current frame such that the partial transparency is applied to a first foreground object based on the first foreground object taking up more than the threshold amount of the current frame and the partial transparency is not applied to a second foreground object based on the second foreground object not taking up more than the threshold amount of the current frame.

10. A system for generating a composite image of an object from a plurality of image frames obtained via a camera experiencing motion, the system comprising:

one or more processors; and

a non-transitory computer-readable storage medium storing instructions therein that when executed cause the one or more processors to perform:

generating foreground object images of the object from the plurality of image frames based on a foreground-background segmentation;

obtaining motion information of the camera for the plurality of image frames;

determining relative positions of the camera for the plurality of image frames with respect to a current position of the camera for a current frame based on the motion information of the camera;

generating transformed foreground object images by transforming the foreground object images based on the relative positions of the camera for the plurality of image frames with respect to the current position of the camera for the current frame, wherein the transforming of the foreground object images comprises applying a partial transparency to at least one of the foreground object images; and

generating the composite output image based an overlay of the transformed foreground object images onto the current frame.

11. The system of claim 10 , wherein the transforming of the foreground object images is performed based on an inverse of motion of the camera between the relative positions of the camera for the plurality of image frames with respect to the current position of the camera for the current frame.

12. The system of claim 10 , wherein the transforming of the foreground object images further comprises translating of the foreground object images based on a change in a pointing orientation of the camera.

13. The system of claim 10 , wherein the instructions further cause the one or more processors to perform generating a set of candidate foreground object images based at least on the foreground-background segmentation, the generating of the foreground object images comprising selecting the foreground object images from the set of candidate foreground object images;

wherein the selecting of individual ones of the foreground object images occurs at least once every prescribed range of frames.

14. The system of claim 10 , wherein the transforming of the foreground object images further comprises changing lateral positions of the foreground object images within the current frame based on relative lateral positions of the camera for the plurality of image frames with respect to a current lateral position of the camera for the current frame.

15. The system of claim 10 , wherein the transforming of the foreground object images further comprises changing vertical positions of the foreground object images within the current frame based on relative vertical positions of the camera for the plurality of image frames with respect to a current vertical position of the camera for the current frame.

16. The system of claim 10 , wherein the transforming of the foreground object images further comprises changing sizes of the foreground object images within the current frame based on a relative forward-backward position of the camera for the plurality of image frames with respect to a current forward-background position of the camera for the current frame.

17. The system of claim 10 , wherein the partial transparency is applied to a given foreground object image based on an overlap of the given foreground object image with one or more foreground object images within the current frame such that the partial transparency is applied to a first foreground object image based on the first foreground object image overlapping with a second foreground object image within the current frame and the partial transparency is not applied to a third foreground object image based on the third foreground object image not overlapping with any foreground object image within the current frame.

18. The system of claim 10 , wherein the partial transparency is applied to a given foreground object image based on the given foreground object image taking up more than a threshold amount of the current frame such that the partial transparency is applied to a first foreground object based on the first foreground object taking up more than the threshold amount of the current frame and the partial transparency is not applied to a second foreground object based on the second foreground object not taking up more than the threshold amount of the current frame.

19. A system for generating a composite image of an object from a plurality of image frames obtained via a camera experiencing motion, the system comprising:

one or more processors; and

a non-transitory computer-readable storage medium storing instructions therein that when executed cause the one or more processors to perform:

generating foreground object images of the object from the plurality of image frames based on a foreground-background segmentation;

obtaining motion information of the camera for the plurality of image frames;

determining relative positions of the camera for the plurality of image frames with respect to a current position of the camera for a current frame based on the motion information of the camera;

generating transformed foreground object images by transforming the foreground object images based on the relative positions of the camera for the plurality of image frames with respect to the current position of the camera for the current frame, wherein the transforming of the foreground object images comprises applying a partial transparency to at least one of the foreground object images; and

generating the composite output image based an overlay of the transformed foreground object images onto the current frame;

wherein the partial transparency is applied to a given foreground object image:

based on an overlap of the given foreground object image with one or more foreground object images within the current frame such that the partial transparency is applied to a first foreground object image based on the first foreground object image overlapping with a second foreground object image within the current frame and the partial transparency is not applied to a third foreground object image based on the third foreground object image not overlapping with any foreground object image within the current frame; and

based on the given foreground object image taking up more than a threshold amount of the current frame such that the partial transparency is applied to a fourth foreground object based on the fourth foreground object taking up more than the threshold amount of the current frame and the partial transparency is not applied to a fifth foreground object based on the fifth foreground object not taking up more than the threshold amount of the current frame.

20. The system of claim 19 , wherein the transforming of the foreground object images is performed based on an inverse of motion of the camera between the relative positions of the camera for the plurality of image frames with respect to the current position of the camera for the current frame.

Assignments (3)
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 13, 2021
From: ADSUMILLI, BALINEEDU CHOWDARY; LUSTIG, RYAN
To: GOPRO, INC.
Reel/Frame 057172/0886 →
Continuity (4)
Continuation 16833185 · Mar 27, 2020
Continuation 15080299 · Mar 24, 2016
Provisional Application 62233882 · Sep 28, 2015
Related Publication 20210377460A1 · Dec 2, 2021