Map updating method and device, electronic equipment and storage medium
By using a loss function to update the device pose during autonomous driving map updates and adjusting the alignment between point cloud data and vector data, the map error problem caused by manual alignment errors is solved, achieving higher operational tolerance and map accuracy.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-08-30
- Publication Date
- 2026-03-10
AI Technical Summary
In the field of autonomous driving, errors can easily occur when manually aligning point cloud data and vector data during map updates, leading to incorrect updated maps, and the tolerance for manual operation is low.
By obtaining the loss function between the first and second labeled data, the device pose is updated, and the point cloud data is adjusted according to the updated device pose to align it with the vector data.
It increases the tolerance for manual operations, ensures alignment between point cloud data and vector data, reduces the cost of manual annotation, and improves the accuracy of map updates.
Smart Images

Figure CN121632170A_ABST
Abstract
Description
Technical Field
[0001] This disclosure relates to the field of map technology, and in particular to a map updating method, apparatus, electronic device and storage medium. Background Technology
[0002] In the field of autonomous driving, maps play an important role. Maps can provide detailed models of the surrounding environment for vehicles or robots, including detailed models of lane lines, traffic conditions, other vehicles, pedestrians, road signs and other objects. This serves as a carrier for path planning when the device moves, and ultimately achieves path planning.
[0003] In related technologies, during the map update process, it is necessary to manually align the collected point cloud data with the vector data in the historical map. If the alignment is incorrect, it will lead to errors in the final updated map, and the tolerance for human error is low. Summary of the Invention
[0004] To overcome the problems existing in related technologies, this disclosure provides a map updating method, apparatus, electronic device and storage medium.
[0005] According to a first aspect of the present disclosure, a map updating method is provided, comprising:
[0006] Acquire first annotation data and second annotation data; the first annotation data is obtained based on the vector data of the target object in the map to be processed, and the second annotation data is obtained based on the point cloud data of the target object collected;
[0007] The device pose is updated based on the loss function between the first labeled data and the second labeled data; the device is used to collect point cloud data of the target object.
[0008] Based on the updated target device pose, target annotation data is obtained; the target annotation data is the updated second annotation data of the target object.
[0009] Update the target objects in the map to be processed based on the first annotation data and the target annotation data.
[0010] Optionally, updating the device pose based on the loss function between the first labeled data and the second labeled data includes:
[0011] Based on the error between the first and second labeled data of the target object, the loss function corresponding to the target object is obtained;
[0012] The device pose is updated using the loss function.
[0013] Optionally, the target object includes at least two target objects; the step of obtaining the loss function corresponding to the target object based on the error between the first labeled data and the second labeled data of the target object includes:
[0014] Based on the error between the first and second labeled data of the at least two target objects, at least two loss functions corresponding to the at least two target objects are obtained;
[0015] Updating the device pose with the loss function includes:
[0016] The device pose is updated using the at least two loss functions.
[0017] Optionally, the at least two target objects include at least two types of objects selected from lines, surfaces, arrows, and rods; updating the device pose with the at least two loss functions includes:
[0018] The device pose is updated using at least two of the first, second, third, and fourth loss functions.
[0019] The first loss function is obtained based on the error between the first and second annotation data of the linear object; the second loss function is obtained based on the error between the first and second annotation data of the planar object; the third loss function is obtained based on the error between the first and second annotation data of the arrow; and the fourth loss function is obtained based on the error between the first and second annotation data of the rod.
[0020] Optionally, the target object is a line, the first annotation data is a first line in a first direction, and the second annotation data is a second line in the first direction; the step of obtaining the loss function corresponding to the target object based on the error between the first annotation data and the second annotation data of the target object includes:
[0021] The first line is generated using the vector data of the linear object;
[0022] The second line is generated from multiple point cloud data in the point cloud data characterizing the line;
[0023] Based on the error between the first line and the second line in the second direction, a first loss function corresponding to the linear object is obtained; the first direction is different from the second direction.
[0024] Optionally, the target object is a planar object, the first annotation data is the planar object's surface or center point, and the second annotation data is the planar object's first target point cloud; the step of obtaining the loss function corresponding to the target object based on the error between the first and second annotation data of the target object includes:
[0025] Based on the error between the first target point cloud and the surface in the first direction, a second loss function for the surface is obtained; or,
[0026] Based on the error between the first target point cloud and the center point of the surface in the first direction, and the error between the center point of the surface in the first target point cloud and the center point of the surface in the second direction, the second loss function of the surface is obtained.
[0027] Optionally, the target object is an arrow, the first annotation data is the center point of the arrow, and the second annotation data is the second target point cloud of the arrow; the step of obtaining the loss function corresponding to the target object based on the error between the first annotation data and the second annotation data of the target object includes:
[0028] The center point of the arrow is generated using the vector data of the arrow.
[0029] Based on the error between the second target point cloud and the center point of the arrow in the first direction, and the error between the second target point cloud and the center point of the arrow in the second direction, the third loss function of the arrow is obtained.
[0030] Optionally, the target object is a rod-shaped object, the first annotation data is a third line in a third direction, and the second annotation data is a fourth line in the same third direction; the step of obtaining the loss function corresponding to the target object based on the error between the first and second annotation data includes:
[0031] The third line is generated using the vector data of the rod-shaped object;
[0032] The fourth line is generated from at least two point clouds in the point cloud data characterizing the rod-shaped object;
[0033] Based on the error between the third line and the fourth line in the first direction, and the error between the third line and the fourth line in the second direction, a fourth loss function corresponding to the rod is obtained; the first direction, the second direction, and the third direction are different from the third direction.
[0034] Optionally, obtaining target annotation data based on the updated target device pose includes:
[0035] Obtain the second annotation data corresponding to the device pose at the same time point or the same position as before the update;
[0036] The second annotation data is updated based on the change between the device pose before the update and the target device pose after the update, to obtain the target annotation data.
[0037] Optionally, updating the target objects in the map to be processed based on the first annotation data and the target annotation data includes:
[0038] Based on the first annotation data and the target annotation data, the target object is drawn on the basis of the object to be processed displayed in the map to be processed.
[0039] According to a second aspect of the present disclosure, a map updating apparatus is provided, comprising:
[0040] The acquisition module is configured to acquire first annotation data and second annotation data; the first annotation data is obtained based on the vector data of the target object in the map to be processed, and the second annotation data is obtained based on the collected point cloud data of the target object;
[0041] The pose update module is configured to update the device pose based on a loss function between the first labeled data and the second labeled data; the device is used to collect point cloud data of the target object;
[0042] The update module is configured to obtain target annotation data based on the updated target device pose; the target annotation data is the updated second annotation data of the target object.
[0043] The map update module is configured to update the target objects in the map to be processed based on the first annotation data and the target annotation data.
[0044] According to a third aspect of the present disclosure, an electronic device is provided, comprising:
[0045] processor;
[0046] Memory used to store processor-executable instructions;
[0047] The processor is configured as follows:
[0048] The steps of performing the map update method provided in the first aspect of the embodiments of this disclosure.
[0049] According to a fourth aspect of the present disclosure, a computer-readable storage medium is provided that stores computer program instructions thereon, which, when executed by a processor, implement the steps of the map update method provided in the first aspect of the present disclosure.
[0050] According to a fifth aspect of the present disclosure, a computer program product is provided, including a computer program that, when executed by a processor, implements the steps of the map update method provided in the first aspect of the present disclosure.
[0051] The technical solutions provided by the embodiments of this disclosure may include the following beneficial effects:
[0052] The device pose can be updated based on the loss function between the first and second labeled data, and the second labeled data can be adjusted by updating the device pose, so that the second labeled data continuously moves closer to the alignment with the first labeled data. Alternatively, it can be viewed as adjusting the newly acquired point cloud data by updating the device pose, so that the acquired point cloud data continuously aligns with the vector data in the map to be processed. Finally, when the loss function between the point cloud data and the vector data is small, it means that the point cloud data and the vector data have been aligned.
[0053] In this process, even if the position of the manually labeled point cloud data is not aligned with the vector data, the error between the position of the point cloud data and the vector data can be updated by updating the loss value between the first and second labeled data, thereby aligning the point cloud data with the vector data and increasing the tolerance for human error.
[0054] It should be understood that the above general description and the following detailed description are exemplary and explanatory only, and are not intended to limit this disclosure. Attached Figure Description
[0055] The accompanying drawings, which are incorporated in and form a part of this specification, illustrate embodiments consistent with this disclosure and, together with the description, serve to explain the principles of this disclosure.
[0056] Figure 1 This is a flowchart illustrating a map updating method according to an exemplary embodiment.
[0057] Figure 2 This is a logical schematic diagram illustrating a map updating method according to an exemplary embodiment.
[0058] Figure 3 This is a schematic diagram illustrating the annotation of first annotation data and second annotation data according to an exemplary embodiment.
[0059] Figure 4 This is a schematic diagram illustrating manually labeled second annotation data according to an exemplary embodiment.
[0060] Figure 5 This is a schematic diagram illustrating an operational error that occurs when manually annotating second annotation data, according to an exemplary embodiment.
[0061] Figure 6 This is a schematic diagram illustrating an operational error that occurs when manually annotating second annotation data, according to an exemplary embodiment.
[0062] Figure 7 This is a schematic diagram illustrating a first line and a second line of a lane line according to an exemplary embodiment.
[0063] Figure 8 This is a schematic diagram illustrating a modified second line according to an exemplary embodiment.
[0064] Figure 9 This is a schematic diagram illustrating the relationship between a first target point cloud and a surface, according to an exemplary embodiment.
[0065] Figure 10 This is a schematic diagram of an arrow according to an exemplary embodiment.
[0066] Figure 11 This is a schematic diagram illustrating the third and fourth lines of a columnar structure according to an exemplary embodiment.
[0067] Figure 12 This is a block diagram illustrating a map updating device according to an exemplary embodiment.
[0068] Figure 13 This is a block diagram illustrating a chip system according to an exemplary embodiment.
[0069] Figure 14 This is a block diagram illustrating an electronic device according to an exemplary embodiment. Detailed Implementation
[0070] Exemplary embodiments will now be described in detail, examples of which are illustrated in the accompanying drawings. When the following description relates to the drawings, unless otherwise indicated, the same numerals in different drawings denote the same or similar elements. The embodiments described in the following exemplary embodiments do not represent all embodiments consistent with this disclosure. Rather, they are merely examples of apparatuses and methods consistent with some aspects of this disclosure as detailed in the appended claims.
[0071] The embodiments described in the following examples of this disclosure are not representative of all embodiments consistent with this disclosure. Rather, they are merely examples of apparatuses and methods consistent with some aspects of this disclosure as detailed in the appended claims.
[0072] It should be noted that all actions involving the acquisition of signals, information, or data in this disclosure are carried out in compliance with the relevant data protection laws and policies of the country where the location is situated, and with authorization from the owner of the relevant device.
[0073] Figure 1 This is a flowchart illustrating a map updating method according to an exemplary embodiment, such as... Figure 1 As shown, it includes the following steps.
[0074] In step S11, the first annotation data and the second annotation data are obtained.
[0075] The first set of labeled data is obtained from the vector data of the target objects in the map to be processed. This vector data represents the boundaries and three-dimensional spatial information of the target objects. This three-dimensional spatial information includes the object's three-dimensional shape, size, location, surface features, and color information. In essence, the vector data in the map to be processed is data that reflects the actual situation of the target objects, obtained by combining the point cloud data and boundaries of the target objects.
[0076] As can be seen, the vector data of the target object in the map to be processed can reflect the boundary of the target object. Therefore, the first annotation data of the target object can be obtained based on the boundary of the target object.
[0077] When creating a map to be processed, a mobile mapping system (MMS) can be configured on mobile devices such as vehicles or robots. The mobile mapping system includes various sensors, such as Global Navigation Satellite System (GNSS), Inertial Measurement Unit (IMU), LiDAR, cameras, and radar. The mobile mapping system collects environmental data around the mobile device. The collected environmental data is then converted into point cloud data. Feature extraction is performed on the point cloud data to determine the object features of each object. The object features of each object are then vectorized into vector data, which can represent the boundaries of each object. These boundaries are used to indicate the shape of each object. After obtaining the boundaries of each object, such as lane lines, road boundaries, and pedestrian crossings, the boundaries of each object can be represented by vectorized map elements. Finally, the point cloud data of each object is fused into the boundaries of each object to obtain the three-dimensional spatial information of each object, such as its three-dimensional shape, size, position, surface features, and color information, thus forming the map to be processed.
[0078] The map to be processed is the map to be updated. The embodiments of this disclosure aim to improve the tolerance for human error while achieving the accuracy of incremental updates of the map to be processed.
[0079] In this embodiment of the disclosure, a map to be processed can be obtained, and vector data of each target object can be obtained from the map to be processed to obtain the boundary of each target object; then, annotation can be performed based on the boundary of each target object to obtain the first annotation data.
[0080] For example, please see Figure 4 As shown, assuming the target object is a lane line, the vector data of the lane line can be obtained from the map to be processed to obtain the boundary of the lane line. Since the boundary of the lane line is still the lane line itself, three or more points can be randomly selected on the lane line and connected to form a line. This line is the first annotation data.
[0081] The second annotation data is obtained from the point cloud data of the target object. This point cloud data reflects the three-dimensional spatial information of the target object. The second annotation data of the target object can be obtained by annotating the point cloud data of the target object.
[0082] Mobile devices such as vehicles or robots can drive within the display area of the map to be processed, thereby collecting point cloud data of various target objects within that area. For example, assuming the map displays a street, a mobile device can drive on that street to collect point cloud data of lane lines, traffic signs, arrows, and other target objects. (See also...) Figure 4 As shown, to obtain the second annotation data of the lane line, you can first obtain the point cloud data of the lane line. Multiple point cloud data of the lane line form a rectangular band. You can then select three points located on the center line of the rectangular band from the multiple point cloud data in the rectangular band, and connect the three points to form a line. This line is the second annotation data.
[0083] In related technologies, during the incremental update of a map to be processed, assuming that road lines in the map to be processed need to be updated, it is necessary to manually align the currently collected point cloud data with the vector data of the road lines in the map to be processed. The alignment work involves finding point cloud data in the newly collected point cloud data that are at the same position as the vector data of the road lines. However, the intervals between the newly collected point cloud data are small, making it difficult for humans to accurately filter out point cloud data that are the same as the vector data from the point cloud data with small intervals. Once the manual filtering is wrong, the updated map will also have significant errors, and its tolerance for human error is low.
[0084] For example, please see Figure 5 As shown, assuming there are three points A1, B1, and C1 on the lane line represented by vector data, the manual process needs to filter out A2, B2, and C2 from multiple newly acquired point cloud data points, which are in the same positions as A1, B1, and C1. However, there are other point cloud data points around A2, B2, and C2 (these other point cloud data points are located in...). Figure 5(The asterisk is used to indicate the location of the point cloud). Therefore, it is easy for a human to mistakenly select the point cloud data around A2 to align with A1. Similarly, it is easy to mistakenly select the point cloud data around B2 to align with B1, and it is easy to mistakenly select the point cloud data around C2 to align with C1. It is difficult for a human to select the accurate point cloud. If the point cloud data selected by the human is wrong, it will lead to errors in the final updated map.
[0085] In this embodiment of the disclosure, please refer to Figure 6 As shown, assuming there are three points A1, B1, and C1 on the lane line represented by vector data, even if point cloud data around A2, B2, and C2 are manually selected from the new point cloud data ( Figure 6 The symbol * in the diagram represents the point cloud data around A2, B2, and C2. It also determines the loss function between the selected point cloud data and the vector data in the map to be processed. Based on this loss function, it reduces the error between the point cloud data of the selected target object and the vector data of the target object in the map to be processed, so that the point cloud data of the target object and the vector data of the target object in the map to be processed are points at the same location.
[0086] Therefore, in this embodiment of the present disclosure, during the process of manually annotating the second annotation data, it is not necessary to precisely align the newly collected point cloud data with the vector data in the map to be processed. This allows for tolerance of errors in manual annotation, thereby increasing the tolerance for errors in manual annotation.
[0087] In step S12, the device pose is updated according to the loss function between the first labeled data and the second labeled data.
[0088] The device can be a vehicle or a robot or other mobile device. The device pose is used to indicate the position and attitude of the device. The attitude includes information such as the device's heading angle, pitch angle, yaw angle, roll angle, acceleration and velocity.
[0089] Optionally, the loss function corresponding to the target object can be obtained based on the error between the first labeled data and the second labeled data, and then the device pose can be updated with the loss function.
[0090] The first annotation data is obtained from the vector data of the target object, and the second annotation data is obtained from the point cloud data of the target object. Therefore, the loss function corresponding to the target object can be obtained based on the error between the first annotation data and the second annotation data, or it can be obtained based on the error between the vector data and the point cloud data of the target object.
[0091] The loss function corresponding to the target object is obtained based on the error between the first labeled data and the second labeled data. This includes: first defining the error between the first labeled data and the second labeled data; and then using any one of the following loss functions: mean square error, squared absolute error, or cross-entropy loss.
[0092] For example, taking mean squared error as an example, the loss function obtained based on mean squared error is the average of the sum of squares of the errors between all the first labeled data and the second labeled data.
[0093] For example, taking squared absolute error as an example, the loss function obtained based on squared absolute error is the average of the absolute values of the errors between all the first labeled data and the second labeled data.
[0094] The process of updating the device pose using a loss function includes: inputting the error between the first and second labeled data into the loss function to obtain the loss value; then calculating the gradient of the loss function using the backpropagation algorithm, whereby the gradient indicates how to adjust the device pose to reduce the loss value; repeating the above steps to continuously reduce the loss value, i.e., continuously reducing the error between the first and second labeled data until it is reduced to a preset value, or continuously reducing the error between the vector data and the point cloud data until it is reduced to a preset value.
[0095] It is understandable that the process of obtaining a loss function based on the error between the first and second labeled data, and updating the device pose based on the loss function, can also be a process of minimizing the error between the first and second labeled data to obtain the gradually updated device pose.
[0096] In some scenarios, taking lane markings as an example, please refer to [link / reference]. Figure 7 As shown, after obtaining the vector data of the lane lines in the map to be processed, the vector data of the lane lines can be processed to obtain the first line (first annotation data) formed by A1, B1 and C1; then the point cloud data of the lane lines can be processed to obtain the second line (second annotation data) formed by A3, B3 and C3; then the error between the first line and the second line can be calculated, and the device pose can be continuously updated with the goal of minimizing the distance error between the first line and the second line, so as to obtain the final updated device pose.
[0097] It is understandable that the above appendix Figure 1 To be continued Figure 7 The vector data A1, B1 and C1 and the point cloud data A2, B2 and C2 are aligned and overlapping. To make it easier for readers to distinguish between these two types of data, they are displayed vertically.
[0098] In step S13, target annotation data is obtained based on the updated target device pose.
[0099] The updated target device pose is the device pose when the error between the first annotation data and the second annotation data is less than a preset value.
[0100] The target annotation data is the updated second annotation data of the target object, and the error between the target annotation data and the first annotation data is less than a preset value.
[0101] It is understandable that if the device's pose changes while it is moving on the road, the collected point cloud data will also change. Therefore, updating the device's pose will cause the acquired point cloud data to change, which in turn will cause the second annotation data to change. In this way, the error between the second annotation data and the first annotation data will gradually decrease after the second annotation data changes.
[0102] Please see Figure 7 and Figure 8 As shown, the device trajectory is the movement path of the device during its movement. The device trajectory contains the device's pose at different times or locations. When the device pose is not updated, the second annotation data formed by the point cloud data collected under that device pose is... Figure 7 The second line formed by A3, B3 and C3 is shown. When the device trajectory moves towards the first line, the device pose will change. The changed device pose will cause the second line to move closer to the first line, so that the distance error between the first line and the second line will gradually decrease. When the position of the second line moves to overlap with the first line, it means that the newly acquired point cloud data overlaps and aligns with the vector data in the map to be processed.
[0103] It is understandable that when the second line moves to overlap and align with the first line, the point cloud data on the second line is the updated target point cloud data, and the position of the target point cloud data is aligned with the vector data in the map to be processed.
[0104] In related technologies, newly acquired point cloud data is manually aligned with vector data in the map to be processed. If the point cloud data and vector data are incorrectly aligned manually, the final updated map will also be incorrect.
[0105] In this embodiment, the second annotation data can be adjusted by updating the device pose, causing it to continuously move closer to the alignment with the first annotation data. This can also be viewed as adjusting newly acquired point cloud data by updating the device pose, continuously aligning the acquired point cloud data with the vector data in the map to be processed. Finally, when the error between the point cloud data and the vector data is zero, it indicates that the point cloud data and vector data have been aligned. Even when the manually annotated point cloud data is not aligned with the vector data, the error between the point cloud data and the vector data can be updated to align the point cloud data with the vector data, thereby increasing the tolerance for human error.
[0106] In step S14, the target object is drawn based on the first annotation data and the target annotation data.
[0107] The target annotation data is the annotation data after updating the position of the second annotation data.
[0108] For example, please see Figure 7 and Figure 8 As shown, before the device pose is updated, the second annotation data acquired by the device under the device pose is the second line formed by A3, B3 and C3; after the device pose is updated, the second annotation data acquired by the device under the updated target device pose is the second line formed by A4, B4 and C4. A4 is aligned with the vector data A1 in the map to be processed, B4 is aligned with the vector data B1 in the map to be processed, and C4 is aligned with the vector data C1 in the map to be processed.
[0109] Optionally, the target object can be drawn based on the first annotation data and the target annotation data, using the target object displayed in the map to be processed.
[0110] After comparing the first labeled data with the target labeled data, if the newly collected point cloud data is more than the vector data in the map to be processed, the newly added redundant point cloud data will be added to the map to be processed.
[0111] For example, if the lane line displayed in the map to be processed is 10m, and the lane line represented by the newly collected point cloud data is 12m, then the additional point cloud data will be added to the 10m lane line displayed in the map to be processed, thereby updating to a 12m lane line.
[0112] After comparing the first labeled data with the target labeled data, if the newly collected point cloud data is less than the vector data in the map to be processed, the excess vector data in the map to be processed will be deleted.
[0113] For example, if the lane line displayed in the map to be processed is 10m, and the lane line represented by the newly collected point cloud data is 8m, then the redundant vector data will be deleted based on the 10m lane line displayed in the map to be processed, thereby updating to an 8m lane line.
[0114] With the above technical solution, if there is an error in the manually annotated second annotation data, the device pose can be updated according to the loss function between the first annotation data and the second annotation data. In this way, after the device pose is updated, the second annotation data will also be updated, so that the loss value or error between the second annotation data and the first annotation data gradually decreases, and the second annotation data will gradually align with the first annotation data.
[0115] Firstly, even if there are errors in the manually labeled second annotation data, the error will be corrected by the loss function between the first and second annotation data, so that the second annotation data gradually aligns with the first annotation data. This increases the tolerance for human error, and the annotators do not need to accurately annotate the second annotation data to align it with the first annotation data, thus reducing the cost of manual annotation.
[0116] Secondly, after the error between the first and second labeled data is reduced to a preset value, the error between the corresponding point cloud data and vector data is also small, and the two are in an aligned state. The map updated based on the aligned point cloud data and vector data will be more accurate.
[0117] Thirdly, this disclosure updates the newly collected point cloud data to the existing map to be processed, without needing to store point cloud data from multiple historical stages through a database, thus saving a significant amount of storage and computing resources.
[0118] The following describes exemplary embodiments related to step S12 above. Please refer to [link / reference]. Figure 2 and Figure 3 As shown, this exemplary embodiment is used to interpret the calculation of a loss function for at least two target objects to update the device pose, including the following steps:
[0119] (1) Based on the error between the first and second labeled data of the at least two target objects, at least two loss functions corresponding to the at least two target objects are obtained.
[0120] The map to be processed may display more than one target object. It may show at least two target objects such as pedestrian crossings, stop lines, barriers, obstacles, utility poles, bicycle lanes, lane arrows, and lane boundaries. Therefore, the device pose can be updated based on the loss function of at least two target objects, so that the loss functions of each target object can constrain each other, resulting in a more accurate updated target device pose.
[0121] The target objects include at least two types of objects such as lines, surfaces, arrows, and poles. Lines can be lane lines, stop lines, lights, etc.; surfaces can be traffic signs, traffic lights, etc.; arrows can be lane arrows on roads, which are used to indicate that the lane is any one of a straight lane, a left-turn lane, or a right-turn lane; poles can be utility poles, lampposts, etc.
[0122] The loss functions include the first loss function for linear objects, the second loss function for planar objects, the third loss function for arrows, and the fourth loss function for rods.
[0123] For the first loss function corresponding to the linear object, it can be obtained based on the error between the first and second labeled data of the linear object.
[0124] Optionally, the first annotation data is a first line in a first direction, and the second annotation data is a second line in the first direction. The first line can be generated from the vector data of the line; the second line can be generated from multiple point clouds in the point cloud data of the line; and a first loss function corresponding to the line is obtained based on the error between the first line and the second line in the second direction. The first direction is different from the second direction.
[0125] The first direction and the second direction can be mutually perpendicular.
[0126] An exemplary scheme for generating a first line from vector data of a linear object includes: selecting at least three vector points on the linear object generated from the vector data of the linear object; and forming the first line by connecting the at least three vector points.
[0127] An exemplary scheme for generating a second line from multiple point cloud data in point cloud data of a linear object includes: selecting at least three point cloud data from the center line of multiple point cloud data representing the linear object; and forming a second line by connecting the at least three point cloud data.
[0128] The first direction is Figure 7 The longitudinal direction shown is the second direction. Figure 7Taking lane lines as an example, the process involves first selecting at least three vector points from the lane lines displayed on the map to be processed. The lines connecting these three vector points form the first vertical line. Then, at least three point cloud data points are selected from the newly acquired point cloud data representing the lane lines. The lines connecting these three point cloud data points form the second vertical line. The difference in lateral distance between the first and second lines is then used as the first loss function for the line. Minimizing the loss value output by the first loss function also minimizes the difference in lateral distance between the first and second lines, thus ensuring that the second line overlaps and aligns with the first line. This process also involves the automatic alignment of the point cloud data and vector data of the line.
[0129] For the second loss function corresponding to the area, it can be obtained based on the error between the first and second labeled data of the area.
[0130] Optionally, the first annotation data is the surface of the surface or the center point of the surface, and the second annotation data is the first target point cloud of the surface. The second loss function of the surface can be obtained based on the error between the first target point cloud and the surface in the first direction; or, the second loss function of the surface can be obtained based on the error between the first target point cloud and the center point of the surface in the first direction, and the error between the center point of the surface in the first target point cloud in the second direction.
[0131] The first target point cloud is point cloud data that may contain errors, which is manually selected from newly collected point cloud data used to represent area objects. This first target point cloud may not be aligned with the surface or center point of the area object displayed in the map to be processed.
[0132] The second loss function includes the fifth loss function and the sixth loss function. The fifth loss function is the loss function of the first target point cloud and the surface in the first direction; the sixth loss function is the sum of the loss function of the first target point cloud and the center point of the surface in the first direction, and the loss function of the first target point cloud and the center point of the surface in the second direction.
[0133] Among these methods, the first target point cloud that may be located within the surface can be manually selected from the newly acquired point cloud data, and then the fifth loss function between the first target point cloud and the surface in the first direction can be calculated.
[0134] For example, please see Figure 9As shown, taking a rectangular traffic sign located in the middle of the road as an example where the first direction is vertical, the rectangular face of the traffic sign displayed on the map to be processed can be used as the face. The first target point cloud is then selected from the multiple point cloud data newly collected to represent the rectangular traffic sign. The vertical distance difference between the first target point cloud and the face is then calculated as the fifth loss function corresponding to the face. Minimizing the loss value output by the fifth loss function also minimizes the vertical distance difference between the first target point cloud and the face, allowing the first target point cloud to gradually move closer to the face until it eventually lies within the face.
[0135] Among these steps, the first target point cloud that may be located within the surface can be manually selected from the newly acquired point cloud data; then, four vector points can be selected from the boundary of the surface used to represent the surface, and the center point of the four vector points can be taken as the center point of the surface; then, the sixth loss function of the first target point cloud and the center point of the surface can be calculated in the first and second directions.
[0136] For example, please see Figure 9 As shown, taking a rectangular traffic sign located in the middle of a road as an example, with the first direction being vertical and the second direction being horizontal, the center point of the rectangular area of the traffic sign displayed on the map to be processed can be calculated. The first target point cloud is selected from the multiple point cloud data newly collected to represent the rectangular traffic sign. Then, the loss function between the first target point cloud and the center point of the area in the horizontal direction, and the loss function between the first target point cloud and the center point of the area in the vertical direction, are calculated. The sum of these two loss functions is used as the sixth loss function. Minimizing the loss value output by the sixth loss function also minimizes the distance difference between the first target point cloud and the center point of the area in the horizontal and vertical directions, allowing the first target point cloud to gradually move closer to the center point of the area, ultimately achieving overlap and alignment between the first target point cloud and the center point of the area. This process is also the automatic alignment process between the point cloud data and the vector data of the area.
[0137] It is understandable that although the first loss function of the linear object can obtain the distance error between the first and second lines of the linear object in the second direction, it cannot obtain the distance error between the first and second lines of the linear object in the first direction. If there is a surface object near the linear object, the error between the first target point cloud and the surface in the first direction can be used to correct the error between the first and second lines of the linear object in the first direction, so that the first and second lines of the linear object are aligned in both the first and second directions.
[0138] For example, please see Figure 7As shown, taking the first direction as longitudinal, the second direction as transverse, the linear object as lane line, and the area object as rectangular traffic sign as an example, although the distance error between the point cloud data and vector data of lane line in the transverse direction can be obtained, the distance error between the point cloud data and vector data of lane line in the longitudinal direction cannot be obtained. Therefore, when minimizing the error, the point cloud data and vector data are gradually brought closer in the transverse direction, but the error in the longitudinal direction cannot be reduced.
[0139] The rectangular traffic sign is located near the lane lines. After obtaining the longitudinal distance error between the point cloud data and vector data of the rectangular traffic sign, the change in device pose during the correction process will not only cause longitudinal changes in the newly acquired point cloud data of the rectangular traffic sign, but also in the longitudinal changes in the newly acquired point cloud data of the lane lines. Figure 7 The second line in the image will move left and right vertically and will continuously approach the position of the first line. When the point cloud data of the newly collected rectangular traffic sign is aligned vertically with the vector data of the rectangular traffic sign in the map to be processed, it will also cause the point cloud data of the newly collected lane line to be aligned vertically with the vector data of the lane line in the map to be processed, thus correcting the vertical distance error between the point cloud data and the vector data of the lane line.
[0140] For the second loss function corresponding to the arrow, it can be obtained based on the error between the first and second labeled data of the arrow.
[0141] Optionally, the first annotation data is the arrow center point of the arrow, and the second annotation data is the second target point cloud of the arrow. The arrow center point can be generated using the vector data of the arrow. Based on the error between the second target point cloud and the arrow center point in the first direction, and the error between the second target point cloud and the arrow center point in the second direction, the third loss function of the arrow is obtained.
[0142] The second target point cloud is point cloud data that may contain errors, which is manually selected from the newly collected point cloud data used to represent the arrow. The center point of the second target point cloud data may not be aligned with the center point of the arrow displayed in the map to be processed.
[0143] An exemplary scheme for generating the arrow center point from the arrow's vector data includes: calculating the midpoint between two tail points of the arrow based on the arrow's vector data; and then using the center point of the line connecting the midpoint and the arrow's vertex as the arrow center point.
[0144] Please see Figure 10As shown, taking a lane line arrow as an example where the first direction is vertical, the second direction is horizontal, and the arrow represents a lane line, we can first select the arrow vertex and two arrow tail points from the lane line arrow displayed on the map to be processed, and then obtain the arrow center point based on the arrow vertex and the two arrow tail points. Next, we filter out the second target point cloud from the multiple point cloud data collected to represent the lane line arrow. Then, we calculate the loss function between the second target point cloud and the arrow center point in the horizontal direction, and the loss function between the second target point cloud and the arrow center point in the vertical direction. The sum of these two loss functions is the third loss function. Minimizing the loss value output by the third loss function also minimizes the distance difference between the second target point cloud and the arrow center point in the horizontal and vertical directions, allowing the second target point cloud to gradually move closer to the arrow center point, ultimately aligning the second target point cloud with the arrow center point. This process is also the automatic alignment of the arrow's point cloud data and vector data.
[0145] It is understandable that after obtaining the difference in longitudinal distance between the second target point cloud of the arrow and the center point of the arrow, if the arrow is located near the lane line, the difference in longitudinal distance between the arrow and the first and second lines of the lane line can also be corrected after the difference in longitudinal distance between the arrow and the center point of the arrow is reduced.
[0146] For the second loss function corresponding to the rod-shaped object, it can be obtained based on the error between the first and second labeled data of the rod-shaped object.
[0147] Optionally, the first annotation data is a third line in a third direction, and the second annotation data is a fourth line in a third direction. The third line can be generated from the vector data of the rod-shaped object; the fourth line can be generated from at least two point clouds in the point cloud data representing the rod-shaped object; and a fourth loss function corresponding to the rod-shaped object can be obtained based on the error between the third line and the fourth line in a first direction and the error between the third line and the fourth line in a second direction. The first direction and the second direction are different from the third direction.
[0148] Among them, the first direction and the second direction are perpendicular to each other, and the surface formed by the first direction and the second direction is perpendicular to the third direction.
[0149] For example, the first direction can be vertical, the second direction can be horizontal, and the third direction can be... Figure 11 The vertical direction is shown.
[0150] An exemplary scheme for generating a third line from the vector data of a rod-shaped object includes: using the vector data of the rod-shaped object to indicate the center line of the rod-shaped object (…). Figure 11 The dotted line shown is used as the third line.
[0151] An exemplary scheme for generating a fourth line from at least two point cloud data in point cloud data representing a rod-shaped object includes: selecting two point cloud data at each end of the rod-shaped object generated from vector data of the rod-shaped object; and forming the fourth line by connecting the two point cloud data.
[0152] Taking a lamppost as an example, with the first direction being vertical, the second direction being horizontal, and the third direction being vertical, the process can begin by using the centerline of the lamppost displayed on the map as the third vertical line. Two point cloud data points are then selected from the two ends of the newly acquired point cloud data representing the lamppost, and the line connecting these two points forms the fourth vertical line. The fourth loss function is then calculated by combining the horizontal loss function of the third and fourth vertical lines with the vertical loss function of the same line. Minimizing the loss value output by this fourth loss function also minimizes the horizontal distance difference and the vertical distance difference between the third and fourth lines, thus ensuring their overlap and alignment. This process also automatically aligns the point cloud data and vector data of the lamppost.
[0153] It is understandable that after obtaining the longitudinal distance difference between the third and fourth lines of the pole, if the pole is located near the lane line, the reduction in the longitudinal distance difference between the third and fourth lines of the pole will also reduce the longitudinal distance difference between the first and second lines of the lane.
[0154] (2) Update the device pose using the at least two loss functions.
[0155] Optionally, the device pose can be updated using at least two of the following loss functions: a first loss function, a second loss function, a third loss function, and a fourth loss function.
[0156] For example, a first loss function and a second loss function can be used to update the device pose. In this way, after the error between the first and second annotation data of the planar object in the first direction is corrected and reduced, the error between the first and second annotation data of the linear object in the first direction will also be adaptively corrected and reduced.
[0157] For example, the first loss function and the third loss function can be used to update the device pose. In this way, after the error between the first and second annotation data of the arrow in the first direction is corrected and reduced, the error between the first and second annotation data of the line in the first direction will also be adaptively corrected and reduced.
[0158] An exemplary scheme for updating the device pose using at least two of the first, second, third, and fourth loss functions includes updating the device pose with the objective of minimizing the sum of the loss values output by at least two of the first, second, third, and fourth loss functions.
[0159] It is understandable that updating the device pose refers to updating the second annotation data acquired by the device by changing the device pose, such as the device's position and heading angle, so that the second annotation data gradually aligns with the first annotation data in various dimensions (such as the horizontal and vertical dimensions).
[0160] Furthermore, in addition to the first loss function, the second loss function, the third loss function, and the fourth loss function, the embodiments of this disclosure may also additionally configure an inter-frame loss function and a loop closure loss function.
[0161] The inter-frame loss function is derived from the changes in point cloud data between two adjacent frames. It aims to minimize these changes to update the device pose, ultimately ensuring minimal variation between adjacent point cloud data acquired by the device, thus guaranteeing the continuity and consistency of the point cloud data. Adjacent point cloud data refers to point cloud data from two adjacent time points or two adjacent locations.
[0162] The loop closure loss function refers to the error between the point cloud data collected at a previously visited historical location and the point cloud data collected when the device returns to the previous historical location. It aims to minimize the error between the point cloud data collected at the previous historical location and the point cloud data collected when returning to the previous historical location to update the device pose. Ultimately, it ensures that the error between the point cloud data collected at the previous historical location and the point cloud data collected when returning to the previous historical location is small, thereby ensuring the accuracy and reliability of the point cloud data of the same target object collected by the device at two different times.
[0163] When minimizing the loss function, the loss value is minimized by the sum of the loss values output by at least two of the first, second, third, and fourth loss functions, as well as the loss values output by the inter-frame loss function and the loop closure loss function. The goal is to minimize the global loss value so that the newly acquired point cloud data is aligned with the vector data in the map to be processed.
[0164] The above technical solution involves obtaining at least two loss functions corresponding to the at least two target objects based on the error between the first and second annotation data of the at least two target objects, and then updating the device pose using these at least two loss functions. In this way, the various loss functions compensate for each other; as the error of one loss function decreases, the error of the other loss function also adaptively decreases, resulting in a smaller error between the second and first annotation data in the updated device pose output.
[0165] For example, the second, third, and fourth loss functions compensate for the deficiency that the first loss function of the linear object cannot output the error in the first direction, and gradually correct and reduce the error between the first and second labeled data of the linear object in the first direction. That is, after the value output by any one of the second, third, and fourth loss functions decreases, the error between the point cloud data and vector data of the linear object in the first direction will be automatically reduced.
[0166] Similarly, the first loss function can also compensate for the second loss function's inability to output the error between the first target point cloud and the surface in the second direction, and gradually correct and reduce the error between the first and second labeled data of the surface in the second direction. That is, after the loss value output by the first loss function decreases, it will also automatically reduce the error between the point cloud data and vector data of the surface in the second direction.
[0167] The following describes an exemplary embodiment of step S13 above, which illustrates a scheme for obtaining target annotation data using the target device pose, including the following steps:
[0168] (1) Obtain the second annotation data corresponding to the device pose at the same time point or the same position as before the update.
[0169] During the acquisition of point cloud data, the point cloud data changes with the device's pose. Therefore, different point cloud data will be acquired at different times, or at different locations. Since the second annotation data is derived from the point cloud data, it will also change with changes in the device pose. Therefore, it is necessary to first establish the correlation between the second annotation data and the device pose.
[0170] For example, a relationship can be established between the second annotation data at the same time point and the device pose, or a relationship can be established between the second annotation data at the same location and the device pose.
[0171] When it is necessary to update a certain second annotation data, the second annotation data corresponding to the device pose at the same time point or the same position before the update can be obtained, and then the second annotation data can be updated in a targeted manner.
[0172] (2) Update the second annotation data according to the change between the device pose before the update and the target device pose after the update, and obtain the target annotation data.
[0173] It is understandable that there will be changes in parameters such as position and heading angle between the device pose before and after the update. Therefore, the change refers to the changes in parameters such as position, heading angle, pitch angle, yaw angle, roll angle, acceleration and velocity between the device pose before and after the update. These changes will affect the changes in the second annotation data.
[0174] For example, if the position trajectory of the device pose before the update differs from that after the update by 10m, then the change between the second annotation data before the update and the target annotation data will also differ by 10m. Taking the target object as a lane line as an example, assuming the second annotation data of the lane line before the update (the second line formed by A3, B3, and C3), after knowing that the change is 10m, this change will be subtracted from the second annotation data to obtain the target annotation data of the lane line after the update (the second line formed by A4, B4, and C4). This target annotation data overlaps and aligns with the first line in the first annotation data.
[0175] It is understandable that the purpose of associating the second annotation data at the same time point or the same location with the device pose is that, when updating the second annotation data, the second annotation data at the same time point or the same location as the device pose can be updated based on the change in the device pose.
[0176] After obtaining the device pose trajectory at each time point or location, the second annotation data corresponding to each time point or location can be updated based on the amount of trajectory change between the updated and unupdated device pose trajectories.
[0177] The above technical solution allows for updating the second annotation data by utilizing the pose change between the device pose before and after the update, so that the second annotation data gradually approaches the first annotation data until the first annotation data and the second annotation data are aligned.
[0178] Figure 12 This is a block diagram illustrating a map updating apparatus according to an exemplary embodiment. (Refer to...) Figure 12The map update device 1200 includes: an acquisition module 1210, a pose update module 1220, an update module 1230, and a map update module 1240.
[0179] The acquisition module 1210 is configured to acquire first annotation data and second annotation data; the first annotation data is obtained based on the vector data of the target object in the map to be processed, and the second annotation data is obtained based on the collected point cloud data of the target object;
[0180] The pose update module 1220 is configured to update the device pose based on a loss function between the first labeled data and the second labeled data; the device is used to acquire point cloud data of the target object;
[0181] The update module 1230 is configured to obtain target annotation data based on the updated target device pose; the target annotation data is the updated second point cloud data of the target object.
[0182] The map update module 1240 is configured to update the target objects in the map to be processed based on the first annotation data and the target annotation data.
[0183] Optionally, the pose update module 1220 includes:
[0184] The loss function submodule is configured to obtain the loss function corresponding to the target object based on the error between the first labeled data and the second labeled data of the target object;
[0185] The device pose update submodule is configured to update the device pose using the loss function.
[0186] Optionally, the target object includes at least two target objects; the loss function submodule is further configured to obtain at least two loss functions corresponding to the at least two target objects based on the error between the first labeled data and the second labeled data of the at least two target objects.
[0187] The device pose update submodule is also configured to update the device pose using the at least two loss functions.
[0188] Optionally, the at least two target objects include at least two of the following: line objects, area objects, arrows, and rod objects; the loss function submodule is further configured to update the device pose with at least two of the following: a first loss function, a second loss function, a third loss function, and a fourth loss function.
[0189] The first loss function is obtained based on the error between the first and second annotation data of the linear object; the second loss function is obtained based on the error between the first and second annotation data of the planar object; the third loss function is obtained based on the error between the first and second annotation data of the arrow; and the fourth loss function is obtained based on the error between the first and second annotation data of the rod.
[0190] Optionally, the target object is a line, the first annotation data is a first line in a first direction, and the second annotation data is a second line in the first direction; the loss function submodule includes:
[0191] The first line generation submodule is configured to generate the first line using vector data of the line;
[0192] The second line generation submodule is configured to generate the second line from multiple point cloud data in point cloud data characterizing the line;
[0193] The first loss submodule is configured to obtain a first loss function corresponding to the linear object based on the error between the first line and the second line in a second direction; the first direction is different from the second direction.
[0194] Optionally, the target object is a planar object, the first annotation data is the surface of the planar object or the center point of the planar object, and the second annotation data is the first target point cloud of the planar object; the loss function submodule includes:
[0195] The second loss submodule is configured to obtain a second loss function for the surface based on the error between the first target point cloud and the surface in a first direction; or,
[0196] Based on the error between the first target point cloud and the center point of the surface in the first direction, and the error between the center point of the surface in the first target point cloud and the center point of the surface in the second direction, the second loss function of the surface is obtained.
[0197] Optionally, the target object is an arrow, the first annotation data is the center point of the arrow, and the second annotation data is the second target point cloud of the arrow; the loss function submodule includes:
[0198] The arrow center point generation submodule is configured to generate the arrow center point using the vector data of the arrow.
[0199] The third loss submodule is configured to obtain a third loss function for the arrow based on the error between the second target point cloud and the center point of the arrow in the first direction, and the error between the second target point cloud and the center point of the arrow in the second direction.
[0200] Optionally, the target object is a rod-shaped object, the first annotation data is a third line in a third direction, and the second annotation data is a fourth line in the same third direction; the loss function submodule includes:
[0201] The third line generation submodule is configured to generate the third line using the vector data of the rod-shaped object;
[0202] The fourth line generation submodule is configured to generate the fourth line from at least two point clouds in the point cloud data characterizing the rod-shaped object;
[0203] The fourth loss submodule is configured to obtain a fourth loss function corresponding to the rod based on the error between the third line and the fourth line in a first direction and the error between the third line and the fourth line in a second direction; the first direction and the second direction are different from the third direction.
[0204] Optionally, the update module 1230 includes:
[0205] The association submodule is configured to obtain the second annotation data corresponding to the device pose at the same time point or the same position as before the update.
[0206] The annotation data update submodule is configured to update the second annotation data based on the change between the device pose before the update and the target device pose after the update, so as to obtain the target annotation data.
[0207] Optionally, the map update module 1240 is further configured to draw based on the object to be processed displayed in the map to be processed, according to the first annotation data and the target annotation data, to obtain the target object.
[0208] Regarding the apparatus in the above embodiments, the specific manner in which each module performs its operation has been described in detail in the embodiments related to the method, and will not be elaborated upon here.
[0209] This disclosure also provides a computer-readable storage medium having stored thereon computer program instructions that, when executed by a processor, implement the steps of the map update method provided in this disclosure.
[0210] Some embodiments of this disclosure also provide a chip system, such as Figure 13As shown, the chip system includes at least one processor 1301 and at least one interface circuit 1302. The processor 1301 and the interface circuit 1302 are interconnected via lines. For example, the interface circuit 1302 can be used to receive signals from other devices (e.g., the memory of an electronic device). As another example, the interface circuit 1302 can be used to send signals to other devices (e.g., the processor 1301). Exemplarily, the interface circuit 1302 can read instructions stored in memory and send those instructions to the processor 1301. When the instructions are executed by the processor 1301, the map updating device can perform the steps in the above embodiments. Of course, the chip system may also include other discrete components, and some embodiments of this disclosure do not specifically limit this.
[0211] In some embodiments of this disclosure, the interface circuit 1302 can acquire data, program instructions, and / or information from the internal storage area of the chip system; it can also acquire data, program instructions, and / or information from outside the chip system.
[0212] Figure 14 This is a block diagram illustrating an electronic device 1400 for map updating according to an exemplary embodiment. For example, the electronic device 1400 may be provided as a server. (Refer to...) Figure 14 The electronic device 1400 includes a processing component 1422, which further includes one or more processors, and memory resources represented by memory 1432 for storing instructions, such as application programs, that can be executed by the processing component 1422. The application programs stored in memory 1432 may include one or more modules, each corresponding to a set of instructions. Furthermore, the processing component 1422 is configured to execute instructions to perform the map update method described above.
[0213] Electronic device 1400 may also include a power supply component 1426 configured to perform power management of electronic device 1400, a wired or wireless network interface 1450 configured to connect electronic device 1400 to a network, and an input / output interface 1458. Electronic device 1400 can operate on an operating system stored in memory 1432.
[0214] Those skilled in the art will also understand that the various illustrative logical blocks and steps listed in the embodiments of this application can be implemented by electronic hardware, computer software, or a combination of both. Whether such functionality is implemented through hardware or software depends on the specific application and the overall system design requirements. Those skilled in the art can implement the described functionality using various methods for each specific application, but such implementation should not be construed as exceeding the scope of protection of the embodiments of this application.
[0215] Furthermore, the term “exemplary” is used herein to mean serving as an example, instance, or illustration. Any aspect or design described herein as “exemplary” is not necessarily to be construed as advantageous compared to other aspects or designs. Rather, the use of the term “exemplary” is intended to present the concept in a concrete manner. As used herein, the term “or” is intended to mean an inclusive “or” rather than an exclusive “or.” That is, unless otherwise specified or clear from the context, “X applies A or B” is intended to mean any of the natural inclusive arrangements. That is, “X applies A or B” satisfies any of the foregoing instances if X applies A; X applies B; or both X applies A and B. Additionally, unless otherwise specified or clear from the context to refer to the singular form, the articles “a” and “an” as used in this application and the appended claims are generally understood to mean “one or more.”
[0216] Similarly, although this disclosure has been shown and described with respect to one or more implementations, equivalent variations and modifications will occur to those skilled in the art upon reading and understanding the specification and drawings. This disclosure includes all such modifications and variations and is limited only by the scope of the claims. In particular, with respect to the various functions performed by the components described above (e.g., elements, resources, etc.), unless otherwise indicated, the terminology used to describe such components is intended to correspond to any component (functionally equivalent) that performs the specific function of the described component, even if structurally not equivalent to the disclosed structure. Furthermore, although specific features of this disclosure may have been disclosed with respect to only one of several implementations, such features may be combined with one or more other features of other implementations, as may be desired and advantageous to any given or particular application. Moreover, with regard to the terms “comprising,” “owning,” “having,” “having,” or variations thereof as used in the detailed description or claims, such terms are intended to be inclusive in a manner similar to the term “including.”
[0217] Other embodiments of this disclosure will readily occur to those skilled in the art upon consideration of the specification and practice of the invention disclosed herein. This application is intended to cover any variations, uses, or adaptations of this disclosure that follow the general principles of this disclosure and include common knowledge or customary techniques in the art not disclosed herein. The specification and examples are to be considered exemplary only, and the true scope and spirit of this disclosure are indicated by the appended claims.
[0218] It should be understood that this disclosure is not limited to the precise structures described above and shown in the accompanying drawings, and various modifications and changes can be made without departing from its scope. The scope of this disclosure is limited only by the appended drawings.
[0219] Although terms such as “first,” “second,” and “third” may be used herein to describe various components, parts, regions, layers, or sections, these components, parts, regions, layers, or sections are not limited to these terms. Rather, these terms are used only to distinguish one component, part, region, layer, or section from another. Therefore, without departing from the teachings of the examples described herein, the first component, part, region, layer, or section mentioned in the examples may also be referred to as the second component, part, region, layer, or section. Furthermore, the terms “first” and “second” are used for descriptive purposes only and should not be construed as indicating or implying relative importance or implicitly specifying the number of indicated technical features. Thus, a feature defined as “first” or “second” may explicitly or implicitly include at least one of that feature. In the description herein, “a plurality” means at least two, such as two, three, etc., unless otherwise explicitly specified.
[0220] It should be understood that spatial relative terms, such as “above,” “upper,” “below,” and “lower,” are used herein to describe the relationship between one element and another shown in the figures. In addition to the orientation depicted in the figures, these spatial relative terms are also intended to encompass different orientations of the device in use or operation. For example, if the device in the figures is flipped, an element described as “above” or “upper” relative to another element would be “below” or “lower” relative to that other element. Thus, depending on the spatial orientation of the device, the term “above” encompasses both above and below orientations. Devices may have other orientations (e.g., rotated 90 degrees or in other orientations), and the spatial relative terms used herein should be interpreted accordingly.
Claims
1. A map update method characterized by comprising: The method comprises: obtaining first annotation data and second annotation data; the first annotation data is obtained according to vector data of a target object in a to-be-processed map, and the second annotation data is obtained according to point cloud data of the target object collected; updating a device pose according to a loss function between the first annotation data and the second annotation data; the device is used to collect the point cloud data of the target object; obtaining target annotation data according to the updated target device pose; the target annotation data is the second annotation data of the target object after being updated; updating the target object in the to-be-processed map according to the first annotation data and the target annotation data.
2. The method of claim 1, wherein, The method comprises: obtaining a loss function corresponding to the target object according to an error between the first annotation data and the second annotation data of the target object; updating the device pose according to the loss function.
3. The method of claim 2, wherein, The target object comprises at least two target objects; the method comprises: obtaining at least two loss functions corresponding to the at least two target objects according to errors between the first annotation data and the second annotation data of the at least two target objects; the method comprises: updating the device pose according to the at least two loss functions.
4. The method of claim 3, wherein, The at least two target objects comprise at least two of a line-shaped object, a surface-shaped object, an arrow, and a rod-shaped object; the method comprises: updating the device pose according to at least two of a first loss function, a second loss function, a third loss function, and a fourth loss function; the first loss function is obtained according to an error between the first annotation data and the second annotation data of the line-shaped object, the second loss function is obtained according to an error between the first annotation data and the second annotation data of the surface-shaped object, the third loss function is obtained according to an error between the first annotation data and the second annotation data of the arrow, and the fourth loss function is obtained according to an error between the first annotation data and the second annotation data of the rod-shaped object.
5. The method of claim 2, wherein, The target object is a line-shaped object, the first annotation data is a first line in a first direction, and the second annotation data is a second line in the first direction. The method comprises: generating the first line according to vector data of the line-shaped object; generating the second line according to a plurality of point cloud data in point cloud data representing the line-shaped object; obtaining a first loss function corresponding to the line-shaped object according to an error between the first line and the second line in a second direction; the first direction and the second direction are different.
6. The method of claim 2, wherein, The target object is a surface-shaped object, the first annotation data is a surface of the surface-shaped object or a center point of the surface-shaped object, and the second annotation data is a first target point cloud of the surface-shaped object. The loss function corresponding to the target object is obtained according to the error between the first annotation data and the second annotation data of the target object, and the loss function corresponding to the target object is obtained according to the error between the first annotation data and the second annotation data of the target object. The second loss function of the planar object is obtained according to the error between the first target point cloud and the face in the first direction. Or, The second loss function of the planar object is obtained according to the error between the first target point cloud and the planar object center point in the first direction, and the error between the first target point cloud and the planar object center point in the second direction.
7. The method of claim 2, wherein, The target object is an arrow, the first annotation data is an arrow center point of the arrow, and the second annotation data is a second target point cloud of the arrow. The loss function corresponding to the target object is obtained according to the error between the first annotation data and the second annotation data of the target object, and the loss function corresponding to the target object is obtained according to the error between the first annotation data and the second annotation data of the target object. The arrow center point is generated according to the vector data of the arrow. The third loss function of the arrow is obtained according to the error between the second target point cloud and the arrow center point in the first direction, and the error between the second target point cloud and the arrow center point in the second direction.
8. The method of claim 2, wherein, The target object is a rod-shaped object, the first annotation data is a third line in a third direction, and the second annotation data is a fourth line in the third direction. The loss function corresponding to the target object is obtained according to the error between the first annotation data and the second annotation data of the target object, and the loss function corresponding to the target object is obtained according to the error between the first annotation data and the second annotation data of the target object. The third line is generated according to the vector data of the rod-shaped object. The fourth line is generated according to at least two point clouds in the point cloud data representing the rod-shaped object. The fourth loss function corresponding to the rod-shaped object is obtained according to the error between the third line and the fourth line in the first direction, and the error between the third line and the fourth line in the second direction; the first direction, the second direction and the third direction are different.
9. The method of claim 1, wherein, The target annotation data is obtained according to the updated target device pose, and the target annotation data is obtained according to the updated target device pose. Second annotation data corresponding to the device pose at the same time point or the same position before updating is obtained; The second annotation data is updated according to the change between the device pose before updating and the updated target device pose, and the target annotation data is obtained.
10. The method of claim 1, wherein, The target object in the to-be-processed map is updated according to the first annotation data and the target annotation data, and the target object in the to-be-processed map is updated according to the first annotation data and the target annotation data. The target object is obtained by drawing on the basis of the to-be-processed object displayed in the to-be-processed map according to the first annotation data and the target annotation data.
11. An electronic device, comprising: It includes: The acquisition module is configured to acquire first annotation data and second annotation data; The first annotation data is obtained according to the vector data of the target object in the to-be-processed map, and the second annotation data is obtained according to the point cloud data of the target object collected; The pose updating module is configured to update the device pose according to the loss function between the first annotation data and the second annotation data; the device is used for collecting the point cloud data of the target object; An updating module is configured to obtain target labeling data according to the updated target device pose; the target labeling data is second labeling data of the target object after being updated; A map updating module is configured to update the target object in the to-be-processed map according to the first labeling data and the target labeling data.
12. A map update device characterized by comprising: Comprise: a processor; a memory for storing processor-executable instructions; wherein the processor is configured to: perform the steps of the method of any one of claims 1-10.
13. A computer readable storage medium having stored thereon a computer program, characterized in that, The computer program, when executed by the processor, implements the steps of the method of any one of claims 1-10.
14. A computer program product, characterised in that, The computer program, when executed by the processor, implements the steps of the method of any one of claims 1-10.