Vehicle system and method for identifying road objects and dedulating data
By aggregating and grouping data from multiple vehicles through the control module in the transportation system, identifying and handling duplicate groups and data contradictions, the problem of inaccurate location when generating maps for vehicles is solved, thus improving the accuracy of map generation and vehicle control.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-11-18
- Publication Date
- 2026-03-10
AI Technical Summary
In existing technologies, the location of road objects is not accurately detected when vehicles generate maps due to the different positions of vehicles and sensor biases, resulting in duplicate groups and data contradictions, which affects the accuracy of map generation and vehicle control.
The control module of the transportation system aggregates and groups data from multiple vehicles, identifies duplicate groups and deletes them, resolves data inconsistencies, and uses weighted values and thresholds to process duplicate groups, generating accurate object locations and speed limits.
It improves the accuracy of map generation and the precision of vehicle control, reduces the waste of computing resources, and enhances the identification and reliance on the location and details of road objects.
Smart Images

Figure CN121640700A_ABST
Abstract
Description
BACKGROUND
[0001] The information provided in this section is presented to provide a context for the present disclosure. The work of the presently named inventors in this regard, as described in this section, as well as aspects of the description that can have been in the public domain at the time of the invention, are not, in and of themselves, specifically acknowledged as prior art against the present disclosure.
[0002] The present disclosure relates to vehicle systems and methods for identifying and deduplicating road objects.
[0003] Vehicles often rely on maps for vehicle control and / or display. Maps can be generated by crowd-sourcing algorithms that aggregate and group data collected over time from multiple vehicles. For example, a vehicle can collect data via one or more vehicle sensors (e.g., cameras, etc.) while traveling along a particular stretch of a road. Such data can include location data for various objects (e.g., traffic signs, billboards, rocks, potholes, roadside vehicles, etc.), speed limit data on traffic signs, etc. A system receives the collected data from vehicles and data from other sources (e.g., aerial imagery, etc.), aggregates and groups the data, analyzes the data to identify locations and / or other details related to objects along the road, and then generates a map based on the analyzed data. The map and details related to objects along the road can then be provided to individual vehicles (e.g., in real-time) to enable each vehicle to be controlled and / or display such a map and details. SUMMARY
[0004] A vehicle system includes a vehicle control module of a vehicle and a control module in communication with the vehicle control module. The control module is configured to: receive data from a plurality of vehicles over a period of time, the data including detected locations of at least one object along a vehicle road; cluster the received data into a plurality of groups; detect at least one set of duplicate groups of the plurality of groups; merge the duplicate groups into a single group or remove at least one of the duplicate groups to form a set of deduplicated groups associated with the at least one object; and determine a desired location of the at least one object based on the set of deduplicated groups. The vehicle control module is configured to: receive the desired location of the at least one object; and generate a control signal for controlling at least one operation of the vehicle based on the desired location of the at least one object.
[0005] In other features, the control module is configured to merge the duplicate groups into the single group by averaging latitude values and longitude values.
[0006] In other features, the control module is configured to remove the at least one of the duplicate groups based on a number of the plurality of vehicles detecting the location of the at least one object or a sampling frequency of the plurality of vehicles detecting the location of the at least one object.
[0007] In other features, the control module is configured to determine a weighting value associated with each group from a set of duplicate groups; and remove the at least one of the duplicate groups based on the weighting value and a threshold value.
[0008] In other features, the weighting value associated with each group is based on a standard deviation of locations of objects specific to the group, a standard deviation of headings of objects specific to the group, and a standard deviation of elevations of objects specific to the group.
[0009] In other features, the at least one object is a traffic sign, and the data includes information related to the traffic sign.
[0010] In other features, the information related to the traffic sign includes a speed limit value.
[0011] In other features, the control module is configured to identify a contradiction between one or more of the speed limit values of the traffic sign; and determine a desired speed limit value based on a number of previous contradictions for the traffic sign.
[0012] In other features, the control module is configured to determine whether a speed limit value of the speed limit values is within a defined threshold of a typical detected speed for the vehicle road; and select the speed limit value as the desired speed limit value for the speed limit sign.
[0013] In other features, the control module is configured to determine whether a speed limit value of the speed limit values is within a defined threshold of a typical speed limit for a plurality of roads including the vehicle road; and select the speed limit value as the desired speed limit value for the speed limit sign.
[0014] In other features, the control module is external to the vehicle.
[0015] In other features, the control module is configured to transmit a desired location of the at least one object to a plurality of vehicle control modules including the vehicle control module.
[0016] A vehicle system includes a vehicle control module of a vehicle and a control module in communication with the vehicle control module. The control module is configured to: receive data from a plurality of vehicles over a period of time, the data including detected locations and speed limit values of at least one speed limit sign along a vehicle road; cluster the received data into a plurality of groups; detect at least one set of duplicate groups in the plurality of groups; merge the duplicate groups into a single group or remove at least one of the duplicate groups to form a set of deduplicated groups associated with the at least one speed limit sign; determine a desired speed limit value of the at least one speed limit sign based on the set of deduplicated groups; and determine a desired location of the at least one speed limit sign based on the set of deduplicated groups. The vehicle control module is configured to: receive the desired speed limit value and the desired location of the at least one speed limit sign; and generate a control signal for controlling at least one operation of the vehicle based on the desired speed limit value and the desired location of the at least one speed limit sign.
[0017] In other features, the control module is configured to identify a contradiction between one or more of the received speed limit values of the at least one speed limit sign.
[0018] In other features, the control module is configured to determine the desired speed limit value based on a number of previous contradictions for the at least one speed limit sign.
[0019] In other features, the control module is configured to determine whether a speed limit value of the received speed limit values is within a defined threshold of a typical detected speed for the vehicle road; and select the speed limit value as the desired speed limit value of the at least one speed limit sign.
[0020] In other features, the control module is configured to determine whether a speed limit value of the received speed limit values is within a defined threshold of a typical speed limit for a plurality of roads including the vehicle road; and select the speed limit value as the desired speed limit value of the at least one speed limit sign.
[0021] A vehicle control method includes: receiving data from a plurality of vehicles over a period of time, the data including detected locations of at least one object along a vehicle road; clustering the received data into a plurality of groups; detecting at least one set of duplicate groups in the plurality of groups; merging the duplicate groups into a single group or removing at least one of the duplicate groups to form a set of deduplicated groups associated with the at least one object; determining a desired location of the at least one object based on the set of deduplicated groups; and generating a control signal for controlling at least one operation of a vehicle based on the desired location of the at least one object.
[0022] Among other features, combining the repeats into a single group includes averaging the latitude and longitude values for the repeating group.
[0023] Among other features, removing at least one of the duplicate groups includes: removing at least one of the duplicate groups based on the number of the plurality of vehicles that detect the location of the at least one object or the sampling frequency of the plurality of vehicles that detect the location of the at least one object.
[0024] Among other features, removing at least one of the repeating groups includes: determining a weighted value associated with each group from the set of repeating groups, the weighted value associated with each group being based on the standard deviation of the position of the object in the group, the standard deviation of the heading of the object in the group, and the standard deviation of the elevation of the object in the group.
[0025] Among other features, at least one of the repeating groups is removed based on the weighted value and the threshold.
[0026] Among the other features, the at least one object is a speed limit sign, and the data includes the speed limit value of the speed limit sign.
[0027] Further applicability of this disclosure will become apparent from the detailed description, claims, and drawings. The detailed description and specific examples are intended for illustrative purposes only and are not intended to limit the scope of this disclosure. Attached Figure Description
[0028] This disclosure will be more fully understood from the detailed description and accompanying drawings, in which: Figure 1 This is a block diagram of an example vehicle system including multiple vehicle control modules and control modules according to the present disclosure; Figure 2 It is based on the provisions of this disclosure, including Figure 1 The means of transportation in the transportation system; Figure 3 It is based on the purpose of this disclosure for use Figure 1 A flowchart illustrating an example method for implementing deduplication in a transportation system; Figure 4 It is based on the purpose of this disclosure for use Figure 1 A flowchart illustrating an example method for resolving conflicts within a transportation system; Figure 5 This is a flowchart of an example control process for deduplicating traffic signs in a cluster group along a road and identifying the desired location of the traffic signs, according to the present disclosure. Figure 6 This is a flowchart of an example control process for identifying and resolving conflicts in traffic signs, based on this disclosure; Figures 7-10 This is a flowchart of an example control process for deduplication of a cluster group according to this disclosure; and Figures 11-13 This is a flowchart of an example control process for resolving conflicts in traffic signs, based on this disclosure.
[0029] In the accompanying drawings, reference numerals may be reused to identify similar and / or identical elements. Detailed Implementation
[0030] Vehicles often rely on maps for vehicle control and / or display. Maps can be generated using crowdsourcing algorithms that aggregate and group data collected over time from multiple vehicles via sensors. However, in some cases, different vehicles may report different locations for a given object (e.g., a traffic sign) due to vehicle location when detecting an object and / or sensor bias. Additionally, a vehicle may report different locations for a given object (e.g., on the same or different journeys) due to vehicle positioning errors, detection errors of the vehicle's sensors (e.g., cameras), environmental factors (e.g., fog conditions, rain, snow, etc.). Often, reported locations for a given object are close to each other and can be efficiently aggregated and grouped. However, when reported locations for a given object are scattered, grouping the data may result in duplicate groups (e.g., clusters). Furthermore, in some instances, the collected data may include a combination of true and false positive object detections or contradictions. For example, collected data (from the same or different vehicles) may include speed limits of 35 MPH and 85 MPH for a single traffic sign in a residential area (e.g., a low-speed zone). Such data inconsistencies and duplicate groups can lead to inefficiencies in computing resources and ambiguity and reduced confidence in objects controlled by maps and vehicles.
[0031] The transportation system and method disclosed herein provide solutions for efficiently identifying duplicate groups (e.g., clusters), identifying inconsistencies in collected data, and then resolving such duplicate groups and inconsistencies. For example, and as further explained herein, the transportation system and method can dynamically detect duplicate road objects (e.g., traffic signs, etc.) generated from crowdsourced information from multiple transportation vehicles, and then identify certain duplicates that can be merged and others that can be discarded, thereby improving the quality of the crowdsourced object database. Furthermore, the transportation system and method can dynamically identify contradictory data related to road objects that are close to each other, and then identify true / false positives of the contradictory data. Thus, the location and details of objects along roads are accurately identified and relied upon for map generation and transportation control.
[0032] Now for reference Figure 1 A block diagram of an example transportation system 100 is shown. The transportation system 100 generally includes a control module 102 and transportation control modules 106, 114, 120, and 126 located in vehicles 104, 112, 118, and 124, respectively. Additionally, each vehicle 104, 112, 118, and 124 includes one or more sensors 108, 116, 122, and 128. In this example, sensors 108, 116, 122, and 128 can collect data representing the characteristics of objects along the road. Although... Figure 1 The transportation system 100 is illustrated as including specific modules, but it should be understood that one or more other modules may be used if desired.
[0033] In various embodiments, the modules and sensors of the vehicle system 100 can communicate with each other and can share parameters via one or more networks. For example, each vehicle 104, 112, 118, 124 may include a local network, such as a Controller Area Network (CAN) for communication between the respective sensors and the vehicle control module. Thus, various data can be made available by a given module and / or sensor to other modules and / or sensors in that vehicle via the local network of each respective vehicle (e.g., one or more data buses of the network). Additionally, each vehicle 104, 112, 118, 124 may communicate with the control module 102 via another network (e.g., a cellular network, etc.). In such an example, the vehicle control modules 106, 114, 120, 126 (or another suitable control module) of vehicles 104, 112, 118, 124 may include transmitters and receivers for communicating with the control module 102. Therefore, the data collected by any of the sensors 108, 116, 122, 128 can be shared internally (e.g., within the corresponding vehicle) and / or externally with the control module 102.
[0034] exist Figure 1 In the example, sensors 108, 116, 122, and 128 may include any suitable sensor for detecting one or more characteristics of objects along the road. For example, sensors 108, 116, 122, and 128 may include cameras, radar sensors, etc. Additionally, objects may include any suitable object on or near the road, such as traffic signs, billboards, pedestrian markings, rocks, potholes, roadside vehicles, construction zones, etc. Traffic signs may include, for example, speed limit signs, yield signs, stop signs, lane change signs, etc.
[0035] In various embodiments, data from sensors 108, 116, 122, and 128 can represent characteristics of an object. In this example, characteristics may include the object's location (e.g., location data) and information presented on the object (e.g., speed limit values, upcoming road events, etc.).
[0036] Figure 1 The transportation system 100 can be used in any suitable mode of transportation, such as electric vehicles (e.g., pure electric vehicles, plug-in hybrid electric vehicles, etc.), internal combustion engine vehicles, etc. Furthermore, the transportation system 100 can be applied to autonomous vehicles, semi-autonomous vehicles, etc. For example, Figure 2 Depicting including Figure 1 The vehicle control module 106 and sensor 108 (in Figure 2 The vehicle 200 is shown as having sensors 108-1 and 108-2 and a control module 110. Figure 2 In the example, sensors 108-1 and 108-2 can be cameras.
[0037] In various embodiments, Figure 1 The transportation system 100 can utilize control module 102 to implement the features explained herein. In this example, control module 102 may be an external module (e.g., located outside of vehicles 104, 112, 118, 124) and / or implemented using cloud computing. For example, and as further explained below, control module 102 may collect data on objects along a road from one or more of vehicles 104, 112, 118, 124 (and / or other vehicles not shown), integrate the collected data into groups (e.g., clusters), detect or otherwise identify duplicate groups within the groups, and implement a deduplication process to resolve some or all of the duplicate groups. Then, in various embodiments, control module 102 may determine the desired location of the object. The desired location and / or a map with the desired location may then be broadcast to one or more of vehicles 104, 112, 118, 124 (and / or other vehicles not shown) for use in a transportation control application.
[0038] Alternatively, some or all of the features explained herein can be implemented using the control modules of one or more of the vehicles 104, 112, 118, and 124. For example, and as... Figure 1 As shown, the vehicle 104 includes a control module 110, shown in dashed lines. The control module 110 can perform some or all of the features explained below regarding the control module 102.
[0039] For example, Figure 3 Describing the use ofFigure 1 The control module 102 implements a method 300 for the deduplication process. As shown, method 300 generally includes steps 302, 304, and 306. At step 302, the control module 102 receives data over a period of time, including the detected locations of objects along the vehicle road 308. The collected data can be considered as crowdsourced data received from multiple vehicles, such as… Figure 1 Transportation vehicles 104, 112, 118, 124 and / or additional transportation vehicles, if desired.
[0040] In some examples, data can be collected as a set within a specified time period; this can be referred to as a detection occurrence. For example, each detection occurrence can represent a dataset collected within a specific time period. As an example only, the first detection occurrence might occur on day A of time period B, the second detection occurrence might occur on day C of time period D, the third detection occurrence might occur on day E of time period F, and so on. Each detection occurrence can include a detection count representing the number of times vehicles passed within the specific time period. For example, the first detection occurrence might have a detection count of 85 vehicle passages, the second detection occurrence might have a detection count of 305 vehicle passages, and the third detection occurrence might have a detection count of 20 vehicle passages.
[0041] exist Figure 3 In the example, at step 302, the collected data is represented as datasets 310, 312, 314, and 316. In this example, each dataset 310, 312, 314, and 316 may represent data collected from different vehicles during a single detection or multiple detections, or during different detections (e.g., multiple vehicles at a specific time period).
[0042] Then, at step 304, the collected data from datasets 310, 312, 314, and 316 are grouped into three groups (or clusters) 318, 320, and 322 using a conventional clustering algorithm. For example, a clustering algorithm can group the received data into three clusters, where the data in one cluster (or group) is more similar to each other than in another cluster (or group). In this example, dataset 310 is grouped into group 318, dataset 312 into group 320, and datasets 314 and 316 into group 322. Figure 3 In the diagram, each group (318, 320, 322) is shown using centroids. As an example only, clustering algorithms can implement density-based clustering, centroid-based clustering, k-means clustering, etc., based on detected locations.
[0043] At step 306, groups 318, 320, and 322 (e.g., clusters) are analyzed using the deduplication process to detect duplicate groups. For example, control module 102 can compare positional data within groups 318, 320, and 322 and determine if a group / cluster is near another group / cluster, thus presenting the group / cluster as a duplicate group. Control module 102 can then invoke different actions to resolve some or all of the duplicate groups to form a set of deduplicated groups associated with the object. For example, in Figure 3 In the example, group 318 is removed as shown in step 306, and groups 320 and 322 are merged into group 324. This creates one or more deduplicated groups (e.g., group 324) associated with objects along road 308.
[0044] In various embodiments, control module 102 can merge repeats into a single group in any suitable manner. For example, groups can be merged if the centroid, boundaries, etc., of repeating groups (or clusters) are close to each other (e.g., within a distance threshold). In such an example, control module 102 can merge repeats into a single group by averaging the latitude and longitude values in the target group.
[0045] Additionally and / or alternatively, control module 102 may remove at least one group from the repeating group in any suitable manner. For example, if the centroid, boundary, etc., of the repeating group (or cluster) are not close to each other (e.g., separated by a distance threshold), one or more groups may be removed.
[0046] In other embodiments, control module 102 may merge and / or remove duplicate groups based on one or more characteristics associated with the detection occurrence in which data is collected. For example, control module 102 may remove one of the duplicate groups based on the number of vehicles at the location of the detected object and / or the sampling frequency of the vehicles at the location of the detected object. For example, if a first detection occurrence includes target-specific cluster data from 85 vehicles traveling along vehicle road 308 and a second detection occurrence includes target-specific cluster data from 305 vehicles traveling along vehicle road 308, control module 102 may remove (or ignore) the cluster data from the first detection occurrence.
[0047] However, if the first and second detection events comprise cluster data from the same number (e.g., 100) of vehicles, the control module 102 can consider the sampling counts (e.g., sample frequency) of the vehicles to determine whether removal is appropriate. For example, if the first detection event comprises a sampling count of 50 data samples per vehicle and the second detection event comprises a sampling count of 150 data samples per vehicle, the control module 102 can remove (or ignore) the cluster data from the first detection event.
[0048] In other embodiments, control module 102 may merge and / or remove duplicate groups based on weighted values for the groups. For example, a weighting function may be employed to predict which groups are most accurate and therefore should be relied upon. Equation (1) below is an example of a possible weighting function. In equation (1), f(D i f(S) represents a function of normalized detection counts (e.g., the number of times a vehicle passes through a given time period). i ) represents a function of normalized sample counts (e.g., the number of samples collected per passage or per vehicle within a given time period). A function representing the standard deviation of the location of an object (e.g., a traffic sign). A function representing the standard deviation of an object's heading, and A function representing the standard deviation of an object's elevation. Equation (1)
[0049] In various embodiments, the control module 102 may be based on a weighting factor or value W. i And a threshold to remove groups from duplicate groups. For example, if the value W for a specific group i Less than the threshold (W) min If so, the group can be removed or discarded. Additionally, the control module 102 can perform a weighted average on the remaining groups to determine the merged or combined positions.
[0050] Continue to refer to Figure 1 Control module 102 and / or control module 110 can utilize data from deduplicated groups to determine the desired location of an object (e.g., a traffic sign). For example, control module 102 and / or control module 110 can implement one or more models (e.g., linear regression models) to predict the desired location of a speed limit sign or another suitable object based on a set of deduplicated groups. In this example, a model can be generated and implemented to obtain the ordinate of the desired location, and another model can be generated and implemented to obtain the abscissa of the desired location.
[0051] Furthermore, as explained below, control module 102 can further detect or otherwise identify inconsistencies in the collected data (e.g., conflicting speed limits for a single sign, etc.) and implement a resolution process to resolve some or all of the inconsistencies. Control module 102 can then determine desired information related to the object (e.g., speed limit). This desired information (along with the desired location from above) and / or a map containing the desired information (and location) can then be transmitted to one or more of vehicles 104, 112, 118, 124 (and / or other vehicles not shown) for use in a vehicle control application.
[0052] For example, Figure 4 A method 400 for implementing a conflict resolution process using a control module 102 is described. As shown, method 400 generally includes steps 402 and 404. At step 402, control module 102 receives data (e.g., crowdsourced data) from multiple vehicles for objects along roads 406 and 408, such as... Figure 1 Vehicles 104, 112, 118, 124 and / or supplemental vehicles, if desired. The received data may include, for example, detected locations and information related to the object. Data collection may be conducted using detection events occurring within a specified time period. Figure 4 The data or dataset, as explained above.
[0053] In various embodiments, the collected data groups can be integrated into groups (or clusters) via conventional clustering algorithms, as explained above. Alternatively, if desired, the groups (e.g., clustered data) can be analyzed using a deduplication process to detect duplicate groups, and some or all of the duplicate groups can then be removed and / or merged to form a set of deduplicated groups, as explained above.
[0054] exist Figure 4 In the example, the objects are rate limit signs 410-1, 410-2, and 412, and the information associated with the objects is the rate limit value. Specifically, after the collected data is clustered and a set of deduplicated groups is formed, some data indicator signs 410-1 have a rate limit of 85 MPH, while other data indicator signs 410-2 have a rate limit of 35 MPH. Additionally, some data indicator signs 412 have a rate limit of 45 MPH.
[0055] At point 404, any discrepancies are resolved by analyzing the received data associated with the speed limit values and locations of speed limit signs 410-1, 410-2, and 412 during the resolution process. For example, control module 102 can initially identify signs that are being coordinated. In this way, data associated with signs in a generally nearby area can be considered to resolve any discrepancies. For example, a generally nearby area can be determined based on factors such as whether the distance between sign locations is less than a threshold, whether the sign locations are on the same side of a road, whether the sign locations are on different roads, whether the sign locations are at similar elevations, and whether the sign locations have matching headings. Figure 4 In the example, signs 410-1 and 410-2 are located within each other's general neighborhood and can therefore be considered using contradiction analysis. However, sign 412 can be removed from the consideration of contradiction analysis because sign 412 is generally outside the general neighborhood of signs 410-1 and 410-2 (e.g., greater than a distance threshold, along different roads 406, 408, etc.).
[0056] Next, control module 102 can analyze the collected data and identify inconsistencies between information related to the remaining cooperative positioning markers 410-1, 410-2. For example, control module 102 can compare portions of data collected for one or more objects to identify inconsistencies. Figure 4 In the example, control module 102 can identify inconsistencies between cooperative positioning flags 410-1 and 410-2, where some data indicates a speed limit of 85 MPH while others indicate a speed limit of 35 MPH. Once identified, control module 102 can utilize one or more conflict tables to resolve the inconsistencies.
[0057] For example, a table could initially be created based on transportation regulations, such as maximum speed limits for specific regions (e.g., cities, counties, states, etc.) and roads. As an example, a transportation regulation might require residential roads to have speed limits ranging from 15 MPH to 50 MPH, and access-controlled roads (e.g., non-residential roads) to have a maximum speed limit of 75 MPH. Thus, the table could initially be created using such values for the roads and locations stored therein. Additionally, initial results (e.g., desired speed limit values), the number of conflicts, and verification status could be stored. Table 1 below is an example of a conflict table initially created based on transportation regulations.
[0058] Then, after the discrepancy between the co-location markers 410-1 and 410-2 is identified, the control module 102 can utilize the discrepancy table shown above to select or otherwise determine the desired speed limit (e.g., the result). For example, the control module 102 can search the discrepancy table (e.g., a lookup table) for discrepancy pairs similar to the identified discrepancy. For example, when traveling on a residential road, the identified discrepancy could be 85 MPH versus 35 MPH. If a similar discrepancy pair is found, the control module 102 can determine whether to use the stored result as the desired speed limit. For example, if a similar discrepancy pair is found and at the same location, the control module 102 can use the stored result as the desired speed limit. Figure 4 In the example, control module 102 determines, based on a contradiction table, that the value of 85 MPH is a false positive and the value of 35 MPH is a true positive. Therefore, the contradiction table for the speed limit of 85 MPH for flag 410-1 can be removed.
[0059] In other examples, control module 102 may implement a function for determining the desired speed limit value for the identified contradiction. For example, control module 102 may make this determination based on the number of times the same contradiction has occurred previously at the same location, the number of times the same contradiction has occurred previously at different locations, and whether the result has been verified (e.g., verified by a backend server, verified by a user, etc.).
[0060] Additionally, in various embodiments, the conflict table (e.g., Table 1 shown above) can be updated whenever a conflict is identified. This can improve the reinforcement and confidence of the determined expected rate limit values and help the system learn new conflict situations. For example, Table 2 below is an example of a conflict table updated over time. In this example, occurrences in the table can be incremented and reported to the backend server for further verification. As shown in Table 2, conflict pairs of 35MPH versus 85MPH have occurred 25 times, and conflict pairs of 5MPH versus 25MPH have occurred 50 times.
[0061] In some embodiments, the identified contradiction may be unknown (e.g., not present in the contradiction table). In such an example, control module 102 may determine the desired speed limit value for the speed limit sign based on various speed parameters, such as typical detected speeds for a particular vehicle road or typical speed limits for multiple roads of similar types (e.g., residential roads, access-controlled roads, etc.). For example, control module 102 may determine whether the speed limit value among the received speed limit values (e.g., 35 MPH, 85 MPH, etc.) is within the range for a road (e.g., Figure 4The typical detected speed on road 406 is within a defined threshold. If so, the control module 102 can select that speed limit value as the desired speed limit value for the speed limit flag. In other embodiments, the control module 102 can determine whether the speed limit value among the received speed limit values (e.g., 35 MPH, 85 MPH, etc.) is within the defined threshold for multiple similar roads (e.g., Figure 4 The speed limit is within the defined threshold of the typical speed limit of roads 406 and 408. If so, the control module 102 can select that speed limit value as the desired speed limit value for the speed limit sign.
[0062] In various embodiments, the determined location of the object and / or determined information related to the object can be utilized for vehicle control applications. For example, Figure 1 The control module 102 (or control module 110) can transmit the desired location of the speed limit signs and the desired speed limit value for each sign to the vehicle control module 106 of the vehicle 104. The vehicle control module 106 can then control the operation of one or more vehicles of the vehicle 104 based on the sign locations and speed limit values. For example, the vehicle control module 106 can generate control signals based on the sign locations and speed limit values, and then control the operation of the vehicle 104, such as the movement and / or trajectory of the vehicle 104, based on the control signals.
[0063] Additionally, in some examples, control module 102 (or control module 110) may generate a map based on the determined location of the object and / or determined information related to the object. In such examples, the map may be displayed on a display module in vehicle 104, used for vehicle control, etc.
[0064] Figures 5-13 The diagram shows... Figure 1 The transportation system 100 may employ example control processes 500, 600, 700, 800, 900, 1000, 1100, 1200, and 1300. Although regarding the inclusion of control module 102 and transportation control module 106... Figure 1 The vehicle system 100 describes example control processes 500, 600, 700, 800, 900, 1000, 1100, 1200, and 1300, but any one of the control processes 500, 600, 700, 800, 900, 1000, 1100, 1200, and 1300 may be adopted by another suitable system and / or module (e.g., control module 110) of the vehicle system 100.
[0065] Control process 500 is implemented to perform deduplication on clusters of traffic signs (or other suitable objects) along the road and identify the desired locations of the traffic signs. For example...Figure 5 As shown, control process 500 begins at 502 by receiving data from multiple vehicles over a period of time. For example, and as explained above, the data could be crowdsourced data collected by utilizing detections of data collection occurring within a specified time period (e.g., over multiple days). Control process 500 then proceeds to 504, where control module 102 can filter out unsuitable data from the collected data. For example, if some data does not meet a minimum accuracy threshold or is otherwise unsuitable, it can be filtered out from further processing. Control process 500 then proceeds to 506, where control module 102 integrates the data clusters into groups (e.g., clusters) targeting traffic signs. In various embodiments, control module 102 can implement conventional clustering algorithms to group the data as desired. Control process 500 then proceeds to 508.
[0066] At 508, control module 102 determines whether any duplicate groups exist in the cluster group. For example, and as explained above, control module 102 can compare location data in the cluster group and determine that the group / cluster is near another group / cluster, thus presenting the group / cluster as a duplicate group. If so, control process 500 continues to 510. Otherwise, if no duplicate group exists, control process 500 continues to 512.
[0067] At 510, control module 102 implements a deduplication process to resolve duplicate groups, forming a set of deduplicated groups for traffic signs. For example, and as explained above, if the centroid, boundaries, etc., of duplicate groups (or clusters) are not close to each other (e.g., separated by a distance threshold) and / or based on a determined weighting factor, control module 102 may remove one or more duplicate groups. Alternatively, if the centroid, boundaries, etc., of duplicate groups (or clusters) are close to each other (e.g., separated by a distance threshold), control module 102 may merge one or more duplicate groups. Then, after forming the set of deduplicated groups for traffic signs at 510, control process 500 continues to 512.
[0068] At 512, control module 102 determines the desired location of the traffic sign. For example, and as explained above, control module 102 may implement one or more models (e.g., linear regression models, etc.) to predict the desired location of the traffic sign based on a set of groups with deduplicated data. Control process 500 then continues to 514.
[0069] At point 514, Figure 1The vehicle control module 106 generates one or more control signals based on the desired location of the traffic sign. For example, control module 102 may transmit the desired location of the traffic sign to vehicle control module 106, which then generates one or more control signals. Control process 500 then continues to 516, whereby vehicle control module 106 controls at least one operation of vehicle 104 based on one or more control signals.
[0070] Figure 6 The control process 600 is similar to Figure 5 The control process is 500, but includes additional steps for resolving conflicting information used to identify traffic signs. Although Figure 6 The example control process 600 relates to identifying conflicting speed limits on traffic signs, but it should be understood that control process 600 can be used to identify other conflicting information related to traffic signs and / or conflicting information related to objects along the road. For example... Figure 6 As shown, control process 600 in Figure 5 It starts at position 502 and continues to... Figure 5 Numbers 504, 506, 508, and 510, all explained above. Then, after a set of deduplicated groups for traffic signs is formed at 510, control process 600 continues to 612.
[0071] At 612, control module 102 detects colocation markers associated with the set of deduplicated groups. For example, and as explained above, control module 102 can initially identify colocation markers located within each other's general neighborhood. Deduplicated groups with data associated with other markers outside their general neighborhood can be removed from consideration. Control process 600 then continues to 614.
[0072] At 614, control module 102 determines whether any of the remaining deduplicated groups contains a conflicting speed limit value for the colocation flag. For example, and as explained above, control module 102 can compare portions of the collected data for the colocation flag to identify a conflict. If a conflicting speed limit value is identified at 614, control process 600 continues to 616. Otherwise, if no conflicting speed limit value exists, control process 600 continues to 618.
[0073] At 616, control module 102 implements a conflict removal process to resolve the identified conflicting speed limit value. For example, after identifying the conflicting speed limit value, control module 102 can utilize a conflict table to resolve the conflict, as explained above. Then, if the identified conflict is a known conflict, control module 102 can select the conflict result stored in the conflict table as the desired speed limit at 616. Alternatively, if the identified conflict is unknown (e.g., not present in the conflict table), control module 102 can determine the desired speed limit value at 616 based on various speed parameters, such as typical detected speeds for a specific type of road or typical speed limits for multiple similar types of roads (e.g., residential roads, access-controlled roads, etc.), as explained above.
[0074] At point 618, when no conflicting speed limit values exist, control module 102 determines the desired speed limit value for the traffic sign. For example, control module 102 may implement one or more models (e.g., linear regression models) to predict the desired speed limit value based on a set of groups with deduplicated data.
[0075] After determining the desired speed limit value at 616 or 618, control process 600 then continues. Figure 5 514, 516. For example, at 514, the vehicle control module 106 generates one or more control signals based on the desired speed limit value of the traffic sign, and then at 516, the vehicle control module 106 controls at least one operation of the vehicle 104 based on the control signals(s).
[0076] Figure 7 Control process 700 is an example implementation of a deduplication process to resolve duplicate groups, forming a set of deduplicated groups for traffic signs, such as in... Figure 5 In step 510. For example... Figure 7 As shown, control process 700 begins at 702 by determining whether the road type under consideration is an access-controlled road. For example, control module 102 may rely on existing maps, known data, traffic regulations, etc., to identify a road as an access-controlled road (e.g., a highway, such as a road, interstate highway, etc.) or a non-access-controlled road (e.g., a low-speed road, such as a residential road, etc.). If the road is an access-controlled road, control process 700 continues to 704. If the road is not an access-controlled road, control process 700 continues to 706.
[0077] At point 704, control module 102 implements the access control road deduplication process to identify and resolve duplicate groups. An example of the access control road deduplication process is described below. Figure 8The control process is described in section 800. At section 706, control module 102 implements a non-access control road deduplication process to identify and resolve duplicate groups. An example of a non-access control road deduplication process is described below. Figure 9 The control process is 900. Then, after the appropriate road deduplication process is implemented at 704 or 706, the control process 700 continues to 708.
[0078] At 708, control module 102 updates the data table to reflect the resolution of duplicate groups. For example, the data table may be updated to remove and / or merge cluster groups. Control process 700 then continues to 710, where the updated data table is output or otherwise made accessible for use when determining the desired location.
[0079] Figure 8 The control process 800 is an example implementation of the deduplication process for identifying and resolving access control paths for duplicate groups. In various embodiments, it is possible to... Figure 7 In 704, some or all of the steps of control process 800 are used. For example... Figure 8 As shown, control process 800 begins at 802 by receiving or otherwise accessing a collection of cluster data (such as in a cluster data table) via control module 102. In this example, the cluster data table may be generated after receiving crowdsourced data from multiple vehicles over a period of time and integrating that crowdsourced data into a group (or cluster), as explained above. Control process 800 then continues to 804.
[0080] At 804, control module 102 identifies the highest detected speed limit value for the flag in the cluster data table. Control process 800 then continues to 806, where control module 102 determines whether the highest detected speed limit value for the flag is less than or equal to a maximum threshold. In some examples, the maximum threshold may be a maximum speed limit value for access-controlled roads set by transportation regulations for cities, counties, states, etc. By way of example only, the maximum speed limit value (e.g., the maximum threshold) could be 65 MPH, 70 MPH, 75 MPH, 80 MPH, etc.
[0081] If the highest detected speed limit value for the flag is greater than the maximum threshold (not at 806), then control process 800 continues to 808. At 808, control module 102 replaces the highest detected speed limit value in the cluster data table for the flag with the maximum threshold. Control process 800 then continues to 810.
[0082] However, if the highest detected speed limit value for the flag is less than or equal to the maximum threshold (yes at 806), control process 800 continues to 810. At 810, control module 102 determines whether the cluster data table has more than one row of data. For example, each row in the cluster data table may include data associated with a detection occurring within a specific time period, as explained above. When the cluster data table has one row or fewer (no at 810), there is no duplicate group, or there is no data in the table. In this scenario, control process 800 continues to 824. However, if the cluster data table has more than one row (yes at 810), control process 800 continues to 812.
[0083] At 812, control module 102 checks or identifies the highest detection count for a detection occurring in the cluster data table. For example, and as explained above, each detection occurrence includes a detection count representing the number of times a vehicle passed within a specific time period. Control process 800 then proceeds to 814, where control module 102 determines whether the highest detection count is equal to any other detection count for another detection occurring in the cluster data table. If no at 814, control process 800 proceeds to 816. If yes at 814, control process 800 proceeds to 818.
[0084] At 816, control module 102 maintains the dataset associated with the detection count having the highest value in the cluster data table and discards or removes the dataset associated with the detection count having the lowest value. For example, a detection count with a higher value is likely to have more accurate data than a detection count with a lower value. As an example, if one detection count has 35 vehicle passages and another detection count has 85 vehicle passages, the dataset associated with the 85 vehicle detection count is maintained (and used), while the dataset associated with the 35 vehicle detection count is discarded or removed. Thus, the 85 vehicle detection count includes more vehicles providing data (e.g., the detected location of the sign, the detected speed limit value of the sign, etc.) compared to the 35 vehicle detection count. Control process 800 then continues to 824.
[0085] At 818, control module 102 examines or identifies the highest sample count among equal detection counts. For example, each detection count (e.g., the number of times a vehicle passes through) may include different sampling frequencies based on the number of samples obtained by each vehicle using each pass. For example, one vehicle pass may collect 10 samples, while another vehicle pass may collect 100 samples.
[0086] Control process 800 then continues to 820, where control module 102 determines whether the highest sample count is equal to the sample count for another equal detection count. If yes at 816, control process 800 continues to 822. If no at 820, control process 800 continues to 816. At 816, control module 102 maintains the dataset in the cluster data table associated with the sample count having the highest value and discards or removes one or more other datasets in the cluster data table associated with the detection samples(s) having lower values(s). For example, and continuing with the example above, the dataset in the cluster data table associated with a sample count of 100 is maintained (and used), while the dataset in the cluster data table associated with a sample count of 10 is discarded or removed. Control process 800 then continues to 824.
[0087] At 822, control module 102 implements remedial steps based on the type of data involved. For example, if the dataset of equal sample counts (and equal detection counts) is related to the detected location of the sign, control module 102 can determine the average latitude values and the average longitude values and update the cluster data table using this merged data. In other examples, the dataset of equal sample counts may be related to speed limit values. In such an example, control module 102 may initiate a conflict identification and resolution process as explained herein, leave the dataset of equal sample counts as is, etc. Control process 800 then continues to 824.
[0088] At 824, control module 102 outputs a cluster data table with any updates created in steps 808, 816, and 822. In various embodiments, the cluster data table at 824 includes a set of deduplicated groups (e.g., groups without duplicates), as explained above. This cluster data table can then be relied upon to determine the desired location of a sign (or other object) and the desired speed limit value for the sign (or other information relating to the sign or other subject), as explained above.
[0089] Figure 9 The control process 900 is an example implementation of a non-access control path deduplication process for identifying and resolving duplicate groups. In various embodiments, it is possible to... Figure 7 In 706, some or all of the steps of control process 900 are used. Figure 9 The control process 900 is basically similar to Figure 8 The control process 800 includes fewer steps. For example, control process 900 includes steps 802, 810, 812, 814, 816, 818, 820, 822, and 824, as mentioned above. Figure 8 The control process is explained in section 800.
[0090] Figure 10 Control procedure 1000 is an example implementation for updating clustered data tables. For example... Figure 10 As shown, Figure 10 The control process 1000 begins at 802, where the control module 102 receives or otherwise accesses a collection of cluster data, such as in a cluster data table as explained above. The control process 1000 then continues to 1004, where the control module 102 implements a duplicate detection process to identify duplicate groups (or clusters) and non-duplicate groups (or clusters). Duplicate groups are shown at 1006, and non-duplicate groups are shown at 1008.
[0091] Then, at 1010, control module 102 implements a deduplication process on the duplicate groups from 1006. The deduplication process can resolve duplicate groups by removing groups and / or merging groups together, as explained above. Thus, using the deduplication process, control module 102 can discard duplicate groups at 1012 and maintain valid groups (merged groups) at 1014.
[0092] Then, at 1016, control module 102 generates and reports metadata for groups that were discarded / duplicated at 1012. In other words, control module 102 can create records of unwanted duplicate deletions of objects (e.g., flags). This metadata can be used to improve future crowdsourcing processes.
[0093] At 1018, control module 102 generates and outputs a data table with 1008 non-repeating groups and 1014 valid groups (merged groups). This data table can then be relied upon to determine the desired location of a sign (or other object) and the desired speed limit value for the sign (or other information related to the sign or other subject), as explained above.
[0094] Figure 11 The control process 1100 is an example implementation for identifying and resolving conflicts (e.g., false detections). Figure 11 As shown, Figure 10 Control process 1100 begins at 802, where control module 102 receives or otherwise accesses a collection of cluster data, such as in a cluster data table as explained above. Control process 1100 then continues to 1104, where control module 102 analyzes the cluster data to identify colocation markers associated with a set of, for example, deduplicated groups (or clusters). For example, and as explained above, control module 102 may initially identify colocation markers located in general proximity to each other. Control process 1100 then continues to 1106.
[0095] At 1106, control module 102 determines whether a conflicting speed limit value exists for the co-location marker. For example, and as explained above, control module 102 can compare portions of the collected data for the co-location marker to identify a conflict. If a conflicting speed limit value is identified at 1106, control process 1100 continues to 1108. However, if no conflicting speed limit value exists, control process 1100 continues to 1114.
[0096] At 1108, control module 102 determines whether the identified contradiction velocity value is a known contradiction. For example, control module 102 can search a contradiction table with known contradictions to see if the identified contradiction velocity value is known. If the contradiction velocity value is a known contradiction, control process 1000 continues to 1110, where control module 102 implements a contradiction resolution process for the known contradiction to resolve the contradiction velocity value, as explained above. Otherwise, if the contradiction velocity value is an unknown contradiction, control process 1000 continues to 1112, where control module 102 implements a contradiction resolution process for the new contradiction to resolve the contradiction velocity value, as explained above. Then, after the contradiction resolution process for the known or unknown contradiction is completed, control process 1100 continues to 1114.
[0097] At 1114, control module 102 updates the conflict table to reflect the resolution of conflict rate values. For example, conflicts may be added if they were previously unknown, the occurrence of known conflicts may be incremented, and so on. In some examples, increments in occurrence can provide reinforcement or stronger confidence in conflict resolution (e.g., the selection of one of the conflict rate values) in future processes.
[0098] Figure 12 The control process 1200 is an example of a conflict resolution process for new conflicts. In various embodiments, it can be... Figure 11 Some or all of the steps of control process 1200 are used in 1112. As shown, Figure 12 The control process 1200 begins at 1202, where the control module 102 receives or accesses a new (or unknown) conflicting value. Control process 1200 then continues to 1204. At 1204, the control module 102 determines whether the conflicting value is a speed-limiting conflict. If not, control process 1200 continues to 1205, where the control module 102 can implement a non-speed-limiting conflict process. An example of such a control process is described below. Figure 13 Control process 1300. In other examples, control process 1200 may terminate as desired. If yes at 1204, control process 1200 continues to 1206, 1208.
[0099] At 1206, control module 102 compares each conflicting speed limit value with the typical vehicle speed for the road associated with the conflicting value. For example, the typical vehicle speed could be the average vehicle speed, the vehicle speed at the 85th percentile, etc. Then, at 1208, control module 102 determines whether one of the conflicting speed limits is near the typical vehicle speed. For example, control module 102 can determine whether the difference between one of the conflicting speed limits and the typical vehicle speed is less than a threshold. If so, control process 1200 continues to 1210, where control module 102 selects the conflicting speed limit value near the typical vehicle speed as the desired speed limit value for the speed limit sign. Control process 1200 then continues to 1220.
[0100] If the result is negative at 1208, control process 1200 continues to 1212 and 1214. At 1212, control module 102 compares each conflicting speed limit value with the typical road category speed limit associated with the corresponding road along its location marker. For example, control module 102 may compare the conflicting speed limit value with typical speeds for similar roads (such as average speed for highways, average speed for residential roads, etc.). Then, at 1214, control module 102 determines whether one of the conflicting speed limits is near the typical road category speed limit. For example, control module 102 may determine whether the difference between one of the conflicting speed limits and the typical speed limit is less than a threshold. If negative, control process 1200 continues to 1218, where control waits for more data. Control process 1200 then returns to 1202. If the result is positive at 1214, control process 1200 continues to 1216, where control module 102 selects the conflicting speed limit value near the typical speed limit as the desired speed limit value for the speed limit marker. The control process is set to 1200 and then continues to 1220.
[0101] At 1220, control module 102 verifies the selected desired speed limit value using, for example, a backend server, a user, etc., and then updates the conflict table to include the new conflict speed value and the result (e.g., the desired speed limit value).
[0102] At 1220, control module 102 verifies the selected desired speed limit value using, for example, a backend server, a user, etc., and then updates the conflict table to include the new conflict speed value and the result (e.g., the desired speed limit value).
[0103] Figure 13 The control process 1300 is an example of a conflict resolution process for new conflicts. In various embodiments, it can be... Figure 11 Some or all of the steps of control process 1300 are used in 1112. As shown, Figure 13The control process 1300 begins at 1302, where the control module 102 receives or accesses cluster data. The control process 1300 then continues to 1304, where the control module 102 determines whether the cluster data includes any inconsistencies against the object.
[0104] If the result is negative at 1304, control process 1300 continues to 1306. At 1306, control module 102 populates a data table with non-contradictory values for later use (e.g., in vehicle control applications, etc.). Then, control process 1300 returns to 1302.
[0105] If the condition is yes at 1304, control process 1300 continues to 1308. At 1308, control module 102 determines the resolution of the contradiction, as explained herein. Then, control process 1300 continues to 1310, where control module 102 sends a request for verification of the determined resolution of the contradiction using, for example, a backend server, a user, etc. Control process 1300 then continues to 1312. At 1312, control module 102 determines whether the determined resolution of the contradiction has been verified. If not, control process 1300 continues to 1314, where control waits for more data. Control process 1300 then returns to 1302. If the condition is yes at 1312, control process 1300 continues to 1316. At 1316, control module 102 updates the contradiction table to include new contradictions and results (e.g., verified resolutions of contradictions).
[0106] The above description is illustrative in nature and is in no way intended to limit this disclosure, its application, or use. The broad teachings of this disclosure can be implemented in many forms. Therefore, although this disclosure includes specific examples, its true scope should not be so limited, as other modifications will become apparent upon study of the drawings, specification, and appended claims. It should be understood that one or more steps within the method can be performed in a different order (or simultaneously) without altering the principles of this disclosure. Furthermore, although each of the embodiments is described above as having certain features, any one or more of those features described with respect to any embodiment of this disclosure may be implemented in any other embodiment and / or combined with features of any other embodiment, even if such combination is not explicitly described. In other words, the described embodiments are not mutually exclusive, and the arrangement of one or more embodiments with respect to each other remains within the scope of this disclosure.
[0107] Various terms are used to describe spatial and functional relationships between elements (e.g., between modules, circuit elements, semiconductor layers, etc.), including “connection,” “joint,” “coupled,” “adjacent,” “immediately next to,” “on top of,” “above,” “below,” and “set.” Unless explicitly described as “direct,” when describing a relationship between first and second elements in the above disclosure, the relationship can be a direct relationship in which no other intermediary element exists between the first and second elements, or an indirect relationship in which one or more intermediary elements exist (spatially or functionally) between the first and second elements. As used herein, the phrase “at least one of A, B, and C” should be understood to mean logically (A or B or C) using the non-exclusive logic “OR,” and should not be understood to mean “at least one of A, at least one of B, and at least one of C.”
[0108] In the accompanying drawings, as indicated by the arrows, the direction of the arrows generally illustrates the flow of information of interest to the illustration (such as data or instructions). For example, when components A and B exchange various types of information, but the information transmitted from component A to component B is relevant to the illustration, the arrow may point from component A to component B. This unidirectional arrow does not imply that no other information is transmitted from component B to component A. Furthermore, for information sent from component A to component B, component B may send a request for that information or a positive response to receive that information to component A.
[0109] In this application, which includes the definitions below, the term "circuit" may be used instead of the terms "module" or "controller". The term "module" may refer to, be part of, or include the following: application-specific integrated circuit (ASIC); digital, analog, or mixed-signal analog / digital discrete circuit; digital, analog, or mixed-signal analog / digital integrated circuit; combinational logic circuit; field-programmable gate array (FPGA); processor circuitry (shared, dedicated, or group) that executes code; memory circuitry (shared, dedicated, or group) that stores code executed by the processor circuitry; other suitable hardware components that provide the described functionality; or combinations of some or all of the above, such as in a system-on-a-chip.
[0110] A module may include one or more interface circuits. In some examples, the interface circuits may include wired or wireless interfaces connected to a local area network (LAN), the Internet, a wide area network (WAN), or a combination thereof. The functionality of any given module of this disclosure may be distributed among multiple modules connected via the interface circuits. For example, multiple modules may allow for load balancing. In a further example, a server (also referred to as a remote or cloud) module may perform a function on behalf of a client module.
[0111] As used above, the term "code" can include software, firmware, and / or microcode, and can refer to programs, routines, functions, classes, data structures, and / or objects. The term "shared processor circuitry" covers a single processor circuitry that executes some or all of the code from multiple modules. The term "group processor circuitry" covers a processor circuitry that, in conjunction with additional processor circuitry, executes some or all of the code from one or more modules. References to multiple processor circuitry cover multiple processor circuitry on discrete dies, multiple processor circuitry on a single die, multiple cores of a single processor circuitry, multiple threads of a single processor circuitry, or a combination of the above. The term "shared memory circuitry" covers a single memory circuitry that stores some or all of the code from multiple modules. The term "group memory circuitry" covers a memory circuitry that, in conjunction with additional memory, stores some or all of the code from one or more modules.
[0112] The term "memory circuit" is a subset of the term "computer-readable medium." As used herein, the term "computer-readable medium" does not cover transient electrical or electromagnetic signals propagating through a medium (such as on a carrier wave); the term "computer-readable medium" can therefore be considered tangible and non-transient. Non-limiting examples of non-transient tangible computer-readable media are non-volatile memory circuits (such as flash memory circuits, erasable programmable read-only memory circuits, or mask read-only memory circuits), volatile memory circuits (such as static random access memory circuits or dynamic random access memory circuits), magnetic storage media (such as analog or digital magnetic tape or hard disk drives), and optical storage media (such as CDs, DVDs, or Blu-ray discs).
[0113] The apparatus and methods described in this application can be implemented, in part or in whole, by a special-purpose computer created by configuring a general-purpose computer to perform one or more specific functions embodied in a computer program. The function blocks, flowchart components, and other elements described above serve as software specifications that can be translated into computer programs by the routine work of a skilled technician or programmer.
[0114] A computer program includes processor-executable instructions stored on at least one non-transient tangible computer-readable medium. A computer program may also include or depend on the stored data. A computer program may encompass a basic input / output system (BIOS) for interacting with the hardware of a special-purpose computer, device drivers for interacting with specific devices of the special-purpose computer, one or more operating systems, user applications, background services, background applications, etc.
[0115] Computer programs may include: (i) descriptive text to be parsed, such as HTML (Hypertext Markup Language), XML (Extensible Markup Language), or JSON (JavaScript Object Notation); (ii) assembly code; (iii) object code generated from source code by a compiler; (iv) source code for execution by an interpreter; (v) source code for compilation and execution by a just-in-time (JIT) compiler; and so on. As an example only, source code can be written using syntax from languages including: C, C++, C#, Objective-C, Swift, Haskell, Go, SQL, R, Lisp, Fortran, Perl, Pascal, Curl, OCaml, HTML5 (Hypertext Markup Language, 5th Revision), Ada, ASP (Dynamic Server Pages), PHP (PHP: Hypertext Preprocessor), Scala, Eiffel, Smalltalk, Erlang, Ruby, Visual Lua, MATLAB, SIMULINK and
Claims
1. A vehicle system comprising: a vehicle control module of a vehicle; and a control module in communication with the vehicle control module, the control module configured to: receive data from a plurality of vehicles over a period of time, the data comprising detected positions of at least one object along a vehicle road; cluster the received data into a plurality of groups; detect at least one set of duplicate groups in the plurality of groups; merge the duplicate groups into a single group or remove at least one of the duplicate groups to form a set of deduplicated groups associated with the at least one object; and determine a desired position of the at least one object based on the set of deduplicated groups, wherein the vehicle control module is configured to: receive the desired position of the at least one object; and generate a control signal for controlling at least one operation of the vehicle based on the desired position of the at least one object.
2. The vehicle system of claim 1, wherein the control module is configured to merge the duplicate groups into the single group by averaging latitude values and longitude values.
3. The vehicle system of claim 1, wherein the control module is configured to remove the at least one of the duplicate groups based on a number of the plurality of vehicles detecting the position of the at least one object or a sampling frequency of the plurality of vehicles detecting the position of the at least one object.
4. The vehicle system of claim 1, wherein the control module is configured to determine a weighting value associated with each group from a set of duplicate groups; and remove the at least one of the duplicate groups based on the weighting value and a threshold value.
5. The vehicle system of claim 1, wherein the at least one object is a traffic sign, and the data comprises information related to the traffic sign.
6. The vehicle system of claim 5, wherein: the information related to the traffic sign comprises speed limit values; and the control module is configured to identify a contradiction between one or more of the speed limit values of the traffic sign; and determine a desired speed limit value based on a number of previous contradictions for the traffic sign.
7. The vehicle system of claim 5, wherein: the information related to the traffic sign comprises speed limit values; and the control module is configured to determine whether a speed limit value of the speed limit values is within a defined threshold of a typical detected speed for the vehicle road; and select the speed limit value as a desired speed limit value for the speed limit sign.
8. The vehicle system of claim 5, wherein: the information related to the traffic sign comprises speed limit values; and the control module is configured to determine whether a speed limit value of the speed limit values is within a defined threshold of a typical speed limit for a plurality of roads including the vehicle road; and select the speed limit value as a desired speed limit value for the speed limit sign.
9. The vehicle system of claim 1, wherein: the control module is external to the vehicle; and the control module is configured to receive the data from the plurality of vehicles over a period of time. The control module is configured to transmit a desired position of the at least one object to a plurality of vehicle control modules including the vehicle control module.
10. A vehicle system comprising: a vehicle control module of a vehicle; and a control module in communication with the vehicle control module, the control module configured to: receive data from a plurality of vehicles over a period of time, the data including detected positions and speed limit values of at least one speed limit sign along a vehicle road; cluster the received data into a plurality of groups; detect at least one set of duplicate groups in the plurality of groups; merge the duplicate groups into a single group or remove at least one of the duplicate groups to form a set of deduplicated groups associated with the at least one speed limit sign; determine a desired speed limit value of the at least one speed limit sign based on the set of deduplicated groups; and determine a desired position of the at least one speed limit sign based on the set of deduplicated groups, wherein the vehicle control module is configured to: receive the desired speed limit value and the desired position of the at least one speed limit sign; and generate a control signal for controlling at least one operation of the vehicle based on the desired speed limit value and the desired position of the at least one speed limit sign.