IP Library Granted Patent US 9,754,159
Granted Patent B2
US 9,754,159 · App. 14/637,173 · Granted Sep 5, 2017

Automatic generation of video from spherical content using location-based metadata

Inventors: Timothy MacMillan (Woodside, CA); David A. Newman (San Diego, CA)
Assignee: GoPro, Inc.
G06K9/00355G06F17/30858G06K9/00281G06K9/00711G06T3/0062H04L65/00H04L67/42H04N13/0007H04N21/233H04N21/23418G03B37/04G06T2207/10016H04N5/23238
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,754,159
App. No.
14/637,173
Granted
Sep 5, 2017
Kind
B2
Abstract

A spherical content capture system captures spherical video content. A spherical video sharing platform enables users to share the captured spherical content and enables users to access spherical content shared by other users. In one embodiment, captured metadata or video/audio processing is used to identify content relevant to a particular user based on time and location information. The platform can then generate an output video from one or more shared spherical content files relevant to the user. The output video may include a non-spherical reduced field of view such as those commonly associated with conventional camera systems. Particularly, relevant sub-frames having a reduced field of view may be extracted from each frame of spherical video to generate an output video that tracks a particular individual or object of interest.

Claims (90)

1. A method for generating an output video from spherical video content, the method comprising:

storing, by a video server, a first spherical video having first spherical video content and first video metadata including location data pertaining to a location of a first camera capturing the first spherical video content and timing data pertaining to a time of capture of the first spherical video content;

receiving user metadata representing a target path, the target path comprising a sequence of time-stamped locations corresponding to a target;

determining by the video server, based on the user metadata and the first video metadata, a first matching portion of the first spherical video, the first matching portion captured when the first camera was within a threshold vicinity of the target, wherein determining the first matching portion of the first spherical video comprises:

determining for each of a sequence of corresponding time points, distances between the target and the first camera based on the first video metadata and the user metadata;

determining a time range over which the distances are less than a distance threshold; and

determining the first matching portion based on the time range responsive to the time range exceeding a predefined time threshold;

determining a sequence of sub-frames by selecting, for each of a plurality of frames of the first matching portion of the first spherical video, a sub-frame having content relevant to the target path, each of the sequence of sub-frames comprising a non-spherical field of view;

combining the sequence of sub-frames to generate a first portion of the output video relevant to the target; and

outputting the output video.

2. The method of claim 1 , wherein two or more of the selected sub-frames correspond to different spatial regions in different frames of the first spherical video.

3. The method of claim 1 , wherein selecting the sub-frame comprises:

determining for a given frame of the first spherical video, a direction of the target relative to the first camera based on the first video metadata and the user metadata; and

selecting the sub-frame based on the direction.

4. The method of claim 1 , further comprising:

storing, by the video server, a second spherical video having second spherical video content captured by a second camera and second video metadata;

determining by the video server, based on the user metadata and the second video metadata, a second matching portion of the second spherical video, the second matching portion captured when the second camera was within a threshold vicinity of the target;

for each of a plurality of frames of the second matching portion of the second spherical video, selecting a sub-frame having a non-spherical field of view, the sub-frame having content relevant to the target path;

combining the selected sub-frames to generate a second portion of the output video relevant to the target; and

combining the first portion of the output video with the second portion of the output video.

5. The method of claim 4 , wherein combining the first portion of the output video with the second portion of the output video comprises:

identifying a time overlap between the first portion of the output video and the second portion of the output video; and

selecting between the first portion of the output video and the second portion of the output video during the time overlap based on proximity between the first camera and the target and between the second camera and the target.

6. The method of claim 1 , further comprising:

receiving the user metadata from a location tracking device tracking the target path of the target.

7. A method for generating an output video from spherical video content, the method comprising:

storing, by a video server, a first spherical video having first spherical video content and first video metadata including location data pertaining to a location of a first camera capturing the first spherical video content and timing data pertaining to a time of capture of the first spherical video content;

receiving user metadata representing a target path, the target path comprising a sequence of time-stamped locations corresponding to a target;

determining by the video server, based on the user metadata and the first video metadata, a first matching portion of the first spherical video, the first matching portion captured when the first camera was within a threshold vicinity of the target;

determining a sequence of sub-frames by selecting, for each of a plurality of frames of the first matching portion of the first spherical video, a sub-frame having content relevant to the target path, each of the sequence of sub-frames comprising a non-spherical field of view;

combining the sequence of sub-frames to generate a first portion of the output video relevant to the target;

storing, by the video server, a second spherical video having second spherical video content captured by a second camera and second video metadata;

determining by the video server, based on the user metadata and the second video metadata, a second matching portion of the second spherical video, the second matching portion captured when the second camera was within a threshold vicinity of the target;

for each of a plurality of frames of the second matching portion of the second spherical video, selecting a sub-frame having a non-spherical field of view, the sub-frame having content relevant to the target path;

combining the selected sub-frames to generate a second portion of the output video relevant to the target;

combining the first portion of the output video with the second portion of the output video, wherein combining the first portion of the output video with the second portion of the output video comprises:

identifying a time overlap between the first portion of the output video and the second portion of the output video; and

selecting between the first portion of the output video and the second portion of the output video during the time overlap based on proximity between the first camera and the target and between the second camera and the target; and

outputting the output video.

8. The method of claim 7 , wherein two or more of the selected sub-frames correspond to different spatial regions in different frames of the first spherical video.

9. The method of claim 7 , wherein selecting the sub-frame comprises:

determining for a given frame of the first spherical video, a direction of the target relative to the first camera based on the first video metadata and the user metadata; and

selecting the sub-frame based on the direction.

10. The method of claim 7 , further comprising:

receiving the user metadata from a location tracking device tracking the target path of the target.

11. A non-transitory computer-readable storage medium storing instructions for generating an output video from spherical video content, the instructions when executed by one or more processors causing the one or more processors to perform steps including:

storing a first spherical video having first spherical video content and first video metadata including location data pertaining to a location of a first camera capturing the first spherical video content and timing data pertaining to a time of capture of the first spherical video content;

receiving user metadata representing a target path, the target path comprising a sequence of time-stamped locations corresponding to a target;

determining, based on the user metadata and the first video metadata, a first matching portion of the first spherical video, the first matching portion captured when the first camera was within a threshold vicinity of the target, wherein determining the first matching portion of the first spherical video comprises:

determining for each of a sequence of corresponding time points, distances between the target and the first camera based on the first video metadata and the user metadata;

determining a time range over which the distances are less than a distance threshold; and

determining the first matching portion based on the time range responsive to the time range exceeding a predefined time threshold;

determining a sequence of sub-frames by selecting, for each of a plurality of frames of the first matching portion of the first spherical video, a sub-frame having content relevant to the target path, each of the sequence of sub-frames comprising a non-spherical field of view;

combining the sequence of sub-frames to generate a first portion of the output video relevant to the target; and

outputting the output video.

12. The non-transitory computer-readable storage medium of claim 11 , wherein two or more of the selected sub-frames correspond to different spatial regions in different frames of the first spherical video.

13. The non-transitory computer-readable storage medium of claim 11 , wherein selecting the sub-frame comprises:

determining for a given frame of the first spherical video, a direction of the target relative to the first camera based on the first video metadata and the user metadata; and

selecting the sub-frame based on the direction.

14. The non-transitory computer-readable storage medium of claim 11 , wherein the instructions when executed by the one or more processors further cause the one or more processors to perform steps including:

storing a second spherical video having second spherical video content captured by a second camera and second video metadata;

determining, based on the user metadata and the second video metadata, a second matching portion of the second spherical video, the second matching portion captured when the second camera was within a threshold vicinity of the target;

for each of a plurality of frames of the second matching portion of the second spherical video, selecting a sub-frame having a non-spherical field of view, the sub-frame having content relevant to the target path;

combining the selected sub-frames to generate a second portion of the output video relevant to the target; and

combining the first portion of the output video with the second portion of the output video.

15. The non-transitory computer-readable storage medium of claim 14 , wherein combining the first portion of the output video with the second portion of the output video comprises:

identifying a time overlap between the first portion of the output video and the second portion of the output video; and

selecting between the first portion of the output video and the second portion of the output video during the time overlap based on proximity between the first camera and the target and between the second camera and the target.

16. The non-transitory computer-readable storage medium of claim 11 , wherein the instructions when executed by the one or more processors further cause the one or more processors to perform steps including:

receiving the user metadata from a location tracking device tracking the target path of the target.

17. A non-transitory computer-readable storage medium storing instructions for generating an output video from spherical video content, the instructions when executed by one or more processors causing the one or more processors to perform steps including:

storing a first spherical video having first spherical video content and first video metadata including location data pertaining to a location of a first camera capturing the first spherical video content and timing data pertaining to a time of capture of the first spherical video content;

receiving user metadata representing a target path, the target path comprising a sequence of time-stamped locations corresponding to a target;

determining, based on the user metadata and the first video metadata, a first matching portion of the first spherical video, the first matching portion captured when the first camera was within a threshold vicinity of the target;

determining a sequence of sub-frames by selecting, for each of a plurality of frames of the first matching portion of the first spherical video, a sub-frame having content relevant to the target path, each of the sequence of sub-frames comprising a non-spherical field of view;

combining the sequence of sub-frames to generate a first portion of the output video relevant to the target;

storing a second spherical video having second spherical video content captured by a second camera and second video metadata;

determining, based on the user metadata and the second video metadata, a second matching portion of the second spherical video, the second matching portion captured when the second camera was within a threshold vicinity of the target;

for each of a plurality of frames of the second matching portion of the second spherical video, selecting a sub-frame having a non-spherical field of view, the sub-frame having content relevant to the target path;

combining the selected sub-frames to generate a second portion of the output video relevant to the target;

combining the first portion of the output video with the second portion of the output video, wherein combining the first portion of the output video with the second portion of the output video comprises:

identifying a time overlap between the first portion of the output video and the second portion of the output video; and

selecting between the first portion of the output video and the second portion of the output video during the time overlap based on proximity between the first camera and the target and between the second camera and the target; and

outputting the output video.

18. The non-transitory computer-readable storage medium of claim 17 , wherein two or more of the selected sub-frames correspond to different spatial regions in different frames of the first spherical video.

19. The non-transitory computer-readable storage medium of claim 17 , wherein selecting the sub-frame comprises:

determining for a given frame of the first spherical video, a direction of the target relative to the first camera based on the first video metadata and the user metadata; and

selecting the sub-frame based on the direction.

20. The non-transitory computer-readable storage medium of claim 17 , wherein the instructions when executed by the one or more processors further cause the one or more processors to perform steps including:

receiving the user metadata from a location tracking device tracking the target path of the target.

Assignments (5)
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 AGREEMENT Recorded Mar 28, 2016
From: GOPRO, INC.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 038184/0779 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 20, 2015
From: MACMILLAN, TIMOTHY; NEWMAN, DAVID A.
To: GOPRO, INC.
Reel/Frame 036137/0501 →
Continuity (2)
Provisional Application 61947843 · Mar 4, 2014
Related Publication 20150254871A1 · Sep 10, 2015