# US 9,521,318 B2 · Target-less auto-alignment of image sensors in a multi-camera system

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

- Number: US 9,521,318 B2
- Document ID: US9521318B2
- Status: Granted
- Kind: B2
- Application number: 14/876,041
- Filed: 2015-10-06
- Published: 2016-02-04
- Granted: 2016-12-13
- Earliest claimed: 2014-03-20
- Assignees: GoPro, Inc.
- Applicants: GoPro, Inc.
- Inventors: Yajie Sun; Timothy Macmillan; Elizabeth Torres Edwards; Sumit Chawla
- Web page: https://patentgrep.com/patent/US9521318B2

## CPC

- H04N 13/243: using three or more two-dimensional [2D] image sensors
- G06F 18/22: Matching criteria, e.g. proximity measures
- G06T 3/4038: Image mosaicing, e.g. composing plane images from plane sub-images
- G06T 5/70: Denoising; Smoothing
- G06T 7/13: Edge detection
- G06T 7/337: {involving reference images or patches}
- G06T 7/80: Analysis of captured images to determine intrinsic or extrinsic camera parameters, i.e. camera calibration
- G06T 7/85: {Stereo camera calibration}
- H04N 13/239: using two two-dimensional [2D] image sensors having a relative position equal to or related to the interocular distance (H04N13/243 takes precedence)
- H04N 13/246: Calibration of cameras
- H04N 13/271: wherein the generated image signals comprise depth maps or disparity maps
- H04N 13/296: Synchronisation thereof; Control thereof
- H04N 17/002: {for television cameras}
- H04N 23/689: {Motion occurring during a rolling shutter mode}
- H04N 23/90: Arrangement of cameras or camera modules, e.g. multiple cameras in TV studios or sports stadiums
- H04N 25/48: Increasing resolution by shifting the sensor relative to the scene
- H04N 25/76: Addressed sensors, e.g. MOS or CMOS sensors
- H04N 2013/0081: {Depth or disparity estimation from stereoscopic image signals}
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G06T: IMAGE DATA PROCESSING OR GENERATION, IN GENERAL

## Abstract

A pair of cameras having an overlapping field of view is aligned based on images captured by image sensors of the pair of cameras. A pixel shift is identified between the images. Based on the identified pixel shift, a calibration is applied to one or both of the pair of cameras. To determine the pixel shift, the camera applies correlation methods including edge matching. Calibrating the pair of cameras may include adjusting a read window on an image sensor. The pixel shift can also be used to determine a time lag, which can be used to synchronize subsequent image captures.

## Claims

### Claim 1

A computer-implemented method for determining a pixel shift between an image pair captured by image sensors, the method comprising:
accessing a first image and a second image of the image pair captured at a substantially same time, the images comprising image data representative of an overlapping field of view between the image sensors;
determining edge magnitude and edge phase of the image data based on pixel luma components in the image data;
identifying, by one or more processors, one or more edges in the image data based, at least in part, on the edge magnitude and the edge phase of the image data, the identified one or more edges being substantially perpendicular to a rolling shutter direction of the image sensors;
matching the identified one or more edges in the image data corresponding to the first image to the identified one or more edges in the image data corresponding to the second image;
determining a pixel shift between the image pair based, at least in part, on the matching of edges; and
calibrating the image sensors using the determined pixel shift.

### Claim 2 (depends on 1)

The method of claim 1, wherein identifying the one or more edges in the image data comprises:
identifying a first set of image data having determined edge magnitude greater than an edge magnitude threshold;
identifying a second set of image data having determined edge phase within a threshold of a target edge phase value; and
identifying the one or more edges from image data in both the first set of image data and the second set of image data.

### Claim 3 (depends on 2)

The method of claim 2, wherein the target edge phase value corresponds to the rolling shutter direction.

### Claim 4 (depends on 1)

The method of claim 1, wherein matching the identified one or more edges in the image data corresponding to the first image to the identified one or more edges in the image data corresponding to the second image comprises:
determining edge lengths for the identified one or more edges; and
matching the one or more edges based, at least in part, on the determined edge magnitude of the one or more edges and the determined edge lengths.

### Claim 5 (depends on 1)

The method of claim 1, further comprising:
before determining the edge magnitude and the edge phase, compressing the first and second images perpendicular to the rolling shutter direction without compressing the first and second images along the rolling shutter direction.

### Claim 6 (depends on 1)

The method of claim 1, further comprising smoothing the first and second images prior to determining the edge magnitude and determining the edge phase.

### Claim 7 (depends on 1)

The method of claim 1, further comprising cropping the first and second images by removing image data corresponding to outer borders of the first and second images prior to determining the edge magnitude and determining the edge phase.

### Claim 8

A non-transitory computer readable medium comprising instructions for determining a pixel shift between an image pair captured by image sensors, the instructions executable by a processor, the instructions comprising instructions for:
accessing a first image and a second image of the image pair captured at a substantially same time, the images comprising image data representative of an overlapping field of view between the image sensors;
determining edge magnitude and edge phase of the image data based on pixel luma components in the image data;
identifying one or more processors one or more edges in the image data based, at least in part, on the edge magnitude and the edge phase of the image data, the identified one or more edges being substantially perpendicular to a rolling shutter direction of the image sensors;
matching the identified one or more edges in the image data corresponding to the first image to the identified one or more edges in the image data corresponding to the second image;
determining a pixel shift between the image pair based, at least in part, on the matching of edges; and
calibrating the image sensors using the determined pixel shift.

### Claim 9 (depends on 8)

The computer-readable medium of claim 8, wherein identifying the one or more edges in the image data comprises:
identifying a first set of image data having determined edge magnitude greater than an edge magnitude threshold;
identifying a second set of image data having determined edge phase within a threshold of a target edge phase value; and
identifying the one or more edges from image data in both the first set of image data and the second set of image data.

### Claim 10 (depends on 9)

The computer-readable medium of claim 9, wherein the target edge phase value corresponds to the rolling shutter direction.

### Claim 11 (depends on 8)

The computer-readable medium of claim 8, wherein matching the identified one or more edges in the image data corresponding to the first image to the identified one or more edges in the image data corresponding to the second image comprises:
determining edge lengths for the identified one or more edges; and
matching the one or more edges based, at least in part, on the determined edge magnitude of the one or more edges and the determined edge lengths.

### Claim 12 (depends on 8)

The computer-readable medium of claim 8, wherein the instructions further comprise instructions for:
before determining the edge magnitude and the edge phase, compressing the first and second images perpendicular to the rolling shutter direction without compressing the first and second images along the rolling shutter direction.

### Claim 13 (depends on 8)

The computer-readable medium of claim 8, wherein the instructions further comprise instructions for cropping the first and second images by removing image data corresponding to outer borders of the first and second images prior to determining the edge magnitude and determining the edge phase.

### Claim 14

A camera system comprising at least one processor, an image sensor, and a non-transitory computer readable medium comprising instructions for determining a pixel shift between an image pair captured by image sensors including the image sensor, the instructions executable by the at least one processor, the instructions comprising instructions for:
accessing a first image and a second image of the image pair captured at a substantially same time, the images comprising image data representative of an overlapping field of view between the image sensors;
determining edge magnitude and edge phase of the image data based on pixel luma components in the image data;
identifying one or more edges in the image data based, at least in part, on the edge magnitude and the edge phase of the image data, the identified one or more edges being substantially perpendicular to a rolling shutter direction of the image sensors;
matching the identified one or more edges in the image data corresponding to the first image to the identified one or more edges in the image data corresponding to the second image;
determining a pixel shift between the image pair based, at least in part, on the matching of edges; and
calibrating the image sensors using the determined pixel shift.

### Claim 15 (depends on 14)

The camera system of claim 14, wherein identifying the one or more edges in the image data comprises:
identifying a first set of image data having determined edge magnitude greater than an edge magnitude threshold;
identifying a second set of image data having determined edge phase within a threshold of a target edge phase value; and
identifying the one or more edges from image data in both the first set of image data and the second set of image data.

### Claim 16 (depends on 15)

The camera system of claim 15, wherein the target edge phase value corresponds to the rolling shutter direction.

### Claim 17 (depends on 14)

The camera system of claim 14, wherein matching the identified one or more edges in the image data corresponding to the first image to the identified one or more edges in the image data corresponding to the second image comprises:
determining edge lengths for the identified one or more edges; and
matching the one or more edges based, at least in part, on the determined edge magnitude of the one or more edges and the determined edge lengths.

### Claim 18 (depends on 14)

The camera system of claim 14, wherein the instructions further comprise instructions for:
before determining the edge magnitude and the edge phase, compressing the first and second images perpendicular to the rolling shutter direction without compressing the first and second images along the rolling shutter direction.

### Claim 19 (depends on 14)

The camera system of claim 14, wherein the instructions further comprise instructions for smoothing the first and second images prior to determining the edge magnitude and determining the edge phase.

### Claim 20 (depends on 14)

The camera system of claim 14, wherein the instructions further comprise instructions for cropping the first and second images by removing image data corresponding to outer borders of the first and second images prior to determining the edge magnitude and determining the edge phase.
