IP Library › Granted Patent US 12,380,539
Granted Patent B2
US 12,380,539 · App. 18/361,685 · Granted Aug 5, 2025

Detecting keypoints in image data

Inventor: David R. Pope (Fremont, CA)
Assignee: Apple Inc.
G06T5/70G06T5/00G06T7/10G06V10/462G06V10/56G06V10/94H04N9/646G06T2200/28G06T2207/20164
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 12,380,539
App. No.
18/361,685
Granted
Aug 5, 2025
Kind
B2
Abstract

Methods and systems for detecting keypoints in image data may include an image sensor interface receiving pixel data from an image sensor. A front-end pixel data processing circuit may receive pixel data and convert the pixel data to a different color space format. A back-end pixel data processing circuit may perform one or more operations on the pixel data. An output circuit may receive pixel data and output the pixel data to a system memory. A keypoint detection circuit may receive pixel data from the image sensor interface in the image sensor pixel data format or receive pixel data after processing by the front-end or the back-end pixel data processing circuits. The keypoint detection circuit may perform a keypoint detection operation on the pixel data to detect one or more keypoints in the image frame and output to the system memory a description of the one or more keypoints.

Claims (53)

1. An image signal processor, comprising:

a keypoint detection circuit configured to:

receive a first pixel data of a source image frame;

detect a first keypoint based at least in part on a portion of the first pixel data of the source image frame having one or more magnitude values exceeding a keypoint sensitivity threshold value; and

output to a memory a description based on the detected first keypoint; and

an image processing circuit configured to:

identify a second keypoint in a second image frame different from the source image frame according to the description accessed from the memory; and

perform pixel processing operations according to the identified second keypoint to modify a second pixel data of the second image frame.

2. The image signal processor of claim 1 , wherein the source image frame comprises an image resolution different from an image resolution of the second image frame.

3. The image signal processor of claim 1 , wherein the first pixel data for the source image frame comprises luminance channel image data.

4. The image signal processor of claim 1 , wherein the source image frame is encoded in a first color space format, and wherein the second image frame is encoded in a second color space format different from the first color space format.

5. The image signal processor of claim 4 , wherein the second color space format comprises a luminance channel and a plurality of chroma channels.

6. The image signal processor of claim 1 , wherein to modify the second pixel data of the second image frame the image processing circuit is configured to perform one or more noise filtering or color processing operations on respective pixel data of the one or more image frames.

7. The image signal processor of claim 1 , wherein to output the description, the keypoint detection circuit is configured to selectively output a description of one or more keypoints detected in a first set of respective regions of the source image frame responsive to respective magnitude values of the one or more keypoints detected in the first set of respective regions exceeding one of a plurality of keypoint sensitivity threshold values corresponding to the first set of respective regions of the source image frame.

8. A method, comprising:

performing, by a keypoint detection circuit:

receiving a first pixel data of a source image frame;

detecting a first keypoint based at least in part on a portion of the first pixel data of the source image frame having one or more magnitude values exceeding a keypoint sensitivity threshold value; and

outputting to a memory a description based on the detected first keypoint; and

performing, by an image processing circuit:

identifying a second keypoint in a second image frame different from the source image frame according to the description accessed from the memory; and

performing pixel processing operations according to the identified second keypoint to modify a second pixel data of the second image frame.

9. The method of claim 8 , wherein the source image frame comprises an image resolution different from an image resolution of the second image frame.

10. The method of claim 8 , wherein the first pixel data for the source image frame comprises luminance channel image data.

11. The method of claim 8 , wherein the source image frame is encoded in a first color space format, and wherein the second image frame is encoded in a second color space format different from the first color space format.

12. The method of claim 11 , wherein the second color space format comprises a luminance channel and a plurality of chroma channels.

13. The method of claim 8 , wherein modifying the second pixel data of the second image frame comprises performing one or more noise filtering or color processing operations on respective pixel data of the one or more image frames.

14. The method of claim 8 , wherein outputting the description comprises selectively outputting a description of one or more keypoints detected in a first set of respective regions of the source image frame responsive to respective magnitude values of the one or more keypoints detected in the first set of respective regions exceeding one of a plurality of keypoint sensitivity threshold values corresponding to the first set of respective regions of the source image frame.

15. A device, comprising:

a central processing unit;

a system memory; and

an image signal processor comprising:

a keypoint detection circuit configured to:

receive a first pixel data of a source image frame;

detect a first keypoint based at least in part on a portion of the first pixel data of the source image frame having one or more magnitude values exceeding a keypoint sensitivity threshold value; and

output to a memory a description based on the detected first keypoint; and

an image processing circuit configured to:

identify a second keypoint in a second image frame different from the source image frame according to the description accessed from the memory; and

perform pixel processing operations according to the identified second keypoint to modify a second pixel data of the second image frame.

16. The device of claim 15 , further comprising:

a multiplexer circuit configured to:

select pixel data for an image frame from:

an image sensor interface in an image sensor pixel data format,

a back-end pixel data processing circuit in a color space format, or

a system memory in another format; and

provide the pixel data to a pre-processing circuit; and

the pre-processing circuit configured to:

convert the image frame to a processing format comprising one or more data channels including a luminance channel to generate the source image frame; and

output the source image frame in the processing format to the keypoint detection circuit.

17. The device of claim 15 , wherein the source image frame comprises an image resolution different from an image resolution of the second image frame.

18. The device of claim 15 , wherein the source image frame is encoded in a first color space format, and wherein the second image frame is encoded in a second color space format different from the first color space format.

19. The device of claim 18 , wherein the second color space format comprises a plurality of color channels.

20. The device of claim 15 , wherein to modify the second pixel data of the second image frame the image processing circuit is configured to perform one or more noise filtering or color processing operations on respective pixel data of the one or more image frames.

Continuity (4)
Continuation 17163245 · Jan 29, 2021
Continuation 15694826 · Sep 3, 2017
Continuation 14843919 · Sep 2, 2015
Related Publication 20240029210A1 · Jan 25, 2024
References Cited (70)
US 6591348B1 · Deshpande et al. · 2003 [cited by applicant]
US 7672505B2 · Sasaki · 2010 [cited by applicant]
US 8144947B2 · Kletter · 2012 [cited by applicant]
US 8625902B2 · Baheti et al. · 2014 [cited by applicant]
US 8705876B2 · Vaddadi et al. · 2014 [cited by applicant]
US 8798357B2 · Sinha · 2014 [cited by examiner]
US 8872946B2 · Cote et al. · 2014 [cited by applicant]
US 9020276B2 · Vigliar et al. · 2015 [cited by applicant]
US 9025077B2 · Attar et al. · 2015 [cited by applicant]
US 9082235B2 · Lau et al. · 2015 [cited by applicant]
US 9177227B2 · Chehaiber · 2015 [cited by applicant]
US 9280832B2 · Cleveland et al. · 2016 [cited by applicant]
US 9367897B1 · Chen · 2016 [cited by examiner]
US 9509987B2 · Sommerlade et al. · 2016 [cited by applicant]
US 9754182B2 · Pope · 2017 [cited by applicant]
US 9754184B2 · Jaber et al. · 2017 [cited by applicant]
US 9898682B1 · Sieracki et al. · 2018 [cited by applicant]
US 10769474B2 · Pope et al. · 2020 [cited by applicant]
US 10909408B2 · Pope · 2021 [cited by applicant]
US 20020181741A1 · Masukura · 2002 [cited by examiner]
US 20070286526A1 · Abousleman · 2007 [cited by examiner]
US 20090185746A1 · Mian et al. · 2009 [cited by applicant]
US 20100048242A1 · Rhoads · 2010 [cited by examiner]
US 20110090351A1 · Cote et al. · 2011 [cited by applicant]
US 20110282897A1 · Li et al. · 2011 [cited by applicant]
US 20120008002A1 · Bigioi et al. · 2012 [cited by applicant]
US 20120050563A1 · Cote et al. · 2012 [cited by applicant]
US 20120050567A1 · Cote et al. · 2012 [cited by applicant]
US 20120275642A1 · Aller · 2012 [cited by examiner]
US 20130215239A1 · Wang · 2013 [cited by examiner]
US 20130272548A1 · Visser et al. · 2013 [cited by applicant]
US 20140052555A1 · MacIntosh · 2014 [cited by examiner]
US 20140085501A1 · Tran · 2014 [cited by applicant]
US 20140334668A1 · Saund · 2014 [cited by applicant]
US 20150267678A1 · Obrecht · 2015 [cited by examiner]
US 20150278254A1 · Bhardwaj et al. · 2015 [cited by applicant]
US 20160078272A1 · Hammoud · 2016 [cited by applicant]
US 20160196350A1 · Mau · 2016 [cited by applicant]
US 20160277645A1 · Bitouk · 2016 [cited by examiner]
US 20160292887A1 · Cho et al. · 2016 [cited by applicant]
US 20160335519A1 · Wagner et al. · 2016 [cited by applicant]
US 20160358338A1 · Tsunoda · 2016 [cited by applicant]
US 20180053293A1 · Ramalingam et al. · 2018 [cited by applicant]
US 20180268256A1 · Di Febbo et al. · 2018 [cited by applicant]
US 20210224575A1 · Pope · 2021 [cited by applicant]
CN 10264018 · 2012 [cited by applicant]
CN 102404582 · 2012 [cited by applicant]
CN 102547301 · 2012 [cited by applicant]
JP 2001026051 · 2001 [cited by applicant]
JP 2013531853 · 2013 [cited by applicant]
KR 1020010050269 · 2001 [cited by applicant]
KR 1020130003006 · 2013 [cited by applicant]
KR 101528081 · 2013 [cited by applicant]
WO 2010019925 · 2010 [cited by applicant]
U.S. Appl. No. 62/160,420, Specification, May 12, 2015. (Year: 2015). [cited by examiner]
U.S. Appl. No. 62/160,420, Drawings, May 12, 2015. (Year: 2015). [cited by examiner]
International Search Report and Written Opinion from PCT/US2016/047829, Date of mailing Nov. 9, 2016, Apple Inc., pp. 1-19. [cited by applicant]
David G. Lowe, “Distinctive Image Features from Scale-Invariant Keypoints”, International Journal of Computer Vision, vol. 60, No. 2, Jan. 5, 2004, pp. 1-28. [cited by applicant]
Lifan Yao, et al., “An Architecture of Optimised SIFT Feature Detection for an FPGA Implementation of an Image Matcher”, Field-Programmable Technology (FPT 2009), International Conference on IEEE, Dec. 9, 2009, pp. 30-3… [cited by applicant]
Eric Nowak; et al., “Sampling Strategies for Bag-of-Features Image Classification”, Security in Communication Networks; Third International Conference; Sep. 11-13, 2002, pp. 490-503. [cited by applicant]
Shuang Bai, et al., “Informative patches sampling for image classification by utilizing bottom-up and top-down information”, Machine Vision and Applications, Springer Verlag, DE, vol. 24. No. 5, Jan. 5, 2013, pp. 959-97… [cited by applicant]
Joseph Yu, “OpenCV Python SIFT-How to reduce the number of Keypoints”, Stack Overflow Community, Retrieved from URL: http://stackoverflow.com/questions/28687100/opencv-python-sift-how-to-reduce-the-number-of-keypoints; … [cited by applicant]
Anonymous, “SIFT-Extract less keypoint with opencv”, Stack Overflow Community, Retrieved from URL: http://stackoverflow.com/questions/11135546/extract-less-keypoing-with-opencv, Jun. 21, 2012, pp. 1-2. [cited by applicant]
Kadir A Peker, “Can I compute the SIFT descriptor for arbitrary corner points in the images (those not necessarily found using DoG and hence for which I don't know the scale and orientation)?”, Retrieved from URL: htpps… [cited by applicant]
Office Action from Japanese Application No. 2018-529496. dated May 7, 2019, (English Translation and Japanese version), pp. 1-5. [cited by applicant]
Office Action from Korean Application No. 10-2018-7005795, (English Translation and Korean Version), dated Aug. 27, 2019, pp. 1-11. [cited by applicant]
Office action from Chinese Application No. 201680050102.1, dated Jan. 25, 2021, (Englsih translation and Chinese version), pp. 1-31. [cited by applicant]
Notice of Preliminary Amendment rejection from Korean Application No. 10-2021-7031314, dated Jan. 25, 2022, pp. 1-9. [cited by applicant]
European Search report from Application No. 16759922.4-1207, dated May 26, 2021, pp. 1-8. [cited by applicant]
U.S. Appl. No. 19/030,309, filed Jul. 17, 2025, David R. Pope. [cited by applicant]