Data processing method and device, electronic equipment and storage medium
By automatically decomposing the trajectory data and identifying the inflection point range, the trajectory points are divided into straight and bend section data, which solves the problem of low processing efficiency and achieves more efficient and high-precision map generation.
Patent Information
- Application Number
- CN202310968348.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2023-08-02
- Publication Date
- 2025-02-14
AI Technical Summary
When building high-precision navigation maps, the data efficiency of processing straight and turning sections is low, especially the data complexity of turning sections affects the overall processing efficiency.
By automatically decomposing the trajectory data, identifying inflection points and establishing a range of inflection points, the trajectory points are divided into two groups within and outside the inflection point range, and data for straight and turning sections are processed respectively.
The efficiency of data processing is improved, the negative impact of turning section data on the overall processing efficiency is avoided, and the efficiency of high-precision map generation is enhanced.
Smart Images

Figure CN119437193A_ABST
Abstract
Description
Technical Field
[0001] The embodiments of the present disclosure relate to the field of data processing, and in particular, to a method, device, electronic device and storage medium for data processing. Background Art
[0002] When building a high-precision navigation map, raw data (such as trajectories, point clouds, pictures, and videos, etc.) are generally collected by a collection vehicle, and then a high-precision navigation map is generated based on these raw data.
[0003] However, there are still some challenges in processing these raw data. For example, although the data of straight sections can be processed with relatively high efficiency, when the raw data also involves the data of curved sections (e.g., curves, forks, road intersections, crossroads, etc.), the amount of information of such sections is usually more and more complex than that of straight sections. In this case, if the data of straight sections and curved sections are processed uniformly, the data of curved sections is likely to affect the overall processing efficiency. Summary of the invention
[0004] To this end, the present disclosure proposes a method, device, electronic device and storage medium for data processing, which automatically decomposes trajectory data and distinguishes data corresponding to straight and turning sections, thereby improving subsequent processing efficiency.
[0005] According to one aspect of the present disclosure, a method for data processing is proposed. The method comprises: obtaining trajectory data for representing at least one driving trajectory, the trajectory data comprising a plurality of trajectory points; identifying one or more inflection points from the plurality of trajectory points according to the azimuth information of the plurality of trajectory points relative to a reference direction; establishing one or more inflection point ranges according to the one or more inflection points; and extracting a first group of trajectory points and a second group of trajectory points from the plurality of trajectory points according to the spatial position information of the plurality of trajectory points and the one or more inflection point ranges, wherein the spatial position of the first group of trajectory points is within the one or more inflection point ranges, and the spatial position of the second group of trajectory points is outside the one or more inflection point ranges.
[0006] According to another aspect of the present disclosure, a data processing device is proposed. The data processing device includes a data receiving module, an inflection point identification module, an inflection point range establishment module, and a data decomposition module (also referred to as a data processing module). The data receiving module is used to obtain trajectory data for representing at least one driving trajectory, wherein the trajectory data includes a plurality of trajectory points. The inflection point identification module is used to identify one or more inflection points from the plurality of trajectory points based on the azimuth information of the plurality of trajectory points relative to a reference direction. The inflection point range establishment module is used to establish one or more inflection point ranges based on the one or more inflection points. The data decomposition module is used to extract a first group of trajectory points and a second group of trajectory points from the plurality of trajectory points based on the spatial position information of the plurality of trajectory points and the one or more inflection point ranges, wherein the spatial position of the first group of trajectory points is within the one or more inflection point ranges, and the spatial position of the second group of trajectory points is outside the one or more inflection point ranges.
[0007] According to another aspect of the present disclosure, an electronic device is provided, which includes a memory and a processor, wherein the memory stores at least one computer program instruction, and the at least one computer program instruction is loaded and executed by the processor to implement the method for data processing provided by the present disclosure.
[0008] According to another aspect of the present disclosure, a computer-readable storage medium is provided. The computer-readable storage medium stores at least one computer program instruction, and when the at least one computer program instruction is executed by a processor, the method for data processing provided by the present disclosure can be implemented. BRIEF DESCRIPTION OF THE DRAWINGS
[0009] The accompanying drawings exemplarily illustrate the embodiments and constitute a part of the specification, and together with the text description of the specification, are used to explain the exemplary embodiments of the embodiments. Obviously, the drawings described below are only some embodiments of the present disclosure, and for those of ordinary skill in the art, other drawings can be obtained based on these drawings without creative work. In all drawings, the same reference numerals refer to similar but not necessarily identical elements.
[0010] Figure 1 A flowchart of a method for data processing according to an exemplary embodiment of the present disclosure is shown.
[0011] Figure 2 A flowchart of a method for data processing according to an exemplary embodiment of the present disclosure is shown.
[0012] Figure 3 is a schematic diagram of determining the azimuth angle of a trajectory point according to an exemplary embodiment of the present disclosure.
[0013] Figure 4 is a schematic diagram of an analysis interval according to an exemplary embodiment of the present disclosure.
[0014] Figure 5 is a schematic diagram of identifying special inflection points according to an exemplary embodiment of the present disclosure.
[0015] Figure 6 is a schematic diagram illustrating an inflection point range according to an exemplary embodiment of the present disclosure.
[0016] Figure 7 is a schematic diagram of a combined inflection point range according to an exemplary embodiment of the present disclosure.
[0017] Figure 8 A flowchart of a method for data processing according to an exemplary embodiment of the present disclosure is shown.
[0018] Fig. 9 is a schematic diagram of an identification window according to an exemplary embodiment of the present disclosure.
[0019] Fig.10 It is a schematic diagram of operations such as growth, zeroing, and sliding of a recognition window according to an exemplary embodiment of the present disclosure.
[0020] Fig.11 is a block diagram of a data processing device according to an exemplary embodiment of the present disclosure.
[0021] Fig.12 is a block diagram of an electronic device according to an exemplary embodiment of the present disclosure. DETAILED DESCRIPTION
[0022] In order to make the purpose, technical scheme and advantages of the present invention clearer, the present invention will be further described in detail below in conjunction with the accompanying drawings. Obviously, the described embodiments are only part of the embodiments of the present invention, rather than all of the embodiments. Based on the embodiments of the present invention, all other embodiments obtained by ordinary technicians in this field without creative work are within the scope of protection of the present invention.
[0023] In this disclosure, the term "plurality" means two or more, unless otherwise specified. In this disclosure, the term "and / or" describes the association relationship of associated objects, covering any one of the listed objects and all possible combinations. The character " / " generally indicates that the associated objects before and after are in an "or" relationship.
[0024] In this disclosure, unless otherwise specified, the terms "first", "second", etc. are used to distinguish similar objects without intending to limit their positional relationship, temporal relationship, or importance relationship. It should be understood that the terms used in this way can be interchangeable under appropriate circumstances, so that the embodiments of the present invention described herein can be implemented in ways other than those illustrated or described herein.
[0025] In addition, the terms "comprises," "comprising," and "having," and any variations thereof, are intended to cover non-exclusive inclusions. For example, a process, method, system, product, or apparatus that includes a series of steps or elements is not necessarily limited to those steps or elements explicitly listed, but may include other steps or elements not explicitly listed or inherent to such process, method, system, product, or apparatus.
[0026] The present disclosure is further described in detail below in conjunction with the accompanying drawings.
[0027] Figure 1 A flowchart of a method 100 for data processing according to an exemplary embodiment of the present disclosure is shown. Figure 1 The steps 102, 104, 106 and 108 in the method 100 are depicted as independent blocks and appear to be separate steps, but these steps should not be understood as having to be performed in the order shown. The method 100 may include the steps 102, 104, 106 and 108.
[0028] Step 102: The data processing device obtains trajectory data for representing at least one driving trajectory, and the trajectory data includes a plurality of trajectory points.
[0029] In some embodiments, the trajectory data may include trajectory data obtained in one or more data collection tasks. The trajectory data corresponding to different data collection tasks may have the same identifier. For example, a collection vehicle may perform data collection tasks on the same road section on different dates (e.g., driving along a specific road section and recording information collected along the way). These trajectory data collected on different dates may have the same task name or identifier and be processed together in subsequent processes.
[0030] Of course, in order to facilitate the distinction, the trajectory data obtained by the collection vehicle performing the data collection task on the same road section on different dates may also have different identifiers, that is, each time the collection vehicle goes out to perform a data collection task, a unique identifier is generated. In the subsequent data process, the trajectory data located in the same road section can be identified according to the start and end coordinates of the collection task or the start and end coordinates of the trajectory data. In another implementation, if at least one of the data collection task, the data collection road section, and the data collection time period is different, different identifiers will be assigned, but the trajectory data belonging to the same road section can be screened out through some mapping relationships. For example, the data identifier can be encoded in the order of road section-time period, and the trajectory data of the same road section can be extracted according to the encoding content of the road section field. Alternatively, the data identifier can be encoded according to the mapping relationship between road section and collection vehicle. In this case, even if the data of the same road section is collected by different collection vehicles, the trajectory data of the same road section can be extracted according to the encoding content of the road section field. In addition, considering that different collection vehicles may have different hardware and software configurations, thereby affecting the quality of data collection, different collection vehicles can also generate different identifiers. That is, different vehicles may collect data in the same section of the road and in the same period, and the data identifiers of the obtained trajectory data may also be different. Recording the collection vehicle number of each data collection helps to provide more reference information when performing trajectory analysis and map generation later. In some embodiments, the setting of the identifier can be dynamic. For example, the data processing device can dynamically adjust the identifier of the trajectory data according to real-time needs.
[0031] In some embodiments, each trajectory point in the trajectory data may correspond to a set of coordinate data (e.g., longitude and latitude information and / or other information used to represent a spatial position) and a timestamp. The driving trajectory can be obtained by connecting multiple trajectory points obtained in a data collection task in sequence in time sequence. For example, the earth coordinate system can be used as a reference coordinate system. In the process of the collection vehicle performing the data collection task, the storage space corresponding to each timestamp stores the coordinate data of the collection vehicle at the time corresponding to each timestamp, thereby defining a trajectory point. For all trajectory points collected in a data collection task, they can be sorted in the order of increase and decrease of their respective timestamps to arrange these trajectory points in time sequence. By connecting each trajectory point in sequence in time sequence, one or more driving trajectories defined in the trajectory data can be obtained.
[0032] In step 104 , the data processing device identifies one or more inflection points from the trajectory points according to the azimuth information of the trajectory points relative to the reference direction.
[0033] In some embodiments, the data processing device may calculate the azimuth information of the trajectory points relative to the reference direction based on the spatial position relationship between the trajectory points. The azimuth information may include the azimuth of at least a portion of the trajectory points. The azimuth of a certain trajectory point can be calculated based on the angle between the direction of the line connecting the trajectory point and its adjacent or similar trajectory points in time sequence and the reference direction. The reference direction may be due north on a geographic plane or other specified directions. In some embodiments, the data processing device may calculate the azimuth information by itself. In other embodiments, the data processing device may directly receive the calculated azimuth information from other devices.
[0034] One or more trajectory points in the trajectory data may be identified as turning points. Turning points are used to indicate locations where the direction of the driving trajectory changes significantly, such as locations where the direction of the driving trajectory deviates by more than a threshold within a certain length range. Since such significant changes are usually manifested in the vehicle turning at a turning section (e.g., a curve, a fork, a road intersection, a crossroad, etc.), the process of identifying turning points can also be regarded as the process of finding trajectory points located at a turning section.
[0035] Step 106: The data processing device establishes one or more inflection point ranges according to the one or more inflection points.
[0036] In some embodiments, the inflection point range can be a spatial area extending from the inflection point, which can also be referred to as an inflection point area, which is used to cover the inflection point and the trajectory points near the inflection point. In some embodiments, the data processing device can use the inflection point as a reference point, and determine the geometric range based on at least one length parameter as the inflection point range corresponding to the inflection point. For example, the data processing device can set the inflection point as the center of the circle, and determine a geometric range equivalent to a circle as the inflection point range of the inflection point based on a preset radius length parameter. It is worth noting that the embodiments of the present disclosure are not limited to this. In other embodiments, the shape of the geometric range can be set according to actual needs, such as a rectangle, an ellipse, or other custom polygons.
[0037] In step 108, the data processing device extracts a first group of trajectory points and a second group of trajectory points from the trajectory points according to the spatial position information of the trajectory points and the one or more inflection point ranges, wherein the spatial positions of the first group of trajectory points are within the one or more inflection point ranges, and the spatial positions of the second group of trajectory points are outside the one or more inflection point ranges.
[0038] The spatial position information of each trajectory point includes, for example, coordinate data to indicate the spatial position of each trajectory point. The data processing device can determine whether each trajectory point is within the inflection point range according to its spatial position. In other words, in this step, the data processing device classifies the trajectory points in the trajectory data using the inflection point range, thereby determining two different groups of trajectory points: the first group of trajectory points is within the inflection point range, mainly corresponding to the trajectory data of the turning section; the second group of trajectory points is outside the inflection point range, mainly corresponding to the trajectory data of the straight or non-turning section. This classification will help to achieve the decomposition of the trajectory data and subsequent processing. For example, the data processing device can remove the first group of trajectory points from the trajectory data and generate a first data packet corresponding to the first group of trajectory points; for the remaining trajectory points (the second group of trajectory points) in the trajectory data, the data processing device will also generate a corresponding second data packet. In the process of generating a high-precision map, these two data packets can be processed separately to avoid the performance impact that may be caused by uniformly processing the straight and turning section data.
[0039] It is worth noting that the "removal" of trajectory points described in the present disclosure does not necessarily mean that the data processing device will delete the data of these trajectory points from the device. In some embodiments, the data processing device will separate these removed trajectory points from the trajectory data and store them in a specific storage space so as to subsequently generate corresponding data packets. In addition, the "decomposition" or "processing" of trajectory data described in the present disclosure refers to dividing, grouping, classifying, or separating the trajectory points in the trajectory data. For example, the data processing device may decompose the trajectory data according to method 100 to distinguish between a first group of trajectory points and a second group of trajectory points.
[0040] In some embodiments, the data processing device may combine the first set of trajectory points with other related data (e.g., point clouds, pictures, and videos corresponding to the first set of trajectory points) to generate a corresponding first data packet. Similarly, the data processing device may also combine the second set of trajectory points with other related data (e.g., point clouds, pictures, and videos corresponding to the second set of trajectory points) to generate a corresponding second data packet.
[0041] The first data packet may contain comprehensive map information of a curved road section, while the second data packet may contain comprehensive map information of a straight / non-curved road section. The comprehensive map information may include traffic signs, lane lines, street views, etc. of the corresponding road section. After relevant processing and data correction, the comprehensive map information of the first data packet and the second data packet may be combined to form a high-precision map of the complete road section.
[0042] According to method 100, the data processing device can identify the turning point from the multiple trajectory points of the trajectory data, and establish the corresponding turning point range accordingly, and then distinguish two groups of trajectory points from the trajectory data: a first group of trajectory points located within the turning point range and a second group of trajectory points located outside the turning point range. Since the two groups of trajectory points correspond to the trajectory data of the turning and straight / non-turning sections, respectively, the two groups of trajectory points can be processed separately in the future to construct a high-precision map, thereby avoiding the overall processing efficiency being reduced due to the unified processing of the data of the straight section and the turning section.
[0043] Figure 2 A flowchart of a method 200 for data processing according to an exemplary embodiment of the present disclosure is shown. The method 200 may include the following steps:
[0044] Step 202: The data processing device determines the azimuth of the trajectory point.
[0045] For example, after receiving trajectory data containing multiple trajectory points, the data processing device may first determine the direction of the line between each trajectory point and its adjacent or similar trajectory points in time sequence, and calculate the angle between this line direction and the reference direction (for example, due north on the geographic plane or other preset specific directions), which is the azimuth of the trajectory point. For certain specific trajectory points, such as the earliest trajectory point collected in a data collection task, its azimuth can be determined according to a preset rule. For example, its azimuth can be set to be the same as the azimuth of the trajectory point that is immediately adjacent to it in time sequence. In this way, it can be ensured that each trajectory point has a corresponding azimuth, thereby avoiding the inability to calculate its azimuth at the beginning of the data due to the inability to obtain the adjacent or similar trajectory points in front. In some embodiments, the data processing device can directly obtain the azimuth of some or all of the trajectory points in the trajectory data from other devices.
[0046] In some embodiments, the data processing device may determine the azimuth of the trajectory points of at least a portion of the trajectory data according to step 202 to obtain Figure 1 The azimuth information mentioned in step 104.
[0047] Step 204: The data processing device searches for a potential inflection point interval.
[0048] For example, the data processing device may establish an analysis interval within a plurality of trajectory points, and the analysis interval may cover at least a portion of the plurality of trajectory points. In response to the analysis interval meeting a specific condition, the data processing device may determine the analysis interval as a potential inflection point interval where an inflection point may exist, wherein the specific condition may include: the azimuth difference between two specific trajectory points within the analysis interval is greater than or equal to a first threshold. The first threshold may be 80° or other angles, which may be set specifically according to actual application scenarios and accuracy requirements.
[0049] In some embodiments, each trajectory point has a timestamp. The two specific trajectory points within the above-mentioned analysis interval may include the earliest trajectory point and the latest trajectory point in the analysis interval. Further, the data processing device may calculate the azimuth difference between the earliest trajectory point and the latest trajectory point in the analysis interval. If the azimuth difference is greater than or equal to a first threshold, the data processing device determines the analysis interval as a potential inflection point interval where an inflection point may exist. In addition, the earliest and latest trajectory points in the above-mentioned analysis interval may generally correspond to the first and last trajectory points in the analysis interval. It should be noted that if two trajectory points are located exactly at the first and last boundaries of the analysis interval, the two trajectory points are still considered to be within the analysis interval and represent the first and last trajectory points of the analysis interval.
[0050] In some embodiments, the analysis interval has a fixed length, and the fixed length corresponds to a fixed geographical length. The fixed length may be 300 meters or other lengths, which may be set according to the actual application scenario and accuracy requirements. The use of a fixed-length analysis interval can avoid the situation where a very long section of the trajectory appears to have no turns due to the slow change of the driving trajectory, but due to the cumulative change of the azimuth angle, the azimuth angle difference between the earliest and latest trajectory points in the analysis interval still exceeds the first threshold, thereby causing the analysis interval to be misjudged as a potential inflection point interval with an inflection point.
[0051] In some embodiments, the data processing device may slide the analysis interval along the time sequence direction of the plurality of trajectory points. For example, the data processing device may slide the analysis interval step by step and check whether the analysis interval at the current position meets the above-mentioned specific conditions, thereby determining whether it is a potential inflection point interval. The distance of each slide may be determined according to the spacing of one or more trajectory points or a preset distance.
[0052] In some embodiments, the data processing device may first slide the analysis interval along the time sequence direction of the plurality of trajectory points across the entire driving trajectory to find all potential inflection point intervals before entering step 206. In other embodiments, once the data processing device determines that the analysis interval at the current position is a potential inflection point interval, it enters step 206, in which case, steps 204 and 206 are executed cyclically until the data processing device has found inflection points for all potential inflection point intervals.
[0053] Step 206: The data processing device identifies an inflection point.
[0054] In this step, the data processing device may gradually check multiple trajectory points within the potential inflection point interval, and record the azimuth of each checked trajectory point. In the process of step-by-step checking, when the azimuth of a trajectory point is checked so that the difference between the maximum azimuth and the minimum azimuth within the potential inflection point interval is greater than or equal to the second threshold, the data processing device determines the trajectory point as an inflection point.
[0055] The above-mentioned step-by-step inspection can be to check the trajectory points one by one in time sequence, that is, to traverse the trajectory points. For example, in the process of traversing the trajectory points in the potential turning point interval, the data processing device can start from the trajectory point with the earliest time sequence in the potential turning point interval to check and record its azimuth, and then check the next adjacent trajectory point and record its azimuth, and so on. The current maximum and minimum azimuths can be determined from the recorded azimuths. If the difference between the maximum azimuth and the minimum azimuth exceeds the second threshold, the data processing device will stop traversing the trajectory points, and will identify the trajectory point at the current stop position as a turning point. This method, combined with a fixed-length potential turning point interval, can avoid the situation where the driving trajectory is mistakenly considered to have a turning point due to a 45° to 80° turn caused by a vehicle changing lanes or other driving scenarios.
[0056] If the data processing device determines the azimuth of each trajectory point in step S202, the data processing device may start traversing from the starting trajectory point of the potential inflection point interval (such as the earliest or latest trajectory point in time sequence), take each trajectory point as a current trajectory point, determine the maximum azimuth and minimum azimuth between the starting trajectory point and the current trajectory point, and calculate the difference between the maximum azimuth and the minimum azimuth. If the difference between the maximum azimuth and the minimum azimuth exceeds the second threshold, the trajectory point at the current stop position is identified as an inflection point. Further, the data processing device may use the trajectory point where the difference is greater than or equal to the second threshold for the first time as an inflection point. Thereafter, the data processing device may update the starting trajectory point to the next trajectory point of the inflection point, and continue to identify whether there is an inflection point in the remaining interval of the potential inflection point interval. Of course, the data processing device may also stop traversing the potential inflection point interval and continue to identify the inflection point of the next potential inflection point interval.
[0057] In some embodiments, the above-mentioned step-by-step inspection may also be to inspect trajectory points at intervals of a certain number. For example, after inspecting a certain trajectory point in the potential inflection point interval, the next trajectory point to be inspected may be spaced from the trajectory point by one or more trajectory points.
[0058] In addition, the second threshold value can be 45° or other angles, which can be set according to the actual application scenario and accuracy requirements. In particular, the advantage of selecting 45° as the second threshold value is that this angle can often more accurately represent the tangent position of a right-angle turn section, thereby accurately reflecting the turning point of the road.
[0059] Step 208: The data processing device filters special inflection points.
[0060] For example, the data processing device analyzes each identified inflection point to determine whether it is a special inflection point (also referred to as an abnormal inflection point). In some embodiments, the data processing device may determine, for each inflection point, whether the azimuth difference between two trajectory points located at a specific distance before and after the inflection point is greater than or equal to a specific angle value. In response to the azimuth difference being greater than or equal to the specific angle value, the data processing device determines the inflection point as a special inflection point. Next, the data processing device may filter out all special inflection points from the identified inflection points (e.g., the inflection points identified in step 206).
[0061] The above-mentioned specific distance can be 100 meters or other lengths, and the specific angle value can be 160° or other angle values, which can be adjusted according to the actual application scenario and accuracy requirements. By setting the specific distance and specific angle value, the turning points of the vehicle in the driving trajectory can be identified, and these turning points are regarded as special turning points. Since the location of the U-turn point usually does not belong to the turning section. Therefore, by filtering out these special turning points (that is, not treating them as turning points for processing in the subsequent process), the trajectory points corresponding to the turning section can be more accurately identified from the trajectory data.
[0062] In some implementations, step 208 may be omitted. In this case, the data processing device may directly establish a corresponding inflection point range for the inflection point found in step 206 .
[0063] Step 210: The data processing device divides the inflection point range.
[0064] For example, the data processing device may establish a corresponding inflection point range for each inflection point remaining after filtering out all special inflection points. In some embodiments, the data processing device may use each remaining inflection point as a reference point and determine a geometric figure range based on at least one length parameter as the inflection point range corresponding to the inflection point. For example, the data processing device may set the inflection point as the center of a circle, and determine a geometric figure range equivalent to a circle as the inflection point range based on a preset radius length (or other length parameter). The advantage of using a circle as the inflection point range is that since the road direction near the turning section may vary in many ways, choosing a circle for data division can ensure that it is close to the intersection section of the road in each direction, thereby improving the efficiency of subsequent data processing. However, according to the needs of actual applications, the geometric figure range as the inflection point range may also use different shapes, such as rectangles, ellipses or other polygons.
[0065] In addition, the above-mentioned radius length parameter can be set to 200 meters or other lengths, which can be set specifically according to the actual application scenario and accuracy requirements.
[0066] Step 212: The data processing device performs capping analysis.
[0067] For example, the data processing device may analyze the spatial overlap relationship between all inflection point ranges. For example, for each inflection point remaining after filtering out all special inflection points, the data processing device may determine whether the inflection point range corresponding to the inflection point overlaps at least partially with other inflection point ranges in space.
[0068] Step 214: The data processing device merges the inflection point ranges.
[0069] The data processing device may merge the multiple inflection point ranges that overlap in space found in step 212. For example, in response to detecting that an inflection point range overlaps at least partially with another or more inflection point ranges, the data processing device may merge these inflection point ranges into a new inflection point range.
[0070] Step 216: The data processing device updates the trajectory data.
[0071] For example, after removing one or more trajectory points within the inflection point range from the trajectory data (eg, step 222 ), the data processing device updates the trajectory data to include only the remaining trajectory points.
[0072] In step 218, the data processing device determines whether there are any inflection points in the trajectory data. If there are no inflection points, it means that the decomposition or processing of the trajectory data has been completed. If there are still inflection points, then go to step 220.
[0073] Step 220: The data processing device performs location analysis.
[0074] For example, the data processing device may determine whether the remaining trajectory points in the trajectory data are within a certain inflection point range. Specifically, since each trajectory point has a corresponding spatial position (e.g., defined according to its coordinate data), and the inflection point range represents a spatial area, the data processing device may determine which trajectory points are within the inflection point range and which trajectory points are outside the inflection point range based on the spatial position relationship between the remaining trajectory points and the inflection point range.
[0075] Step 222: The data processing device removes the trajectory points.
[0076] For example, after determining the spatial positional relationship between the remaining trajectory points and the inflection point range, the data processing device removes the trajectory points within the inflection point range. Since the inflection point range usually covers the corresponding inflection point, removing the trajectory points within the inflection point range also means removing the corresponding inflection point.
[0077] Step 224: The data processing device determines whether there is a special trajectory segment.
[0078] In this step, the data processing device may further determine whether one or more trajectory segments defined by the remaining trajectory points outside the inflection point range include a special trajectory segment (also referred to as an abnormal trajectory segment) whose length is less than or equal to a specific length. If the determination result is yes, the process proceeds to step 226. If the determination result is no, the process proceeds to step 228.
[0079] Specifically, the data processing device may further determine whether, after removing the trajectory points within a certain inflection point range according to step 222, a special trajectory segment (e.g., a trajectory segment that is too short, specifically, a trajectory segment whose length is less than or equal to a specific threshold) will appear in the remaining trajectory points. If so, it means that the size of the inflection point range needs to be adjusted, and the process will enter step 226. If not, the process continues to step 228.
[0080] In some embodiments, a trajectory segment can be formed by connecting multiple trajectory points in sequence. The trajectory points in the same trajectory segment may be acquired in the same data acquisition task, wherein the time sequence can usually be reflected in the numerical order of the timestamps corresponding to each trajectory point, which can represent the forward or backward movement of time.
[0081] In some embodiments, the specific length may be a length between 50 meters and 100 meters, or other customized lengths, which may be set according to actual application scenarios and accuracy requirements.
[0082] In some other embodiments, the data processing device may consider two factors at the same time in step 224: on the one hand, the data processing device determines whether a special track segment will appear in the track segment defined by the remaining track points after removing the track points within the inflection point range. On the other hand, the data processing device also determines whether a special track segment will appear within the inflection point range. If either of these two factors is true, the step will proceed to step 226. If neither is true, the step will proceed to step 228.
[0083] Step 226: The data processing device adjusts the inflection point range.
[0084] If it is determined in step 224 that a special track segment exists, the data processing device adjusts the size of the inflection point range associated with the special track segment. The adjustment of the inflection point range may refer to expanding the inflection point range, reducing the inflection point range, deforming the inflection point range, or a combination of the foregoing. For example, if the inflection point range is a circle, the data processing device may increase an X length (where X is a positive number) based on the current radius of the inflection point range to expand the inflection point range. In addition, the inflection point range associated with the special track segment refers to the occurrence of the special track segment due to the division of the inflection point range.
[0085] After adjusting the inflection point range, the data processing device may return to step 220 and determine which trajectory points are within the adjusted inflection point range through position analysis. Then, in step 222, the data processing device will eliminate the trajectory points within the adjusted inflection point range. At the same time, the set of trajectory points outside the adjusted inflection point range will also be updated. Then, the data processing device may execute step 224 again to determine whether the adjusted inflection point range will cause a special trajectory segment to appear (for example, whether there is a special trajectory segment in the set of trajectory points outside the inflection point range and / or the set of trajectory points within the inflection point range). If the judgment result is still yes, the data processing device will continue to execute step 226 and loop the above process until the inflection point range no longer causes a special trajectory segment to appear.
[0086] Step 228: The data processing device generates a data packet.
[0087] In some embodiments, for the track points removed in step 222, the data processing device may integrate them with other related data (such as tracks, point clouds, pictures, and videos) to generate a corresponding data packet. The data packet may, for example, include comprehensive map information corresponding to the turning road section.
[0088] Afterwards, the data processing device may proceed to step 216 to update the trajectory data, that is, update the trajectory data to include only the remaining trajectory points (that have not been eliminated).
[0089] In some embodiments, steps 216, 218, 220, 222, 224, 226 (step 226 may be selectively performed) and 228 may be repeated multiple times, and each time the data processing device removes the trajectory points within an inflection point range and generates a corresponding data packet until all trajectory points within the inflection point range are removed from the trajectory data. In other embodiments, in each time of steps 216, 218, 220, 222, 224, 226 (step 226 may be selectively performed) and 228, the data processing device may simultaneously remove trajectory points within multiple inflection point ranges and generate corresponding data packets.
[0090] After the decomposition is completed in step 218, the data processing device may integrate the remaining track points in the track data with other related data (such as track, point cloud, picture and video, etc.) and generate a corresponding data packet. The data packet may include comprehensive map information corresponding to the straight or non-turning road section.
[0091] Figure 3 is a schematic diagram of determining the azimuth angle of a trajectory point according to an exemplary embodiment of the present disclosure. Figure 3 The illustrated embodiment may be used for (but is not limited to) implementing the method or steps for determining the azimuth angle of a trajectory point described in the present disclosure.
[0092] Figure 3 The trajectory point P is shown in 30 , P 31 , P 32 These track points are connected in time sequence to form a driving track 302, wherein the arrow direction of the driving track 302 represents the direction of time. 30 and P 31 The angle between the line direction V10 and the reference direction RF can be used as the trajectory point P 31 The azimuth angle α1. The trajectory point P 32 and P 31 The angle between the line direction V21 and the reference direction RF is defined as the trajectory point P 32 The azimuth angle α2.
[0093] For trajectory point P 30 The azimuth of the trajectory point P 30 is the first track point (for example, the earliest track point in a data collection task), and there is no track point before it, so its azimuth can be set to be the same as the azimuth of the next track point (for example, track point P 31 azimuth angle α1), or other customized methods can be used to determine it.
[0094] In other embodiments, the azimuth of a trajectory point can be determined by the angle between the direction of the line connecting the trajectory point and the next trajectory point that is immediately adjacent to it in time sequence and the reference direction RF. 31 The azimuth angle is defined as P 31 With the next trajectory point P 32 In other embodiments, the azimuth of a trajectory point can be determined by the angle between the direction of the line connecting the trajectory point and a non-adjacent trajectory point and the reference direction RF. 32 The azimuth angle can be defined as P 32 With P 30 The angle between the connecting line direction and the reference direction RF.
[0095] Figure 4 is a schematic diagram of an analysis interval according to an exemplary embodiment of the present disclosure. Figure 4 The illustrated embodiment may be used for (but is not limited to) implementing the method or step of identifying inflection points by analyzing intervals described in the present disclosure.
[0096] Figure 4 The trajectory point P is shown in 40 , P 41 , P 42 , P 43 , P 44 , P 45 , P 46 and P 47 These track points are connected in sequence in time to form a driving track 402, wherein the direction of the arrow of the driving track 402 represents the direction of time advancement.
[0097] The data processing device may establish an analysis interval 404 with a fixed length within these trajectory points. Figure 4 In the example of FIG. 4 , the length of the analysis interval 404 is such that it covers the trajectory point P 40 To P 46 The data processing device may analyze the first trajectory point (eg, trajectory point P) in the analysis interval 404. 40 ) and the last trajectory point (e.g. trajectory point P 46) The azimuth difference between the two is used to determine whether the analysis interval 404 is a potential inflection point interval. 40 and P 46 If the azimuth difference between the two is greater than or equal to a first threshold (eg, 80°), the data processing device will determine the analysis interval 404 as a potential inflection point interval where an inflection point may exist.
[0098] The data processing device may slide the analysis interval 404 step by step along the time sequence direction (as shown by the arrow) of the driving trajectory 402 or in the opposite direction, and check one by one whether the analysis interval 404 at the current position meets the specific conditions as a potential turning point interval. For example, the analysis interval 404 may slide in units of the spacing of one trajectory point. In this case, after one slide, the analysis interval 404 will cover the trajectory point P 41 To P 47 , and so on. For each sliding analysis interval 404, the data processing device will determine whether it is a potential inflection point interval based on the azimuth difference between the first and last two trajectory points of the analysis interval 404. In other embodiments, the analysis interval 404 can slide by the spacing of multiple trajectory points each time. For example, but not limited to, the data processing device can slide by the length of an analysis interval as the sliding step, or slide a distance that is not defined by the trajectory point spacing.
[0099] For the potential inflection point interval, the data processing device may traverse the trajectory points therein and record the current maximum azimuth and minimum azimuth to find the inflection point. 40 Start checking and recording its azimuth, then check the track point P 41 And record its azimuth, and so on. When traversing to the trajectory point P 43 When the azimuth angle is such that the difference between the maximum and minimum azimuth angles is greater than or equal to a second threshold value (eg, 45°), the data processing device will convert the trajectory point P 43 Identified as a turning point.
[0100] In some other embodiments, the data processing device may start traversing the trajectory points in the analysis interval 404 from another direction. For example, for the analysis interval 404, the data processing device may start from the trajectory point P at the end. 46 Start checking and recording its azimuth, then check the track point P 45 And record its azimuth, and so on. Similarly, when traversing to the trajectory point P 43 When the azimuth angle makes the difference between the maximum and minimum azimuth angles greater than the second threshold, the data processing device will set the trajectory point P 43 Identified as a turning point.
[0101] In some embodiments, after finding the inflection point in the potential inflection point interval, the data processing device clears all azimuths recorded for the potential inflection point interval and then continues to traverse the remaining trajectory points in the potential inflection point interval. For example, assuming that the data processing device identifies trajectory point P in the analysis interval 404 43 As the turning point, the data processing device will clear all the azimuths currently recorded in the analysis interval 404, and then continue to check and record the trajectory point P 44Then check and record the trajectory point P 45 The azimuth of the recorded maximum and minimum azimuths exceeds the second threshold value. If the data processing device finds that the azimuth of another track point makes the difference between the maximum and minimum azimuths recorded exceed the second threshold value during the traversal, then this track point will also be identified as an inflection point by the data processing device. In this way, more than one inflection point may be identified in each potential inflection point interval.
[0102] In other embodiments, after finding the first inflection point in the current potential inflection point interval, the data processing device stops traversing the current potential inflection point interval and starts identifying the inflection point of the next potential inflection point interval.
[0103] In some other embodiments, the data processing device may alternately perform the steps of determining a potential inflection point interval and determining an inflection point. For example, starting from the trajectory point at the endpoint of the driving trajectory (such as the earliest trajectory point in time or the latest trajectory point in time), determine the first analysis interval, and determine whether the first analysis interval is a potential inflection point interval based on the difference between the first and last azimuth angles of the analysis interval. If so, determine the inflection point based on the difference between the maximum and minimum azimuth angles corresponding to each trajectory point in the potential inflection point interval. If the i-th point of the potential inflection point interval is determined as an inflection point, determine the second inflection point interval starting from the i+1-th point, and determine whether the second inflection point interval is a potential inflection point interval, as well as the inflection point in the potential inflection point interval. And so on, until the data processing device has identified all potential inflection point intervals and identified the inflection points of all potential inflection point intervals. The above-mentioned i-th point and i+1-th point may refer to adjacent trajectory points in time sequence collected in the same data collection task, that is, the i+1-th point may be the next trajectory point or the previous trajectory point in time sequence relative to the i-th point, depending on whether the data processing device traverses in the forward direction of time or in the reverse direction.
[0104] It should be noted that although Figure 4 The number of trajectory points included in the analysis interval 404 is 7, but this is for illustration only and is not intended to limit the present disclosure. In actual applications, the number of trajectory points included in the analysis interval may vary, depending on the length of the analysis interval and the spacing between trajectory points. Figure 4 In the example, the positions of both ends of the analysis interval 404 are aligned with the trajectory points, but the present disclosure is not limited thereto. In other embodiments, any end (starting point and / or end point) of the analysis interval may not be aligned with the trajectory points.
[0105] In addition, when multiple potential inflection point intervals have overlapping intervals, the same inflection point may be repeatedly identified in different potential inflection point intervals. Therefore, in some embodiments, the inflection points with the same coordinates before multiple potential inflection point intervals may be deduplicated, that is, only one of the multiple repeated inflection points is retained.
[0106] Figure 5 is a schematic diagram of identifying special inflection points according to an exemplary embodiment of the present disclosure. Figure 5 The illustrated embodiments may be used for (but are not limited to) implementing the method or steps for identifying special inflection points described in the present disclosure.
[0107] exist Figure 5 In the figure, the driving trajectory 502 is formed by connecting a plurality of trajectory points in sequence in time, wherein the arrow direction of the driving trajectory 502 indicates the direction of time advancement.
[0108] like Figure 5 As shown, the driving trajectory 502 may first be identified as including the turning point P 51 and P 52 The data processing device may further determine whether these inflection points are special inflection points. For example, the data processing device may determine whether the azimuth difference between two trajectory points located at a specific distance before and after each inflection point is greater than or equal to a specific angle value (e.g., 160°), thereby determining whether the inflection point is a special inflection point. For example, for trajectory point P 51 , if two trajectory points with a specific distance before and after (such as trajectory point P 53 and P 54 ) is greater than or equal to the specific angle value, the data processing device will convert the trajectory point P 51 Considered as a special inflection point. 52 , because the two trajectory points with a specific distance before and after (such as trajectory point P 55 and P 56 ) is less than a specific angle value, so the data processing device will not regard it as a special inflection point. The special inflection point can be used to reflect the turning point of the vehicle in the driving trajectory. Figure 5 As shown, the driving trajectory 502 is at the trajectory point P 51 A turn of nearly 180° occurs near the vehicle, which is equivalent to a U-turn of the vehicle. Since the location of the U-turn point is usually not a turning section, the data processing device can exclude the special turning point as a turning point, that is, the special turning point is not treated as a turning point in the subsequent process.
[0109] Figure 6 is a schematic diagram illustrating an inflection point range according to an exemplary embodiment of the present disclosure. Figure 6 The illustrated embodiments may be used for (but are not limited to) implementing the methods or steps of establishing or merging inflection point ranges described in the present disclosure.
[0110] exist Figure 6 In FIG. 6 , the driving trajectory 602 is formed by connecting a plurality of trajectory points in time sequence, and the direction of the arrow indicates the direction of time. 61 , P62 , P 63 and P 64 is considered a turning point.
[0111] For each inflection point, the data processing device will establish a corresponding inflection point range. 61 , P 62 , P 63 and P 64 , the data processing device will establish the corresponding inflection point ranges 610, 620, 630 and 640. It is worth noting that although in this figure, the inflection point ranges 610, 620, 630 and 640 are all presented in circles, the present disclosure is not limited to this, and any inflection point range can take any other custom geometric shape. In addition, since the trajectory point P 65 Corresponding to the turning point of the vehicle, that is, the special inflection point, the data processing device does not regard it as an inflection point and establish an inflection point range for it.
[0112] After establishing the inflection point ranges, the data processing device will check whether there is spatial overlap between the inflection point ranges. Figure 6 As shown, there is a partial spatial overlap between the inflection point range 610 and the inflection point range 620 . In this regard, the data processing device may merge the inflection point range 610 and the inflection point range 620 into a new inflection point range 650 .
[0113] Next, the data processing device will remove the trajectory points in the inflection point range. For example, the data processing device may first remove the trajectory points within the inflection point range 650 (such as Figure 2 Step 222), and determine whether there will be special trajectory segments (such as Figure 2 Step 224). If yes, the data processing device will adjust the size of the inflection point range 650 (e.g. Figure 2 Step 226), until no special track segment appears. Then, the data processing device will process the next inflection point range, such as inflection point range 630, and repeat the above steps until all track points within the inflection point range are removed.
[0114] Through the above method, the data processing device can classify the trajectory data into a type of trajectory points that are within the inflection point range and are removed (in Figure 6 ), and a class of remaining trajectory points outside the inflection point range (in Figure 6 For these two types of trajectory points, the data processing device will generate corresponding data packets to correspond to the turning section and the straight / non-turning section respectively.
[0115] Figure 7 is a schematic diagram of a combined inflection point range according to an exemplary embodiment of the present disclosure. Figure 7Two driving trajectories 702 and 704 are shown in FIG. 1 , and the arrow direction of each driving trajectory indicates the direction of time. Driving trajectories 702 and 704 may be defined based on trajectory data collected by the collection vehicle for the same road section in different data collection tasks (e.g., data collected on different dates). Although there may be differences in spatial positions between trajectory data collected in different data collection tasks, these trajectory data may still be processed together based on the same coordinate plane.
[0116] like Figure 7 As shown, the driving trajectory 702 includes a trajectory point P identified as a turning point. 71 The driving trajectory 704 includes a trajectory point P identified as a turning point 72 The data processing device can respectively target the trajectory point P 71 and P 72 Corresponding inflection point ranges 710 and 720 are established. Since the inflection point ranges 710 and 720 partially overlap in space, the inflection point ranges 710 and 720 are merged into a new inflection point range 730. The data processing device can remove the trajectory points within the inflection point range 730 and generate a corresponding data packet for subsequent processing. It should be noted that Figure 7 The driving trajectories 702 and 704 in FIG. 7 only show the trajectory point P identified as the turning point. 71 and P 72 , while other trajectory points that are also located on the driving trajectories 702 and 704 are not displayed.
[0117] Figure 8 800 is a flowchart of a method 800 for data processing according to an exemplary embodiment of the present disclosure. The method 800 mainly includes steps 802, 804, 806, 808, 810, 812, 814, 816, 818, 820, 822, 824, 826 and 828. Figure 2 In the method 200 of FIG. 1 , the method 800 has differences in steps 804 and 806 from steps 204 and 206 of the method 200. For other steps in the method 800, such as steps 802, 808, 810, 812, 814, 816, 818, 820, 822, 824, 826, and 828, these steps are the same as those in FIG. Figure 2 Steps 202, 208, 210, 212, 214, 216, 218, 220, 222, 224, 226 and 228 are the same or corresponding and are not further described.
[0118] Step 804: The data processing device calculates the azimuth offset.
[0119] In this step, the data processing device can calculate the azimuth offset corresponding to each trajectory point. For example, assume that the trajectory data contains three trajectory points P0, P1 and P2 arranged in time sequence, and the data processing device has determined in step 802 that the azimuths of the trajectory points P0, P1 and P2 are 60°, 61° and 59° respectively. In this way, the data processing device will calculate the azimuth offset of the trajectory point P1 as 61°-60°=1°, and calculate the azimuth offset of the trajectory point P2 as 59°-61°=-2°. For the first trajectory point P0, since it has no previous trajectory point in time sequence for reference, its azimuth offset can be set to 0°. It should be noted that the azimuth offset here can be understood as the azimuth difference between the current trajectory point and the previous trajectory point in time sequence, but the present disclosure is not limited to this. For example, the azimuth offset may also be the azimuth difference between the current trajectory point and a previous trajectory point that is not adjacent in time sequence.
[0120] Step 806: The data processing device searches for an inflection point.
[0121] For example, the data processing device may establish an identification window within multiple trajectory points of the trajectory data, and dynamically update the end point of the identification window to gradually expand the identification window to cover more trajectory points. In the process of performing the above dynamic update, the data processing device may calculate the azimuth cumulative offset of all trajectory points in the identification window. Optionally, the identification window here may be referred to as the second identification window, and the analysis interval in the previous text may be referred to as the first identification window.
[0122] The recognition window referred to here can be understood as a section of the driving trajectory, which has the characteristics of sliding and dynamically changing size. Sliding means that this section of the driving trajectory can move in a specific direction (such as the time direction); dynamically changing size means that the length of this section of the driving trajectory is not always fixed, but will change due to meeting certain conditions.
[0123] In the process of finding the turning point, the data processing device calculates the cumulative azimuth offset of all trajectory points in the recognition window. Continuing from the previous example, if the current recognition window only covers trajectory points P0, P1 and P2, since the azimuth offsets of trajectory points P0, P1 and P2 are 0°, 1° and -2° respectively, the cumulative azimuth offset in the current recognition window is 0°+1°-2°=-1°.
[0124] In response to the length of the identification window (e.g., spatial geographic length) being less than the upper limit length (e.g., 300 meters, or other custom lengths) and the azimuth cumulative offset within the identification window being equal to a specific offset value (e.g., 60°, or other custom offset values), the data processing device may determine the trajectory point within the identification window that is closest to the end point of the identification window or the trajectory point located at the end point of the identification window as an inflection point. In other words, the inflection point at this time can be understood as the trajectory point within the identification window that makes the azimuth cumulative offset reach the specific offset value for the first time.
[0125] On the other hand, in response to the length of the identification window being less than the upper limit length and the azimuth cumulative offset within the identification window being less than the specific offset value, the data processing device may extend the identification window along the temporal direction of the trajectory point. When the length of the identification window is equal to the upper limit length and the azimuth cumulative offset within the identification window is still less than the specific offset value, the data processing device will slide the identification window along the temporal direction of the trajectory point.
[0126] After the data processing device determines the trajectory point closest to the end point of the recognition window or the trajectory point located at the end point of the recognition window as the inflection point, it will use the end point of the recognition window as a new starting point, establish a new recognition window, and start a new round of processing. In this process, the size of the recognition window may be recalculated from 0 and gradually expanded according to the above rules until the inflection point is found again or the size of the recognition window reaches the upper limit. Fig. 9 and Fig.10 The operation of the recognition window is further explained.
[0127] Fig. 9 is a schematic diagram of an identification window according to an exemplary embodiment of the present disclosure. Fig. 9 The illustrated implementation can be used for (but is not limited to) implementing the processes of growing, zeroing, and sliding the recognition window described in the present disclosure.
[0128] In this figure, a recognition window 904 is established on the driving trajectory 902, wherein the first and last points of the recognition window 904 are points P and A and point P B .
[0129] The identification window 904 is a sliding area with dynamically changing size, and the change of its size and position can respond to the cumulative offset of the azimuth angle of the track points it covers. The direction arrow of the driving track 902 represents the direction of time, which can be used to reflect the direction of the driving track.
[0130] When the length of the identification window 904 is still less than the upper limit (e.g., 300 meters) and the accumulated azimuth offset within the identification window 904 does not reach a specific offset value (e.g., 60°), the identification window 904 will continue to grow. A ) remains stationary, and the end point (for example, point P B ) will move backward along the driving track 902, thereby expanding its coverage. If the identification window 904 grows until the cumulative azimuth offset of the track points within it reaches a specific offset value for the first time, then the end point of the identification window 904 (point P B ) will be identified as an inflection point.
[0131] In some embodiments, the endpoint of the recognition window may not be consistent with the position of the trajectory point. For example, the endpoint of the recognition window may be between two adjacent trajectory points. In this case, if the recognition window 904 grows until the cumulative azimuth offset of the trajectory points within it reaches a specific offset value for the first time, the trajectory point closest to the end point of the recognition window will be regarded as an inflection point (because the end point of the recognition window does not fall on the trajectory point at this time). It is worth noting that the end point of the recognition window is determined according to the growth direction of the recognition window. That is, during the growth process of the recognition window 904, the starting point of the recognition window 904 (such as point P) A ) remains unchanged, and the end point (such as point P B ) will continue to change to define a larger coverage area.
[0132] In some embodiments, when the identification window 904 grows to the upper limit of the length, if the cumulative azimuth offset of the trajectory points within the identification window 904 is still less than a specific offset value (e.g., 60°), the identification window 904 stops growing and starts to slide along the driving trajectory 902 (e.g., in the time sequence direction). A and point P B In other words, the recognition window 904 will slide while maintaining the upper limit of the length.
[0133] In some embodiments, if the azimuth cumulative offset within the identification window 904 reaches a specific offset value, the size of the identification window 904 will be reset to zero, that is, it will start to grow from a length of 0 until the azimuth cumulative offset reaches the specific offset value again or the window length reaches the upper limit. In the zeroing operation, the first and last boundaries (points P A and point P B ) will overlap to start a new growth cycle.
[0134] Fig.10 It is a schematic diagram of operations such as growth, zeroing, and sliding of a recognition window according to an exemplary embodiment of the present disclosure. Fig.10(A) to (F) are used to illustrate the dynamic changes of the recognition window 1004 on the driving trajectory 1002. The driving trajectory 1002 is composed of trajectory points P 100 , P 101 , P 102 , P 103 , P 104 , P 105 , P 106 , P 107 The driving track 1002 is connected in sequence in time, and the direction of the arrow on the driving track 1002 represents the direction of time.
[0135] Fig.10 In (A), the first and last points of the recognition window 1004 are the trajectory points P 100 and P 101 The data processing device will calculate from the trajectory point P 100 To trajectory point P 101 If the azimuth accumulated offset is less than a specific offset value (eg, 60°), the identification window 1004 will continue to grow.
[0136] like Fig.10 As shown in (B), during the growth of the identification window 1004, one end (end point) of the identification window 1004 moves along the temporal direction of the track points, so that the identification window 1004 covers more track points.
[0137] Then, if Fig.10 As shown in (C), the identification window 1004 grows to cover the trajectory point P 100 , P 101 , P 102 , P 103 At this time, for the trajectory point P at the end point of the recognition window 1004 103 , if the azimuth offset is included, the cumulative azimuth offset in the identification window 1004 will be greater than or equal to the specific offset value, then the trajectory point P 103 will be considered an inflection point.
[0138] After identifying the inflection point (such as trajectory point P 103 ), the length of the recognition window 1004 will be reset to zero for the next round of inflection point recognition, such as Fig.10 As shown in (D).
[0139] Afterwards, if Fig.10 (E) and Fig.10 As shown in (F), if the length of the identification window 1004 increases to the upper limit length, but the accumulated azimuth offset within it is still not greater than or equal to the specific offset value, the identification window 1004 will start to slide. Fig.10As shown, the identification window 1004 slides along the temporal direction of the track points by the spacing of one track point.
[0140] It should be noted that although Fig.10 In FIG. 1 , the number of trajectory points included in the identification window 1004 when the upper limit length is reached is 4, but this is only for example and is not intended to limit the present disclosure. In actual applications, the number of trajectory points included in the identification window 1004 when the upper limit length is reached may be different. In addition, although Fig.10 In the embodiment, the positions of both ends of the recognition window 1004 are aligned with the track points, but the present disclosure is not limited thereto. In other embodiments, any end (starting point and / or end point) of the recognition window may not be aligned with the track points.
[0141] Fig.11 FIG. 1 is a block diagram of a data processing device according to an exemplary embodiment of the present disclosure. Fig.11 As shown, the data processing device 1100 may include a data receiving module 1102, an inflection point identification module 1104, an inflection point range establishment module 1106 and a data decomposition module 1108. The data receiving module 1102 is used to obtain trajectory data for representing at least one driving trajectory, and the trajectory data includes multiple trajectory points. The inflection point identification module 1104 is used to identify one or more inflection points from the multiple trajectory points according to the azimuth information of the multiple trajectory points relative to the reference direction. The inflection point range establishment module 1106 is used to establish one or more inflection point ranges according to the one or more inflection points. The data decomposition module 1108 is used to extract a first group of trajectory points and a second group of trajectory points from the multiple trajectory points according to the spatial position information of the multiple trajectory points and the one or more inflection point ranges, wherein the spatial position of the first group of trajectory points is within the one or more inflection point ranges, and the spatial position of the second group of trajectory points is outside the one or more inflection point ranges.
[0142] The specific functions and effects realized by the data processing device can be explained with reference to other embodiments of the present disclosure, and will not be repeated here. Each module in the data processing device can be implemented in whole or in part by software, hardware, and a combination thereof. Each module can be embedded in or independent of a processor in a computer device in the form of hardware, or can be stored in a memory in a computer device in the form of software, so that the processor can call and execute the operations corresponding to the above modules.
[0143] The embodiments of the present disclosure further provide a computer-readable storage medium having computer program instructions stored thereon. When the computer program instructions are executed by a computer, the computer executes the data processing method in any of the above embodiments.
[0144] Fig.121 is a block diagram of an electronic device 1200 according to an exemplary embodiment of the present disclosure. The electronic device 1200 mainly includes a processor 1202 and a memory 1204. The memory 1204 stores at least one computer program instruction, and when the processor 1202 executes the at least one computer program instruction, the method in any one or more embodiments described in the present disclosure can be implemented. In some embodiments, the electronic device 1200 can also be used to implement the data processing device mentioned in the present disclosure.
[0145] The processor 1202 includes, for example, a system on chip (SoC), a general processing core, a graphics core, and / or other optional processing logic. The processor 1202 can exchange data or communicate with other components (such as the memory 1204) through the bus 1206.
[0146] Memory 1204 may represent a machine-readable medium (or computer-readable storage medium) on which one or more instruction sets, software, firmware, or other processing logic implementing any one or more of the methods or functions described and / or required herein are stored. Although the machine-readable medium (or computer-readable storage medium) of the example embodiments may be a single medium, the term "machine-readable medium" (or computer-readable storage medium) should be understood to include a single non-transitory medium or multiple non-transitory media (e.g., centralized or distributed databases and / or associated caches and computing systems) storing one or more instruction sets. The term "machine-readable medium" (or computer-readable storage medium) may also be understood to include any non-transitory medium capable of storing, encoding, or carrying instruction sets for machine execution and causing the machine to execute any one or more of the methods of various embodiments or capable of storing, encoding, or carrying data structures utilized by or associated with such instruction sets. The term "machine-readable medium" (or computer-readable storage medium) may therefore be understood to include, but is not limited to, solid-state memory, optical media, and magnetic media.
[0147] In some embodiments, the electronic device 1200 may further include various input / output (I / O) devices and / or interfaces 1210. These devices or interfaces can support wired and / or wireless data transmission, thereby enabling information or data interaction between the electronic device 1200 and other devices.
[0148] The various embodiments described in the present disclosure may also be implemented as one or more computer program products, that is, one or more modules of computer program instructions encoded on a computer-readable medium for execution by a data processing apparatus or to control the operation of the data processing apparatus. The computer-readable medium may be a machine-readable storage device, a machine-readable storage substrate, a memory device, a composition of matter that effects a machine-readable propagated signal, or a combination of one or more of them.
[0149] The term "data processing apparatus" in this disclosure covers all apparatus, devices and machines for processing data, including, for example, a programmable processor, a computer or a plurality of processors or computers. In addition to hardware, the data processing apparatus may also include code for creating an execution environment for a computer program, such as code constituting processor firmware, a protocol stack, a database management system, an operating system, or a combination of one or more of them.
[0150] Some embodiments mentioned in the present disclosure can be implemented as devices or modules using hardware circuits, software or a combination thereof. For example, a hardware circuit implementation may include discrete analog and / or digital components, which may be integrated as part of a printed circuit board, for example. Alternatively or additionally, the disclosed components or modules may be implemented as application specific integrated circuits (ASICs) and / or field programmable gate arrays (FPGAs) devices. Additionally or alternatively, some implementations may include digital signal processors (DSPs). Similarly, various components or subassemblies within each module may be implemented using software, hardware or firmware. Any connection method and medium known in the art may be used to provide connections between modules and / or components within a module.
[0151] Although this paper includes many details, these details should not be interpreted as limitations on the scope of the claimed invention, but are interpreted as descriptions of features peculiar to specific embodiments. Some features described in the context of different embodiments herein may also be combined in a single embodiment. On the contrary, the various features described in the context of a single embodiment may also be separated or implemented in multiple embodiments with any suitable sub-combination. In addition, although features may be described as acting with certain combinations and even initially claimed above, one or more features from the claimed combination may be removed from the combination in some cases, and the claimed combination may be directed to a variation of a sub-combination or a sub-combination. Similarly, although operations are depicted in a particular order in the drawings, this should not be understood as requiring such operations to be performed in the particular order shown or in a sequential order, or performing all described operations to achieve desired results.
[0152] Only a few implementations and examples are described, and other implementations, enhancements, and variations may be made based on what is described and illustrated in this disclosure.
Claims
1. A method for data processing, characterized in that The method comprises: Obtaining trajectory data representing at least one driving trajectory, wherein the trajectory data includes a plurality of trajectory points; identifying one or more inflection points from the plurality of trajectory points according to azimuth information of the plurality of trajectory points relative to a reference direction; establishing one or more inflection point ranges based on the one or more inflection points; and According to the spatial position information of the multiple trajectory points and the one or more inflection point ranges, a first group of trajectory points and a second group of trajectory points are extracted from the multiple trajectory points, wherein the spatial positions of the first group of trajectory points are within the one or more inflection point ranges, and the spatial positions of the second group of trajectory points are outside the one or more inflection point ranges.
2. The method according to claim 1, characterized in that The method further comprises: Establishing an analysis interval within the plurality of trajectory points, the analysis interval covering at least a portion of the plurality of trajectory points; and In response to the analysis interval meeting a specific condition, determining the analysis interval as a potential inflection point interval where an inflection point may exist, The specific condition includes: the azimuth difference between two specific trajectory points in the analysis interval is greater than or equal to a first threshold.
3. The method according to claim 2, characterized in that The method further comprises: Step by step, checking multiple trajectory points within the potential inflection point interval, and recording the azimuth angle of each checked trajectory point; and During the step-by-step checking process, when it is checked that the azimuth of a trajectory point makes the difference between the maximum azimuth and the minimum azimuth in the potential inflection point interval greater than or equal to a second threshold, the trajectory point is determined as one of the one or more inflection points.
4. The method according to claim 2, characterized in that Each of the plurality of track points has a timestamp, and the two specific track points include an earliest track point and a latest track point in the analysis interval.
5. The method according to claim 2, characterized in that The analysis interval has a fixed length corresponding to a fixed geographical length.
6. The method according to claim 2, characterized in that The method further comprises: The analysis interval is slid along the time sequence direction of the plurality of trajectory points.
7. The method according to claim 1, characterized in that The method further comprises: establishing an identification window within the plurality of trajectory points; Dynamically updating the end point of the recognition window to gradually expand the recognition window so that the recognition window covers more trajectory points; In the process of performing the dynamic update, calculating the cumulative azimuth offset of all trajectory points in the identification window; In response to the length of the identification window being less than an upper limit length and the accumulated azimuth offset of the identification window being equal to a specific offset value, a trajectory point within the identification window that is closest to the end point of the identification window or a trajectory point located at the end point of the identification window is determined as one of the one or more inflection points.
8. The method according to claim 7, characterized in that The method further comprises: In response to the length of the identification window being less than the upper limit length and the azimuth cumulative offset within the identification window being less than the specific offset value, the identification window is extended along the time sequence direction of the plurality of trajectory points.
9. The method according to claim 7, characterized in that The method further comprises: In response to the length of the identification window being equal to the upper limit length and the azimuth cumulative offset within the identification window being less than the specific offset value, the identification window is slid along the time sequence direction of the plurality of trajectory points.
10. The method according to claim 7, characterized in that The method further comprises: After the trajectory point in the recognition window that is closest to the end point of the recognition window or the trajectory point located at the end point of the recognition window is determined as the inflection point, a new recognition window is established with the end point of the recognition window as the starting point.
11. The method according to claim 1, characterized in that The method further comprises: For each of the one or more inflection points, determining whether an azimuth difference between two trajectory points located at a specific distance before and after the inflection point is greater than or equal to a specific angle value; In response to the azimuth angle difference being greater than or equal to the specific angle value, determining the inflection point as a special inflection point; filtering out all special inflection points from the one or more inflection points; and For each inflection point remaining after filtering out all special inflection points, a corresponding inflection point range is established.
12. The method according to claim 11, characterized in that For each inflection point remaining after filtering out all special inflection points, perform the following steps: Taking the inflection point as a reference point, a geometric figure range is determined according to at least one length parameter to serve as the inflection point range corresponding to the inflection point.
13. The method according to claim 12, characterized in that For each inflection point remaining after filtering out all special inflection points, perform the following steps: Determining whether the inflection point range corresponding to the inflection point overlaps at least partially with other inflection point ranges in space; and In response to at least a portion of the inflection point range and the other inflection point ranges being spatially overlapped, the inflection point range and the other inflection point ranges are merged into a new inflection point range.
14. The method according to claim 1, wherein: The method further comprises: determining whether one or more track segments defined by the second group of track points include a special track segment whose length is less than or equal to a specific length; and In response to the one or more trajectory segments including the special trajectory segment, the size of the inflection point range associated with the special trajectory segment is adjusted, and the second group of trajectory points is updated accordingly, so that the one or more trajectory segments defined by the updated second group of trajectory points do not include the special trajectory segment.
15. The method according to claim 1, wherein: The method further comprises: Azimuth information of the plurality of trajectory points relative to a reference direction is calculated according to the spatial position relationship between the plurality of trajectory points, and the azimuth information includes the azimuths of at least a part of the plurality of trajectory points.
16. A data processing device, characterized in that: The data processing device comprises: A data receiving module, used to obtain trajectory data representing at least one driving trajectory, wherein the trajectory data includes a plurality of trajectory points; An inflection point identification module, configured to identify one or more inflection points from the plurality of trajectory points according to azimuth information of the plurality of trajectory points relative to a reference direction; an inflection point range establishing module, configured to establish one or more inflection point ranges according to the one or more inflection points; and The data decomposition module is used to extract a first group of trajectory points and a second group of trajectory points from the plurality of trajectory points according to the spatial position information of the plurality of trajectory points and the one or more inflection point ranges, wherein the spatial positions of the first group of trajectory points are within the one or more inflection point ranges, and the spatial positions of the second group of trajectory points are outside the one or more inflection point ranges.
17. An electronic device, characterized in that: The electronic device includes a memory and a processor, wherein the memory stores at least one computer program instruction, and the at least one computer program instruction is loaded and executed by the processor to implement the method according to any one of claims 1 to 15.
18. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores at least one computer program instruction, and when the at least one computer program instruction is executed by a processor, it can implement the data processing method according to any one of claims 1 to 15.