# US 9,438,795 B1 · Real time feature extraction

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 9,438,795 B1
- Document ID: US9438795B1
- Status: Granted
- Kind: B1
- Application number: 14/753,947
- Filed: 2015-06-29
- Granted: 2016-09-06
- Earliest claimed: 2012-06-04
- Assignees: Google Inc.
- Applicants: Google Inc.
- Inventors: Abhijit S. Ogale
- Web page: https://patentgrep.com/patent/US9438795B1

## CPC

- H04N 23/698: for achieving an enlarged field of view, e.g. panoramic image capture
- G06T 3/4038: Image mosaicing, e.g. composing plane images from plane sub-images
- G06T 7/13: Edge detection
- G06T 7/174: involving the use of two or more images
- G06V 10/955: {using specific electronic processors}
- H04N 5/2624: {for obtaining an image which is composed of whole input images, e.g. splitscreen}
- G06F 2218/08: Feature extraction
- G06T 2207/10004: Still image; Photographic image
- G06T 2207/20164: Salient point detection; Corner detection
- G06T 2207/20221: Image fusion; Image merging
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION
- G06T: IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06V: IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A computer-implemented method for method for detecting features in an image. The method includes receiving first and second images at one or more processors. The method also includes processing the first and second images to detect one or more features within the first and second images respectively. The method further includes generating a third image based on processed portions of the first and second images and outputting the third image to another processor. A mobile computing device and GPU are also provided.

## Claims

### Claim 1

A computer-implemented method for detecting features in images, the method comprising:
retrieving, by one or more processors, first image data from memory;
retrieving, by the one or more processors, second image data from the memory;
processing, by the one or more processors, the retrieved first image data to identify one or more features of a first image and to generate first processed image data based on the identified one or more features of the first image;
processing, by the one or more processors, the retrieved second image data to identify one or more features of a second image and to generate second processed image data based on the identified one or more features of the second image; and
storing the first and second processed image data in the memory.

### Claim 2 (depends on 1)

The method of claim 1, wherein the first and second image data are retrieved from one or more texture regions of the memory, and the first and second processed image data are stored in one or more buffer regions of the memory.

### Claim 3 (depends on 1)

The method of claim 1, wherein the one or more features of the first and second images include corner features.

### Claim 4 (depends on 3)

The method of claim 3, further comprising performing panorama image stitching utilizing the corner features.

### Claim 5 (depends on 3)

The method of claim 3, further comprising performing video or image stabilization utilizing the corner features.

### Claim 6 (depends on 3)

The method of claim 3, further comprising performing high-dynamic range image creation utilizing the corner features.

### Claim 7 (depends on 1)

The method of claim 1, wherein the one or more features of the first and second images include corner features, and the method further comprises eliminating duplicate corners in one or both of the first and the second images utilizing the corner features.

### Claim 8 (depends on 1)

The method of claim 1, wherein storing the first and second processed image data in the memory includes storing the first processed image data in a first buffer and storing the second processed image data in a second buffer.

### Claim 9 (depends on 1)

The method of claim 1, further comprising outputting a third image in accordance with at least one of the first and second processed image data.

### Claim 10

A device for detecting features in images, the device comprising:
memory configured to store image data; and
one or more processors operatively coupled to the memory, the one or more processors being configured to:
retrieve first image data from the memory;
retrieve second image data from the memory;
process the retrieved first image data to identify one or more features of a first image and to generate first processed image data based on the identified one or more features of the first image;
process the retrieved second image data to identify one or more features of a second image and to generate second processed image data based on the identified one or more features of the second image; and
store the first and second processed image data in the memory.

### Claim 11 (depends on 10)

The device of claim 10, wherein:
the memory includes one or more texture regions and one or more buffer regions;
the first and second image data are retrieved from the one or more texture regions of the memory; and
the first and second processed image data are stored in the one or more buffer regions of the memory.

### Claim 12 (depends on 10)

The device of claim 10, wherein the one or more features of the first and second images include corner features.

### Claim 13 (depends on 12)

The device of claim 12, wherein the one or more processors are further configured to perform at least one of:
panorama image stitching utilizing the corner features;
video or image stabilization utilizing the corner features; or
high-dynamic range image creation utilizing the corner features.

### Claim 14 (depends on 10)

The device of claim 10, wherein the one or more features of the first and second images include corner features, and the one or more processors are further configured to eliminate duplicate corners in one or both of the first and the second images utilizing the corner features.

### Claim 15 (depends on 11)

The device of claim 11, wherein storing the first and second processed image data in the memory includes storing the first processed image data in a first buffer of the one or more buffer regions and storing the second processed image data in a second buffer of the one or more buffer regions.

### Claim 16

A system for processing features in images, the system comprising:
a first processor including memory configured to store image data; and
a second processor operatively coupled to the first processor;
wherein the first processor is configure to:
retrieve first image data from the memory;
retrieve second image data from the memory;
process the retrieved first image data to identify one or more features of a first image and to generate first processed image data based on the identified one or more features of the first image;
process the retrieved second image data to identify one or more features of a second image and to generate second processed image data based on the identified one or more features of the second image;
store the first and second processed image data in the memory; and
output a third image to the second processor in accordance with at least one of the first and second processed image data, and
wherein the second processor is configure to:
send the first and second image data to the memory of the first processor; and
receive the third image from the first processor.

### Claim 17 (depends on 16)

The system of claim 16, wherein:
the memory includes one or more texture regions and one or more buffer regions;
the first and second image data are retrieved from the one or more texture regions of the memory; and
the first and second processed image data are stored in the one or more buffer regions of the memory.

### Claim 18 (depends on 16)

The system of claim 16, wherein the first processor comprises one or more graphics processing units and the second processor comprises a central processing unit.

### Claim 19 (depends on 16)

The system of claim 16, wherein the one or more features of the first and second images include corner features and one or both of the first and second processors are further configured to perform at least one of:
panorama image stitching utilizing the corner features;
video or image stabilization utilizing the corner features; or
high-dynamic range image creation utilizing the corner features.

### Claim 20 (depends on 16)

The system of claim 16, wherein the one or more features of the first and second images include corner features, and one or both of the first and second processors are further configured to eliminate duplicate corners in one or both of the first and the second images utilizing the corner features.
