Method and apparatus for processing location-based imaging and trace data

An approach is provided to process imaging data associated with location trace data of one or more links of a road. A processing platform may process and/or facilitate a processing of imaging data associated with location trace data of at least one link of a road to determine maneuvering information for at least one vehicle collecting the imaging data, the location trace data, or a combination thereof. Further, the processing platform may determine whether to cause, at least in part, an adjusting of at least a portion of the location trace data based, at least in part, on the maneuvering information.

BACKGROUND

Service providers and device manufacturers (e.g., wireless, cellular, etc.) are continually challenged to deliver value and convenience to consumers by, for example, providing compelling network services. One area of interest has been in collecting and processing geographical location information associated with transportation networks (e.g., roads), which may be used to provide data for use in digital maps and various location-based services utilized by users of various electronic devices (e.g., mobile phones, tablets, navigation devices, in-vehicle systems, etc.) Further, the data may be used in advanced driver assistance systems (ADAS) to improve the comfort, efficiency, safety, and overall satisfaction of a user when traveling in vehicles, for example, by providing information about the road network, road geometry, road conditions, and other items associated with the road and terrain around the vehicle. However, providing the data requires collecting and processing of large volumes of geographical location information, which may be acquired by various mechanisms (e.g., imaging data, positioning data, etc.), various devices (e.g., cameras, global positioning system (GPS) receivers, etc.), various contributors, at various times, and the like. Nevertheless, the collected information need to be accurately and efficiently processed in order to provide useful data for use in maps, navigation systems, ADAS, and the like. Accordingly, service providers and device manufacturers face significant technical challenges in collecting and processing the geographical location information.

SUMMARY OF THE INVENTION

Therefore, there is a need for an approach to accurately and efficiently process imaging data associated with location trace data of one or more links of a road.

According to one embodiment, a method comprises processing and/or facilitating a processing of imaging data associated with location trace data of at least one link of a road to determine maneuvering information for at least one vehicle collecting the imaging data, the location trace data, or a combination thereof. The method also comprises determining whether to cause, at least in part, an adjusting of at least a portion of the location trace data based, at least in part, on the maneuvering information.

According to another embodiment, an apparatus comprises at least one processor, and at least one memory including computer program code for one or more computer programs, the at least one memory and the computer program code configured to, with the at least one processor, cause, at least in part, the apparatus to process and/or facilitate a processing of imaging data associated with location trace data of at least one link of a road to determine maneuvering information for at least one vehicle collecting the imaging data, the location trace data, or a combination thereof. The apparatus is also caused to determine whether to cause, at least in part, an adjusting of at least a portion of the location trace data based, at least in part, on the maneuvering information.

According to another embodiment, a computer-readable storage medium carries one or more sequences of one or more instructions which, when executed by one or more processors, cause, at least in part, an apparatus to process and/or facilitate a processing of imaging data associated with location trace data of at least one link of a road to determine maneuvering information for at least one vehicle collecting the imaging data, the location trace data, or a combination thereof. The apparatus is also caused to determine whether to cause, at least in part, an adjusting of at least a portion of the location trace data based, at least in part, on the maneuvering information.

According to another embodiment, an apparatus comprises means for processing and/or facilitating a processing of imaging data associated with location trace data of at least one link of a road to determine maneuvering information for at least one vehicle collecting the imaging data, the location trace data, or a combination thereof. The apparatus also comprises means for determining whether to cause, at least in part, an adjusting of at least a portion of the location trace data based, at least in part, on the maneuvering information.

For various example embodiments, the following is applicable: An apparatus comprising means for performing the method of any of originally filed method claims.

DESCRIPTION OF SOME EMBODIMENTS

FIG. 1is a diagram of a system capable of processing imaging data associated with location trace data of one or more links of a road, according to an embodiment. As previously discussed, one area of interest among service providers and device manufacturers has been accurate and efficient collection and processing of location information of transportation networks so various location-based services, for example navigation assistance, may be provided to users to improve the quality of their travels. Currently, vehicles equipped with various sensors (e.g., GPS, radio frequency identification (RFID), microphones, etc.) and cameras (e.g., video, still, etc.) are utilized to travel on various roads and various locations to collect the imaging data and/or the trace data where the collected data may be processed at the time of collection and/or at a later time. Although the drivers of the vehicles try to maintain a direct path along a given segment of a road, it is possible that they may encounter various traffic conditions, obstacles, detours, road conditions, and the like, which may necessitate the drivers to maneuver around the road conditions. In order to indicate such maneuvers, the drivers may utilize various manual methods to mark/indicate any maneuvers/deviations that may occur during their data collection process. However, as the vehicles may be traveling at various speeds and conditions, the manual markings may not be accurate enough for use in compensating for the deviations, which may affect accuracy of the collected data, wherein such inaccuracies may not be acceptable when used to generate digital maps, determine road geometry, provide ADAS, and the like.

To address this problem, a system100ofFIG. 1introduces the capability to accurately and efficiently process imaging data associated with location trace data of one or more links of a road processing imaging data associated with location trace data of one or more links of a road. Currently, a vision based lane departure warning systems (LDWS) may be used in a vehicle to provide real-time alerts based on in-vehicle integrated camera parameters, calibration, and the like. Further, an ADAS batch spline geometry creation process may utilize collected GPS/IMU (inertial measurement unit) drive traces to determine a height dimension whereas a lateral dimension is created from the link geometry. Consequently quality of a resulting two dimensional (2D) road center position, shape, heading, and curvature may directly depend on the quality and density of the link geometry. In various implementations, improved 2D road center spline geometry quality can be obtained by using the collected GPS/IMU drive traces for the 2D dimension of the ADAS B-spline curve fit. However, as discussed, automatic spline fitting to GPS/IMU traces can be challenging since a collection vehicle typically may not necessarily drive in the road center or may exhibit unexpected maneuvers such as ramp exits, turn maneuvers, lane changes, overtaking cars, obstacle avoidances, drive into parking lots etc. Although the field collection procedure suggests/asks for a “mobile plot icon” to be dropped whenever the vehicle makes such maneuvers, it may not be rigorously followed since a driver of the vehicle may be busy with driving/safety tasks. Various mechanisms of the system100may be utilized to process imaging data and the associated trace data (GPS data) to detect any maneuvers (e.g., lane changes) that a vehicle may make while it is collecting the imaging data and the associated trace data along one or more links of a road. In one scenario, an automatic method for computing high quality road center geometry using GPS/IMU data must therefore be able to automatically validate normal (“good”) sections and identify to remove/adjust for movement (“bad”) sections of the trace data caused by such maneuvers.

In various use case scenarios, various image processing technologies, such as in vision based LDWS in the automotive industry such as Mobileye and SafeTrak, may be utilized to monitor the position of a vehicle within a roadway lane and warn a driver if the vehicle deviates or is about to deviate outside the lane boundaries. In one scenario, the LDWS may be a forward looking vision-based system that uses various algorithms to interpret video images to estimate vehicle state (lateral position, lateral velocity, heading, etc.) and roadway alignment (lane width, road curvature, etc.) Additionally, the LDWS algorithms are also capable of computing coordinates for the lane-center/centerline or lane paint boundary marking (e.g., stripes, markers, wireless radio beacons, etc.) that can yield additional improvement in spline shape and curvature. Various embodiments of the system100may significantly improve 2D road center spline geometry quality and curvature, which may be obtained by taking advantage of the collected GPS/IMU drive traces for the two-dimensional ADAS spline.

As shown inFIG. 1, the system100comprises a collection platform (CP)101having connectivity to a processing platform103via a communication network105. The CP101may include and/or have access to a mapping/navigation application107. By way of example, the mapping/navigation application107may include, at least in part, a navigation application, a mapping application, a location-based services application, or a combination thereof. Moreover, the CP101may include one or more sensors109a-109m(also collectively referred to as sensors109). In one example use case, the sensors109may include one or more optical sensors (e.g., cameras), audio sensors (e.g., microphones), a GPS receiver, a low power positioning module, a compass, a magnetometer, an accelerometer, etc.

In one embodiment, the CP101may also include a location traces module111that has substantially similar capabilities as the processing platform103. In particular, it is contemplated that one embodiment of the present invention disclosed herein may be fully client-based (i.e., the one or more location traces could be pre-processed on the client) if the needed map data is available on a CP101in vector format; the one or more location traces are annotated with attributes such as roads, addresses, buildings, etc.; the one or more location traces are compressed for efficient storage, transmission, and look-up, the computation needed (e.g., the computation done by the processing platform103) can be effectively executed in a CP101; the index of the one or more location traces corresponding to imaging data (e.g., video, pictures) and/or one or more POIs along one or more links of a road. In one embodiment, location trace data and associated imaging data may be communicated via the communication network105to the processing platform103for stream processing. In one embodiment, the location trace data and associated imaging data may be communicated via the communication network105to the processing platform103and/or to one or more other elements of the system100.

In one embodiment, the processing platform103may include or be associated with at least one location traces database113, which may exist in whole or in part within the processing platform103or the location traces module111. In one example embodiment, the processing platform103may exist in whole or in part within the CP101, or independently. The location traces database113may include one or more indexed location traces associated with the CP101, including at least in part, timestamp information, position information, velocity information, direction information, or a combination thereof. The location traces database113may also include one or more service parameters, one or more service suggestions, or a combination thereof associated with the one or more indexed location traces. In one example use case, the one or more service parameters, the one or more service suggestions, or a combination thereof may include one or more points of interest (POIs) associated with an indexed movement history (e.g., driving through a certain area), one or more location-based markers, one or more descriptions of routes traveled, etc. Further, the location traces database113also may include mapping data in a vector format (e.g., roads, addresses, building, etc.).

The CP101may be also connected to a services platform115via the communication network105. The services platform115includes one or more services117a-117n(also collectively referred to as services117). The services117may include a wide-variety of content provisioning services for the mapping/navigation application107(e.g., POIs, related media, etc.) In addition, the CP101, the services platform115, and the services117are also connected to one or more content providers119a-119p(also collectively referred to as content providers119) via the communication network105. The content providers119also may provide a wide variety of content (e.g., maps, POIs information, etc.) to the components of the system100.

In one embodiment, the processing platform103, the mapping/navigation application107, or a combination thereof may utilize location-based technologies (e.g., GPS, cellular triangulation, Assistant GPS (A-GPS), etc.) to determine a movement history of a CP101. For example, a CP101may include a GPS receiver to obtain geographic coordinates from satellites121to determine its movement history.

In one embodiment, the system100processes and/or facilitates a processing of sensor information associated with the one or more devices to generate one or more location traces, at least a portion of a movement history, or a combination thereof. By way of example, the one or more devices may include a GPS receiver, a low power positioning module, a compass, a magnetometer, an accelerometer, etc. In one example use case, the one or more location traces are always available to the one or more applications even if the one or more location traces were not specifically determined for a particular one of the one or more applications, and the one or more location traces also include a tuple sequence of timestamp, position, velocity, and direction derived from the one or more sensors (e.g., the sensors109). By way of example, the low power positioning module may be “always-on” and, therefore, constantly populating and updating the location traces database113, for example, with one or more location traces. More specifically, the one or more location trace data could represent the movement history of a vehicle or a device within available granularity of the sensor and the available data.

In one or more embodiments, the system100causes, at least in part, an indexing of the one or more location traces, one or more service parameters, one or more service suggestions, or a combination thereof on the one or more CP101devices, a server (e.g., the processing platform103), or a combination thereof. By way of example, it is contemplated that the system100may index a particular location trace (e.g., trace “1”) with a corresponding imaging data (e.g., video frame “1”), for example, trace “2” with video frame “2”, and so forth. By way of further example, the one or more service parameters may include a preference to return one or more POIs (e.g., landmarks, etc.), at least one description of the one or more routes traveled (e.g., transportation route, planned construction, etc.), etc. that correspond and/or are relevant to the one or more location traces and the imaging data. In one embodiment, the system100processes and/or facilitates a processing of the one or more imaging data to determine one or more maneuvering movements of a CP101while traveling on a roadway, for example, changing lanes, exiting the roadway, stopping, and the like. In one embodiment, the imaging data is processed along with processing location trace data for comparison and detection of one or more corresponding maneuvers on the roadway by the CP101. In one embodiment, in a mapping and/or navigation application (e.g., the mapping/navigation application107), the system100can cause, at least in part, a presentation of the one or more location traces, the at least a portion of a movement, or a combination thereof in association with the mapping and/or navigation application.

In one embodiment, the system100processes and/or facilitates a processing of imaging data associated with location trace data of at least one link of a road to determine maneuvering information for at least one vehicle collecting the imaging data, the location trace data, or a combination thereof. In one embodiment, the processing platform103may utilize one or more algorithms for processing imaging data (e.g., video, pictures, etc.) that may have been captured by one or more cameras and/or other sensors (e.g., microphone, radio frequency identification (RFID), light detection and ranging (LIDAR), barometer, etc.) Further, the processing platform103may process the location trace data (e.g., GPS data) associated with the imaging data either concurrently with or separately from the processing of the imaging data. In one example, the imaging data and/or the associated location trace data may be captured via one or more sensors of one or more devices that may be in/on a vehicle, on a user, and the like, which may be stationary near a road or may be traveling along one or more links (segments) of one or more roads. In one embodiment, the processing platform may use an image detection algorithm to detect in the imaging data (e.g., video) a maneuver by the vehicle while the vehicle is capturing the imaging and/or the location trace data. In one embodiment, the maneuvering information indicates, at least in part, a lane departure maneuver, a ramp exit maneuver, an overtaking maneuver, an obstacle avoidance maneuver, a route departure maneuver, or a combination thereof associated with the at least one vehicle while traveling the at least one link of the road. For example, a diver of the vehicle may change his travel lane due to traffic conditions, an obstacle in the travel lane, exiting a road, merging onto another road, and the like. In one embodiment, the processing of the imaging data and/or the location trace data may be performed as a batch process, a streaming process, or a combination thereof. For example, the imaging and/or the location trace data may be retrieved in blocks of data from a data storage and processed via one or more processing platforms. In one example, the imaging and/or the location trace data may be received via one or more data streams from one or more sources (e.g., users, vehicles, etc.), wherein the imaging and/or the location trace data may include one or more portions of pre-processed data.

In one embodiment, the system100determines whether to cause, at least in part, an adjusting of at least a portion of the location trace data based, at least in part, on the maneuvering information. In one embodiment, the processing platform103may detect that the vehicle collecting the data has made an actual lane change, wherein the processing platform103may use one or more algorithms to adjust one or more sections in the location trace data that correspond to the location of the maneuver detected in the imaging data. In one embodiment, the adjustment may include a marking of the one or more sections in the location trace data corresponding to the location of the maneuver. In one embodiment, the adjustment may include an actual adjustment to the one or more sections in the location trace data corresponding to the location of the maneuver, for example, a shifting of GPS coordinates of the one or more sections in the location trace data to indicate the maneuver/movement of the vehicle. In one embodiment, the maneuvering information may indicate a continuous vehicle movement within a lane where the processing platform103may perform a continuous adjustment of at least a portion of the location trace data based (e.g., GPS/IMU points) associated with the continuous vehicle movement. In one embodiment, the continuous adjustment may be performed to determine lane center points as long as the maneuvering information is below the threshold value for a removal of the at least a portion of the location trace data.

In one embodiment, the system100determines the maneuvering information with respect to a centerline, one or more lane markings, one or more boundaries, or a combination thereof of the at least one link of the road. In one embodiment, the processing platform103may compare the maneuvering information with respect to one or more markings (e.g., painted lines, RFID sensors, etc.) on/in the road. For example, a maneuver may indicate that the vehicle is crossing a centerline, one or more lines marking boundaries of a travel lane, and/or the road. In one instance, a centerline may be a center of a travel lane determined from the imaging data and/or the location trace data, or a centerline may be a centerline of the road.

In one embodiment, the system100determines location information of the centerline, the one or more lane markings, the one or more boundaries, or a combination thereof based, at least in part, on the imaging data, the location trace data, or a combination thereof. In various embodiments, the processing platform103may determine location information of the centerline, the one or more lane markings, and/or the one or more boundaries via processing of the imaging data and/or the location trace data. For example, the imaging data may show that a center line is in the middle of a travel lane, or that lane markings are present on one and/or on both sides of a travel lane, and the like. In one embodiment, the processing platform may use information from the location trace data to determine the location of the centerline, the one or more lane markings, and/or the one or more boundaries with respect to the location of the vehicle (e.g., camera) on the road.

In one embodiment, the system100determines that the maneuvering information indicates, at least in part, a movement of the at least one vehicle above a threshold value, wherein the adjusting includes, at least in part, a removal of the at least a portion of the location trace data collected at least substantially concurrently with the movement. In one embodiment, the processing platform103may compare the maneuvering information to one or more predefined and/or dynamic threshold values, wherein if the maneuvering information is above the one or more threshold values, then one or more portions of the location trace data corresponding to the location of the maneuver may be removed. In one instance, if a movement of a vehicle is above a threshold value, it is possible that the vehicle is changing its travel lane (e.g., from lane one to lane two), stopping, exiting a road, and the like, then the section of the location trace data (e.g., GPS data) which corresponds to the maneuver location on the road may be removed so, for instance, the location trace data does not show the maneuver on a digital map.

In one embodiment, the system100determines that the maneuvering information indicates, at least in part, a movement of the at least one vehicle above a threshold value. In one the processing platform103may compare a movement determined from the maneuvering information to one or more predefined and/or dynamic threshold values. For example, a predefined threshold value may be a range or certain change in distance from a current location of the vehicle. In another example, a dynamic threshold value may be determined by the processing platform based on the condition of the road (e.g., under construction, no lane markings, etc.), location of the road (e.g., countryside), and the like. In one instance, the movement information may indicate the vehicle is exiting a road, which may be above a threshold value.

In one embodiment, the system100causes, at least in part, an offset to the location of the at least a portion of the location trace data based, at least in part, on the maneuvering information. In one embodiment, the processing platform103may introduce an offset into the location trace data based on the maneuvering information so that the maneuver/movement is not indicated in the location trace data. In one embodiment, the offset may be a distance measurement to place a trace at a centerline of a lane, at a lane boundary marking, at the center of the road, etc. For example, if the vehicle, changes travel lanes, stops at the roadside, and then continues traveling, the processing platform can offset the location trace data corresponding to the movements indicated by the maneuvering information so that a maneuver information is not indicated in the location trace information so, for example, a trace on a digital map may show a continuous trace without the maneuver information.

In one embodiment, the system100causes, at least in part, a comparison of the imaging data with reference to the location trace data based, at least in part, on location information of one or more objects, one or more points of interest (POIs), or a combination thereof available in the imaging data. In one embodiment, the processing platform103may compare the imaging data and the associated location trace data with location of one or more objects and/or POIs detected in the imaging data so, for example, the imaging data and the associated location trace data may be calibrated for continuous accuracy. In one instance, one or more blocks/sections of the location tracing data may not be available and/or may be corrupted, wherein the imaging data may not correctly correlate to the location tracing data any longer, wherein a comparison to location information of a known object/POI along the road may provider a calibration point. For example, the imaging data and the associated location trace data may be compared to location of a certain bridge detected in the imaging data where the location data (e.g., GPS data) of the bridge is known and/or may be determined.

In one embodiment, the system100determines whether a result of the comparison is above a deviation threshold value. In one embodiment, the threshold value may be based on a distance, duration of time, and the like. For example, the comparison results may indicate that the imaging data and the location trace data may be out of synchronization, which may be due to one or more errors and/or missing data points in the imaging data and the location trace data.

In one embodiment, the system100causes, at least in part, a synchronization of the imaging data and the associated location trace data based, at least in part, on the deviation. In one embodiment, if the deviation value is above the threshold value, then the processing platform103may cause a synchronization (e.g., timestamp, travel distance, frame index, etc.) of the imaging data and/or the associated location trace data. For example, location data may be determined from the imaging data, for example based on GPS location of a POI, and then the location trace data may be synchronized with the determined location data.

In one embodiment, the system100causes, at least in part, a recalculation of the offset based, at least in part, on the synchronized imaging data and the associated location trace data. In one embodiment, the offset value may be recalculated periodically and/or when there is one or more synchronizations to the imaging data and/or the associated location trace data.

In one embodiment, the system100determines that the maneuvering information indicates, at least in part, a movement of the at least one vehicle below a threshold value. In one embodiment, the processing platform103may compare the maneuvering information to one or more predefined and/or dynamic threshold values, wherein if the maneuvering information is below the one or more threshold values, then one or more portions of the location trace data corresponding to the location of the maneuver may be validated verified.

In one embodiment, the system100causes, at least in part, a validation of the at least a portion of the location trace data collected at least substantially concurrently with the movement. In one embodiment, if a movement of a vehicle is below a threshold value, it is possible that the vehicle is moving within a travel lane (e.g., coming close to a lane marking/boundary), for example to avoid an obstacle in the lane, then the section of the location trace data (e.g., GPS data) which corresponds to the maneuver location on the road may be validated so, for instance, the location trace data does not show the maneuver on a digital map.

FIG. 2is a diagram of the components of a imaging and location trace data processing platform, according to an embodiment. Again, while the processing platform103and the location traces module111may be interchangeable, the various embodiments of the present invention disclosed herein mainly reference the processing platform103for the describing some of the functionalities therein. By way of example, the processing platform103includes one or more components for processing contemporaneous imaging data and associated location trace data of a CP101(e.g., on/in a vehicle) traveling on a roadway where one or more algorithms and methods may be utilized in the processing. Further, the processing platform103may determine one or more adjustments (e.g., offsets) for rendering an improved 2D road center spline geometry quality by using the collected GPS/IMU drive traces for the 2D dimension of the ADAS B-spline curve fit. It is contemplated that the functions of these components may be combined in one or more components or performed by other components of equivalent functionality. In this embodiment, the processing platform103includes a control logic201, a communication module203, a context module205, an index module207, an update module209, an analyzer module211, an adjustment module213, and a storage module215.

The control logic201oversees tasks, including tasks performed by the communication module203, the context module205, the index module207, the update module209, the analyzer module211, the adjustment module213, and the storage module215. For example, although the other modules may perform the actual task, the control logic201may determine when and how those tasks are performed or otherwise direct the other modules to perform the task. In one embodiment, the control logic201may determine to process the one or more location traces in substantially real-time, batch mode, according to a schedule, or a combination thereof. By way of example, the schedule may be based, at least in part, on computational resources, amount of available data, etc.

The communication module203is used for communication between the CP101, the processing platform103, the mapping/navigation application107, the sensors109, the location traces module111, the location traces database113, the service117, the content providers119, and the satellites121. The communication module203may also be used to communicate commands, requests, data, etc. The communication module203also may be used to determine a request from one or more applications (e.g., receive the request from the mapping/navigation application107) for location information associated with at least one CP101. The communication module203also may be used to cause, at least in part, a return or transmission of the one or more location traces, imaging data, POIs information, and the like to the one or more applications (e.g., the mapping/navigation application107).

In one embodiment, the context module205processes and/or facilitates a processing of location trace data, which may include at least a portion of a maneuver/movement history. By way of example, the location trace data may include, at least in part, timestamp information, position information, velocity information, direction information, or a combination thereof. In one embodiment, the context module205may process the imaging data for determining presence and location of one or more POIs for associating with a corresponding portion of the location trace data.

The index module207, in certain embodiments, is used to cause, at least in part, an indexing of the imaging data and the associated location trace data, possible maneuvering data, one or more POIs information, or a combination thereof on the CP101, a server (e.g., the location traces platform103), or a combination thereof. By way of example, the index module207may index or imaging data and the associated location trace data to one or more maneuver instances determined from the imaging data and/or the location trace data. In one embodiment, the update module209is used to cause, at least in part, at least one update of the one or more indexed location traces based, at least in part, on the determination of one or more maneuvering movements in the imaging data (e.g., in substantially real-time, periodically, etc.).

In one embodiment, the analyzer module211processes and/or facilitates a processing of the imaging data and the associated location trace data to determine maneuvering movements. For example, the analyzer may employ one or more algorithms to process the imaging data (e.g., frame-by-frame of a video recording) to determine a deviation of the CP101from a travel path on a roadway. In one embodiment, the analyzer211may analyze the imaging data concurrently as processing the associated location trace data for determining one or more adjustments due to any maneuvering information for the location trace data. In one embodiment, the adjustments may be annotated and later processed into the location trace data. The analyzer module211may also be used to cause, at least in part, a comparison of the imaging data against the indexed location trace data, and/or the one or more POIs for associating the imaging data at least substantially matching the location trace data and/or the one or more POIs.

In one embodiment, the adjustment module213may determine one or more adjustment/offset values for the location trace data based, at least in part, on the results from the analyzer211, wherein the adjustment values are to offset one or more maneuvers determined from the imaging data and/or the associated location trace data. For example, if the imaging data indicates that a CP101maneuvers on a roadway from one travel lane into another, the adjustment may be offset the portion of data in the location trace data so that the maneuvering information is not reflected in the location trace data, where the adjustment may render an undisturbed travel trace on a map application. In one embodiment, the adjustment module213may utilize a curve-fitting algorithm for maintaining a continuous travel path along a center-line of a road and/or along a center-line of a lane on the road. For example, it may be desirable to maintain a travel path indicator along the center-line of a middle lane on a roadway regardless which lane on the roadway a CP101is traveling.

The storage module215is used to manage the storage of the imaging data, the associated location trace data, the one or more POIs information, and/or the indexed location trace data. In addition, the storage module215may also be used to manage the storage of mapping data (e.g., roads, addresses, POIs, etc.)

FIGS. 3 through 5illustrate flowcharts of various processes for, at least, accurately and efficiently processing imaging data associated with location trace data of one or more links of a road, according to various embodiments. In various embodiments, processing platform103and/or the collection platform101may perform one or more portions of the processes300,400, and500, which may be implemented in, for instance, a chip set including a processor and a memory as shown inFIG. 10. As such, the processing platform103and/or the collection platform101can provide means for accomplishing various parts of the process300,400, and500as well as means for accomplishing other processes in conjunction with other components of the system100. Throughout these processes, the processing platform103and/or the collection platform may be referred to as completing various portions of the processes300,400, and500, however, it is understood that other components of the system100can perform some of and/or all of the process steps. Further, for clarity in discussing the300,400, and500processes, the processing platform103is referred to as completing various steps of said processes.

In step301of theFIG. 3, the processing platform103may process and/or facilitates a processing of imaging data associated with location trace data of at least one link of a road to determine maneuvering information for at least one vehicle collecting the imaging data, the location trace data, or a combination thereof. In one embodiment, the processing platform103may utilize one or more algorithms for processing imaging data (e.g., video, pictures, etc.) that may have been captured by one or more cameras and/or other sensors (e.g., microphone, radio frequency identification (RFID), light detection and ranging (LIDAR), barometer, etc.) Further, the processing platform103may process the location trace data (e.g., GPS data) associated with the imaging data either concurrently with or separately from the processing of the imaging data. In one example, the imaging data and/or the associated location trace data may be captured via one or more sensors of one or more devices that may be in/on a vehicle, on a user, and the like, which may be stationary near a road or may be traveling along one or more links (segments) of one or more roads. In one embodiment, the processing platform may use an image detection algorithm to detect in the imaging data (e.g., video) a maneuver by the vehicle while the vehicle is capturing the imaging and/or the location trace data. In one embodiment, the maneuvering information indicates, at least in part, a lane departure maneuver, a ramp exit maneuver, an overtaking maneuver, an obstacle avoidance maneuver, a route departure maneuver, or a combination thereof associated with the at least one vehicle while traveling the at least one link of the road. For example, a diver of the vehicle may change his travel lane due to traffic conditions, an obstacle in the travel lane, exiting a road, merging onto another road, and the like. In one embodiment, the processing of the imaging data and/or the location trace data may be performed as a batch process, a streaming process, or a combination thereof. For example, the imaging and/or the location trace data may be retrieved in blocks of data from a data storage and processed via one or more processing platforms. In one example, the imaging and/or the location trace data may be received via one or more data streams from one or more sources (e.g., users, vehicles, etc.), wherein the imaging and/or the location trace data may include one or more portions of pre-processed data.

In step303of theFIG. 3, the processing platform103may determine whether to cause, at least in part, an adjusting of at least a portion of the location trace data based, at least in part, on the maneuvering information. In one embodiment, the processing platform103may detect that the vehicle collecting the data has made an actual lane change, wherein the processing platform103may use one or more algorithms to adjust one or more sections in the location trace data that correspond to the location of the maneuver detected in the imaging data. In one embodiment, the adjustment may include a marking of the one or more sections in the location trace data corresponding to the location of the maneuver. In one embodiment, the adjustment may include an actual adjustment to the one or more sections in the location trace data corresponding to the location of the maneuver, for example, a shifting of GPS coordinates of the one or more sections in the location trace data to indicate the maneuver/movement of the vehicle. In one embodiment, the maneuvering information may indicate a continuous vehicle movement within a lane where the processing platform103may perform a continuous adjustment of at least a portion of the location trace data based (e.g., GPS/IMU points) associated with the continuous vehicle movement. In one embodiment, the continuous adjustment may be performed to determine lane center points as long as the maneuvering information is below the threshold value for a removal of the at least a portion of the location trace data.

In step401of theFIG. 4, the processing platform103may determine the maneuvering information with respect to a centerline, one or more lane markings, one or more boundaries, or a combination thereof of the at least one link of the road. In one embodiment, the processing platform103may compare the maneuvering information with respect to one or more markings (e.g., painted lines, RFID sensors, etc.) on/in the road. For example, a maneuver may indicate that the vehicle is crossing a centerline, one or more lines marking boundaries of a travel lane, and/or the road. In one instance, a centerline may be a center of a travel lane determined from the imaging data and/or the location trace data, or a centerline may be a centerline of the road.

In step403, the processing platform103may determine location information of the centerline, the one or more lane markings, the one or more boundaries, or a combination thereof based, at least in part, on the imaging data, the location trace data, or a combination thereof. In various embodiments, the processing platform103may determine location information of the centerline, the one or more lane markings, and/or the one or more boundaries via processing of the imaging data and/or the location trace data. For example, the imaging data may show that a center line is in the middle of a travel lane, or that lane markings are present on one and/or on both sides of a travel lane, and the like. In one embodiment, the processing platform may information from the location trace data to determine the location of the centerline, the one or more lane markings, and/or the one or more boundaries with respect to the location of the vehicle (e.g., camera) on the road.

In step405, the processing platform103may determine that the maneuvering information indicates, at least in part, a movement of the at least one vehicle above a threshold value, wherein the adjusting includes, at least in part, a removal of the at least a portion of the location trace data collected at least substantially concurrently with the movement. In one embodiment, the processing platform103may compare the maneuvering information to one or more predefined and/or dynamic threshold values, wherein if the maneuvering information is above the one or more threshold values, then one or more portions of the location trace data corresponding to the location of the maneuver may be removed. In one instance, if a movement of a vehicle is above a threshold value, it is possible that the vehicle is changing its travel lane (e.g., from lane one to lane two), stopping, exiting a road, and the like, then the section of the location trace data (e.g., GPS data) which corresponds to the maneuver location on the road may be removed so, for instance, the location trace data does not show the maneuver on a digital map.

In step407, the processing platform103may determine that the maneuvering information indicates, at least in part, a movement of the at least one vehicle above a threshold value. In one the processing platform103may compare a movement determined from the maneuvering information to one or more predefined and/or dynamic threshold values. For example, a predefined threshold value may be a range or certain change in distance from a current location of the vehicle. In another example, a dynamic threshold value may be determined by the processing platform based on the condition of the road (e.g., under construction, no lane markings, etc.), location of the road (e.g., countryside), and the like. In one instance, the movement information may indicate the vehicle is exiting a road, which may be above a threshold value.

In step409, the processing platform103may cause, at least in part, an offset to the location of the at least a portion of the location trace data based, at least in part, on the maneuvering information. In one embodiment, the processing platform103may introduce an offset into the location trace data based on the maneuvering information so that the maneuver/movement is not indicated the location trace data. In one embodiment, the offset may be a distance measurement to place a trace at a centerline of a lane, at a lane boundary marking, at the center of the road, etc. For example, if the vehicle, changes travel lanes, stops at the roadside, and then continues traveling, the processing platform can offset the location trace data corresponding to the movements indicated by the maneuvering information so that a maneuver information is not indicated in the location trace information so, for example, a trace on a digital map may show a continuous trace without the maneuver information.

In step501of theFIG. 5, the processing platform103may cause, at least in part, a comparison of the imaging data with reference to the location trace data based, at least in part, on location information of one or more objects, one or more points of interest (POIs), or a combination thereof available in the imaging data. In one embodiment, the processing platform103may compare the imaging data and the associated location trace data with location of one or more objects and/or POIs detected in the imaging data so, for example, the imaging data and the associated location trace data may be calibrated for continuous accuracy. In one instance, one or more blocks/sections of the location tracing data may not be available and/or may be corrupted, wherein the imaging data may not correctly correlate to the location tracing data any longer, wherein a comparison to location information of a known object/POI along the road may provide a calibration point. For example, the imaging data and the associated location trace data may be compared to location of a certain bridge detected in the imaging data where the location data (e.g., GPS data) of the bridge is known and/or may be determined.

In step503, the processing platform103may determine whether a result of the comparison is above a deviation threshold value. In one embodiment, the threshold value may be based on a distance, duration of time, and the like. For example, the comparison results may indicate that the imaging data and the location trace data may be out of synchronization, which may be due to one or more errors and/or missing data points in the imaging data and the location trace data.

In step505, the processing platform103may cause, at least in part, a synchronization of the imaging data and the associated location trace data based, at least in part, on the deviation. In one embodiment, if the deviation value is above the threshold value, then the processing platform103may cause a synchronization (e.g., timestamp, travel distance, frame index, etc.) of the imaging data and/or the associated location trace data. For example, location data may be determined from the imaging data, for example based on GPS location of a POI, and then the location trace data may be synchronized with the determined location data.

In step506, the processing platform103may cause, at least in part, a recalculation of the offset based, at least in part, on the synchronized imaging data and the associated location trace data. In one embodiment, the offset value may be recalculated periodically and/or when there is one or more synchronizations to the imaging data and/or the associated location trace data.

In step507, the processing platform103may determine that the maneuvering information indicates, at least in part, a movement of the at least one vehicle below a threshold value. In one embodiment, the processing platform103may compare the maneuvering information to one or more predefined and/or dynamic threshold values, wherein if the maneuvering information is below the one or more threshold values, then one or more portions of the location trace data corresponding to the location of the maneuver may be validated verified.

In step509, the processing platform103may cause, at least in part, a validation of the at least a portion of the location trace data collected at least substantially concurrently with the movement. In one embodiment, if a movement of a vehicle is below a threshold value, it is possible that the vehicle is moving within a travel lane (e.g., coming close to a lane marking/boundary), for example to avoid an obstacle in the lane, then the section of the location trace data (e.g., GPS data) which corresponds to the maneuver location on the road may be validated so, for instance, the location trace data does not show the maneuver on a digital map.

FIGS. 6A through 6Hillustrate various depictions of the process steps ofFIGS. 3 through 5.

FIG. 6Ashows diagram600which includes a vehicle601which may be equipped with one or more sensors603for detecting one or more markings605on a road, wherein the markings may include one or more painted lines and/or sensors (e.g., RFID) for delineating boundaries of a travel lane on the road. For example, the road may include several lanes where the markings may be different for showing the outer boundaries and the boundaries of the inner lane boundaries. In various embodiments, the sensors603may include an LDWS employing one or more cameras, LIDAR transceivers, GPS transceivers, and the like. In one embodiment, the sensors603may be coupled to a CP101for collecting various imaging data (e.g., video, pictures, etc.) and associated location trace data (e.g., GPS data), which may be processed by the CP101and/or by the processing platform103. In various embodiments, the imaging data and the associated location trace data may be streamed to the processing platform103via the communication network105and/or stored at a local and/or a remote storage device for future processing.

FIG. 6Bshows a diagram610which include an imaging data of a road including plurality of travel lanes605a-605d. In one instance the imaging data may include a plurality of imaging (e.g., video/picture) frames611,612,613,614, and the like, where the imaging frames may be determined by the processing platform103from imaging data captured by the CP101. In one embodiment, the imaging frames while the vehicle is traveling in one lane may have certain characteristics (e.g., color, outline, etc.) while the characteristics of the frames may change during and after the vehicle transitions from one lane into another lane. In one embodiment, one or more vehicle lane placement image processing technologies may be utilized in batch mode to a database of ADAS GPS/IMU imaging data (e.g., video drives) to produce validated vehicle lane center coordinates to improve the quality of the 2D ADAS spline geometry, heading and curvature.

In one example, the imaging frame611indicated that it is substantially centered with the travel lane605bwith a centerline615substantially in the center of the travel lane605b. Further, from the imaging data it can be determined that the vehicle601is traveling in the travel lane605b(e.g., second lane from the right border of the road.) In one example, the imaging frame612indicates that the CP101is maneuvering to the left and is approaching the lane marking between travel lanes605band605c. In one embodiment, the processing platform103and/or the CP101may determine a distance from a current location of the CP101to the lane markings for determining a current position of the centerline615. Further, the subsequent imaging frames613and614indicate that the vehicle continues to maneuver to the left and eventually changes its travel lane from605bto605cwhere the centerline615is now in the center of the travel lane605c. In various embodiments, the imaging frames611,612,613, etc. may be processed at different frame rates for different accuracy levels. For example, processing at faster rates may provide for detection of smaller variations in the maneuvering movements.

FIG. 6Cshows diagram620where a travel lane change (e.g., of theFIG. 6A) at621may cause an error and/or indeterminate data points in location trace data (e.g., GPS data) that may cause an erroneous rendering on a map application resulting in622and623curvature spike and heading error in the fitted spline due to the vehicle lane change for the straight road section where the underlying road curvature is zero.

In diagram630of theFIG. 6D, the processing platform103may detect a change in the travel lane of the vehicle601from lane605bto605aby processing the imaging data where a change in the center line615may be detected at631and in diagram640of theFIG. 6E, the associated location trace data section641and642may be processed and marked to indicate the maneuvering and the change in the travel lane between points631and643.

FIG. 6Fshows diagram650where the processing platform103determines a change in the travel lane from lane605bto605awithin the transition area641and between centerline points615aand615b. In one embodiment, the processing platform103may filter out the lane transition location trace data section642(e.g., GPS/IMU data points) as may be identified by the LDWS algorithms. Further, the LDWS algorithm may determine one or more GPS/IMU offset values651to offset the section642data points so that a virtual centerline615bsubstantially continues from point615ato615bin centerline of lane605b(e.g., no segment642transition data.) In one example, as the number of lanes on the road may be determined from the navigation system's (ADAS) road attributes, is would be possible to offset and align the location trace data points with the road center (e.g. for roads with even number of lanes or roads where the vehicle did not drive the center lane at all). In one embodiment, a curve fitting algorithm (spline) may curve fit the location trace data consisting of the GPS/IMU data points before the lane transition and the virtual created GPS/IMU points for the centerline615bafter the lane transition. In one embodiment, Calculus of Variations may be used to control the shape of the (spline) curve across the area641where there are no constraints. In various scenarios, a curvature preserving regularization term such as the one used in an ADAS process may be utilized to interpolate the lane transition area641for accurate resulting curve (spline) shape (i.e. position, heading, and curvature.) In one embodiment, as height dimension (Z) location trace data is typically fitted in a separate step, the GPS/IMU points for lane transitions are retained for the (spline) curve height (Z) fit across lane transitions.

FIG. 6Gshows diagram670where the vehicle601makes a lane change from605bto605awhere the processing platform103may determine the location trace data for the lane marking671(e.g., paint stripe between lanes605aand605b) where after the lane change into the lane605a, the lane marking671would become the left lane marking672for the605alane. In one scenario, since the GPS/IMU points are not explicitly used, but are derived lane marking coordinates then no location trace data points may need to be excluded during the lane transition since the LDWS algorithm is capable of determining lane geometry coordinates even during lane transitions. In diagram680ofFIG. 6H, the processing platform103can determine that there are three lanes (605a,605b,605c) on the road and it may further offset the lane marking672coordinates half a lane width to the left to align it with the road center681. In one embodiment, a curve fitting algorithm may fit an analytic (spline) curve to the derived road center coordinates681, where although there may be no gaps to interpolate, it may be advantageous to use Calculus of Variation (such as curvature preserving regularization) to stabilize the solution for optimum shape control and quality.

It is noted, that the methods described herein may significantly improve the quality of, for example, 2D ADAS spline shape with broad impact as it may be applied to current location databases as well as to archived ADAS GPS/IMU imaging data for increased efficiency and availability of data in the ADAS marketplace.

The processes described herein to accurately and efficiently process imaging data associated with location trace data of one or more links of a road may be advantageously implemented via software, hardware, firmware or a combination of software and/or firmware and/or hardware. For example, the processes described herein, may be advantageously implemented via processor(s), Digital Signal Processing (DSP) chip, an Application Specific Integrated Circuit (ASIC), Field Programmable Gate Arrays (FPGAs), etc. Such exemplary hardware for performing the described functions is detailed below.

A bus710includes one or more parallel conductors of information so that information is transferred quickly among devices coupled to the bus710. One or more processors702for processing information are coupled with the bus710.

Computer system700also includes a memory704coupled to bus710. The memory704, such as a random access memory (RAM) or any other dynamic storage device, stores information including processor instructions to accurately and efficiently process imaging data associated with location trace data of one or more links of a road. Dynamic memory allows information stored therein to be changed by the computer system700. RAM allows a unit of information stored at a location called a memory address to be stored and retrieved independently of information at neighboring addresses. The memory704is also used by the processor702to store temporary values during execution of processor instructions. The computer system700also includes a read only memory (ROM)706or any other static storage device coupled to the bus710for storing static information, including instructions, that is not changed by the computer system700. Some memory is composed of volatile storage that loses the information stored thereon when power is lost. Also coupled to bus710is a non-volatile (persistent) storage device708, such as a magnetic disk, optical disk or flash card, for storing information, including instructions, that persists even when the computer system700is turned off or otherwise loses power.

Information, including instructions to accurately and efficiently process imaging data associated with location trace data of one or more links of a road, is provided to the bus710for use by the processor from an external input device712, such as a keyboard containing alphanumeric keys operated by a human user, a microphone, an Infrared (IR) remote control, a joystick, a game pad, a stylus pen, a touch screen, or a sensor. A sensor detects conditions in its vicinity and transforms those detections into physical expression compatible with the measurable phenomenon used to represent information in computer system700. Other external devices coupled to bus710, used primarily for interacting with humans, include a display device714, such as a cathode ray tube (CRT), a liquid crystal display (LCD), a light emitting diode (LED) display, an organic LED (OLED) display, a plasma screen, or a printer for presenting text or images, and a pointing device716, such as a mouse, a trackball, cursor direction keys, or a motion sensor, for controlling a position of a small cursor image presented on the display714and issuing commands associated with graphical elements presented on the display714. In some embodiments, for example, in embodiments in which the computer system700performs all functions automatically without human input, one or more of external input device712, display device714and pointing device716is omitted.

Computer system700also includes one or more instances of a communications interface770coupled to bus710. Communication interface770provides a one-way or two-way communication coupling to a variety of external devices that operate with their own processors, such as printers, scanners and external disks. In general the coupling is with a network link778that is connected to a local network780to which a variety of external devices with their own processors are connected. For example, communication interface770may be a parallel port or a serial port or a universal serial bus (USB) port on a personal computer. In some embodiments, communications interface770is an integrated services digital network (ISDN) card or a digital subscriber line (DSL) card or a telephone modem that provides an information communication connection to a corresponding type of telephone line. In some embodiments, a communication interface770is a cable modem that converts signals on bus710into signals for a communication connection over a coaxial cable or into optical signals for a communication connection over a fiber optic cable. As another example, communications interface770may be a local area network (LAN) card to provide a data communication connection to a compatible LAN, such as Ethernet. Wireless links may also be implemented. For wireless links, the communications interface770sends or receives or both sends and receives electrical, acoustic or electromagnetic signals, including infrared and optical signals, that carry information streams, such as digital data. For example, in wireless handheld devices, such as mobile telephones like cell phones, the communications interface770includes a radio band electromagnetic transmitter and receiver called a radio transceiver. In certain embodiments, the communications interface770enables connection to the communication network105to accurately and efficiently process imaging data associated with location trace data of one or more links of a road to the UEs101.

Network link778typically provides information communication using transmission media through one or more networks to other devices that use or process the information. For example, network link778may provide a connection through local network780to a host computer782or to equipment784operated by an Internet Service Provider (ISP). ISP equipment784in turn provides data communication services through the public, world-wide packet-switching communication network of networks now commonly referred to as the Internet790.

A computer called a server host792connected to the Internet hosts a process that provides a service in response to information received over the Internet. For example, server host792hosts a process that provides information representing video data for presentation at display714. It is contemplated that the components of system700can be deployed in various configurations within other computer systems, e.g., host782and server792.

At least some embodiments of the invention are related to the use of computer system700for implementing some or all of the techniques described herein. According to one embodiment of the invention, those techniques are performed by computer system700in response to processor702executing one or more sequences of one or more processor instructions contained in memory704. Such instructions, also called computer instructions, software and program code, may be read into memory704from another computer-readable medium such as storage device708or network link778. Execution of the sequences of instructions contained in memory704causes processor702to perform one or more of the method steps described herein. In alternative embodiments, hardware, such as ASIC720, may be used in place of or in combination with software to implement the invention. Thus, embodiments of the invention are not limited to any specific combination of hardware and software, unless otherwise explicitly stated herein.

The signals transmitted over network link778and other networks through communications interface770, carry information to and from computer system700. Computer system700can send and receive information, including program code, through the networks780,790among others, through network link778and communications interface770. In an example using the Internet790, a server host792transmits program code for a particular application, requested by a message sent from computer700, through Internet790, ISP equipment784, local network780and communications interface770. The received code may be executed by processor702as it is received, or may be stored in memory704or in storage device708or any other non-volatile storage for later execution, or both. In this manner, computer system700may obtain application program code in the form of signals on a carrier wave.

Various forms of computer readable media may be involved in carrying one or more sequence of instructions or data or both to processor702for execution. For example, instructions and data may initially be carried on a magnetic disk of a remote computer such as host782. The remote computer loads the instructions and data into its dynamic memory and sends the instructions and data over a telephone line using a modem. A modem local to the computer system700receives the instructions and data on a telephone line and uses an infra-red transmitter to convert the instructions and data to a signal on an infra-red carrier wave serving as the network link778. An infrared detector serving as communications interface770receives the instructions and data carried in the infrared signal and places information representing the instructions and data onto bus710. Bus710carries the information to memory704from which processor702retrieves and executes the instructions using some of the data sent with the instructions. The instructions and data received in memory704may optionally be stored on storage device708, either before or after execution by the processor702.

In one embodiment, the chip set or chip800includes a communication mechanism such as a bus801for passing information among the components of the chip set800. A processor803has connectivity to the bus801to execute instructions and process information stored in, for example, a memory805. The processor803may include one or more processing cores with each core configured to perform independently. A multi-core processor enables multiprocessing within a single physical package. Examples of a multi-core processor include two, four, eight, or greater numbers of processing cores. Alternatively or in addition, the processor803may include one or more microprocessors configured in tandem via the bus801to enable independent execution of instructions, pipelining, and multithreading. The processor803may also be accompanied with one or more specialized components to perform certain processing functions and tasks such as one or more digital signal processors (DSP)807, or one or more application-specific integrated circuits (ASIC)809. A DSP807typically is configured to process real-world signals (e.g., sound) in real time independently of the processor803. Similarly, an ASIC809can be configured to performed specialized functions not easily performed by a more general purpose processor. Other specialized components to aid in performing the inventive functions described herein may include one or more field programmable gate arrays (FPGA), one or more controllers, or one or more other special-purpose computer chips.

In one embodiment, the chip set or chip800includes merely one or more processors and some software and/or firmware supporting and/or relating to and/or for the one or more processors.

The processor803and accompanying components have connectivity to the memory805via the bus801. The memory805includes both dynamic memory (e.g., RAM, magnetic disk, writable optical disk, etc.) and static memory (e.g., ROM, CD-ROM, etc.) for storing executable instructions that when executed perform the inventive steps described herein to accurately and efficiently process imaging data associated with location trace data of one or more links of a road. The memory805also stores the data associated with or generated by the execution of the inventive steps.

FIG. 9is a diagram of exemplary components of a mobile terminal (e.g., handset) for communications, which is capable of operating in the system ofFIG. 1, according to one embodiment. In some embodiments, mobile terminal901, or a portion thereof, constitutes a means for performing one or more steps to accurately and efficiently process imaging data associated with location trace data of one or more links of a road. Generally, a radio receiver is often defined in terms of front-end and back-end characteristics. The front-end of the receiver encompasses all of the Radio Frequency (RF) circuitry whereas the back-end encompasses all of the base-band processing circuitry. As used in this application, the term “circuitry” refers to both: (1) hardware-only implementations (such as implementations in only analog and/or digital circuitry), and (2) to combinations of circuitry and software (and/or firmware) (such as, if applicable to the particular context, to a combination of processor(s), including digital signal processor(s), software, and memory(ies) that work together to cause an apparatus, such as a mobile phone or server, to perform various functions). This definition of “circuitry” applies to all uses of this term in this application, including in any claims. As a further example, as used in this application and if applicable to the particular context, the term “circuitry” would also cover an implementation of merely a processor (or multiple processors) and its (or their) accompanying software/or firmware. The term “circuitry” would also cover if applicable to the particular context, for example, a baseband integrated circuit or applications processor integrated circuit in a mobile phone or a similar integrated circuit in a cellular network device or other network devices.

Pertinent internal components of the telephone include a Main Control Unit (MCU)903, a Digital Signal Processor (DSP)905, and a receiver/transmitter unit including a microphone gain control unit and a speaker gain control unit. A main display unit907provides a display to the user in support of various applications and mobile terminal functions that perform or support the steps to accurately and efficiently process imaging data associated with location trace data of one or more links of a road. The display907includes display circuitry configured to display at least a portion of a user interface of the mobile terminal (e.g., mobile telephone). Additionally, the display907and display circuitry are configured to facilitate user control of at least some functions of the mobile terminal. An audio function circuitry909includes a microphone911and microphone amplifier that amplifies the speech signal output from the microphone911. The amplified speech signal output from the microphone911is fed to a coder/decoder (CODEC)913.

A radio section915amplifies power and converts frequency in order to communicate with a base station, which is included in a mobile communication system, via antenna917. The power amplifier (PA)919and the transmitter/modulation circuitry are operationally responsive to the MCU903, with an output from the PA919coupled to the duplexer921or circulator or antenna switch, as known in the art. The PA919also couples to a battery interface and power control unit920.

The encoded signals are then routed to an equalizer925for compensation of any frequency-dependent impairments that occur during transmission though the air such as phase and amplitude distortion. After equalizing the bit stream, the modulator927combines the signal with a RF signal generated in the RF interface929. The modulator927generates a sine wave by way of frequency or phase modulation. In order to prepare the signal for transmission, an up-converter931combines the sine wave output from the modulator927with another sine wave generated by a synthesizer933to achieve the desired frequency of transmission. The signal is then sent through a PA919to increase the signal to an appropriate power level. In practical systems, the PA919acts as a variable gain amplifier whose gain is controlled by the DSP905from information received from a network base station. The signal is then filtered within the duplexer921and optionally sent to an antenna coupler935to match impedances to provide maximum power transfer. Finally, the signal is transmitted via antenna917to a local base station. An automatic gain control (AGC) can be supplied to control the gain of the final stages of the receiver. The signals may be forwarded from there to a remote telephone which may be another cellular telephone, any other mobile phone or a land-line connected to a Public Switched Telephone Network (PSTN), or other telephony networks.

Voice signals transmitted to the mobile terminal901are received via antenna917and immediately amplified by a low noise amplifier (LNA)937. A down-converter939lowers the carrier frequency while the demodulator941strips away the RF leaving only a digital bit stream. The signal then goes through the equalizer925and is processed by the DSP905. A Digital to Analog Converter (DAC)943converts the signal and the resulting output is transmitted to the user through the speaker945, all under control of a Main Control Unit (MCU)903which can be implemented as a Central Processing Unit (CPU).

The MCU903receives various signals including input signals from the keyboard947. The keyboard947and/or the MCU903in combination with other user input components (e.g., the microphone911) comprise a user interface circuitry for managing user input. The MCU903runs a user interface software to facilitate user control of at least some functions of the mobile terminal901to accurately and efficiently process imaging data associated with location trace data of one or more links of a road. The MCU903also delivers a display command and a switch command to the display907and to the speech output switching controller, respectively. Further, the MCU903exchanges information with the DSP905and can access an optionally incorporated SIM card949and a memory951. In addition, the MCU903executes various control functions required of the terminal. The DSP905may, depending upon the implementation, perform any of a variety of conventional digital processing functions on the voice signals. Additionally, DSP905determines the background noise level of the local environment from the signals detected by microphone911and sets the gain of microphone911to a level selected to compensate for the natural tendency of the user of the mobile terminal901.

An optionally incorporated SIM card949carries, for instance, important information, such as the cellular phone number, the carrier supplying service, subscription details, and security information. The SIM card949serves primarily to identify the mobile terminal901on a radio network. The card949also contains a memory for storing a personal telephone number registry, text messages, and user specific mobile terminal settings.

Additionally, sensors module953may include various sensors, for instance, a location sensor, a speed sensor, an audio sensor, an image sensor, a brightness sensor, a biometrics sensor, various physiological sensors, a directional sensor, and the like, for capturing various data associated with the mobile terminal901(e.g., a mobile phone), a user of the mobile terminal901, an environment of the mobile terminal901and/or the user, or a combination thereof, wherein the data may be collected, processed, stored, and/or shared with one or more components and/or modules of the mobile terminal901and/or with one or more entities external to the mobile terminal901.