A mobile station determines its orientation using an image of an object produced by the mobile station and a top view of that object obtained from an online server. The mobile station image is analyzed to identify lines on the object and to determine the direction of the lines with respect to the mobile station. The top view image, which may be a satellite image, is also analyzed to identify lines on the object that correspond to the lines identified in the mobile station image. The direction of the lines in the top view image are compared to the direction of lines in the mobile station image and based on their relative orientation the orientation of the mobile station may be determined. For example, the difference between the preliminary and corrected orientations may be stored as a calibration factor and used to correct subsequent orientation measurements from orientation sensors.
|
22. A non-transitory computer-readable medium including program code stored thereon, comprising:
program code to determine a position of a mobile station;
program code to analyze an image to detect lines on an object in the image, wherein the image is not a top view of the object;
program code to control a wireless transceiver to obtain a top view image of the object based on the position of the mobile station;
program code to analyze the top view image to detect lines of the object in the top view image;
program code to determine an orientation of the mobile station based on matching a direction of the lines in the image of the object with a direction of the lines in the top view image of the object.
15. A system for correcting an orientation of a mobile station, the system comprising:
means for generating an image of an object using the mobile station, wherein the image is not a top view of the object;
means for determining a position of the mobile station;
means for retrieving a top view image of the object based on the position;
means for analyzing the image of the object to determine a direction of lines in the image of the object;
means for analyzing the top view image to determine a direction of lines in the top view image of the object with respect to a fixed coordinate system; and
means for determining the orientation of the mobile station based on matching the direction of the lines in the image of the object with the direction of the lines in the top view image of the object.
1. A method comprising:
generating an image of an object using a camera in a mobile station and providing the image to a computer, wherein the image is not a top view of the object;
determining a position of the mobile station;
retrieving a top view image of the object based on the position and providing the top view image to the computer;
analyzing the image of the object with the computer to determine a direction of lines in the image of the object;
analyzing the top view image with the computer to determine a direction of lines in the top view image of the object with respect to a fixed coordinate system; and
determining an orientation of the mobile station with the computer based on matching the direction of lines in the image of the object with the direction of the lines in the top view image of the object;
storing the determined orientation of the mobile station.
9. A mobile station comprising:
a satellite positioning system receiver that provides positioning data;
a camera that produces an image;
a wireless transceiver;
a processor connected to the satellite positioning system receiver to receive the positioning data, the processor being connected to the camera to receive the image, and the processor being connected to the wireless transceiver;
memory connected to the processor; and
software held in the memory and run in the processor to determine a position of the mobile station based on the positioning data; the software further causes the processor to analyze the image from the camera to detect lines on an object in the image, wherein the image is not a top view of the object; the software further causes the processor to control the wireless transceiver to obtain a top view image of the object based on the position of the mobile station; the software further causes the processor to analyze the top view image to detect lines of the object in the top view image; the software further causes the processor to determine an orientation of the mobile station based on matching a direction of lines in the image of the object with a direction of the lines in the top view image of the object.
2. The method of
3. The method of
4. The method of
5. The method of
calculating a relative orientation of the direction of the lines in the image of the object and the direction of lines in the top view image; and
correcting the preliminary orientation using the relative orientation.
6. The method of
detecting lines in the image of the object that have a same direction in three-dimensional space; and
using a vanishing point of the detected lines to determine the direction of the lines.
7. The method of
8. The method of
10. The mobile station of
11. The mobile station of
12. The mobile station of
13. The mobile station of
14. The mobile station of
16. The system of
17. The system of
18. The system of
19. The system of
means for calculating a relative orientation of the direction of the lines in the image of the object and the direction of lines in the top view image; and
means for correcting the preliminary orientation using the relative orientation.
20. The system of
means for detecting lines in the image of the object that have a same direction in three-dimensional space; and
means for using a vanishing point of the detected lines to determine the direction of the lines.
21. The system of
23. The non-transitory computer-readable medium of
24. The non-transitory computer-readable medium of
25. The non-transitory computer-readable medium of
|
Multi-dimensional sensors, such as magnetometers and accelerometers, are increasingly used in mobile application for location or orientation awareness. For example, a tilt compensated digital compass may be used in applications such as pedestrian navigation. A tilt compensated digital compass includes a three-dimensional magnetometer to measure the Earth's magnetic field and a three-dimensional accelerometer for tilt compensation.
Mobile applications in which an orientation sensor may be found, e.g., such as a cellular telephone, are mass produced and, thus, the orientation sensors, if present, are generally inexpensive. Such orientation sensors, however, suffer from jitter or drift in the orientation measurement resulting in inaccurate orientation measurements. Consequently, improvements in determining orientation in a mobile application are desired.
A mobile station determines its orientation using an image of an object produced by the mobile station and a top view of that object obtained from an online server. The top view of the object may be, e.g., a digital satellite image or aerial photograph. The image produced by the mobile station is analyzed to identify lines on the object and to determine the direction of the lines with respect to the mobile station. The top view image is also analyzed to identify lines on the object that correspond to the lines identified in the mobile station image. The direction of the lines in the top view image are compared to the direction of lines in the mobile station image and based on their relative orientation, the orientation of the mobile station may be determined. For example, the difference between the preliminary and corrected orientations may be stored as a calibration factor and used to correct subsequent orientation measurements from orientation sensors.
As used herein, a mobile station (MS) refers to a device such as a cellular or other wireless communication device, personal communication system (PCS) device, personal navigation device (PND), Personal Information Manager (PIM), Personal Digital Assistant (PDA), laptop or other suitable mobile device which is capable of receiving wireless communication and/or navigation signals, such as navigation positioning signals. The term “mobile station” is also intended to include devices which communicate with a personal navigation device (PND), such as by short-range wireless, infrared, wireline connection, or other connection—regardless of whether satellite signal reception, assistance data reception, and/or position-related processing occurs at the device or at the PND. Also, “mobile station” is intended to include all devices, including wireless communication devices, computers, laptops, etc. which are capable of communication with a server, such as via the Internet, WiFi, or other network, and regardless of whether satellite signal reception, assistance data reception, and/or position-related processing occurs at the device, at a server, or at another device associated with the network. Any operable combination of the above are also considered a “mobile station.”
A satellite positioning system (SPS) typically includes a system of transmitters positioned to enable entities to determine their location on or above the Earth based, at least in part, on signals received from the transmitters. Such a transmitter typically transmits a signal marked with a repeating pseudo-random noise (PN) code of a set number of chips and may be located on ground based control stations, user equipment and/or space vehicles. In a particular example, such transmitters may be located on Earth orbiting satellite vehicles (SVs) 102, illustrated in
In accordance with certain aspects, the techniques presented herein are not restricted to global systems (e.g., GNSS) for SPS. For example, the techniques provided herein may be applied to or otherwise enabled for use in various regional systems, such as, e.g., Quasi-Zenith Satellite System (QZSS) over Japan, Indian Regional Navigational Satellite System (IRNSS) over India, Beidou over China, etc., and/or various augmentation systems (e.g., an Satellite Based Augmentation System (SBAS)) that may be associated with or otherwise enabled for use with one or more global and/or regional navigation satellite systems. By way of example but not limitation, an SBAS may include an augmentation system(s) that provides integrity information, differential corrections, etc., such as, e.g., Wide Area Augmentation System (WAAS), European Geostationary Navigation Overlay Service (EGNOS), Multi-functional Satellite Augmentation System (MSAS), GPS Aided Geo Augmented Navigation or GPS and Geo Augmented Navigation system (GAGAN), and/or the like. Thus, as used herein an SPS may include any combination of one or more global and/or regional navigation satellite systems and/or augmentation systems, and SPS signals may include SPS, SPS-like, and/or other signals associated with such one or more SPS.
The mobile station 100 is not limited to use with an SPS for position determination, as position determination techniques described herein may be implemented in conjunction with various wireless communication networks, including cellular towers 104 and from wireless communication access points 106, such as a wireless wide area network (WWAN), a wireless local area network (WLAN), a wireless personal area network (WPAN), and so on. Further the mobile station 100 may access online servers to obtain data, such as satellite images, using various wireless communication networks via cellular towers 104 and from wireless communication access points 106, or using satellite vehicles 102 if desired. The term “network” and “system” are often used interchangeably. A WWAN may be a Code Division Multiple Access (CDMA) network, a Time Division Multiple Access (TDMA) network, a Frequency Division Multiple Access (FDMA) network, an Orthogonal Frequency Division Multiple Access (OFDMA) network, a Single-Carrier Frequency Division Multiple Access (SC-FDMA) network, Long Term Evolution (LTE), and so on. A CDMA network may implement one or more radio access technologies (RATs) such as cdma2000, Wideband-CDMA (W-CDMA), and so on. Cdma2000 includes IS-95, IS-2000, and IS-856 standards. A TDMA network may implement Global System for Mobile Communications (GSM), Digital Advanced Mobile Phone System (D-AMPS), or some other RAT. GSM and W-CDMA are described in documents from a consortium named “3rd Generation Partnership Project” (3GPP). Cdma2000 is described in documents from a consortium named “3rd Generation Partnership Project 2” (3GPP2). 3GPP and 3GPP2 documents are publicly available. A WLAN may be an IEEE 802.11x network, and a WPAN may be a Bluetooth network, an IEEE 802.15x, or some other type of network. The techniques may also be implemented in conjunction with any combination of WWAN, WLAN and/or WPAN.
Mobile station 100 may include a receiver 140, such includes a satellite positioning system (SPS) receiver that receives signals from a SPS satellites 102 (
The orientation sensor 120, camera 130, SPS receiver 140, and wireless transceiver 135 are connected to and communicate with a mobile station control 150. The mobile station control 150 accepts and processes data from the orientation sensor 120, camera 130, SPS receiver 140, and wireless transceiver 135 and controls the operation of the devices. The mobile station control 150 may be provided by a processor 152 and associated memory 154, a clock 153, hardware 156, software 158, and firmware 157. The mobile station control 150 further includes an image processing engine 155, which is illustrated separately from processor 152 for clarity, but may be within the processor 152. The image processing engine 155 processes and compares the image produced by camera 130 and the top view image retrieved from the network. It will be understood as used herein that the processor 152 can, but need not necessarily include, one or more microprocessors, embedded processors, controllers, application specific integrated circuits (ASICs), digital signal processors (DSPs), and the like. The term processor is intended to describe the functions implemented by the system rather than specific hardware. Moreover, as used herein the term “memory” refers to any type of computer storage medium, including long term, short term, or other memory associated with the mobile station, and is not to be limited to any particular type of memory or number of memories, or type of media upon which memory is stored.
The mobile station 100 also includes a user interface 160 that is in communication with the mobile station control 150, e.g., the mobile station control 150 accepts data and controls the user interface 160. The user interface 160 includes a display 162 that may display images produced by the camera 130. The display 162 may further display control menus and positional information. The user interface 160 further includes a keypad 164 or other input device through which the user can input information into the mobile station 100. In one embodiment, the keypad 164 may be integrated into the display 162, such as a touch screen display. The user interface 160 may also include, e.g., a microphone and speaker, e.g., when the mobile station 100 is a cellular telephone.
The methodologies described herein may be implemented by various means depending upon the application. For example, these methodologies may be implemented in hardware 156, firmware 157, software 158, or any combination thereof. For a hardware implementation, the processing units may be implemented within one or more application specific integrated circuits (ASICs), digital signal processors (DSPs), digital signal processing devices (DSPDs), programmable logic devices (PLDs), field programmable gate arrays (FPGAs), processors, controllers, micro-controllers, microprocessors, electronic devices, other electronic units designed to perform the functions described herein, or a combination thereof.
For a firmware and/or software implementation, the methodologies may be implemented with modules (e.g., procedures, functions, and so on) that perform the functions described herein. Any machine-readable medium tangibly embodying instructions may be used in implementing the methodologies described herein. For example, software codes may be stored in memory 154 and executed by the processor 152. Memory may be implemented within the processor unit or external to the processor unit. As used herein the term “memory” refers to any type of long term, short term, volatile, nonvolatile, or other memory and is not to be limited to any particular type of memory or number of memories, or type of media upon which memory is stored.
If implemented in firmware and/or software, the functions may be stored as one or more instructions or code on a computer-readable medium. Examples include computer-readable media encoded with a data structure and computer-readable media encoded with a computer program. Computer-readable media includes physical computer storage media. A storage medium may be any available medium that can be accessed by a computer. By way of example, and not limitation, such computer-readable media can comprise RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to store desired program code in the form of instructions or data structures and that can be accessed by a computer; disk and disc, as used herein, includes compact disc (CD), laser disc, optical disc, digital versatile disc (DVD), floppy disk and blu-ray disc where disks usually reproduce data magnetically, while discs reproduce data optically with lasers. Combinations of the above should also be included within the scope of computer-readable media.
In addition to storage on computer readable medium, instructions and/or data may be provided as signals on transmission media included in a communication apparatus. For example, a communication apparatus may include a transceiver having signals indicative of instructions and data. The instructions and data are configured to cause one or more processors to implement the functions outlined in the claims. That is, the communication apparatus includes transmission media with signals indicative of information to perform disclosed functions. At a first time, the transmission media included in the communication apparatus may include a first portion of the information to perform the disclosed functions, while at a second time the transmission media included in the communication apparatus may include a second portion of the information to perform the disclosed functions.
The position of the mobile station is determined (204) at or near the time that the image is produced. The time between the determination of position and producing the image should be minimized to reduce possible errors in the orientation determination caused by movement of the mobile station from the imaging position. The position of the mobile station may be determined using an SPS system, e.g., data from a SPS system is received by the SPS receiver 140 (
A preliminary orientation of the mobile station 206 may be determined (206), e.g., using the orientation sensor 120, which may include a tilt corrected compass such as a magnetometer and an accelerometer or gyroscopes. The orientation sensor 120 provides orientation data to the processor 152, which calculates the preliminary orientation. Orientation sensors are generally imprecise and measurements made using these devices typically suffer from jitter and drift. Consequently, an orientation measurement produced by the orientation sensor 120 may be inaccurate and require correction. A preliminary orientation of the mobile station may alternatively be determined using images, e.g., the preliminary orientation may be based on a previous result from the present method. In yet another embodiment, the preliminary orientation of the mobile station is not determined and the top view image is obtained and analyzed without use of a preliminary orientation measurement.
A top view image of the object in the image is retrieved from server 112 and database 114 (
The image 300 of the object 302 is analyzed to identify lines on the object 302 and to determine a direction of the lines (210). In one embodiment, the direction of lines on the object may be determined with respect to the preliminary orientation of the mobile station. The image 300 of the object 302 may be analyzed, e.g., by the image processing engine 155, which may be part of or separate from processor 152 (
liTVi=0 Eq. 1
where li=(ai, bi, ci) represents the ith line. A method, such as RANSAC (RANdom SAmple Consensus) may be used to estimate the vertical vanishing point. It should be understood that the described vanishing point estimation method may be used when the image is produced by a roughly upright camera. If desired, other known vanishing point estimation methods may be used.
For vertical lines, there is only one vanishing point to determine, thus, equation 1, needs to be solved only once. For horizontal lines, however, multiple vanishing points are possible. To determine horizontal vanishing points, i is set to 0 (409) and the RANSAC method is used to compute the vanishing point vi, the inliers Hiin and the outliers Hiout (410). The outliers Hiout are removed from the horizontal lines group (412). If i<M and there are more than six horizontal lines left (414), i is increased by one (416) and the process is repeated. If i is not less than M, or if there are no more than six horizontal lines left (414), the process ends and the vertical and horizontal vanishing points are stored 418, e.g., in memory 154 (
Referring back to
The relative orientation of the direction of the lines in the image 300 with respect to the direction of the lines in the top view image is determined and used to determine the orientation of the mobile station (216), e.g., by correcting the preliminary orientation. As can be seen in
minq∥[A1, . . . , Am]tq∥2 Eq. 2
where Aj is defined as:
and where sj=vi−di and aj=vi+di and vi is defined the direction of the lines that interest on the ith vanishing point on the image 300, and di is defined the direction of the lines detected on the top view image 350 as discussed in “Automatic Recovery of Relative Camera Rotations for Urban Scenes”, by Antone, M. E. and Teller, S, IEEE Conference on Computer Vision and Patter Recognition Proceedings, Vol. 2, p. 282-289 (2000), which is incorporated herein by reference.
Although the present invention is illustrated in connection with specific embodiments for instructional purposes, the present invention is not limited thereto. Various adaptations and modifications may be made without departing from the scope of the invention. Therefore, the spirit and scope of the appended claims should not be limited to the foregoing description.
Diaz Spindola, Serafin, Jiang, Bolan
Patent | Priority | Assignee | Title |
8654236, | Jun 17 2010 | Canon Kabushiki Kaisha | Imaging apparatus including a control unit configured to change a correction value for correcting an output of an orientation detection unit |
9261368, | Jun 20 2012 | HERE GLOBAL B V | Method and apparatus for using a device flashlight as feedback for guidance purposes |
Patent | Priority | Assignee | Title |
4179693, | May 23 1977 | Rockwell Internation Corporation | Autonomous, check-pointing, navigational system for an airborne vehicle |
7424133, | Nov 08 2002 | PICTOMERTRY INTERNATIONAL CORPORATION | Method and apparatus for capturing, geolocating and measuring oblique images |
8073584, | Jan 19 2007 | Thales | Method for measuring dynamic parameters of an aircraft progressing over an airport zone |
20040010367, | |||
20090190797, | |||
20090262113, | |||
20090281718, | |||
WO2008048088, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Nov 19 2009 | Qualcomm Incorporated | (assignment on the face of the patent) | / | |||
Nov 25 2009 | JIANG, BOLAN | Qualcomm Incorporated | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 023578 | /0572 | |
Nov 25 2009 | DIAZ SPINDOLA, SERAFIN | Qualcomm Incorporated | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 023578 | /0572 |
Date | Maintenance Fee Events |
Dec 02 2016 | REM: Maintenance Fee Reminder Mailed. |
Apr 23 2017 | EXP: Patent Expired for Failure to Pay Maintenance Fees. |
Date | Maintenance Schedule |
Apr 23 2016 | 4 years fee payment window open |
Oct 23 2016 | 6 months grace period start (w surcharge) |
Apr 23 2017 | patent expiry (for year 4) |
Apr 23 2019 | 2 years to revive unintentionally abandoned end. (for year 4) |
Apr 23 2020 | 8 years fee payment window open |
Oct 23 2020 | 6 months grace period start (w surcharge) |
Apr 23 2021 | patent expiry (for year 8) |
Apr 23 2023 | 2 years to revive unintentionally abandoned end. (for year 8) |
Apr 23 2024 | 12 years fee payment window open |
Oct 23 2024 | 6 months grace period start (w surcharge) |
Apr 23 2025 | patent expiry (for year 12) |
Apr 23 2027 | 2 years to revive unintentionally abandoned end. (for year 12) |