System and method for precision localization and mapping

Information

  • Patent Grant
  • 11175145
  • Patent Number
    11,175,145
  • Date Filed
    Thursday, January 3, 2019
    5 years ago
  • Date Issued
    Tuesday, November 16, 2021
    3 years ago
Abstract
A method for localization and mapping, including recording an image at a camera mounted to a vehicle, the vehicle associated with a global system location; identifying a landmark depicted in the image with a landmark identification module of a computing system associated with the vehicle, the identified landmark having a landmark geographic location and a known parameter; extracting a set of landmark parameters from the image with a feature extraction module of the computing system; determining, at the computing system, a relative position between the vehicle and the landmark geographic location based on a comparison between the extracted set of landmark parameters and the known parameter; and updating, at the computing system, the global system location based on the relative position.
Description
TECHNICAL FIELD

This invention relates generally to the mapping field, and more specifically to a new and useful system and method for precision localization in the mapping field.





BRIEF DESCRIPTION OF THE FIGURES


FIG. 1 is a schematic representation of the method for precision localization.



FIG. 2 is an example of method application.



FIG. 3 is an example of determining the system position based on landmark parameter values.



FIG. 4 is an example of determining a precise system location based on the system position and the known landmark location.



FIG. 5 is an example of a trigger event for method performance.



FIG. 6 is an example of trilaterating the system location based on locations for multiple detected landmarks.



FIG. 7 is an example of processing the recorded image for landmark detection and/or parameter extraction.



FIGS. 8 and 9 are examples of building a real-time map based on the determined position and/or detected landmarks.



FIG. 10 is a schematic representation of an example embodiment of the precision localization and mapping system.





DESCRIPTION OF THE PREFERRED EMBODIMENTS

The following description of the preferred embodiments of the invention is not intended to limit the invention to these preferred embodiments, but rather to enable any person skilled in the art to make and use this invention.


1. Overview.


As shown in FIG. 1, the method 100 for precision localization includes: detecting a landmark proximal the vehicle; determining the vehicle position relative to the detected landmark; and determining a global system location based on the vehicle position relative to the detected landmark. The method functions to determine a precise geographic location for the system 200. This high-precision system location can be used to minimize scale ambiguity and drift in the location provided by secondary location systems (e.g., GPS), used for precise data logging, navigation, real-time map updates (examples shown in FIGS. 8 and 9), or for any other suitable purpose.


The method is preferably performed while the vehicle is traversing a physical space (e.g., outside, on roads, in tunnels, through airspace, etc.), but can additionally or alternatively be performed when the vehicle is not moving (e.g., parked) or operating in any other suitable mode. The method can be performed at a predetermined frequency, in response to a localization error (e.g., estimated, calculated) exceeding a threshold value, in response to trigger event occurrence (e.g., system location within a predetermined geofence), or at any other suitable time.


In one example application (specific example shown in FIG. 2), a vehicle uses location estimates provided by a secondary location system while traversing (e.g., associates the location estimates with auxiliary sampled signals), and performs the method to determine a higher accuracy and/or precise location when a landmark is detected in close proximity. The precise system location can be determined to sub-meter accuracy (e.g., 1-sigma, 2-sigma, 3-sigma sub-meter accuracy, etc.), sub-0.5 m accuracy (e.g., 1-sigma, 2-sigma, 3-sigma sub-0.5 m accuracy, etc.), or any other suitable accuracy and/or precision. The location estimates can be provided by on-board global navigation systems (e.g., low-resolution GPS systems), dead-reckoning systems, or any other suitable secondary location system. When global navigation locations are used, the high-precision location can be used to refine the concurrently recorded and/or previously determined location estimates. When dead-reckoning systems are used, the high-precision location can be used to correct or eliminate drift (e.g., location error) and/or reset the reference point for the dead-reckoning system (e.g., reset the location error, set the location error to a zero value or another suitable value, etc.). The precise location determination and/or location estimate correction can be performed: when the vehicle is within a predetermined distance of the landmark, when the landmark is detected, in real time, when the location error has exceeded and/or met a threshold value, or at any other suitable time. The location estimate correction factor can optionally be stored in association with the location estimate, and be used to correct other vehicle locations for comparable location estimates (e.g., for the same location estimate, same secondary location system, etc.).


In a second example application, the method can provide precise system locations for dense urban areas, areas with poor GPS coverage, or in cases where algorithms, such as lane detection on highways, cannot be used (e.g., when lane lines are absent).


In a third example application, the method can provide highly precise, real-time, maps and/or map updates, such as intersection information (e.g., congestion, light status, lane transitions, etc.), construction, traffic information, changes in the proximal environment, or any other suitable information. This real- or near-real time information can be used for: automated driving applications, to build a 3-D model of the region surrounding the vehicle (and/or a global model, if data from multiple vehicle systems are aggregated), as simulation data for autonomous vehicle training, to search the physical world (e.g., for a given license plate number), or for any other suitable purpose.


2. Benefits


The system and method, and/or variants thereof, can confer several benefits.


First, the system and method functions to determine precise locations in-situ (e.g., while the vehicle is traversing). This can function to provide more accurate sensor measurement location correlations, autonomous navigation (e.g., based on the precise location, based on the landmarks), on-the-fly camera intrinsics calibration (e.g., calibration of camera focal length, principal point, etc. based on known fiducial dimensions), and/or provide any other suitable benefit from having precise locations in real- or near-real time.


Second, the system and method can provide consistent estimation of landmarks (e.g., fiducials in the vehicle environment) by using appropriate linearization, feature/state parameterization, and/or other methods. In one variation, the method can apply computer vision methods, such as edge detection, contouring, line fitting, model fitting, and/or deep learning methods to eliminate false positives in fiducial detection.


Third, because the system and method references a set of landmark maps, the system and method can further function to detect changes in the environment (e.g., by comparing detected landmarks with expected landmarks). These changes can subsequently be interpreted for auxiliary vehicle routing, maintenance notification, and/or for any other suitable purpose.


Fourth, the determined precise location can be used to estimate and/or correct the location estimates for secondary vehicles in the same area. For example, secondary vehicles sharing a parameter with the vehicle (e.g., same or similar GPS location pattern, inaccuracy pattern, context, secondary location system, route, etc.) can use the correction factors determined by the primary vehicle. In a second example, the primary vehicle precise location can be communicated to a proximal secondary vehicle (e.g., following the primary vehicle, approaching the primary vehicle, etc.), wherein the secondary vehicle can determine the secondary vehicle's precise location based on the primary vehicle's location and a measured distance between the secondary and primary vehicle (e.g., measured using LIDAR, TOF, sonar, radar, ultrasound, or other distance system, etc.). However, the determined precise location can be otherwise used.


Fifth, variants of the system and method may function to distribute computation between systems at the vehicle and systems located remotely in order to improve overall system performance and behavior. For example, the system at a primary vehicle can identify landmarks (e.g., and generate landmark data that enables the landmark to be re-identified) and associate the landmarks with geographic locations, and store the landmark data and the associated geographic locations at a remote database, to enable other vehicles and/or the same vehicles to retrieve the landmark data and thereby determine the global system location of the system at the vehicle (e.g., the primary vehicle, a second vehicle, etc.).


Sixth, variants of the method can improve the operation of physical systems (e.g., hardware). For example, generating and/or utilizing a real-time image-based map of fiducial landmarks can improve the navigation, localization, and/or mapping capability of an autonomous and/or semi-autonomous vehicle. In another example, variants of the method can improve the performance of autonomous vehicles controlled via image-based computer vision and machine learning models, by improving the training and performance of these models. In another example, variants of the method can improve the performance of in-vehicle hardware with integrated computational modules (e.g., system-on-chip computer vision systems), by reducing the computational load of processors, enabling lower power operation, and similar improvements.


Seventh, variants of the system and method can solve problems arising from the use of computerized technology and rooted in computer and machine technology. For example, system localization that includes dead-reckoning, a computerized technology, can be susceptible to localization errors (e.g., location error, drift error, etc.), which can be reduced via landmark recognition, identification, and analysis in accordance with variants of the system and/or method. In another example, variants of the method can enable the training of vehicle control models based on supervised learning (e.g., detecting expert driving behavior at a vehicle system, recording image data associated with the expert driving behavior, and training an image-based control model using the recorded image data associated with the expert driving behavior).


However, the system and method and/or variants thereof can confer any other suitable benefits and/or advantages.


3. System.


The method is preferably performed with a precision localization system 200. As shown in FIG. 10, the precision localization system preferably includes: a vehicle 201 with a sensor system 210, a signal analysis system, and a landmark database 230, but can additionally or alternatively include any other suitable component. The signal analysis system, a landmark database, and/or other processing modules 222 can be stored and/or run on the vehicle 201, the sensor system 210, a remote computing system 220 (e.g., server system), a mobile device 240 associated with the vehicle and/or a user of the vehicle, auxiliary vehicles, the landmarks themselves (e.g., by a beacon system attached to the landmark), a distributed system, and/or any other suitable computing system.


In one variation, a main processing module is stored and/or maintained (e.g., generated, calibrated, etc.) by the remote computing system, and a local version (e.g., smaller version, simplified version) is stored on the vehicle. In a second variation, the system includes multiple variants of a processing module (e.g., differentiated by operation context, such as ambient light availability, fiducial density, fiducial number, fiducial size, vehicle velocity, vehicle acceleration, vehicle location, time of day, or other context parameter), wherein the system automatically selects and runs a processing module variant based on the current operation context. In this variation, the processing module variants can be stored on the vehicle, by the remote computing system (e.g., wherein contextual operation data can be transmitted from the vehicle to the remote system, and the module selection and/or module itself returned from the remote system), and/or be stored by any other suitable system.


The vehicle of the system functions to traverse through a physical space. The vehicle can be autonomous, remote-controlled (e.g., teleoperated), manually driven, a combination of one or more of the above, or otherwise controlled. The vehicle can be a terrestrial, aerial, aquatic, or other vehicle. Examples of the vehicle include: an automobile, a motorcycle, a bicycle, a drone, a helicopter, an airplane, a ship, or any other suitable vehicle. The vehicle can include a motive mechanism (e.g., wheels, drivetrain, motor, etc.), a data communication system (e.g., vehicle data bus, such as a CAN bus), or any other suitable system.


The sensor system of the system functions to sample signals, which can be used to: sample signals indicative of the ambient environment (e.g., images), identify fiducials in the ambient environment (e.g., landmarks, features of landmarks, etc.), and/or used in any other suitable manner. The sensor system is preferably mounted to a known position relative to the vehicle (e.g., wherein the position can be measured, recorded, retrieved, inferred, and/or calibrated during install or during system operation), but can be otherwise mounted to the vehicle. The sensor system components can be mounted within a common or disparate housings. As shown in FIG. 10, the sensor system can include: one or more sensors 211, a landmark detection system 212, a secondary location system 214, an orientation system 213 (e.g., IMU, accelerometer, gyroscope, altimeter, magnetometer, etc.), a vehicle data system 216 (OBD II connector, CAN bus connector, wireless radio), a processing system 215 (e.g., CPU, GPU, TPU, DSP etc.), storage (e.g., Flash, RAM, etc.), a communication subsystem (e.g., a radio, antenna, wireless data link, etc.), or any other suitable subsystem. The sensor(s) can include: auxiliary sensors (e.g., acoustic sensors, optical sensors, such as photodiodes, temperature sensors, pressure sensors, flow sensors, vibration sensors, proximity sensors, chemical sensors, electromagnetic sensors, force sensors, etc.), power (e.g., battery, power connector), or any other suitable type of sensor. The landmark detection system functions to detect the landmark and/or determined landmark parameters. Examples of the landmark detection system include: optical sensor(s) (e.g., monocular camera, stereo camera, multispectral camera, hyperspectral camera, visible range camera, UV camera, IR camera); antenna (e.g., BLE, WiFi, 3G, 4G, 5G, Zigbee, 802.11x, etc.), acoustic sensors (e.g., microphones, speakers), rangefinding systems (e.g., LIDAR, RADAR, sonar, TOF), or any other suitable sensor. The secondary location system functions to determine (e.g., estimate, calculate, measure, receive, etc.) the vehicle location, and can be used in conjunction with and/or in lieu of the precision location system and/or method.


Examples of secondary location systems that can be used include: global navigation systems (e.g., GPS), a cellular tower triangulation system, trilateration system, beacon system, dead-reckoning system (e.g., using the orientation sensors, optical flow, wheel or motor odometry measurements, etc.), or any other suitable location system. In one example, the secondary location system includes a visual-inertial odometry module that applies estimators using iterative-minimization techniques and Kalman/particle filters to the sampled images and inertial measurements. In a specific example, the sensor system includes: a forward-facing camera (e.g., monocular camera), a rear-facing camera (e.g., monocular camera), an orientation sensor, and a secondary location system, all statically mounted within a common housing, where the relative positions of the components (e.g., field of views) are known.


The signal analysis system of the system functions to extract parameters from signals sampled by the sensor system. The signal analysis system can be stored and/or executed on: the vehicle, the sensor system, the remote computing system, a user device removably communicably connected to vehicle and/or sensor system, or any other suitable computing system. The signal analysis system can include one or more processing modules, which can be selectively used based on contextual operation parameters (e.g., location estimate; vehicle operation parameters, such as trajectory, velocity, acceleration, wheel angle; time of day; anticipated or current weather; ambient light; ambient wind; positional accuracy; fiducial class; etc.) or other parameters.


The processing modules can use one or more of: regression (e.g., least squares estimation), classification, neural networks (e.g., convolutional neural networks), heuristics, equations (e.g., weighted equations, etc.), selection (e.g., from a library), instance-based methods (e.g., nearest neighbor), regularization methods (e.g., ridge regression), iterative methods (e.g., RANSAC, iterative minimization approaches, etc.; applied to multiple passes through the same physical space), decision trees, Bayesian methods (e.g., EKF), Monte Carlo methods (e.g., particle filter), kernel methods, probability, deterministic methods, or any other suitable method.


The set of processing modules can utilize one or more of: supervised learning (e.g., using logistic regression, using back propagation neural networks, using random forests, decision trees, etc.), unsupervised learning (e.g., using an a priori algorithm, using K-means clustering), semi-supervised learning, reinforcement learning (e.g., using a Q-learning algorithm, using temporal difference learning), and any other suitable learning style. Each module of the plurality can implement any one or more of: a regression algorithm (e.g., ordinary least squares, logistic regression, stepwise regression, multivariate adaptive regression splines, locally estimated scatterplot smoothing, etc.), an instance-based method (e.g., k-nearest neighbor, learning vector quantization, self-organizing map, etc.), a regularization method (e.g., ridge regression, least absolute shrinkage and selection operator, elastic net, etc.), a decision tree learning method (e.g., classification and regression tree, iterative dichotomiser 3, C4.5, chi-squared automatic interaction detection, decision stump, random forest, multivariate adaptive regression splines, gradient boosting machines, etc.), a Bayesian method (e.g., naïve Bayes, averaged one-dependence estimators, Bayesian belief network, etc.), a kernel method (e.g., a support vector machine, a radial basis function, a linear discriminate analysis, etc.), a clustering method (e.g., k-means clustering, expectation maximization, etc.), an associated rule learning algorithm (e.g., an Apriori algorithm, an Eclat algorithm, etc.), an artificial neural network model (e.g., a Perceptron method, a back-propagation method, a Hopfield network method, a self-organizing map method, a learning vector quantization method, etc.), a deep learning algorithm (e.g., a restricted Boltzmann machine, a deep belief network method, a convolutional network method, a stacked auto-encoder method, etc.), a dimensionality reduction method (e.g., principal component analysis, partial least squares regression, Sammon mapping, multidimensional scaling, projection pursuit, etc.), an ensemble method (e.g., boosting, bootstrapped aggregation, AdaBoost, stacked generalization, gradient boosting machine method, random forest method, etc.), and any suitable form of machine learning algorithm. Each module can additionally or alternatively utilize one or more of: object model-based detection methods (e.g., edge detection, primal sketch, Lowe, recognition by parts, etc.), appearance-based detection methods (e.g., edge matching, divide and conquer, grayscale matching, gradient matching, histograms of receptive field responses, HOG, large modelbases), feature-based detection methods (e.g., interpretation trees, hypothesize and test, pose consistency, pose clustering, invariance, geometric hashing, SIFT, SURF, bag of words representations, Viola-Jones object detection, Haar Cascade Detection), genetic algorithms, background/foreground segmentation techniques, or any other suitable method for computer vision and/or automated image analysis. Each module can additionally or alternatively be a: probabilistic module, heuristic module, deterministic module, or be any other suitable module leveraging any other suitable computation method, machine learning method, or combination thereof.


Each module can be validated, verified, reinforced, calibrated, or otherwise updated based on newly received, up-to-date measurements; past measurements recorded during the operating session (e.g., driving session); historic measurements recorded during past operating sessions; or be updated based on any other suitable data. Each module can be run or updated: once; at a predetermined frequency; every time the method is performed; every time an unanticipated measurement value is received; or at any other suitable frequency. The set of modules can be run or updated concurrently with one or more other modules, serially, at varying frequencies, or at any other suitable time. Each module can be validated, verified, reinforced, calibrated, or otherwise updated based on newly received, up-to-date data; past data; or be updated based on any other suitable data. Each module can be run or updated: in response to determination of an actual result differing from an expected result; or at any other suitable frequency.


In one variation, the signal analysis system can include: a landmark detection module (which detects the landmark from the sampled signal), a landmark tracking module (which tracks the landmark across sampled signals), a landmark classification module (which classifies the landmark), a parameter extraction module (which extracts object parameters, such as landmark parameters, from the sampled signal), a population correlation module (which correlates parameter values across multiple operation instances, which can account for the vehicle approach angle relative to the landmark), and/or any other suitable processing module.


The landmark detection module functions to detect that a landmark is depicted in image data (e.g., in an image frame, in an image sequence). In a first variation, the system includes a landmark detection module for each of a predetermined set of landmark types. In a second variation, the system includes a global landmark detection module that detects any of the predetermined set of landmark types within image data. The output of the landmark detection module can include bounding boxes (e.g., drawn around all or a portion of the detected landmark), annotated image data (e.g., with detected landmarks annotated), feature vectors based on image words (e.g., embeddings), and any other suitable output. The landmark detection module can apply: feature detection, localization, pattern matching, foreground/background segmentation, stitching/registration, filtering, thresholding, pixel counting, edge detection, color analysis, blob discovery and manipulation, optical character recognition, egomotion, tracking, optical flow, pose estimation (e.g., analytic or geometric methods, genetic algorithms, learning-based methods; e.g., EKF, particle filter, and least squares estimation), or other methods to identify fiducials and extract fiducial parameters from the signals.


The system can additionally include a landmark tracking module that functions to predict relative trajectories between the vehicle system and landmarks identified (e.g., detected, classified, etc.) in image data. The tracking module can also function to reduce the number of images that require de novo landmark recognition and/or detection to be performed, by tracking previously detected and/or classified landmarks between frames in a sequence of image frames. In a first variation, landmark tracking is performed via point tracking, such as by deterministic methods (e.g., with parametric constraints based on the object class of an object) or statistical methods (e.g., Kalman filtering). In a second variation, landmark tracking is performed via kernel filtering and kernel tracking, such as using template-based methods or multi-view appearance methods. In a third variation, landmark tracking is performed via silhouette tracking, such as using shape matching, edge matching, and/or contour tracking. However, object tracking and trajectory prediction and/or determination can be determined using motion analysis or otherwise suitably performed via any suitable method or technique. The landmark tracking module can apply kernel-based tracking, contour tracking, or any other suitable tracking process.


The classification module functions to determine a class of a landmark (e.g., object class, landmark class) depicted in image data. The landmark class can be determined based on extracted image feature values, embeddings, or any other suitable metric determined by the landmark detection module. In a first variation, the classification module can match the embedding values to a vocabulary of image words, wherein a subset of the vocabulary of image words represents a landmark class, in order to determine the class of the detected landmark. In a second variation, the system can include one classification module for each object class, and the object class can be determined by sequentially analyzing the embeddings associated with each object class and then analyzing the results to determine the best match among the classification modules, thereby determining the landmark class (e.g., the class corresponding to the classification module whose results best match the image data). In a third variation, the system includes a cascaded classifier that is made up of hierarchical classification modules (e.g., wherein each parent classification module performs a higher level classification than a child classification module). The output of the classification module can include bounding boxes (e.g., drawn around all or a portion of the classified object), annotated image data (e.g., with landmarks annotated with a text fragment corresponding to an associated landmark class), feature vectors based on image words (e.g., embeddings), and any other suitable output.


In a first specific example of the classification module, the system includes a cascaded sequential classifier wherein a first classification module (e.g., a first module) is executed at the vehicle system, and a second classification module is executed at a remote computing system. In this example, the first classification module determines a landmark class (e.g., “street sign”) for a landmark depicted in the image data, and the second classification module determines a landmark subclass for the landmark (e.g., “stop sign”).


In a second specific example of the classification module, a first version of the classification module having a first complexity is executed at the vehicle system, and a second version of the classification module having a second complexity is executed at the remote computing system, wherein the second complexity is greater than the first complexity. In this and related examples, the complexity of the module can be represented by a number of artificial neurons in an artificial neural network, wherein the module is implemented as an artificial neural network. In alternative examples, the complexity of the module can be represented by a dimensionality of the model implemented by the module. In further alternatives, the complexity of the module can be represented by the size of an image word vocabulary. However, module complexity can be otherwise suitably represented. The landmark classification module can additionally or alternatively apply: classification, pattern matching, or any other suitable classification or labeling process.


The population correlation module can apply multiple pass trajectory alignment (e.g., using least squares and RANSAC) or any other suitable cross-trajectory correlation process. One or more methods can be combined to increase the accuracy of the processing modules. For example, to achieve consistent fiducial detection at different scales and angles, information from multiple feature detectors can be fused, or synthetic training datasets and generalized feature detectors such as CNNs can be used. In a second example, fiducial detection reliability under different lighting conditions can be increased by applying image intensity transforms, building lighting-specific maps (e.g. daytime and nighttime maps), oversampling landmarks, and/or by applying any other suitable method.


The processing modules can be determined (e.g., generated, calculated, etc.) using: supervised learning (e.g., using logistic regression, using neural networks, such as back propagation NN, using random forests, decision trees, etc.), unsupervised learning (e.g., using an Apriori algorithm, using K-means clustering), semi-supervised learning, reinforcement learning (e.g., using a Q-learning algorithm, using temporal difference learning), and/or any other suitable learning style. Each module can be validated, verified, reinforced, calibrated, or otherwise updated based on newly received, up-to-date measurements; past measurements recorded during the operating session; historic measurements recorded during past operating sessions; or be updated based on any other suitable data. Each module can be run or updated: in response to determination of an actual result differing from an expected result, or at any other suitable frequency. The module(s) can be run or updated: once; at a predetermined frequency; every time the method is performed; every time an unanticipated measurement value is received; or at any other suitable frequency. The module(s) can be run or updated concurrently with one or more other modules, serially, at varying frequencies, or at any other suitable time.


For example, pose estimators can be updated by identifying fiducial features across video frames and measuring the accuracy and robustness of pose estimation algorithms against GPS-RTK ground truth. In a second example, landmark feature extraction modules can be updated by measuring and ranking features by accuracy of pose estimate, and measuring the variation with landmark type and visual conditions, high contrast corners, edges, and/or other landmarks/fiducials. In a third example, the population correlation module can be updated by identifying landmarks, fiducial features, and vehicle paths for a small region, and aligning the multiple passes so that the passes can be compared. In a fourth example, the modules can be iteratively improved by estimating the camera pose and location, testing the performance of algorithms to estimate the invariant features, evaluating the modules to find invariant features in the test regions (e.g., street intersections), and evaluating the accuracy of estimate of fiducial landmarks and convergence of the estimate given multiple passes through an intersection.


The landmark database functions to provide known landmark data. In operation, the system can extract fiducials from video, images, rangefinding measurements, or other measurements, identify the detected fiducial using the landmark database, and use the fiducial information to determine operation parameters (e.g., precise location). The landmarks are preferably invariant landmarks, but can alternatively be variant. The landmarks (fiducials) can include: road signs (stop sign, yield sign, pedestrian crossing sign, street names, exit sign, etc.), road markings (stop bar, stop lines, limit lines, lane markings), light poles, curbs, intersection detail, signal lighting detail, road and roadside infrastructure, streetlight, traffic light, logos (e.g., gas station logos), storefronts, topiary (e.g., trees, bushes), road markings (lane markings), mailboxes, fire hydrants, and/or any other suitable landmark or fiducial (e.g., optical fiducial). The landmark database can store: the fiducial parameter value(s) associated with the vehicle position relative to fiducial; the known geographic location for the fiducial (e.g., to sub-meter or sub-0.5 m accuracy); the pattern of fiducials (e.g., spatial pattern) and/or parameter values associated with a known vehicle location; and/or any other suitable association.


The landmark database can include one or more maps (e.g., sparse map with landmarks for each unit region), matrix (e.g., sparse matrix), table, or other data structure. The maps can be static, be generated in real- or near-real time, or otherwise determined. Different data structures can be for different: geographic regions (e.g., overlapping, non-overlapping; covering the same or different area; etc.), landmark densities, location estimate resolution or precision, operation context (e.g., day/night), route, user account, or any other variable. Different instances of the system and/or method can use the same or different set of maps. For example, the system can reference a global map of fiducial landmarks, given a GPS estimate of vehicle pose and camera information, and generate a local map of vehicle pose given ground-truth landmarks and camera information.


The landmark database can be generated based on municipal data (e.g., a city map); through surveying using a high-resolution location system (e.g., GPS-RTK) and a correlated landmark detection system (e.g., LIDAR to determine distance, pose, and/or dimensions); through cooperative mapping (e.g., identifying the same landmark across multiple passes by the same vehicle or multiple vehicles, associating the landmark with the concurrently determined location estimate, and determining the vehicle location as an average of the location estimates); through annotated aerial maps; or through any other suitable method.


4. Method.


The method 100, an example implementation of which is shown in FIG. 1, is preferably implemented by, at, or otherwise suitably in combination with the system previously described and/or elements thereof. However, the method 100 can additionally or alternatively be implemented by, at, or otherwise suitably in combination with any suitable system.


Detecting a landmark proximal the system S100 functions to identify a reference point with known location for location calibration. The landmark is preferably detected using the signal analysis system, applied to signals sampled by the sensor system, but can alternatively be detected using any other suitable system. The applied processing module can be a universal processing module, a context-specific processing module, or be otherwise selected. S100 can be performed at a predetermined frequency, when an error estimate exceeds a threshold value, when the estimated location encompasses a fiducial location or region (example shown in FIG. 5), and/or at any other suitable time.


In a first variation, S100 includes recording a set of images with the optical sensor (e.g., while vehicle is in operation) and identifying a landmark from the set of images (e.g., using the signal analysis system). For example, identifying the landmark can include: identifying a set of features in an image (e.g., corners, edges) and determining a label for the landmark based on the set of features (e.g., a stop sign when 8 corners are detected; a yield sign when 3 corners are detected). In a specific example, S100 includes identifying landmarks from the forward-facing video stream (recorded by the forward-facing camera) only. In a second specific example, S100 includes identifying landmarks from both the forward-facing video stream and the rearward- or inward-facing video stream recorded by the rearward-facing camera (e.g., analyzing landmarks visible from the side windows, sunroof, and/or rear window). In a second variation, S100 includes receiving a packet broadcast by a landmark. In a third variation, S100 includes detecting an object using a rangefinding system (e.g., based on shape, when the measured distance is less than a threshold value, etc.). In a fourth variation, S100 includes detecting a landmark using the rangefinding system, identifying a region of the image frame corresponding to the landmark location (e.g., the pixels mapped to the rangefinding signal position), and determining the landmark based on the portions of the image frame corresponding to the landmark location (e.g., which side of the landmark is facing the sensor system). In a fifth variation, S100 includes identifying a landmark from a single image (e.g., of a set of images, a single recorded image, etc.). In a sixth variation, S100 includes identifying a plurality of landmarks within an image sequence (e.g., based on multiple frames of a sequence, a single frame, etc.). However, S100 can be otherwise performed.


S100 can additionally include determining landmark parameters for the detected landmark S110 (example shown in FIG. 7). S110 can be performed by one or more feature detection modules, feature extraction modules, or by any other suitable module. The applied feature detection module can be selected based on: the time of day, the estimated location, a determined unit region (e.g., unit map and/or subunit of a global map associated with the global system location) or otherwise selected. Landmark parameters can include: the landmark location in the image frame, the landmark scale and/or area occupied in frame, the number of pixels corresponding to the landmark, the landmark shape, the landmark pose relative to the sensor system (e.g., based on the distances between adjacent detected landmark features, such as corners), the landmark pose relative to the vehicle, colors (e.g., of the front, back, and/or sides of the landmark), the landmark relationship to other landmarks in the same or different frame/signal (e.g., distribution of detected landmarks, distance between landmarks, relative size, pose, relative position in frame, etc.), text (e.g., textual indicator) or patterns appearing on the landmark or in the frame (e.g., image), reflectivity, or any other suitable information.


S100 can optionally include filtering the detected landmarks S120. S120 can include filtering the detected landmarks based on: contextual parameters (e.g., operation parameters, such as trajectory, route, or angle of approach, time of day, lighting levels, etc.), confidence levels (e.g., feature extraction confidence), or based on any other suitable parameter. For example, S120 can include identifying three landmarks in an image, and filtering the three landmarks to select a single landmark based on the projected (e.g., visible) area of a landmark surface in the image (e.g., based on the landmark having the largest visible area).


Determining the system position relative to the detected landmark S200 functions to determine the system's distance from the landmark and the system's angular position relative to a reference vector on the landmark (e.g., relative to a normal vector extending from the landmark's front face). S200 is preferably performed in response to landmark detection, but can alternatively be performed when the system is within a predetermined geographic region, when the landmark occupies more than a threshold proportion of the image frame, or at any other suitable time. S200 is preferably determined by the signal analysis system (e.g., executed by the sensor system, vehicle, user device, and/or remote computing system), but can be performed by any other suitable system.


In a first variation, S200 includes: calculating the system position relative to the landmark based on a measured signal value and a known signal value (e.g., a known parameter of the landmark). For example, the system distance to the landmark can be calculated from the measured RSSI and a reference RSSI value associated with a 1 m distance from the landmark. The landmark's angular position relative to the system can further be determined from the angle of signal arrival. In a second example, the system distance to the landmark can be calculated from the number and spatial distribution of pixels occupied by a stop sign in the sampled image and a reference number and spatial distribution of pixels associated with a known system distance and pose from the stop sign (e.g., 1 m away at 0° from the front face normal).


In a second variation, S200 includes: determining the landmark signal values from the sampled signal and looking up the system position (e.g., height, angular position, distance, etc.) based on the landmark signal values. In this variation, the landmark database can include a plurality of landmark signal value combinations for the landmark, each combination associated with a different system position.


In a third variation, S200 includes determining the system position based on landmark parameter values S210. S210 can be performed using classification, pattern matching, localization methods, convolutional neural networks, genetic algorithms, or any other suitable method. In a first embodiment, S210 includes: determining a known landmark parameter value (e.g., standard dimensions) for the detected landmark type or class (e.g., a stop sign), extracting estimated landmark parameter values from the sampled signal (e.g. determining the landmark dimensions based on the number and distribution of landmark pixels, wherein each pixel is pre-mapped to a predetermined physical size), determining a scaling factor based on the known and measured landmark dimensions, and determining the distance to the landmark (or landmark feature) based on the scaling factor (specific example shown in FIG. 3).


In some variations, S210 can include determining a known parameter value of a landmark based on the type or class of the landmark. In such variations, the known parameter is preferably based on categorical information associated with the landmark type in lieu of empirical measurement (e.g., by a high resolution three-dimensional mapping tool). Alternatively, the known parameter can be based on any other suitable information associated with the landmark. In a first example, the known parameter includes a known dimension (e.g., a known size and shape associated with a standardized stop sign) that is associated with a local region (e.g., a city, a state, a country) and characterizes each instance of the landmark present in the local region. Thus, in this example, a depiction of an instance of the aforementioned landmark type that is identified in a recorded image can be compared to the known dimension in order to derive the precise relative position between the vehicle and the landmark based on the known parameter (e.g., without requiring predetermined parameters of the landmark to be measured empirically). In a second example, the known parameter includes a font of a textual indicator written on a class of landmark (e.g., a stop sign, a yield sign). Thus, in this example, the apparent font (e.g., as the result of the perspective from which an image of the textual indicator is captured) of a textual indicator extracted from an image of an instance of the aforementioned landmark type can be compared to the known font to determine the precise relative position between the vehicle and the landmark. However, S210 can be otherwise suitably performed.


In a second embodiment, the image frame can be divided into a set of horizontal bands, wherein each horizontal band is associated with a different distance. The landmark distance from the system can be estimated based on which horizontal band the landmark is detected in. In a specific example of this embodiment, one or more image processing algorithms can be used to extract the location of a landmark depiction within the image (e.g., the pixels of the image that depict the landmark), identify the horizontal band in which the centroid of the image depiction is located, and calculate the relative distance between the vehicle (e.g., at the location of the camera system at the vehicle) and the landmark based on the horizontal band (e.g., wherein a horizontal band closer to the top of the image is associated with a distance farther from the vehicle than a horizontal band closer to the bottom of the image). The horizontal bands are preferably aligned with the rectilinear coordinates of the image, but can alternatively be aligned according to any suitable coordinates relative to the image coordinates.


In a third embodiment, the image frame can be divided into a set of vertical bands, wherein each vertical band is associated with a different angular position relative to the system. The landmark's angular position relative to the system can be estimated based on which vertical band the landmark is detected in. In a specific example of this embodiment, one or more image processing algorithms can be used to extract the location of a landmark depiction within the image (e.g., the pixels of the image that depict the landmark), identify the vertical band in which the centroid of the image depiction is located, and calculate the relative angular position between the vehicle (e.g., at the location of the camera system at the vehicle) and the landmark based on the vertical band (e.g., wherein a vertical band closer to the left edge of the image is associated with a more acute angle between the direction of vehicle movement and the landmark position than a vertical band closer to the right edge of the image). The vertical bands are preferably aligned with the rectilinear coordinates of the image, but can alternatively be aligned according to any suitable coordinates relative to the image coordinates.


Alternatively, the image frame may be partitioned in any manner based on predicted or measured coordinate spaces (e.g., divided into partitions corresponding to different range, angle, velocity, or position intervals).


In a fourth variation, the system position relative to the landmark is determined by applying a CNN or other neural network to the recorded signals. In a fifth variation, the system position relative to the landmark is determined based on the system trajectory (e.g., as determined using optical flow, vehicle steering signals, etc.). However, the system position can be otherwise determined.


Determining a global system location based on the system position, relative to the detected landmark S300 functions to determine a precise global system location. S300 is preferably performed in response to S100 occurrence, but can alternatively be performed when the system is within a predetermined geographic region, when the landmark occupies more than a threshold proportion of the image frame, or at any other suitable time. S200 is preferably determined by a position determination module (e.g., executed by the sensor system, vehicle, user device, and/or remote computing system), but can be performed by any other suitable system.


S300 can include: determining (e.g., retrieving) a known landmark location for each detected landmark S310; and determining the global system location based on the known landmark location and the system position relative to the detected landmark S320, example shown in FIG. 4. However, S300 can be otherwise performed.


Determining the known landmark location for each detected landmark S310 functions to determine a precise reference location. The known landmark location is preferably retrieved from the landmark database, but can be otherwise determined.


In a first variation, S310 includes: extracting a pattern of multiple landmarks from the set of images; matching the extracted pattern to a known pattern of landmarks (e.g., a landmark fingerprint) associated with a known geographic location; and assigning the known geographic location (for the known landmark pattern) as the system location. The pattern can include a static pattern associated with a plurality of landmarks in a single image; for example, S310 can include extracting a set of landmark geographic locations from an image of a plurality of landmarks, each landmark having an associated pose from which the relative position between the vehicle system and the landmark can be determined and a geographic location that can be retrieved from a landmark database or otherwise suitably determined, and thereby determining the global system location. The pattern can additionally or alternatively include a temporal pattern associated with one or more landmarks that appear in a plurality of successive images; for example; S310 can include extracting a relative trajectory between a landmark depicted in a series of images and the vehicle system, and determining the global system location based on the trajectory and the landmark geographic location (e.g., retrieved or otherwise suitably determined).


In a second variation, S310 includes: identifying (e.g., selecting, retrieving, etc.) a set of unit regions (e.g., unit maps) encompassed by the vehicle location estimate (e.g., from the secondary location system); and identifying a known landmark within the identified unit region set based on the landmark parameter values.


In a third variation, S310 includes: identifying a textual location indicator (e.g., street name, city name, etc.), identifying a set of unit regions (e.g., maps) associated with the location indicator, and identifying a landmark within the identified unit region set based on the landmark parameter values. In a specific example, S310 can include identifying a street name depicted on a street sign, querying a remote map database using the street name as the basis for the query, retrieving a local map (e.g., a map of the vehicle surroundings within a 1 mile radius, a 100 meter radius, or any other suitable radius) including landmark parameters associated with each landmark in the local area (e.g., unit region), and identifying a known landmark within the local area based on the landmark parameters associated with one of the landmarks in the local area (e.g., from an image captured by the vehicle system of a proximal landmark). However, S310 can be otherwise performed.


S310 can optionally include uniquely identifying the detected landmark S312. The landmark can be uniquely detected based on the vehicle trajectory or route (and/or landmark trajectory relative to the vehicle), the landmark direction (e.g., face exposed to the sensor system), the landmark pose relative to the sensor system (e.g., left, right, high, low, etc.), or based on any other suitable parameter. For example, a stop sign within the identified unit region (e.g., an intersection) can be uniquely identified based on the vehicle trajectory (e.g., determined from the planned route, from optical flow analysis of recorded video, etc.), the stop sign's pose relative to the sensor system (e.g., based on the detected features; identified text; etc.), and the stop sign's face imaged by the sensor system (e.g., determined based on the sign's color or reflectivity). However, the landmarks can be otherwise uniquely detected.


Determining the global system location based on the known landmark location and the system position relative to the detected landmark S320 functions to determine a high-precision system position, based on the high-precision reference locations (e.g., the landmark locations). The global system location is preferably calculated, but can alternatively be estimated, selected from a table, or otherwise determined. The global system location is preferably determined based on the system position relative to the landmark (determined in S200), but can be determined based on any other suitable positional relationship between the system and the landmark determined in any other suitable manner.


In a first variation, the global system location is calculated using the determined system angular position and distance from the known landmark location. In a second variation, the global system location is trilaterated based on the known locations for a plurality of landmarks (e.g., based on a plurality of identified landmarks) and the system's determined angular position and distance relative to the respective landmarks (example shown in FIG. 6). However, the global system location can be otherwise determined.


The method can optionally include routing the vehicle S400, which functions to navigate the vehicle according to a determined (or predetermined) route based on the localized and/or mapped position of the vehicle. S400 can include controlling the vehicle (e.g., autonomously) according to the determined global system location and/or precise system location relative to an identified landmark position (e.g., in order to avoid an obstacle, to achieve a desired destination, etc.).


In a first variation, S400 includes routing the vehicle based on the location error. For example, in cases during vehicle operation when the location error exceeds a threshold value, the computing system can route the vehicle to the vicinity of known landmarks in order to compensate for the location error. In a related example, the computing system can route the vehicle based on the accumulation rate of the location error exceeding a predetermined threshold rate. In an example embodiment, S400 can include determining a route based on an available landmark density along the determined route, and routing the vehicle according to the determined route (e.g., including in instances wherein the determined route is a greater overall distance between the origin and the destination but includes a higher landmark density). Thus, determining a route can be performed such that the location error at each point along the route is minimized, but can additionally or alternatively be performed to optimize the travel time, the distance traveled, or any other suitable navigation-related parameter.


In a second variation, S400 includes routing the vehicle based on data received from a secondary vehicle. In a first example, the secondary vehicle determines its global system location based on a landmark proximal to the secondary vehicle, the computing system (e.g., including a module associated with the vehicle and a module associated with the secondary vehicle) determines the relative position between the vehicle and the secondary vehicle (e.g., according to a time-of-flight packet transmission measurement, based on the output of a rangefinding system, based on image processing of an image of the rear portion of the secondary vehicle captured at a camera of the first vehicle, etc.), determines the global system location of the vehicle based on the aforementioned relative position, and routes the vehicle according to the determined global system location.


S400 can additionally or alternatively include routing the vehicle in any suitable manner, according to and/or based upon any suitable data derived from other Blocks of the method 100.


The method can optionally include generating the landmark database S500, which functions to catalogue the geographic locations associated with landmarks (e.g., the respective geographic location of each landmark) and associate the geographic locations with parameters of the landmarks that can be extracted to determine the relative position between a vehicle system element (e.g., a camera) and the landmark. S500 can also function to determine and store known landmark data for subsequent retrieval and/or utilization. S500 can include extracting fiducials from video, images, rangefinding measurements, or other measurements, identifying the detected fiducial using the landmark database, and using the fiducial information to determine operation parameters (e.g., precise location). The landmarks used to generate the landmark database are preferably invariant landmarks, but can alternatively be variant (e.g., changing on any suitable time scale). The landmarks (fiducials) can include: road signs (stop sign, yield sign, pedestrian crossing sign, street names, exit sign, etc.), road markings (stop bar, stop lines, limit lines, lane markings), light poles, curbs, intersection detail, signal lighting detail, road and roadside infrastructure, streetlight, traffic light, logos (e.g., gas station logos), storefronts, topiary (e.g., trees, bushes), road markings (lane markings), mailboxes, fire hydrants, and/or any other suitable landmark or fiducial (e.g., optical fiducial). S500 can include storing: the fiducial parameter value(s) associated with the vehicle position relative to fiducial; the known geographic location for the fiducial (e.g., to sub-meter or sub-0.5 m accuracy); the pattern of fiducials (e.g., spatial pattern) and/or parameter values associated with a known vehicle location; pose-position pairs (e.g., associations between specific landmark poses and relative positions of a camera or other imaging system imaging the landmark and viewing the specific posee); and/or any other suitable association.


Generating the landmark database can include producing one or more maps (e.g., sparse map with landmarks for each unit region), matrices (e.g., sparse matrices), tables, or other data structures. The maps can be static, be generated in real- or near-real time, or otherwise determined. Different data structures can be generated for different: geographic regions (e.g., overlapping, non-overlapping; covering the same or different area; etc.), landmark densities, location estimate resolution or precision, operation context (e.g., day/night), route, user account, or any other variable. Different instances of the method can use the same or different set of maps. For example, S500 can include referencing a global map of fiducial landmarks, given a GPS estimate of vehicle pose (and/or landmark pose) and camera information, and generate a local map of vehicle pose given ground-truth landmarks and camera information.


In variations, S500 can include generating the landmark database and/or related maps based on municipal data (e.g., a city map); through surveying using a high-resolution location system (e.g., GPS-RTK) and a correlated landmark detection system (e.g., LIDAR to determine distance, pose, and/or dimensions); through annotated aerial maps; or through any other suitable method or process.


In a first specific example, S500 includes determining a relative position between the vehicle and the landmark position (e.g., using a secondary location system), determining a landmark geographic location based on the global system location and the relative position, associating the landmark pose (e.g., from the perspective of the camera of the vehicle system) and the relative position to generate a pose-position pair; and storing the pose-position pair and the landmark geographic location at the landmark database. The vehicle system can use the stored pose-position pair (e.g., after retrieval from a remote landmark database, a local landmark database, etc.) to compare recorded images to the database and thereby determine the relative position between the vehicle system and the landmark and thus the global system location of the vehicle system.


In a second specific example, as shown in FIG. 9, S500 can include cooperatively generating a landmark database S510. S510 can include identifying the same landmark across multiple passes corresponding to multiple vehicles, associating the landmarks with a concurrently determined location estimate for each landmark as well as a set of landmark parameters corresponding to a set of relative locations between a vehicle (e.g., the camera system of a vehicle), and determining the landmark geographic location of each landmark and the associated landmark parameters as an average of the location estimates and associated landmark parameters. However, S510 can include otherwise suitably cooperatively generating a landmark database (e.g., map of landmarks and associated data).


S500 can include determining a trust score, wherein the trust score can be assigned to a landmark parameter (e.g., a shape of the landmark, the geographic location of the landmark, etc.) based on the cooperative determination of the parameter. For example, the trust score can increase as successive vehicles determine the landmark parameter and obtain mutual agreement (e.g., based upon quantitative comparison) of the parameter value, set of values, or range of values. The determined trust score can be associated with landmark parameter values in the database, and in some variations, determining the landmark parameters can be based on the trust score (e.g., retrieving parameter values associated with the highest trust score). In other variations, determining the landmark parameters can include computing a weighted average of stored landmark parameters based on the trust score (e.g., parameters associated with a higher trust score having a higher weight in the weighted average). Any blocks of the method 100 can be performed based on a trust score as determined in block S500.


Additionally or alternatively, S500 can include otherwise suitably generating the landmark database.


Embodiments of the system and/or method can include every combination and permutation of the various system components and the various method processes, wherein one or more instances of the method and/or processes described herein can be performed asynchronously (e.g., sequentially), concurrently (e.g., in parallel), or in any other suitable order by and/or using one or more instances of the systems, elements, and/or entities described herein.


As a person skilled in the art will recognize from the previous detailed description and from the figures and claims, modifications and changes can be made to the preferred embodiments of the invention without departing from the scope of this invention defined in the following claims.

Claims
  • 1. An apparatus comprising: a camera configured to be mounted to a vehicle for viewing a region forward of the vehicle during vehicle motion, the camera configured to provide an image, wherein the vehicle is associated with a global system location and a location error; anda computing system associated with the vehicle, the computing system comprising: a landmark identification module configured to identify a landmark depicted in the image, wherein the landmark is associated with a landmark geographic location and a known dimension, anda feature extraction module configured to determine a landmark parameter based on the image,wherein the computing system is configured to: determine a relative position between the vehicle and the landmark geographic location based on the landmark parameter,update the global system location based on the relative position,set the location error to an error value after the global system location is updated, andchange the location error after the global system location is updated; andwherein the computing system is configured to provide an output for assisting a control of the vehicle; andwherein the landmark comprises a street sign having a set of corners, and wherein the feature extraction module is configured to determine a set of pixel positions in the image corresponding with the set of corners, and to determine the landmark parameter based on the set of pixel positions.
  • 2. The apparatus of claim 1, wherein the landmark is one of a plurality of landmarks depicted in the image, wherein the landmark identification module is configured to identify the plurality of landmarks depicted in the image, each of the plurality of landmarks associated with a corresponding landmark geographic location; wherein the feature extraction module is configured to determine a landmark pose associated with each of the plurality of landmarks from the image; andwherein the computing system is configured to determine a set of relative positions between the vehicle and each of the plurality of landmarks based on the determined landmark poses associated with the respective landmarks, and determine the global system location based on the set of relative positions.
  • 3. The apparatus of claim 1, wherein the computing system further comprises a communication module configured to: transmit the global system location to a second vehicle associated with a second global system location;determine a second relative position between the second vehicle and the vehicle; andupdate the second global system location based on the global system location and the second relative position.
  • 4. The apparatus of claim 1, wherein the computing system is configured to determine another relative position between the vehicle and the landmark geographic location.
  • 5. The apparatus of claim 1, wherein the computing system is configured to retrieve the landmark geographic location of the landmark from a remote database.
  • 6. The apparatus of claim 1, wherein the computing system is configured to determine a unit region based on the global system location, and retrieve the landmark geographic location from a storage based on the unit region.
  • 7. The apparatus of claim 1, wherein the landmark parameter comprises a textual location indicator, and wherein the computing system is configured to determine a unit region based on the textual location indicator, and retrieve the landmark geographic location from a storage based on the unit region.
  • 8. The apparatus of claim 1, wherein the computing system is configured to determine a route based on an accumulation rate of the location error exceeding a threshold accumulation rate value.
  • 9. The apparatus of claim 1, wherein the vehicle comprises an autonomous vehicle.
  • 10. The apparatus of claim 1, wherein the computing system is configured to determine a speed value and a heading value associated with the vehicle based on the landmark parameter, and wherein the speed value is associated with a speed error, and wherein the heading value is associated with a heading error.
  • 11. The apparatus of claim 10, wherein the computing system is configured to repeatedly update the global system location based on the speed value and the heading value, and repeatedly update the location error based on the speed error and the heading error.
  • 12. The apparatus of claim 1, wherein the computing system is configured to obtain a wheel RPM value from a rotations-per-minute (RPM) sensor, and wherein the computing system is configured to determine a speed value based on the wheel RPM value in combination with a known wheel diameter.
  • 13. The apparatus of claim 1, wherein the landmark is one or a plurality of landmarks depicted in the image, wherein the landmark identification module is configured to identify the plurality of landmarks depicted in the image, wherein each of the plurality of landmarks is associated with a corresponding landmark geographic location; wherein the feature extraction module is configured to determine a set of landmark parameters associated with each of the plurality of landmarks from the image; andwherein the computing system is configured to determine a pattern based on the set of landmark parameters associated with the respective landmarks, and determine the global system location based on the pattern.
  • 14. The apparatus of claim 1, wherein the computing system is also configured to: determine a temporal pattern based at least in part on the landmark parameter; anddetermine a vehicle trajectory based on the temporal pattern.
  • 15. The apparatus of claim 1, wherein the apparatus is configured to record the image based on a satisfaction of a criterion.
  • 16. The apparatus of claim 15, wherein the criterion is associated with a threshold.
  • 17. The apparatus of claim 1, wherein the computing system is configured to update the global system location based on a predetermined frequency.
CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation application of U.S. application Ser. No. 15/673,098, filed 9 Aug. 2017, which claims the benefit of U.S. Provisional Application Ser. No. 62/492,790, filed 1 May 2017, and U.S. Provisional Application Ser. No. 62/372,633, filed 9 Aug. 2016, each of which is incorporated herein in its entirety by this reference.

US Referenced Citations (330)
Number Name Date Kind
5584035 Duggan et al. Dec 1996 A
5615116 Gudat Mar 1997 A
5638116 Shimoura et al. Jun 1997 A
5642106 Hancock et al. Jun 1997 A
5798949 Kaub Aug 1998 A
5898390 Oshizawa Apr 1999 A
5961571 Gorr et al. Oct 1999 A
6018728 Spence et al. Jan 2000 A
6240367 Lin May 2001 B1
6480784 Mizuno Nov 2002 B2
6496117 Gutta et al. Dec 2002 B2
6502033 Phuyal Dec 2002 B1
6502688 Krooss et al. Jan 2003 B1
6552141 Chmelir et al. Apr 2003 B1
6662141 Kaub Dec 2003 B2
6720920 Breed et al. Apr 2004 B2
6927694 Smith et al. Aug 2005 B1
7085637 Breed et al. Aug 2006 B2
7148913 Keaton et al. Dec 2006 B2
7177737 Karlsson et al. Feb 2007 B2
7195394 Singh Mar 2007 B2
7212651 Viola et al. May 2007 B2
7421321 Breed et al. Sep 2008 B2
7423540 Kisacanin Sep 2008 B2
7460940 Larsson et al. Dec 2008 B2
7471929 Fujioka et al. Dec 2008 B2
7502677 Weichenberger et al. Mar 2009 B2
7502688 Hirokawa Mar 2009 B2
7551093 Maass Jun 2009 B2
7558672 Egami et al. Jul 2009 B2
7639148 Victor Dec 2009 B2
7646922 Au et al. Jan 2010 B2
7844077 Kochi et al. Nov 2010 B2
7853072 Han et al. Dec 2010 B2
7868821 Hoshizaki Jan 2011 B2
7912288 Winn et al. Mar 2011 B2
7954587 Kisanuki et al. Jun 2011 B2
7974748 Goerick et al. Jul 2011 B2
8022831 Wood-Eyre Sep 2011 B1
8073287 Wechsler et al. Dec 2011 B1
8114568 Van et al. Feb 2012 B2
8144542 Na Mar 2012 B2
8174568 Samarasekera et al. May 2012 B2
8195394 Zhu et al. Jun 2012 B1
8254670 Prokhorov et al. Aug 2012 B2
8266132 Ofek et al. Sep 2012 B2
8301344 Simon et al. Oct 2012 B2
8301374 Surampudi Oct 2012 B2
8344849 Larsson et al. Jan 2013 B2
8369608 Gunaratne Feb 2013 B2
8441519 Oshima et al. May 2013 B2
8442791 Stahlin et al. May 2013 B2
8447519 Basnayake et al. May 2013 B2
8487775 Victor et al. Jul 2013 B2
8498813 Oohashi et al. Jul 2013 B2
8502860 Demirdjian Aug 2013 B2
8510196 Brandmaier et al. Aug 2013 B1
8594920 Shida Nov 2013 B2
8606492 Botnen Dec 2013 B1
8619135 Shellshear et al. Dec 2013 B2
8654151 Kim Feb 2014 B2
8666644 Goto Mar 2014 B2
8676498 Ma et al. Mar 2014 B2
8744642 Nemat-Nasser et al. Jun 2014 B2
8761439 Kumar et al. Jun 2014 B1
8799034 Brandmaier et al. Aug 2014 B1
8805707 Schumann, Jr. et al. Aug 2014 B2
8854199 Cook et al. Oct 2014 B2
8934709 Saptharishi et al. Jan 2015 B2
8952819 Nemat-Nasser Feb 2015 B2
9019571 Yamada Apr 2015 B2
9053554 Uchida et al. Jun 2015 B2
9079571 Trost et al. Jul 2015 B2
9081650 Brinkmann et al. Jul 2015 B1
9111147 Thornton et al. Aug 2015 B2
9121713 Samarasekera et al. Sep 2015 B2
9146558 Field et al. Sep 2015 B2
9158962 Nemat-Nasser Oct 2015 B1
9180887 Nemat-Nasser et al. Nov 2015 B2
9201424 Ogale Dec 2015 B1
9201932 Silver et al. Dec 2015 B2
9218003 Fong et al. Dec 2015 B2
9235750 Sutton et al. Jan 2016 B1
9305214 Young et al. Apr 2016 B1
9327743 Green et al. May 2016 B2
9330571 Ferguson et al. May 2016 B2
9349113 Bashkin May 2016 B2
9358976 Stierlin Jun 2016 B2
9412102 Wolf et al. Aug 2016 B2
9429439 Stomper Aug 2016 B2
9439036 Spears et al. Sep 2016 B2
9443309 Menashe et al. Sep 2016 B2
9465978 Hachisuka et al. Oct 2016 B2
9472102 McClain et al. Oct 2016 B2
9491374 Avrahami et al. Nov 2016 B1
9514626 Wu et al. Dec 2016 B2
9535878 Brinkmann et al. Jan 2017 B1
9573541 Graumann et al. Feb 2017 B2
9679480 Hakeem Jun 2017 B2
9688150 Seong et al. Jun 2017 B2
9701307 Newman et al. Jul 2017 B1
9709986 Gdalyahu Jul 2017 B2
9718468 Barfield et al. Aug 2017 B2
9731727 Heim et al. Aug 2017 B2
9734414 Samarasekera et al. Aug 2017 B2
9734455 Levinson et al. Aug 2017 B2
9760090 Shashua Sep 2017 B2
9767625 Snyder et al. Sep 2017 B1
9812016 Oremus Nov 2017 B2
9834153 Gupta Dec 2017 B2
9845097 Prakah-Asante et al. Dec 2017 B2
9851214 Chintakindi Dec 2017 B1
9852019 Ashani Dec 2017 B2
9881218 Ogata et al. Jan 2018 B2
9892558 Troy et al. Feb 2018 B2
9928432 Sathyanarayana et al. Mar 2018 B1
9977973 Okuda et al. May 2018 B2
10078333 Bajracharya Sep 2018 B1
10248124 Bellaiche Apr 2019 B2
10365658 Fridman Jul 2019 B2
20010018636 Mizuno Aug 2001 A1
20020082806 Kaub Jun 2002 A1
20020140562 Gutta et al. Oct 2002 A1
20020198632 Breed Dec 2002 A1
20030095140 Keaton et al. May 2003 A1
20030169907 Edwards et al. Sep 2003 A1
20040051659 Garrison Mar 2004 A1
20040167667 Goncalves et al. Aug 2004 A1
20040168148 Goncalves et al. Aug 2004 A1
20040258307 Viola et al. Dec 2004 A1
20050002558 Franke et al. Jan 2005 A1
20050060069 Breed et al. Mar 2005 A1
20050073136 Larsson et al. Apr 2005 A1
20050182518 Karlsson Aug 2005 A1
20050234679 Karlsson Oct 2005 A1
20050273218 Breed et al. Dec 2005 A1
20050273263 Egami et al. Dec 2005 A1
20060106534 Kawamata et al. May 2006 A1
20060186702 Kisanuki et al. Aug 2006 A1
20060187305 Trivedi et al. Aug 2006 A1
20060247847 Carter et al. Nov 2006 A1
20060271287 Gold et al. Nov 2006 A1
20070043491 Goerick et al. Feb 2007 A1
20070050108 Larschan et al. Mar 2007 A1
20070063855 Maass Mar 2007 A1
20070100669 Wargin et al. May 2007 A1
20070120948 Fujioka et al. May 2007 A1
20070152433 Weichenberger et al. Jul 2007 A1
20070154063 Breed Jul 2007 A1
20070154100 Au et al. Jul 2007 A1
20070159344 Kisacanin Jul 2007 A1
20070244640 Hirokawa Oct 2007 A1
20070263901 Wu et al. Nov 2007 A1
20070280505 Breed Dec 2007 A1
20080025568 Han et al. Jan 2008 A1
20080075367 Winn et al. Mar 2008 A1
20080084283 Kalik Apr 2008 A1
20080167814 Samarasekera et al. Jul 2008 A1
20080243378 Zavoli Oct 2008 A1
20080252412 Larsson et al. Oct 2008 A1
20080260207 Nagaoka et al. Oct 2008 A1
20090080697 Kishikawa et al. Mar 2009 A1
20090175498 Kochi et al. Jul 2009 A1
20090228204 Zavoli et al. Sep 2009 A1
20090244291 Saptharishi et al. Oct 2009 A1
20090261979 Breed et al. Oct 2009 A1
20100061591 Okada et al. Mar 2010 A1
20100169013 Nakamura et al. Jul 2010 A1
20100176987 Hoshizaki Jul 2010 A1
20100209881 Lin et al. Aug 2010 A1
20100209891 Lin et al. Aug 2010 A1
20100215254 Prokhorov Aug 2010 A1
20100217524 Oohashi et al. Aug 2010 A1
20100220008 Conover Sep 2010 A1
20100225665 Ofek et al. Sep 2010 A1
20100238009 Cook et al. Sep 2010 A1
20100295948 Xie Nov 2010 A1
20100312745 Tabak Dec 2010 A1
20100322507 Gunaratne Dec 2010 A1
20110128374 Shellshear et al. Jun 2011 A1
20110137527 Simon et al. Jun 2011 A1
20110245993 Goto Oct 2011 A1
20110262004 Murakami Oct 2011 A1
20110301779 Shida Dec 2011 A1
20110316980 Dubbleman et al. Dec 2011 A1
20120027258 Uchida et al. Feb 2012 A1
20120078510 Ma et al. Mar 2012 A1
20120109517 Watanabe May 2012 A1
20120116676 Basnayake et al. May 2012 A1
20120121161 Eade et al. May 2012 A1
20120122486 Day et al. May 2012 A1
20120123806 Schumann et al. May 2012 A1
20120154425 Kim Jun 2012 A1
20120185091 Field et al. Jul 2012 A1
20120197519 Richardson Aug 2012 A1
20120206596 Samarasekera et al. Aug 2012 A1
20120263346 Datta et al. Oct 2012 A1
20130073114 Nemat-Nasser et al. Mar 2013 A1
20130093886 Rothschild Apr 2013 A1
20130107038 Ota May 2013 A1
20130142390 Othmezouri et al. Jun 2013 A1
20130147661 Kangas et al. Jun 2013 A1
20130155229 Thornton et al. Jun 2013 A1
20130194127 Ishihara et al. Aug 2013 A1
20130211687 Trost et al. Aug 2013 A1
20140037138 Sato et al. Feb 2014 A1
20140049601 Pfeil Feb 2014 A1
20140139655 Mimar May 2014 A1
20140195477 Graumann et al. Jul 2014 A1
20140210625 Nemat-Nasser Jul 2014 A1
20140210978 Gunaratne et al. Jul 2014 A1
20140213300 Spears et al. Jul 2014 A1
20140214255 Dolgov et al. Jul 2014 A1
20140222280 Salomonsson et al. Aug 2014 A1
20140253375 Rudow Sep 2014 A1
20140267703 Taylor et al. Sep 2014 A1
20140300739 Mimar Oct 2014 A1
20140324281 Nemat-Nasser et al. Oct 2014 A1
20140324310 Kobayashi Oct 2014 A1
20140379233 Chundrlik, Jr. et al. Dec 2014 A1
20140379254 Miksa Dec 2014 A1
20150025917 Stempora Jan 2015 A1
20150049193 Gupta Feb 2015 A1
20150049195 Ishigaki et al. Feb 2015 A1
20150078632 Hachisuka et al. Mar 2015 A1
20150084757 Annibale et al. Mar 2015 A1
20150086078 Sibiryakov Mar 2015 A1
20150110344 Okumura et al. Apr 2015 A1
20150140991 Silver et al. May 2015 A1
20150154845 Wu et al. Jun 2015 A1
20150161892 Oremus Jun 2015 A1
20150219462 Stmper Aug 2015 A1
20150221136 Shaburova et al. Aug 2015 A1
20150228077 Menashe et al. Aug 2015 A1
20150239482 Green et al. Aug 2015 A1
20150254603 Bashkin Sep 2015 A1
20150269438 Samarasekera et al. Sep 2015 A1
20150274161 Stierlin Oct 2015 A1
20150294422 Carver et al. Oct 2015 A1
20150344030 Damerow et al. Dec 2015 A1
20150375756 Do et al. Dec 2015 A1
20150379715 Chandrasekar et al. Dec 2015 A1
20160063341 Ogata et al. Mar 2016 A1
20160063761 Sisbot et al. Mar 2016 A1
20160078303 Samarasekera et al. Mar 2016 A1
20160086021 Grohman et al. Mar 2016 A1
20160139977 Ashani May 2016 A1
20160147230 Munich et al. May 2016 A1
20160163198 Dougherty Jun 2016 A1
20160169690 Bogovich et al. Jun 2016 A1
20160203373 Menashe et al. Jul 2016 A1
20160209511 Dolinar et al. Jul 2016 A1
20160244022 Lippman et al. Aug 2016 A1
20160253806 Iimura Sep 2016 A1
20160253886 Buchholz et al. Sep 2016 A1
20160267335 Hampiholi Sep 2016 A1
20160284078 Kim et al. Sep 2016 A1
20160297365 Nix Oct 2016 A1
20160297449 Heim et al. Oct 2016 A1
20160300242 Truong et al. Oct 2016 A1
20160305794 Horita et al. Oct 2016 A1
20160335475 Krenzer et al. Nov 2016 A1
20160339782 Seong et al. Nov 2016 A1
20170008521 Braunstein Jan 2017 A1
20170011529 Urashita Jan 2017 A1
20170039848 Hakeem Feb 2017 A1
20170039850 Vanden Berg et al. Feb 2017 A1
20170043781 Prakah-Asante et al. Feb 2017 A1
20170048239 Jeon et al. Feb 2017 A1
20170053167 Ren et al. Feb 2017 A1
20170053555 Angel et al. Feb 2017 A1
20170055868 Hatakeyama Mar 2017 A1
20170061222 Hoye et al. Mar 2017 A1
20170064363 Wexler et al. Mar 2017 A1
20170074659 Giurgiu Mar 2017 A1
20170080900 Huennekens et al. Mar 2017 A1
20170088142 Hunt et al. Mar 2017 A1
20170089710 Slusar Mar 2017 A1
20170098131 Shashua et al. Apr 2017 A1
20170101093 Barfield et al. Apr 2017 A1
20170106869 Lavoie et al. Apr 2017 A1
20170109828 Pierce et al. Apr 2017 A1
20170113664 Nix Apr 2017 A1
20170124476 Levinson May 2017 A1
20170140231 Chen et al. May 2017 A1
20170146801 Stempora May 2017 A1
20170178352 Harmsen et al. Jun 2017 A1
20170200061 Julian et al. Jul 2017 A1
20170221149 Hsu-Hoffman et al. Aug 2017 A1
20170243399 Troy et al. Aug 2017 A1
20170248952 Perkins et al. Aug 2017 A1
20170253236 Hayakawa Sep 2017 A1
20170287163 Kaufmann et al. Oct 2017 A1
20170292848 Nepomuceno et al. Oct 2017 A1
20170293819 Deng Oct 2017 A1
20170309072 Li et al. Oct 2017 A1
20170314954 Golding et al. Nov 2017 A1
20170345161 Takantani et al. Nov 2017 A1
20170357861 Okuda et al. Dec 2017 A1
20180012085 Blayvas et al. Jan 2018 A1
20180023960 Fridman Jan 2018 A1
20180023961 Fridman Jan 2018 A1
20180024562 Bellaiche Jan 2018 A1
20180024565 Fridman Jan 2018 A1
20180024568 Fridman Jan 2018 A1
20180025235 Fridman Jan 2018 A1
20180039862 Hyatt et al. Feb 2018 A1
20180043829 Cordell et al. Feb 2018 A1
20180045519 Ghadiok et al. Feb 2018 A1
20180052515 Wanner et al. Feb 2018 A1
20180075309 Sathyanarayana et al. Mar 2018 A1
20180087907 DeBitetto Mar 2018 A1
20180107882 Ogata et al. Apr 2018 A1
20180115711 Kato et al. Apr 2018 A1
20180120122 Laine May 2018 A1
20180172454 Ghadiok et al. Jun 2018 A1
20180176173 Keysers et al. Jun 2018 A1
20180186366 Gordon et al. Jul 2018 A1
20180188380 Venkatraman Jul 2018 A1
20180204111 Zadeh et al. Jul 2018 A1
20180229770 Kataoka et al. Aug 2018 A1
20180232583 Wang et al. Aug 2018 A1
20180239144 Woods et al. Aug 2018 A1
20180259353 Tsurumi et al. Sep 2018 A1
20180292212 Bobye Oct 2018 A1
20190072391 Kitano Mar 2019 A1
20190384294 Shashua Dec 2019 A1
20200124421 Kang Apr 2020 A1
20200158509 McIntire May 2020 A1
20200217667 Kim Jul 2020 A1
Foreign Referenced Citations (15)
Number Date Country
102009005730 Jul 2010 DE
102009005730 Jul 2010 DE
10 2009 045326 Apr 2011 DE
102009045326 Apr 2011 DE
3057061 Aug 2017 EP
2506365 Apr 2014 GB
2005-026549 Jan 2005 JP
2011-252833 Dec 2011 JP
2015-108604 Jun 2015 JP
2015184578 Dec 2015 WO
135561 Sep 2016 WO
2016135561 Sep 2016 WO
WO 135561 Sep 2016 WO
2016179303 Nov 2016 WO
2018039560 Mar 2018 WO
Non-Patent Literature Citations (16)
Entry
“Which P&C Insurers Have Filed Patents Related to Autonomous Vehicles”, Dec. 14, 2016, https://www.cbinsights.com/research/autonomous-vehicle-insurance-patents/?ReillyBrennanFoT, downloaded from the internet on Sep. 4, 2018.
Guo Feng: et al. “Task 3-Evaluating the Relationship Between Near-Crashes and Crashes: Can Near-Crashes Serve as a Surrogate Safety Metric for Crashes?” Virginia Tech Transportation Institute, U.S. Department of Transportation, Sep. 2010., Nov. 6, 2017.
Wei, Lijun , et al., “GPS and Stereovision-Based Visual Odometry: Application to Urban Scene Mapping and Intelligent Vehicle Localization”, International Journal of Vehicular Technology, vol. 24, No. 5, Article ID 439074, 17 pages., Jan. 11, 2011.
Non-Final Office Action for U.S. Appl. No. 15/673,098 dated May 3, 2018.
Amendment Response to NFOA for U.S. Appl. No. 15/673,098 dated Aug. 8, 2018.
Notice of Allowance for U.S. Appl. No. 15/673,098 dated Oct. 3, 2018.
Non-Final Office Action for U.S. Appl. No. 15/897,901 dated May 3, 2018.
Amendment Response to NFOA for U.S. Appl. No. 15/897,901 dated Aug. 8, 2018.
Notice of Allowance for U.S. Appl. No. 15/897,901 dated Oct. 3, 2018.
Notice of Allowance for U.S. Appl. No. 15/897,901 dated Jan. 7, 2019.
International Search Report for PCT International Appln. No. PCT/US17/46134 dated Oct. 19, 2017.
Written Opinion for PCT International Appln. No. PCT/US17/46134 dated Oct. 19, 2017.
International Preliminary Report on Patentability for PCT International Appln. No. PCT/US17/46134 dated Feb. 12, 2019.
Foreign OA for JP Patent Appln. No. 2019-506506 dated May 19, 2020.
English Summary of Japanese Office Action dated May 19, 2020 for Japanese patent application No. 2019-506506.
European Search Report for EP Patent Appln. No. 17840221.0 dated Jun. 26, 2020.
Related Publications (1)
Number Date Country
20190137280 A1 May 2019 US
Provisional Applications (2)
Number Date Country
62492790 May 2017 US
62372633 Aug 2016 US
Continuations (1)
Number Date Country
Parent 15673098 Aug 2017 US
Child 16239009 US