IP Library › Granted Patent US 9,341,720
Granted Patent B2
US 9,341,720 · App. 13/173,984 · Granted May 17, 2016

Camera-based position location and navigation based on image processing

Inventors: Lionel J. Garin (Palo Alto, CA); Ayman Naquib (Cupertino, CA); Charles A. Bergan (Cardiff, CA)
Assignee: QUALCOMM Incorporated
G01S19/235G01S19/49
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,341,720
App. No.
13/173,984
Granted
May 17, 2016
Kind
B2
Abstract

An apparatus and method for estimating a position of a mobile device based on one or more images is disclosed. Positioning information is derived from an image containing an SAS (self-addressing source such as a QR code), thereby setting a first vector V 1 and an SAS pose. The image is also used to determine a displacement between the mobile device and the self-addressing source, thereby setting a second vector V 2 . Using the first vector V 1 , the SAS pose and the second vector V 2 , the mobile device may estimate its position with high accuracy and may also recalibrate dead-reckoning navigation and a gyrometer.

Claims (115)

1. A method for calibrating navigation in a mobile device comprising a camera and an inertial sensor, the method comprising:

providing an initial position without using any SASs (self-addressing sources);

detecting an SAS (self-addressing source);

determining a first vector V 1 between the SAS and a reference point;

determining an SAS pose relative to the reference point;

determining a second vector V 2 of the mobile device relative to the SAS, wherein the second vector V 2 is determined based from an image of the SAS captured by the camera and wherein the second vector V 2 is represented by a displacement from the mobile device to the SAS and an angle from the mobile device to the SAS;

computing a third vector V 3 of the mobile device based on the first vector V 1 and the second vector V 2 , wherein V 3 =V 1 −V 2 ;

computing a current position of the mobile device based on the third vector V 3 ; and

recalibrating the inertial sensor based on the current position.

2. The method of claim 1 , wherein the initial position comprises an origin (0, 0, 0).

3. The method of claim 1 , wherein the initial position comprises an image-based position estimate.

4. The method of claim 1 , wherein the initial position comprises a global navigation satellite systems based position (GNSS-based position).

5. The method of claim 1 , wherein the SAS comprises a quick response code (QR code).

6. The method of claim 1 , wherein the SAS comprises a bar code.

7. The method of claim 1 , wherein the SAS comprises text.

8. The method of claim 1 , wherein the SAS comprises a link to a database.

9. The method of claim 1 , wherein the SAS comprises a wireless transmitter.

10. The method of claim 9 , wherein the wireless transmitter comprises an RF ID tag.

11. The method of claim 1 , further comprising determining a mobile pose relative to the SAS.

12. The method of claim 1 , wherein detecting the SAS comprises capturing an image of the SAS and wherein determining the second vector V 2 comprises determining geometry of the SAS in the image.

13. The method of claim 1 , wherein the inertial sensor comprises a gyrometer.

14. The method of claim 1 , wherein the detecting the SAS comprises using a scale-invariant feature transform (SIFT).

15. The method of claim 1 , further comprising

sending an SAS information request to a server having a database, wherein the database includes the first vector V 1 ; and

receiving an SAS information response, from the server, comprising the first vector V 1 .

16. The method of claim 15 , wherein the SAS information request comprises a position estimate of the SAS determined by the mobile device.

17. The method of claim 16 , wherein the SAS information request further comprises an estimated SAS pose determined by the mobile device.

18. The method of claim 16 , wherein the position estimate of the SAS comprises an estimated position of the mobile device.

19. The method of claim 15 , wherein the SAS information response further comprises an SAS pose from the database.

20. The method of claim 1 , further comprising using dead reckoning to determine a first updated position relative to the initial position.

21. The method of claim 20 , wherein using dead reckoning comprises using a simultaneous localization and mapping (SLAM) algorithm.

22. The method of claim 20 , wherein using dead reckoning comprises:

determining a direction using a magnetometer; and

determining a step using an accelerometer.

23. The method of claim 1 , further comprising determining an estimated position of the SAS based on the second vector V 2 and the initial position.

24. A mobile device comprising a camera and a navigation system including an inertial sensor, the mobile device comprising:

means for providing an initial position without using any SASs (self-addressing sources);

means for detecting an SAS (self-addressing source);

means for determining a first vector V 1 between the SAS and a reference point;

means for determining an SAS pose relative to the reference point;

means for determining a second vector V 2 of the mobile device relative to the SAS, wherein the second vector V 2 is determined based from an image of the SAS captured by the camera and wherein the second vector V 2 is represented by a displacement from the mobile device to the SAS and an angle from the mobile device to the SAS;

means for computing a third vector V 3 of the mobile device based on the first vector V 1 and the second vector V 2 , wherein V 3 =V 1 −V 2 ;

means for computing a current position of the mobile device based on the third vector V 3 ; and

means for recalibrating the inertial sensor based on the current position.

25. A mobile device comprising a processor and a memory and further comprising a camera and an inertial sensor, wherein the memory includes software instructions to:

provide an initial position without using any SASs (self-addressing sources);

detect an SAS (self-addressing source);

determine a first vector V 1 between the SAS and a reference point;

determine an SAS pose relative to the reference point;

determine a second vector V 2 of the mobile device relative to the SAS, wherein the second vector V 2 is determined based from an image of the SAS captured by the camera and wherein the second vector V 2 is represented by a displacement from the mobile device to the SAS and an angle from the mobile device to the SAS;

compute a third vector V 3 of the mobile device based on the first vector V 1 and the second vector V 2 , wherein V 3 =V 1 −V 2 ;

compute a current position of the mobile device based on the third vector V 3 ; and

recalibrate the inertial sensor based on the current position.

26. A non-transitory computer-readable storage medium including program code stored thereon for a mobile device comprising a camera and an inertial sensor, the program code comprising code to:

provide an initial position without using any SASs (self-addressing sources);

detect an SAS (self-addressing source);

determine a first vector V 1 between the SAS and a reference point;

determine an SAS pose relative to the reference point;

determine a second vector V 2 of the mobile device relative to the SAS, wherein the second vector V 2 is determined based from an image of the SAS captured by the camera and wherein the second vector V 2 is represented by a displacement from the mobile device to the SAS and an angle from the mobile device to the SAS;

compute a third vector V 3 of the mobile device based on the first vector V 1 and the second vector V 2 , wherein V 3 =V 1 −V 2 ;

compute a current position of the mobile device based on the third vector V 3 ; and

recalibrate the inertial sensor based on the current position.

27. A method for determining a position of a mobile device comprising a camera and an inertial sensor, the method comprising:

providing an initial position without using any SASs (self-addressing sources);

detecting an SAS (self-addressing source);

determining a first vector V 1 between the SAS and a reference point;

determining an SAS pose relative to the reference point;

determining a second vector V 2 of the mobile device relative to the SAS, wherein the second vector V 2 is determined based from an image of the SAS captured by the camera and wherein the second vector V 2 is represented by a displacement from the mobile device to the SAS and an angle from the mobile device to the SAS;

computing a third vector V 3 of the mobile device based on the first vector V 1 and the second vector V 2 , wherein V 3 =V 1 −V 2 ;

computing a current position of the mobile device based on the third vector V 3 ; and

recalibrating the inertial sensor based on the current position.

28. The method of claim 27 , wherein the SAS comprises a quick response code (QR code).

29. The method of claim 27 , wherein the SAS comprises a bar code.

30. The method of claim 27 , wherein the SAS comprises text.

31. The method of claim 27 , wherein the SAS comprises a link to a database.

32. The method of claim 27 , wherein the SAS comprises a wireless transmitter.

33. The method of claim 32 , wherein the wireless transmitter comprises an RF ID tag.

34. The method of claim 27 , further comprising determining a mobile pose relative to the SAS.

35. The method of claim 27 , wherein detecting the SAS comprises capturing an image of the SAS and wherein determining the second vector V 2 comprises determining geometry of the SAS in the image.

36. The method of claim 27 , wherein the detecting the SAS comprises using a scale-invariant feature transform (SIFT).

37. The method of claim 27 , further comprising

sending an SAS information request to a server having a database, wherein the database includes the first vector V 1 ; and

receiving an SAS information response, from the server, comprising the first vector V 1 .

38. The method of claim 37 , wherein the SAS information request comprises a position estimate of the SAS determined by the mobile device.

39. The method of claim 38 , wherein the SAS information request further comprises an estimated SAS pose determined by the mobile device.

40. The method of claim 38 , wherein the position estimate of the SAS comprises an estimated position of the mobile device.

41. The method of claim 37 , wherein the SAS information response further comprises an SAS pose from the database.

42. The method of claim 27 , further comprising determining an estimated position of the SAS based on the second vector V 2 and the initial position.

43. A mobile device comprising a camera and an inertial sensor, the mobile device comprising:

means for providing an initial position without using any SASs (self-addressing sources);

means for detecting an SAS (self-addressing source);

means for determining a first vector V 1 between the SAS and a reference point;

means for determining an SAS pose relative to the reference point;

means for determining a second vector V 2 of the mobile device relative to the SAS, wherein the second vector V 2 is determined based from an image of the SAS captured by the camera and wherein the second vector V 2 is represented by a displacement from the mobile device to the SAS and an angle from the mobile device to the SAS;

means for computing a third vector V 3 of the mobile device based on the first vector V 1 and the second vector V 2 , wherein V 3 =V 1 −V 2 ;

means for computing a current position of the mobile device based on the third vector V 3 ; and

recalibrating the inertial sensor based on the current position.

44. A mobile device comprising a processor and a memory and further comprising a camera and an inertial sensor, wherein the memory includes software instructions to:

provide an initial position without using any SASs (self-addressing sources);

detect an SAS (self-addressing source);

determine a first vector V 1 between the SAS and a reference point;

determine an SAS pose relative to the reference point;

determine a second vector V 2 of the mobile device relative to the SAS, wherein the second vector V 2 is determined based from an image of the SAS captured by the camera and wherein the second vector V 2 is represented by a displacement from the mobile device to the SAS and an angle from the mobile device to the SAS;

compute a third vector V 3 of the mobile device based on the first vector V 1 and the second vector V 2 , wherein V 3 =V 1 −V 2 ;

compute a current position of the mobile device based on the third vector V 3 ; and

recalibrate the inertial sensor based on the current position.

45. A non-transitory computer-readable storage medium including program code stored thereon for a mobile device comprising a camera and an inertial sensor, the program code comprising code to:

provide an initial position without using any SASs (self-addressing sources);

detect an SAS (self-addressing source);

determine a first vector V 1 between the SAS and a reference point;

determine an SAS pose relative to the reference point;

determine a second vector V 2 of the mobile device relative to the SAS, wherein the second vector V 2 is determined based from an image of the SAS captured by the camera and wherein the second vector V 2 is represented by a displacement from the mobile device to the SAS and an angle from the mobile device to the SAS;

compute a third vector V 3 of the mobile device based on the first vector V 1 and the second vector V 2 , wherein V 3 =V 1 −V 2 ;

compute a current position of the mobile device based on the third vector V 3 ; and

recalibrating the inertial sensor based on the current position.

Assignments (3)
CORRECTIVE ASSIGNMENT TO CORRECT THE THIRD ASSIGNOR NAME PREVIOUSLY RECORDED AT REEL: 026905 FRAME: 0116. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jun 20, 2014
From: GARIN, LIONEL J.; NAGUIB, AYMAN; BERGAN, CHARLES A.
To: QUALCOMM INCORPORATED
Reel/Frame 033205/0061 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 14, 2011
From: GARIN, LIONEL J; NAGUIB, AYMAN; BERGAN, CHARLES
To: QUALCOMM INCORPORATED
Reel/Frame 026905/0116 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 7, 2011
From: GARIN, LIONEL J; NAGUIB, AYMAN
To: QUALCOMM INCORPORATED
Reel/Frame 026868/0030 →
Continuity (2)
Provisional Application 61431742 · Jan 11, 2011
Related Publication 20120176491A1 · Jul 12, 2012