IP Library Granted Patent US 9,483,830
Granted Patent B2
US 9,483,830 · App. 14/336,777 · Granted Nov 1, 2016

Depth map generation method, related system and computer program product

Inventor: Massimiliano Barone (Cormano, IT)
Assignee: STMicroelectronics S.r.l.
G06T7/0075G06T7/0067G06T2207/10028
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,483,830
App. No.
14/336,777
Granted
Nov 1, 2016
Kind
B2
Abstract

A depth map is generated from at least a first and a second image. A plurality of reference pixels are selected in the first image. A cost function is used to associate each reference pixel with a respective pixel in the second image. A masking operation is used to identify a subset of pixels in a block of pixels surrounding a reference pixel and the cost function is based on the identified subset of pixels. A disparity between each reference pixel and the respective pixel in said second image is determined, and a depth value is determined for each reference pixel as a function of the respective disparity. A depth map is generated based on the determined depth values.

Claims (102)

1. A method, comprising:

selecting a plurality of reference pixels in a first image;

associating with each reference pixel a respective pixel in a second image, the associating including:

selecting a block of pixels surrounding the reference pixel;

selecting a plurality of candidate pixels in the second image;

for each candidate pixel in the second image,

selecting a block of pixels surrounding the candidate pixel, said block of pixels surrounding the candidate pixel having a same dimension as said block of pixels surrounding the reference pixel;

identifying a subset of pixels in at least one of the block of pixels surrounding the reference pixel and the block of pixels surrounding the candidate pixel, the identifying the subset of pixels including identifying pixels in the block of pixels surrounding the reference pixel which have similar values as corresponding pixels in the block of pixels surrounding the candidate pixel; and

determining a cost associated with the candidate pixel based on the identified subset of pixels; and

selecting a subset of the candidate pixels based on the determined costs;

determining a disparity between each reference pixel and the respective pixel in said second image;

determining for each reference pixel a depth value as a function of the respective disparity; and

generating a depth map based on the determined depth values.

2. The method of claim 1 wherein the associating includes filtering pixels of the selected subset of candidate pixels and associating one of the pixels of the selected subset with the respective reference pixel based on the filtering.

3. The method of claim 1 wherein:

said selecting a block of pixels surrounding the reference pixel comprises selecting a block of pixels centered on said reference pixel; and

said selecting a block of pixels surrounding the candidate pixel comprises selecting a block of pixels centered on the candidate pixel.

4. The method of claim 1 wherein said selecting a plurality of candidate pixels comprises selecting pixels in said second image which belong to a same row as said reference pixel.

5. The method of claim 1 wherein the identifying the subset of pixels includes at least one of:

selecting, in said block of pixels surrounding the reference pixel, pixels having similar values as said reference pixel; and

selecting, in said block of pixels surrounding the candidate pixel, pixels having a similar value as said candidate pixel.

6. The method of claim 1 wherein identifying pixels having similar values comprises at least one of:

comparing a value indicative a difference between grayscale values of the pixels with a threshold grayscale difference; and

comparing a value indicative of a difference between color values of the pixels with a threshold color difference.

7. The method of claim 1 , wherein said selecting a plurality of reference pixels in said first image comprises at least one of:

selecting all pixels in said first image;

selecting a subset of pixels of the first image based on pre-matching; and

down-sampling the first image.

8. The method of claim 1 wherein said selecting a plurality of reference pixels in the first image comprises:

selecting a block of pixels surrounding a pixel in said first image;

calculating an average value of pixels in said block of pixels surrounding the pixel in said first image and associating said average value with said pixel in said first image;

selecting a plurality of candidate pixel in said second image;

selecting for each candidate pixel in said second image a respective block of pixel surrounding the pixel in said second image;

calculating an average value of the pixels of each of said blocks of pixels surrounding the respective candidate pixels in said second image and associating said average value with the respective pixel in said second image; and

selecting pixels in said first image based on whether at least one candidate pixel in said second image is associated with a similar average value.

9. The method of claim 1 wherein selecting a plurality of reference pixels in the first image comprises:

selecting a block of pixels surrounding a respective pixel in said first image;

calculating an average gradient value, with respect to the value of the respective pixel, of the pixels in said block of pixels surrounding the respective pixel; and

selecting the pixels in said first image which have an average gradient above a threshold gradient value.

10. The method of claim 1 wherein selecting a plurality of candidate pixels comprises:

selecting a block of pixels surrounding a respective pixel in said second image;

calculating an average gradient value, with respect to the value of the respective pixel of the second image, of the pixels in said block of pixels surrounding the respective pixel of the second image; and

selecting the pixels in said second image which have an average gradient above a threshold gradient value.

11. A system, comprising:

one or more memories; and

processing circuitry coupled to the one or more memories, which, in operation,

selects a plurality of reference pixels in a first image;

associates with each reference pixel a respective pixel in a second image, the associating including:

selecting a block of pixels surrounding the reference pixel;

selecting a plurality of candidate pixels in the second image;

for each candidate pixel in the second image,

selecting a block of pixels surrounding the candidate pixel, said block of pixels surrounding the candidate pixel having a same dimension as said block of pixels surrounding the reference pixel;

identifying a subset of pixels in at least one of the block of pixels surrounding the reference pixel and the block of pixels surrounding the candidate pixel, the identifying the subset of pixels including identifying pixels in the block of pixels surrounding the reference pixel which have similar values as corresponding pixels in the block of pixels surrounding the candidate pixel; and

determining a cost associated with the candidate pixel based on the identified subset of pixels; and

selecting a subset of the candidate pixels based on the determined costs;

determining a disparity between each reference pixel and the respective pixel in said second image;

determining for each reference pixel a depth value as a function of the respective disparity; and

generating a depth map based on the determined depth values.

12. The system of claim 11 wherein the associating includes filtering pixels of the selected subset of candidate pixels and associating one of the pixels of the selected subset with the respective reference pixel based on the filtering.

13. The system of claim 11 wherein:

said selecting a block of pixels surrounding the reference pixel comprises selecting a block of pixels centered on said reference pixel; and

said selecting a block of pixels surrounding the candidate pixel comprises selecting a block of pixels centered on the candidate pixel.

14. The system of claim 11 wherein the identifying the subset of pixels includes at least one of:

selecting, in said block of pixels surrounding the reference pixel, pixels having similar values as said reference pixel; and

selecting, in said block of pixels surrounding the candidate pixel, pixels having a similar value as said candidate pixel.

15. The system of claim 11 wherein identifying pixels having similar values comprises at least one of:

comparing a value indicative a difference between grayscale values of the pixels with a threshold grayscale difference; and

comparing a value indicative of a difference between color values of the pixels with a threshold color difference.

16. The system of claim 11 , wherein said selecting a plurality of reference pixels in said first image comprises at least one of:

selecting all pixels in said first image;

selecting a subset of pixels of the first image based on pre-matching; and

down-sampling the first image.

17. The system of claim 11 wherein said selecting a plurality of reference pixels in the first image comprises:

selecting a block of pixels surrounding a pixel in said first image;

calculating an average value of pixels in said block of pixels surrounding the pixel in said first image and associating said average value with said pixel in said first image;

selecting a plurality of candidate pixel in said second image;

selecting for each candidate pixel in said second image a respective block of pixel surrounding the pixel in said second image;

calculating an average value of the pixels of each of said blocks of pixels surrounding the respective candidate pixels in said second image and associating said average value with the respective pixel in said second image; and

selecting pixels in said first image based on whether at least one candidate pixel in said second image is associated with a similar average value.

18. A non-transitory computer-readable memory medium whose contents configure an image processing system to generate a depth map by performing a method, the method comprising:

selecting a plurality of reference pixels in a first image;

associating with each reference pixel a respective pixel in a second image, the associating including:

selecting a block of pixels surrounding the reference pixel;

selecting a plurality of candidate pixels in the second image;

for each candidate pixel in the second image,

selecting a block of pixels surrounding the candidate pixel, said block of pixels surrounding the candidate pixel having a same dimension as said block of pixels surrounding the reference pixel;

identifying a subset of pixels in at least one of the block of pixels surrounding the reference pixel and the block of pixels surrounding the candidate pixel, the identifying the subset of pixels including identifying pixels in the block of pixels surrounding the reference pixel which have similar values as corresponding pixels in the block of pixels surrounding the candidate pixel; and

determining a cost associated with the candidate pixel based on the identified subset of pixels; and

selecting a subset of the candidate pixels based on the determined costs;

determining a disparity between each reference pixel and the respective pixel in said second image;

determining for each reference pixel a depth value as a function of the respective disparity; and

generating the depth map based on the determined depth values.

19. The non-transitory computer-readable medium of claim 18 wherein the identifying the subset of pixels includes at least one of:

selecting, in said block of pixels surrounding the reference pixel, pixels having similar values as said reference pixel; and

selecting, in said block of pixels surrounding the candidate pixel, pixels having a similar value as said candidate pixel.

20. The non-transitory computer-readable medium of claim 18 wherein said selecting a plurality of reference pixels in the first image comprises:

selecting a block of pixels surrounding a pixel in said first image;

calculating an average value of pixels in said block of pixels surrounding the pixel in said first image and associating said average value with said pixel in said first image;

selecting a plurality of candidate pixel in said second image;

selecting for each candidate pixel in said second image a respective block of pixel surrounding the pixel in said second image;

calculating an average value of the pixels of each of said blocks of pixels surrounding the respective candidate pixels in said second image and associating said average value with the respective pixel in said second image; and

selecting pixels in said first image based on whether at least one candidate pixel in said second image is associated with a similar average value.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 1, 2022
From: STMICROELECTRONICS S.R.L.
To: STMICROELECTRONICS INTERNATIONAL N.V.
Reel/Frame 061828/0243 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 14, 2015
From: BARONE, MASSIMILIANO
To: STMICROELECTRONICS S.R.L.
Reel/Frame 036085/0565 →
Priority Claims (3)
IT TO2013A0617 · Jul 22, 2013 · national
IT TO2013A0618 · Jul 22, 2013 · national
IT TO2013A0619 · Jul 22, 2013 · national
Continuity (1)
Related Publication 20150023588A1 · Jan 22, 2015