IP Library Granted Patent US 9,965,703
Granted Patent B2
US 9,965,703 · App. 15/177,310 · Granted May 8, 2018

Combining independent solutions to an image or video processing task

Inventors: Balineedu Chowdary Adsumilli (San Mateo, CA); Ryan Lustig (Encinitas, CA)
Assignee: GoPro, Inc.
G06K9/6262G06K9/00744G06K9/6256G06N99/005
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,965,703
App. No.
15/177,310
Granted
May 8, 2018
Kind
B2
Abstract

An algorithm for performing an image or video processing task is generated that may be used to combine a plurality of different independent solutions to the image or video processing task in an optimized manner. A plurality of base algorithms may be applied to a training set of images or video and a first generation of different combining algorithms may be applied to combine the respective solutions from each of the respective base algorithms into respective combined solutions. The respective combined solutions may be evaluated to generate respective fitness scores representing measures of how well the plurality of different combining algorithms each perform the image or video processing task. The algorithms may be iteratively updated to generate an optimized combining algorithm that may be applied to an input image or video.

Claims (61)

1. A method for generating an algorithm for performing an image or video processing task, the method comprising:

receiving a training set of input images or videos;

applying a plurality of base algorithms to the training set, each of the base algorithms independently generating respective base algorithm results as respective solutions to the image or video processing task;

applying a first generation of different combining algorithms, where the applying of the first generation of different combining algorithms comprises combining the respective solutions from each of the respective base algorithms into respective combined solutions, where the applying of the first generation of different combining algorithms further comprises:

applying a first subset of a predefined plurality of operations to at least a subset of the respective base algorithms to generate first tier results; and

applying a second subset of the predefined plurality of operations to the first tier results of the respective base algorithms results to generate second tier results;

evaluating the respective combined solutions from the first generation of different combining algorithms to generate respective fitness scores representing measures of how well the plurality of different combining algorithms each perform the image or video processing task;

updating the first generation of different combining algorithms based on the respective fitness scores to generate a second generation of different combining algorithms; and

selecting, by a processor, an optimized combining algorithm from the second generation of different combining algorithms that best meets a predefined optimization criterion associated with the image or video processing task;

wherein the image or video processing task comprises a background segmentation task, wherein each of the plurality of base algorithms comprises different background segmentation algorithms, and wherein each of the respective base algorithm results comprises respective binary masks generated from a different one of the different background segmentation algorithms.

2. The method of claim 1 , wherein the updating of the first generation of different combining algorithms comprises:

selecting a parent algorithm from the first generation of different combining algorithms based on the respective fitness scores; and

duplicating the parent algorithm to generate an elite child algorithm from the parent algorithm as one of the second generation of different combining algorithms.

3. The method of claim 1 , wherein the updating of the first generation of different combining algorithms comprises:

selecting a parent algorithm from the first generation of different combining algorithms based on the respective fitness scores; and

changing one or more operators, inputs, or structures of the parent algorithm to generate a mutation child algorithm as one of the second generation of different combining algorithms.

4. The method of claim 3 , wherein the changing of the one or more operators, inputs, or structures of the parent algorithm comprises randomly changing the one or more operators, inputs, or structures of the parent algorithm.

5. The method of claim 1 , wherein the updating of the first generation of different combining algorithms comprises:

selecting a first parent algorithm from the first generation of different combining algorithms based on the respective fitness scores; and

selecting a second parent algorithm from the first generation of different combining algorithms based on the respective fitness scores; and

combining a first portion of the first parent algorithm with a second portion of the second parent algorithm to generate a crossover child algorithm as one of the second generation of different combining algorithms.

6. The method of claim 1 , wherein the plurality of base algorithms comprises at least one of: a Gaussian Mixture Models (GMMs) algorithm, a K-Nearest Neighbors (K-NN) algorithm, and a Self-Balanced Sensitivity Segmenter (SuB SENSE) algorithm.

7. The method of claim 1 , wherein the predefined plurality of operations comprises at least one of: a 5×5 median filter, a morphological image dilation with a 5×5 square kernel, a morphological image erosion with a 5×5 square kernel, a logical AND operation between two inputs, a logical OR operation between two images, and a majority vote with two or more inputs.

8. The method of claim 1 , wherein the image or video processing task comprises an automatic highlight detection task, wherein each of the plurality of base algorithms comprises different automatic highlight detection algorithms, and wherein each of the respective base algorithm results comprises a set of parameters indicating a time in a video at which a highlight occurred and a duration of the highlight.

9. The method of claim 8 , wherein the plurality of base algorithms comprises at least one of: a motion detection algorithm, a scene change detection algorithm, a face detection algorithm, and an audio highlight detection algorithm.

10. The method of claim 8 , wherein the predefined plurality of operations comprises at least one of: a majority vote for highlights occurring within a same time duration, a logical AND operation of the duration of the highlight, and a logical OR operation of the duration of the highlight (“OR”).

11. The method of claim 1 , further comprising:

determining whether a stopping criterion is met by the generated second generation of different combining algorithms;

when the stopping criterion is met, selecting the optimized combining algorithm from the second generation of different combining algorithms; and otherwise

when the stopping criterion is not met, evaluating the second generation of different combining algorithms to generate respective fitness scores.

12. A non-transitory computer-readable storage apparatus comprising a storage medium storing instructions for generating an algorithm for performing an image or video processing task, the instructions, when executed by a processor apparatus, being configured to cause the processor apparatus to perform steps including:

receiving a training set of input images or videos;

applying a plurality of base algorithms to the training set, each of the base algorithms independently generating respective base algorithm results as respective solutions to the image or video processing task;

applying a first generation of different combining algorithms, each of the first generation of different combining algorithms being configured to combine the respective solutions from each of the respective base algorithm results into respective combined solutions;

evaluating the respective combined solutions from the first generation of different combining algorithms to generate respective fitness scores representing measures of how well the plurality of different combining algorithms each perform the image or video processing task;

updating the first generation of different combining algorithms based on the respective fitness scores to generate a second generation of different combining algorithms; and

selecting an optimized combining algorithm from the second generation of different combining algorithms that best meets a predefined optimization criterion associated with the image or video processing task;

wherein the applying of the first generation of different combining algorithms comprises:

applying a first subset of a predefined plurality of operations to at least a subset of the respective base algorithm results to generate first tier results; and

applying a second subset of the predefined plurality of operations to the first tier results or the respective base algorithm results to generate second tier results; and

wherein the image or video processing task comprises a background segmentation task, wherein each of the plurality of base algorithms comprises different background segmentation algorithms, and wherein each of the respective base algorithm results comprises respective binary masks generated from a different one of the different background segmentation algorithms.

13. The non-transitory computer-readable storage apparatus of claim 12 , wherein the updating of the first generation of different combining algorithms comprises:

selecting a parent algorithm from the first generation of different combining algorithms based on the respective fitness scores; and

duplicating the parent algorithm to generate an elite child algorithm from the parent algorithm as one of the second generation of different combining algorithms.

14. The non-transitory computer-readable storage apparatus of claim 12 , wherein the updating of the first generation of different combining algorithms comprises:

selecting a parent algorithm from the first generation of different combining algorithms based on the respective fitness scores; and

changing one or more operators, inputs, or structures of the parent algorithm to generate a mutation child algorithm as one of the second generation of different combining algorithms.

15. The non-transitory computer-readable storage apparatus of claim 12 , wherein the changing of the one or more operators, inputs, or structures of the parent algorithm comprises a randomly change thereof.

16. The non-transitory computer-readable storage apparatus of claim 12 , wherein the updating of the first generation of different combining algorithms comprises:

selecting a first parent algorithm from the first generation of different combining algorithms based on the respective fitness scores; and

selecting a second parent algorithm from the first generation of different combining algorithms based on the respective fitness scores; and

combining a first portion of the first parent algorithm with a second portion of the second parent algorithm to generate a crossover child algorithm as one of the second generation of different combining algorithms.

17. The non-transitory computer-readable storage apparatus of claim 12 , wherein the plurality of base algorithms comprises at least one of: a Gaussian Mixture Models (GMMs) algorithm, a K-Nearest Neighbors (K-NN) algorithm, and a Self-Balanced Sensitivity Segmenter (SuBSENSE) algorithm.

18. The non-transitory computer-readable storage apparatus of claim 12 , wherein the predefined plurality of operations comprises at least one of: a 5×5 median filter, a morphological image dilation with a 5×5 square kernel, a morphological image erosion with a 5×5 square kernel, a logical AND operation between two inputs, a logical OR operation between two images, and a majority vote with two or more inputs.

19. The non-transitory computer-readable storage apparatus of claim 12 , wherein the image or video processing task comprises an automatic highlight detection task, wherein each of the plurality of base algorithms comprises different automatic highlight detection algorithms, and wherein each of the respective base algorithm results comprises a set of parameters indicating a time in a video at which a highlight occurred and a duration of the highlight.

20. The non-transitory computer-readable storage apparatus of claim 19 , wherein the plurality of base algorithms comprises at least one of: a motion detection algorithm, a scene change detection algorithm, a face detection algorithm, and an audio highlight detection algorithm.

21. The non-transitory computer-readable storage apparatus of claim 19 , wherein the predefined plurality of operations comprises at least one of: a majority vote for highlights occurring within a same time duration, a logical AND operation of the duration of the highlight, and a logical OR operation of the duration of the highlight (“OR”).

22. The non-transitory computer-readable storage apparatus of claim 12 , wherein the instructions, when executed by the processor apparatus, are further configured to cause the processor apparatus to perform steps including:

determining whether a stopping criterion is met by the generated second generation of different combining algorithms;

when the stopping criterion is met, selecting the optimized combining algorithm from the second generation of different combining algorithms; and otherwise

when the stopping criterion is not met, evaluating the second generation of different combining algorithms to generate respective fitness scores.

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 Jun 9, 2016
From: ADSUMILLI, BALINEEDU CHOWDARY; LUSTIG, RYAN
To: GOPRO, INC.
Reel/Frame 038943/0828 →
Continuity (1)
Related Publication 20170357880A1 · Dec 14, 2017