Obstacle detection method and device

By updating the corner points of the obstacle shape, the instability problem of autonomous driving caused by the sudden change of the obstacle shape is solved, ensuring the stable driving of the vehicle.

CN114298953BActive Publication Date: 2025-09-26APOLLO INTELLIGENT CONNECTIVITY (BEIJING) TECH CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202111641032.6
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2021-12-29
Publication Date
2025-09-26
Estimated Expiration
2041-12-29

AI Technical Summary

Technical Problem

During autonomous driving, the 2D outer polygonal shape of the obstacle is prone to sudden changes, causing the vehicle to brake or stop, affecting the stability of autonomous driving.

Method used

By obtaining the obstacle shapes of the vehicle at the current moment and the previous moment, the corner points are updated respectively, and multiple updated corner points are determined to form the target obstacle shape for autonomous driving.

Benefits of technology

It effectively avoids the sudden change of obstacle shape and ensures the driving stability of the autonomous driving vehicle.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114298953B_ABST
    Figure CN114298953B_ABST
Patent Text Reader

Abstract

The present disclosure provides an obstacle detection method and device, which relate to the field of data processing, and in particular to the field of autonomous driving. The specific implementation scheme is: obtaining a first obstacle shape of an obstacle detected by a vehicle at the current moment, and a second obstacle shape of an obstacle output by the vehicle at the previous moment. According to the first obstacle shape and the second obstacle shape, the corner points in the first obstacle shape and the second obstacle shape are updated respectively to obtain multiple updated corner points. Based on the multiple updated corner points, the target obstacle shape output at the current moment is determined, and the target obstacle shape is used for the vehicle to perform autonomous driving. The technical solution of the present disclosure can ensure that the shape of the obstacle will not change suddenly, thereby ensuring the driving stability of the autonomous driving vehicle.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to the field of autonomous driving in the field of data processing, and in particular to an obstacle detection method and device. Background Art

[0002] With the continuous development of science and technology, autonomous driving technology is gradually accepted by users, so autonomous driving is a major trend in the future development of automobiles.

[0003] Currently, in the process of realizing autonomous driving, the perception module is usually required to output a polygonal shape representing the 2D outer contour of the obstacle. The polygonal shape is obtained by computing the original point cloud after obstacle segmentation. Due to inaccurate segmentation or position errors of edge point clouds, the polygonal shape may jump.

[0004] However, if the polygonal shape representing the 2D outer contour of the obstacle changes suddenly, the vehicle may brake suddenly or stop, resulting in lower stability of autonomous driving. Summary of the Invention

[0005] The present disclosure provides an obstacle detection method and device.

[0006] According to a first aspect of the present disclosure, there is provided an obstacle detection method, comprising:

[0007] Obtaining a first obstacle shape of an obstacle detected by the vehicle at a current moment and a second obstacle shape of the obstacle output by the vehicle at a previous moment;

[0008] According to the first obstacle shape and the second obstacle shape, updating corner points in the first obstacle shape and the second obstacle shape respectively to obtain a plurality of updated corner points;

[0009] The target obstacle shape output at the current moment is determined based on the multiple updated corner points, and the target obstacle shape is used for the vehicle to perform automatic driving.

[0010] According to a second aspect of the present disclosure, there is provided an obstacle detection device, comprising:

[0011] an acquisition module, configured to acquire a first obstacle shape of an obstacle detected by the vehicle at a current moment, and a second obstacle shape of the obstacle output by the vehicle at a previous moment;

[0012] a processing module, configured to update corner points in the first obstacle shape and the second obstacle shape respectively according to the first obstacle shape and the second obstacle shape, to obtain a plurality of updated corner points;

[0013] A determination module is used to determine the target obstacle shape output at the current moment based on the multiple updated corner points, and the target obstacle shape is used for the vehicle to perform automatic driving.

[0014] According to a third aspect of the present disclosure, there is provided an electronic device, including:

[0015] at least one processor; and

[0016] a memory communicatively connected to the at least one processor; wherein,

[0017] The memory stores instructions that can be executed by the at least one processor. The instructions are executed by the at least one processor to enable the at least one processor to perform the method according to the first aspect.

[0018] According to a fourth aspect of the present disclosure, a non-transitory computer-readable storage medium storing computer instructions is provided, wherein the computer instructions are used to enable the computer to execute the method described in the first aspect.

[0019] According to a fifth aspect of the present disclosure, a computer program product is provided, comprising: a computer program, wherein the computer program is stored in a readable storage medium, at least one processor of an electronic device can read the computer program from the readable storage medium, and the at least one processor executes the computer program so that the electronic device executes the method described in the first aspect.

[0020] The technology disclosed herein solves the problem of low stability of autonomous driving caused by sudden changes in the shape of obstacles.

[0021] It should be understood that the contents described in this section are not intended to identify the key or important features of the embodiments of the present disclosure, nor are they intended to limit the scope of the present disclosure. Other features of the present disclosure will become readily understood through the following description. BRIEF DESCRIPTION OF THE DRAWINGS

[0022] The accompanying drawings are provided to facilitate a better understanding of the present invention and do not constitute a limitation of the present disclosure.

[0023] Figure 1 A schematic diagram illustrating the implementation of a polygonal shape of an obstacle provided in an embodiment of the present disclosure;

[0024] Figure 2 A flowchart of an obstacle detection method provided in an embodiment of the present disclosure;

[0025] Figure 3 The process of the obstacle detection method provided in the embodiment of the present disclosure is Figure 2 ;

[0026] Figure 4 A schematic diagram of the shape of an obstacle provided in an embodiment of the present disclosure;

[0027] Figure 5 Schematic diagram of the implementation of determining the target edge provided by the embodiment of the present disclosure Figure 1 ;

[0028] Figure 6 A schematic diagram of an implementation of determining a target corner point provided in an embodiment of the present disclosure;

[0029] Figure 7 Schematic diagram of the implementation of determining the target edge provided by the embodiment of the present disclosure Figure 2 ;

[0030] Figure 8 A schematic diagram of an implementation of determining corner point weights provided in an embodiment of the present disclosure;

[0031] Figure 9 A schematic diagram of a flow chart of an iterative obstacle detection method according to an embodiment of the present disclosure;

[0032] Figure 10 Schematic diagram of the structure of an obstacle detection device according to an embodiment of the present disclosure;

[0033] Figure 11 is a block diagram of an electronic device used to implement the obstacle detection method according to an embodiment of the present disclosure. DETAILED DESCRIPTION

[0034] The following description of exemplary embodiments of the present disclosure is made in conjunction with the accompanying drawings, including various details of the embodiments of the present disclosure to facilitate understanding. These details should be considered as merely exemplary. Therefore, those skilled in the art will recognize that various changes and modifications may be made to the embodiments described herein without departing from the scope and spirit of the present disclosure. Similarly, for the sake of clarity and conciseness, descriptions of well-known functions and structures are omitted in the following description.

[0035] In order to better understand the technical solutions of the present disclosure, the related technologies involved in the present disclosure are further introduced in detail below.

[0036] A perception module is usually provided in an autonomous vehicle, wherein the perception module can output a polygonal shape representing the 2D outer contour of an obstacle during the autonomous driving process. Figure 1 To understand, Figure 1 A schematic diagram illustrating the implementation of the polygonal shape of an obstacle provided in an embodiment of the present disclosure.

[0037] like Figure 1As shown, it is assumed that the autonomous driving vehicle 101 is traveling on the road, and it is assumed that there is an obstacle shown as 102 on the road. It can be understood that the obstacle can be any object existing on the road, and any physical object existing on the road can be regarded as an obstacle in the present disclosure.

[0038] In order to ensure the safety of autonomous driving, an autonomous vehicle usually needs to sense the position and shape of obstacles on the road through a perception module in the vehicle. The perception module can, for example, output a polygonal shape representing the 2D outer contour of the obstacle. Figure 1 For example, at time t-1, for obstacle 102, the polygonal shape representing its outline output by the perception module is the shape shown as 103. For another example, at time t, for obstacle 102, the polygonal shape representing its outline input by the perception module is the shape shown as 104.

[0039] The polygon shape is obtained by computing the original point cloud after obstacle segmentation. Due to inaccurate segmentation or position errors of edge point clouds, the polygon shape may jump.

[0040] However, if the polygonal shape representing the 2D outer contour of the obstacle changes suddenly, the edge of the obstacle may intrude into the safety zone of the autonomous vehicle, causing the vehicle to brake or stop suddenly.

[0041] For example, you can refer to Figure 1 For example, at time t-1, polygonal shape 103 is output for obstacle 102, while at time t, polygonal shape 104 is output for obstacle 102. Comparing polygonal shape 103 and polygonal shape 104, it can be determined that the shape of the obstacle has changed dramatically, and the edge of obstacle shape 104 after the change will intrude into the safety zone of autonomous driving vehicle 101, causing vehicle 101 to brake or stop suddenly, resulting in reduced stability of the autonomous driving vehicle.

[0042] Based on the above introduction, from the perspective of academic tracking, polygonal shape is a measurement of sensor output, and state estimation calculations are also required to reduce its error. The following describes two possible implementations of existing polygonal shapes for determining obstacle contours. Both can, to a certain extent, address two major issues with time-series shape tracking. The first is that the number of corner points of a polygon shape is uncertain, that is, the dimensionality of the parameter space is uncertain; the second is that polygon shapes are defined in a geodetic coordinate system, and the same shape does not necessarily mean the same polygon shape values.

[0043] In a possible implementation, an extended target tracking implementation may be adopted.

[0044] Specifically, when a sensor simultaneously measures multiple states of a target's system—for example, a LiDAR point cloud representing multiple measurements of the target's position—the system state is no longer a single point in state space but rather "stretched." This stretch is typically caused by the target's shape and size, as well as the sensor's high resolution. Stretched target tracking establishes a mathematical model of the target's shape and uses it as part of the system state, performing Bayesian recursive calculations to estimate the model's parameters. Simultaneously, the observation probability model also accounts for the multiple measurements generated by shape and size.

[0045] The idea of ​​extended target tracking can be applied to the problem of tracking polygonal shapes in time series: the mathematical model of the obstacle shape can circumvent the above problem 1; the simultaneous calculation of the target shape and motion state also solves the above problem 2.

[0046] However, extended target tracking requires understanding the basic shape of obstacles and establishing a mathematical model for that shape. Currently, the most universal model is the star-convex-polygon, which still has certain shape limitations. Because lidar perception algorithms also output unknown obstacle types other than people, cars, and bicycles, assumptions about their shapes should be minimized.

[0047] Furthermore, the versatility of shape models also implies high computational complexity. For star-convex-polygons, a Fourier polynomial expansion approximation is required. For example, expanding the star-convex-polygon to 15 terms, including the center point position and other motion-related system states, results in a covariance matrix exceeding 15x15, necessitating significant computational complexity. Furthermore, reducing the number of terms in the expansion reduces the expressive power of the shape model.

[0048] Furthermore, Bayesian recursion is computationally intensive. Each measurement of the same obstacle requires an "update" calculation, and each update involves the calculation in step (b) above, further increasing the computational complexity. These updates also require recursive calculations, making them difficult to parallelize. Furthermore, using obstacle point clouds as measurements is computationally prohibitive, necessitating a method that utilizes polygonal shapes to generate "pseudo-measurements" to reduce the number of measurements.

[0049] In another possible implementation, a contour tracking implementation may be adopted.

[0050] Contour tracking originates from the field of computer vision and typically uses particle filtering to track the contours of an object in an image. The contour of an object can be viewed as a two-dimensional probability distribution on the image plane (pixels with contours have a high probability density, while pixels without contours have a low probability density). Because contours have arbitrary shapes and may change over time, a two-dimensional probability distribution is difficult to represent using a unified model. Therefore, a Monte Carlo method, or particle filtering, is used to approximate the contours.

[0051] The idea of ​​contour tracking can be applied to the problem of tracking polygonal shapes in time series: the polygon can be regarded as a general contour to circumvent the above problem 1; the target center point and motion state results of the previous "point" tracking can be used to eliminate problem 2.

[0052] However, the design of Sequential Importance Resampling in particle filtering is very critical:

[0053] If we simply treat polygon edges as contours and directly apply contour tracing to calculations, we need to sample a sufficient number of particles near the edges, resulting in a very large computational load, just like contour tracing. These particles are only useful when the actual polygon edges have additional corner points and deformation occurs; the calculations are relatively useless otherwise.

[0054] If you want to simplify the calculation and only resample the corner points, you may lose the contour tracking when the longer sides of the polygon have extra corner points and deform. (The spacing between polygon corner points usually varies greatly, which is related to the specific shape of the object, the density of the point cloud illumination, and the polygon calculation algorithm.)

[0055] To simplify the computation, consider edges as "particles" and resample only the edges. (That is, the particle system state is the parameter of the line expression, and resampling is performed in this parameter space.) This theoretically avoids the aforementioned problem of resampling only the points. However, there is a lack of theoretical support for the choice of line expression, how to calculate the similarity between lines under this expression (for calculating weights), and how to perform "update" calculations under this expression.

[0056] Furthermore, there are difficulties in restoring the outlines represented by numerous particles into polygons. Polygonal expressions are sequential corner points, and the Sequential Importance Resampling design mentioned above involves resampling in all directions in space. Therefore, it is impossible to incorporate a method that effectively avoids "sorting" to obtain the particle order in this step. If "sorting" is used, the particles must be treated as scattered points and "sorted" after extracting valid particles using weights. This "sorting" must be performed in a space with a dimension greater than or equal to 2, and the method is unclear.

[0057] In particle filtering, the particle extraction method inevitably requires the use of a threshold to filter out particles with higher weights. However, this method cannot guarantee that the extracted particles can form a reasonable polygon. (For example, the extracted corner points or edges are inside the actual polygon.)

[0058] To solve the above problem, one method is to recalculate the polygons using an algorithm after extracting the particles, which requires sorting and O(n*log(n)) calculation after particle filtering.

[0059] Particle filtering inherently suffers from high computational complexity. Monte Carlo methods require a sufficient number of particles to approximate the probability density; too few particles will not work properly. Compared to extended target tracking, the computation of each particle is independent and recursive, making GPU acceleration possible. However, this approach is labor-intensive.

[0060] Based on the above introduction, it can be determined that the two implementation methods introduced above can effectively solve the problem of uncertain number of corner points of polygonal shapes, and the problem that the polygonal shapes are defined in the geodetic coordinate system and the same shape does not mean the same polygon shape values. However, their specific processing methods are relatively complex and require a large amount of calculation. At the same time, they cannot simply and effectively solve the problem of shape jumps of obstacles.

[0061] In response to the technical problem in the prior art that the shape of obstacles may change suddenly, the present disclosure proposes the following technical concept: by averaging the polygonal shapes of the collected obstacles to determine the polygonal shape of the obstacle collected at the current moment, the shape change of the obstacle can be avoided simply and effectively.

[0062] Based on the above, the obstacle detection method provided by this disclosure is described below using specific embodiments. It should be noted that the execution entity of each embodiment of this disclosure can be a device with data processing capabilities, such as a processor or microprocessor. In one possible implementation, the processor described here can be a built-in processor in the vehicle, or it can also be a cloud-based processor, etc. This embodiment does not limit the specific execution entity, as long as it can obtain the required data and perform data processing based on the data to output the polygonal shape of the obstacle.

[0063] First, combine Figure 2 Make an introduction, Figure 2 This is a flowchart of the obstacle detection method provided in an embodiment of the present disclosure.

[0064] like Figure 2 As shown, the method includes:

[0065] S201: Acquire a first obstacle shape of an obstacle detected by a vehicle at a current moment and a second obstacle shape of an obstacle output by the vehicle at a previous moment.

[0066] In this embodiment, the vehicle can detect the shape of an obstacle at any time. For example, a first obstacle shape of an obstacle detected by the vehicle at the current moment can be obtained. In one possible implementation, the first obstacle shape of the obstacle detected at the current moment can be detected by the vehicle's perception module, for example.

[0067] Also, it is understandable that, during the driving process of the vehicle, the shape of the obstacle will be continuously detected at each moment, and the shape of the obstacle will be output at each moment. It should be noted that, because the shapes of the detected obstacles need to be averaged in this embodiment, the shape of the obstacle detected by the perception module at each moment and the shape of the obstacle at that moment that is finally output are not the same shape.

[0068] Therefore, in this embodiment, the second obstacle shape of the obstacle output at the previous moment can be obtained. The second obstacle shape here is the obstacle shape output after averaging processing. It should be noted that the second obstacle shape is not the obstacle shape detected at the previous moment.

[0069] S202: Update corner points in the first obstacle shape and the second obstacle shape respectively according to the first obstacle shape and the second obstacle shape to obtain a plurality of updated corner points.

[0070] Based on the above description, it can be determined that the first obstacle shape in this embodiment is the obstacle shape detected at the current moment, and the second obstacle shape in this embodiment is the average obstacle shape output at the previous moment. The first obstacle shape and the second obstacle shape can be averaged to determine the average obstacle shape corresponding to the current moment.

[0071] Furthermore, the obstacle in this embodiment is a polygonal shape, which has multiple corner points. For example, a triangle has three corner points, a rectangle has four corner points, a hexagon has six corner points, and so on. Therefore, the first obstacle shape in this embodiment corresponds to multiple corner points, and the second obstacle corner points also correspond to multiple corner points.

[0072] In one possible implementation, for example, each corner point in the second obstacle shape may be updated according to the first obstacle shape, and each corner point in the first obstacle shape may be updated according to the second obstacle shape, thereby obtaining multiple updated corner points.

[0073] S203. Determine a target obstacle shape output at the current moment based on the multiple updated corner points. The target obstacle shape is used for the vehicle to perform autonomous driving.

[0074] It's understood that the updated corner points are actually the corner locations of the corresponding polygon after averaging the first and second obstacle shapes. Therefore, after determining multiple updated corner points, the target obstacle shape output at the current moment can be determined based on these updated corner points. The target obstacle shape is the average obstacle shape of the first and second obstacle shapes.

[0075] It can be understood that because the obstacle shape at the previous moment and the obstacle shape at the current moment are averaged to obtain the target obstacle shape, it can be ensured that the current target obstacle shape does not jump relative to the previous moment. Therefore, the target obstacle shape in this embodiment is used for automatic driving of the vehicle, which can ensure the stability of the vehicle's automatic driving.

[0076] The obstacle detection method provided by the embodiment of the present disclosure includes: obtaining a first obstacle shape of an obstacle detected by a vehicle at a current moment, and a second obstacle shape of an obstacle output by the vehicle at a previous moment. Based on the first obstacle shape and the second obstacle shape, the corner points in the first obstacle shape and the second obstacle shape are updated to obtain a plurality of updated corner points. Based on the plurality of updated corner points, a target obstacle shape output at the current moment is determined, and the target obstacle shape is used for autonomous driving of the vehicle. By averaging the first obstacle shape at the current moment and the second obstacle shape at the previous moment to determine a plurality of updated corner points, the target obstacle shape corresponding to the updated corner points is then determined as the average obstacle shape, thereby ensuring that the shape of the obstacle does not change suddenly, thereby ensuring the driving stability of the autonomous driving vehicle.

[0077] Based on the above introduction, Figures 3 to 8 The obstacle detection method provided by the present disclosure is further introduced in detail. Figure 3 The process of the obstacle detection method provided in the embodiment of the present disclosure is Figure 2 , Figure 4 A schematic diagram of the shape of an obstacle provided in an embodiment of the present disclosure, Figure 5 Schematic diagram of the implementation of determining the target edge provided by the embodiment of the present disclosure Figure 1 , Figure 6 This is a schematic diagram of an implementation of determining a target corner point provided by an embodiment of the present disclosure. Figure 7 Schematic diagram of the implementation of determining the target edge provided by the embodiment of the present disclosure Figure 2 , Figure 8 A schematic diagram of an implementation of determining corner point weights provided in an embodiment of the present disclosure.

[0078] like Figure 3 As shown, the method includes:

[0079] S301: Acquire a first obstacle shape of an obstacle detected by a vehicle at a current moment and a second obstacle shape of an obstacle output by the vehicle at a previous moment.

[0080] The implementation of S301 is similar to the implementation of S201 described above.

[0081] And, in order to facilitate the introduction of this embodiment, the following Figure 4 An exemplary introduction is given to the first obstacle shape and the second obstacle shape.

[0082] Reference Figure 4 ,exist Figure 4 , a first obstacle shape B and a second obstacle shape A are shown, wherein the first obstacle shape B is the obstacle shape currently detected, and the second obstacle shape A is the obstacle shape output at the previous moment.

[0083] S302: For any one of the first obstacle corner points, obtain projection points of the first corner point corresponding to each side in the second obstacle shape, and distances between the first corner point and each corner point in the second obstacle shape.

[0084] The first obstacle shape includes a plurality of first obstacle corner points, and the second obstacle shape includes a plurality of second obstacle corner points. Figure 4 In the example of , the first obstacle shape B includes 4 first obstacle corner points, and the second obstacle shape A includes 3 second obstacle corner points.

[0085] It is understandable that when updating the corner points in the first obstacle shape, it is necessary to update each corner point in the first obstacle shape. The implementation of updating each corner point is similar. Therefore, the implementation of corner point updating is introduced below using any first corner point in the first obstacle corner points as an example.

[0086] There are multiple edges in the second obstacle shape. In a possible implementation, for example, the projection points of the first corner point corresponding to the respective edges in the second obstacle shape may be obtained.

[0087] For example, you can refer to Figure 5 To understand, assume that the second obstacle shape A includes 3 edges, namely Figure 5 As shown in the side 1, side 2, and side 3, and assuming that the bottom corner point b1 of the first obstacle shape B is currently used as an example for introduction, the projection points of the corner point b1 to the side 1, side 2, and side 3 can be determined.

[0088] like Figure 5 As shown, the projection point c1 of the corner point b1 onto the edge 1 can be determined, the projection point c2 of the corner point b1 onto the edge 2 can be determined, and the projection point c3 of the corner point b1 onto the edge 3 can be determined. The same is true for the remaining corner points.

[0089] Furthermore, if there are multiple corner points in the second obstacle shape, in a possible implementation, for example, the distance between the first corner point and each corner point in the second obstacle shape may be obtained.

[0090] For example, you can refer to Figure 6 To understand, assume that the second obstacle shape A includes 3 corner points, namely Figure 5 As shown in the corner points a1, a2, and a3, and assuming that the bottom corner point b1 of the first obstacle shape B is currently used as an example for introduction, the distance between each corner point in the second obstacle shape can be determined from the corner point b1.

[0091] like Figure 6 As shown, the distance between corner point b1 and corner point a1 can be determined, the distance between corner point b1 and corner point a2 can be determined, and the distance between corner point b1 and corner point a3 can be determined. The same is true for the remaining corner points.

[0092] S303: Determine a side to be selected in the second obstacle shape according to the projection points of the first corner point corresponding to each side in the second obstacle shape; wherein the projection point of the first corner point corresponding to the side to be selected is located on the side to be selected.

[0093] After determining the projection points of the first corner point corresponding to each side in the second obstacle shape, the side to be selected can be determined in the second obstacle shape based on the projection points determined above. The side to be selected in this embodiment means that the projection point of the first corner point corresponding to the side to be selected is located on the side to be selected, that is, it does not exceed the length of the side.

[0094] For example, Figure 5 In the example, the projection point c1 of the corner point b1 to edge 1 is on edge 1, the projection point c2 of the corner point b1 to edge 2 is on edge 2, and the projection point c3 of the corner point b1 to edge 3 is on edge 3. Then we can determine Figure 5 In the example, edges 1, 2, and 3 are all edges to be selected.

[0095] For example, combining Figure 7 The example of the variable length is as follows: Figure 7 As shown, assuming that the rightmost corner point b2 of the first obstacle shape B is taken as an example, the projection point c4 of the corner point b2 to the edge 1 can be determined, the projection point c5 of the corner point b2 to the edge 2 can be determined, and the projection point c6 of the corner point b2 to the edge 3 can be determined.

[0096] Reference Figure 7 It can be determined that the projection point c4 of the corner point b2 to edge 1 is on edge 1, the projection point c5 of the corner point b2 to edge 2 is on the extension line of edge 2 (that is, it exceeds the length of edge 2), and the projection point c6 of the corner point b2 to edge 3 is on the extension line of edge 3 (that is, it exceeds the length of edge 3). Figure 7 In the example, edge 1 is the edge to be selected.

[0097] It is also understandable that, in a possible implementation, it is also possible that the projection points of the first corner point corresponding to each side in the second obstacle shape all exceed the variable length. In this case, it can be determined that there is no side to be selected.

[0098] S304: Determine a target edge among the edges to be selected, wherein, among the edges to be selected, the projection distance between the first corner point and the target edge is the shortest.

[0099] After determining the candidate edges, a target edge can be determined from the candidate edges. In this embodiment, the target edge is the edge whose projection distance of the first corner point is closest among the candidate edges. Specifically, the target edge is the edge whose projection distance between the first corner point and the target edge is the shortest among the candidate edges.

[0100] For example, you can refer to Figure 5 To understand, based on the above introduction, it can be determined that Figure 5 In the example, the edges 1, 2, and 3 in the second obstacle shape A are all candidates, and the candidate edge with the closest projection distance of the first corner point is determined as the target edge. Figure 5 It can be determined that the projection distance between the first corner point b1 and edge 3 is the shortest, so edge 3 can be determined as the edge to be selected.

[0101] For example, Figure 7 In the example, based on the above introduction, it can be determined that Figure 7 In the example, edge 1 in the second obstacle shape A is the candidate edge. Since there is only one candidate edge, the candidate edge with the closest projection distance of the first corner point is determined as the target edge. In other words, edge 1 of the candidate edge is directly determined as the target edge.

[0102] S305 . Determine a target corner point in the second obstacle shape based on the distances between the first corner point and each corner point in the second obstacle shape; among the multiple corner points in the second obstacle shape, the distance between the first corner point and the target corner point is the shortest.

[0103] And the distances between the first corner point and each corner point in the second obstacle shape are determined as described above, and then, for example, the target corner point can be determined in the second obstacle shape based on each of the distances, wherein, among the multiple corner points of the second obstacle shape, the distance between the first corner point and the target corner point is the shortest.

[0104] That is to say, the corner point closest to the first corner point among the corner points of the second obstacle shape is determined as the target corner point.

[0105] For example, you can refer to Figure 6 To understand the example, Figure 6 In the example, the distances between the first corner point b1 and the three corner points a1, a2, and a3 of the second obstacle shape A1 are determined, and the closest one is determined as the target corner point. Figure 6 , the corner point a1 can be determined as the target corner point.

[0106] S306: Obtain a first distance between the first corner point and the target edge, and a second distance between the first corner point and the target corner point.

[0107] After the target edge and target corner point are determined as described above, the first distance between the first corner point and the target edge can be obtained. The first distance here is actually the projection distance introduced above, and the second distance between the first corner point and the target corner point can be obtained.

[0108] The target point to be searched can then be determined based on the first distance and the second distance.

[0109] S307 : When the first distance is less than or equal to the second distance, determine the projection point corresponding to the target edge as the target point.

[0110] In a possible implementation, if it is determined that the first distance is less than or equal to the second distance, the projection point of the first corner point described above on the target edge may be determined as the target point.

[0111] S308: When the first distance is greater than the second distance, determine the target corner point as the target point.

[0112] In another possible implementation, if it is determined that the first distance is greater than the second distance, the target corner point described above may be determined as the target point.

[0113] For example, Figure 5 and Figure 6 In the example of the first corner point b1, the first distance between the first corner point b1 and the target edge 3 can be determined, and the second distance between the first corner point b1 and the target corner point a1 can be determined. Then, combined with Figure 5 and Figure 6It can be determined that the first distance is smaller than the second distance, so it can be determined that the projection point c3 from the first corner point b1 to the target edge 3 is the target point.

[0114] It can be understood that the implementation method of the target point introduced above is for the implementation method when there are points to be selected. Based on the above introduction, it can be determined that when determining the sides to be selected based on the projection points of the first corner point corresponding to each side in the second obstacle shape, there may be no sides to be selected.

[0115] It can be understood that since there is no edge to be selected, there is naturally no target edge. Therefore, in this case, for example, the target corner point can be directly determined as the target point.

[0116] S309: Obtain the average coordinates of the coordinates of the target point and the coordinates of the first corner point.

[0117] After determining the target point, the coordinates of the target point and the first corner point can be obtained, and then the average coordinates of the target point and the first corner point can be determined based on the coordinates of the target point and the first corner point.

[0118] Here, it is necessary to explain the coordinate systems corresponding to the coordinates of the target point and the coordinates of the first corner point. Since the polygonal outline of the obstacle may be defined in the geodetic coordinate system, and the obstacle itself may have translational and rotational motions, resulting in different values ​​of the polygon corner points, the obstacle shape must be converted to the local coordinate system of the current vehicle before processing.

[0119] Therefore, after detecting the first obstacle shape, for example, the first obstacle shape can be first converted to the local coordinate system and then subsequently processed. Therefore, the coordinates of the target point and the coordinates of the first corner point in this embodiment are both located in the local coordinate system of the vehicle, and the data processing is also completed in the local coordinate system.

[0120] S310: Determine the corner point corresponding to the average coordinate as the first updated corner point.

[0121] After obtaining the average coordinates of the target point and the first corner point, the corner point corresponding to the average coordinates can be determined as the first updated corner point. It can be understood that the first updated corner point is the updated corner point corresponding to the first corner point.

[0122] The above introduction is about the implementation of determining the corresponding updated corner point for any first corner point among the first obstacle corner points in the first obstacle shape. The above operation is performed on each corner point among the first obstacle corner points, so that multiple updated corner points corresponding to multiple first obstacle corner points can be determined.

[0123] S311: Update corner points in the second obstacle shape according to the first obstacle shape to obtain second updated corner points corresponding to each corner point in the second obstacle shape.

[0124] The above describes how to determine the first updated corner points corresponding to each corner point in the first obstacle shape. Correspondingly, the corner points in the second obstacle shape can also be updated based on the first obstacle shape to obtain the second updated corner points corresponding to each corner point in the second obstacle shape. The specific implementation is similar to the above-described method for determining the first updated corner points and will not be further described here.

[0125] The multiple updated corner points in this embodiment include: first updated corner points corresponding to each corner point in the first obstacle shape, and second updated corner points corresponding to each corner point in the second obstacle shape.

[0126] It's important to note that in the example illustrated above, the second obstacle shape A has three corner points, while the first obstacle shape B has four. If the second obstacle shape A is updated using the first obstacle shape B as a reference, based on the update process described above, the top corner of the second obstacle shape A will not be "attracted" upwards and may even be "attracted" downwards, resulting in shape degradation. Furthermore, the updated second obstacle shape A' will only have three corner points, failing to reflect the shape changes of the individual corner points of the first obstacle shape B.

[0127] Therefore, this embodiment includes both a forward update process for updating the corner points of the second obstacle shape A using the first obstacle shape B as a reference, and a reverse update process for updating the corner points of the first obstacle shape B using the second obstacle shape A as a reference. This ensures that the updated corner points obtained after the update process effectively reflect the average shape of the first and second obstacle shapes.

[0128] S312. Determine a target obstacle shape output at the current moment based on the multiple updated corner points. The target obstacle shape is used for the vehicle to perform autonomous driving.

[0129] After updating each corner point in the first obstacle shape and each corner point in the second obstacle shape and determining a plurality of updated corner points, the target obstacle shape output at the current moment can be determined based on the plurality of updated corner points.

[0130] In a possible implementation, for example, a shape formed by multiple updated corner points may be determined as the target obstacle shape.

[0131] For example, a preset algorithm for determining polygons based on corner points (such as Andrew's two-dimensional convex hull algorithm or α-shape algorithm) may be used to process multiple updated corner points to obtain the shape of the target obstacle.

[0132] Alternatively, it can be understood that the method in this embodiment performs processing based on the average polygon shape output at the previous moment and the polygon shape collected at the current moment, determines the average polygon shape at the current moment, and continuously performs recursive processing.

[0133] Furthermore, during each processing, both the updated corner points of the first obstacle shape and the updated corner points of the second obstacle shape are determined. The number of updated corner points obtained after each processing is the sum of the number of corner points of the first obstacle shape and the number of corner points of the second obstacle shape. As the recursive processing is repeated, the number of corner points is bound to increase.

[0134] Therefore, since the polygon smoothing process introduced above allows the number of corner points to continue to increase, and contour solving algorithms such as Andrew's two-dimensional convex hull algorithm do not control the fineness or coarseness of the polygon, the polygon after multiple rounds of recursive iterations incorporates the features of each input polygon, the number of corner points continues to increase, the shape is too fine, and the amount of calculation increases. However, such fine polygons are not required in actual applications. Therefore, for example, corner points that are not important for expressing the basic shape can be deleted to reduce the number of corner points.

[0135] Therefore, corresponding to the implementation of determining the shape of the target obstacle described above, in another possible implementation, a first number of multiple updated corner points may be obtained.

[0136] When the first number is less than or equal to the preset threshold, it can be determined that the number of currently updated corner points is not large, so the shape formed by multiple updated corner points can be directly determined as the target obstacle shape. The implementation method is similar to that described above and will not be repeated here.

[0137] Also, when the first number is greater than a preset threshold, it can be determined that the number of current update corner points is too large, so multiple target update corner points can be determined from the multiple update corner points, and the shape formed by the multiple target update corner points can be determined as the target obstacle shape.

[0138] Among them, when determining multiple target update corner points among multiple update corner points, the weight value of the update corner point can be determined according to the side length and angle corresponding to the update corner point; the side length corresponding to the update corner point is the length of the two sides where the update corner point is located, and the angle corresponding to the update corner point is the angle formed by the two sides where the update corner point is located.

[0139] The weight value may be proportional to the side length, and the weight value may be inversely proportional to the angle, that is, the longer the side length corresponding to the corner point and the smaller the angle, the greater the weight corresponding to the corner point.

[0140] For example, you can refer to Figure 8 To understand, Figure 8 The polygonal shape B shown in FIG includes 4 corner points, namely b1, b2, b3, and b4, and 4 sides, namely side 1, side 2, side 3, and side 4. Figure 8 It can be understood that the two edges on both sides of the corner point b3 are edge 2 and edge 3, wherein the lengths of edge 2 and edge 3 are relatively long, and the angle formed by edge 2 and edge 3 is relatively small, so it can be determined that the weight of the corner point b3 is relatively large.

[0141] Furthermore, the two sides of the corner point b1 are side 4 and side 1, and the lengths of side 4 and side 1 are relatively short, and the angle formed by side 4 and side 1 is relatively large, so it can be determined that the weight of corner point b1 is relatively small. The reason is that the longer the sides of the corner point, the smaller the angle corresponding to the corner point, the stronger the representation of the shape of the corner point; and the shorter the sides of the corner point, the larger the angle corresponding to the corner point, the weaker the representation of the shape of the corner point; combined with Figure 8 , where corner point b3 represents the shape of polygon B much more strongly than corner point b1. Therefore, in this embodiment, the weights of corner points are determined based on the lengths and angles of the sides corresponding to the corner points, which can effectively determine the weights of corner points based on their importance to shape representation.

[0142] After the weights of the corner points are determined, multiple target update corner points may be determined from the multiple update corner points based on the weight values ​​of the multiple update corner points.

[0143] For example, multiple update corner points may be sorted in descending order of weight values, and the update corner point with the smallest weight after sorting may be deleted to obtain multiple remaining update corner points.

[0144] If the number of the remaining update corner points is less than or equal to the preset number, the plurality of remaining update corner points are determined as a plurality of target update corner points.

[0145] Alternatively, if the number of remaining update corner points is greater than the preset number, the weight value of each remaining update corner point is re-determined, and based on the re-determined weight value of each remaining update corner point, the above-mentioned operation of "sorting multiple update corner points in descending order of weight value, deleting the update corner point with the smallest weight after sorting, and obtaining multiple remaining update corner points" is repeated until the number of remaining update corner points is less than or equal to the preset number.

[0146] The shape formed by the multiple target updated corner points is then determined as the target obstacle shape. The implementation method is similar to the implementation method of determining the target obstacle shape based on the corner points described above.

[0147] The target obstacle shape in this embodiment can be used for automatic driving of the vehicle. After the target obstacle shape is determined, automatic driving can be performed according to the target obstacle shape.

[0148] The obstacle detection method provided in the disclosed embodiments, when updating each corner point in a first obstacle shape based on a second obstacle shape, determines that the first corner point corresponds to a target edge in the second obstacle shape, where the target edge is the edge on which the projection of the first corner point is located and has the shortest projection distance. The method also determines the target corner point closest to the first corner point. The method then determines a target point between the projection point and the target corner point based on a first distance corresponding to the projection point on the target edge and a second distance corresponding to the target corner point. Furthermore, the method determines the updated corner point corresponding to the first corner point based on the coordinates of the target point and the coordinates of the first corner point. This effectively updates the corner points in the first obstacle shape. Based on the above process, it can be understood that updating the corner points effectively implements averaging. Furthermore, this embodiment includes both a forward and a reverse update process, ensuring that the updated corner points obtained after the update process effectively reflect the average shape of the first and second obstacle shapes. The method then determines the target obstacle shape based on the updated corner points, where the target obstacle shape is the average obstacle shape to be determined. At the same time, when determining the shape of the target obstacle, if the number of updated corner points is determined to be too many, the corner points can be deleted according to the weights of the updated corner points, and then the target obstacle shape is determined based on the updated corner points after deletion. This ensures that the number of corner points of the determined target obstacle shape will not increase due to the increase in the number of iterations, which will cause unnecessary burden on data processing. Therefore, deleting the updated corner points can effectively reduce the amount of data processing and improve the efficiency of average processing.

[0149] Based on the above embodiments, Figure 9 A systematic and complete introduction to the execution process of the obstacle detection method provided by the present disclosure is given. Figure 9 A flowchart of an iterative obstacle detection method according to an embodiment of the present disclosure is provided.

[0150] like Figure 9 As shown, at time t0, the measured first obstacle shape B can be obtained, and the second obstacle shape A output at time t0-1 can be obtained. It can be understood that the second obstacle shape A is actually the average obstacle shape at historical moments.

[0151] Afterwards, a coordinate system transformation is performed on the first obstacle shape B, and the first obstacle shape B is converted to the local coordinate system. Then, the corner points of B can be updated with reference to the second obstacle shape A, and the corner points of A can be updated with reference to the first obstacle shape B, thereby obtaining multiple updated corner points. The specific implementation of updating the corner points can refer to the introduction of the above embodiment and will not be repeated here.

[0152] After obtaining multiple updated corner points, the polygon solving algorithm can be used to obtain the target obstacle shape. Based on the above introduction, it can be determined that in order to avoid an increasing number of corner points as the iteration proceeds, the number of corner points can also be limited. That is to say, when the number of corner points is large, the corner points are deleted according to the weight of each corner point, and then the second obstacle shape A is determined based on the updated corner points after deletion.

[0153] It can be understood that the second obstacle shape A is actually the target obstacle shape output at time t0, which can be used as a reference for the vehicle to perform autonomous driving.

[0154] Next, the second obstacle shape A determined at time t0 is used as input at the next time, that is, time t1. The above process is repeated to determine the second obstacle shape at time t1. The above process is repeated iteratively, thereby realizing the exponential moving average calculation of the polygon over time, forming a recursive smoothing algorithm.

[0155] In summary, the obstacle detection method provided by the present disclosure can provide a smoothing algorithm for polygon shapes in time series, which can perform fast weighted average calculations on polygons with any number of corner points, solving the problem of 2D outer contour jumps of obstacles, as well as other problems such as complex calculations and weak time execution of other algorithms.

[0156] Specifically, compared with extended target tracking, first, it has no requirements on shape and no need to pre-assume the model. In theory, it is applicable to both convex and non-convex polygons. Second, it avoids the Fourier polynomial approximation of star-convex-polygon in extended target tracking, does not require the calculation of high-dimensional covariance matrix, and has simple update steps. It does not require the use of original point clouds or pseudo-measurements, and does not require the assumption of observation models.

[0157] Furthermore, compared to particle filtering, it avoids the Monte Carlo method in particle filtering and does not require sampling a large number of particles. Therefore, it can simply and effectively avoid sudden changes in the shape of obstacles.

[0158] Figure 10 FIG. 1 is a schematic diagram of the structure of the obstacle detection device according to an embodiment of the present disclosure. Figure 10As shown, the obstacle detection device 1000 of this embodiment may include: an acquisition module 1001 , a processing module 1002 , and a determination module 1003 .

[0159] An acquisition module 1001 is configured to acquire a first obstacle shape of an obstacle detected by a vehicle at a current moment, and a second obstacle shape of an obstacle output by the vehicle at a previous moment;

[0160] A processing module 1002 is configured to update corner points in the first obstacle shape and the second obstacle shape according to the first obstacle shape and the second obstacle shape, respectively, to obtain a plurality of updated corner points;

[0161] The determination module 1003 is used to determine the target obstacle shape output at the current moment based on the multiple updated corner points, and the target obstacle shape is used for the vehicle to perform automatic driving.

[0162] In a possible implementation, the processing module 1002 is specifically configured to:

[0163] updating corner points in the first obstacle shape according to the second obstacle shape to obtain first updated corner points corresponding to each corner point in the first obstacle shape;

[0164] updating corner points in the second obstacle shape according to the first obstacle shape to obtain second updated corner points corresponding to each corner point in the second obstacle shape;

[0165] The multiple updated corner points include: first updated corner points corresponding to each corner point in the first obstacle shape, and second updated corner points corresponding to each corner point in the second obstacle shape.

[0166] In a possible implementation, for any first corner point among the first obstacle corner points, the processing module 1002 is specifically configured to:

[0167] Obtaining projection points of the first corner point corresponding to each side of the second obstacle shape, and distances between the first corner point and each corner point in the second obstacle shape;

[0168] determining a target point in the second obstacle shape based on projection points of the first corner point corresponding to respective edges in the second obstacle shape and distances between the first corner point and respective corner points in the second obstacle shape;

[0169] The first updated corner point is determined according to the coordinates of the target point and the coordinates of the first corner point.

[0170] In a possible implementation, the processing module 1002 is specifically configured to:

[0171] Determining a side to be selected in the second obstacle shape according to the projection points of the first corner point corresponding to each side in the second obstacle shape; wherein the projection points of the first corner point corresponding to the side to be selected are located on the side to be selected;

[0172] Determining a target edge among the edges to be selected, wherein, among the edges to be selected, a projection distance between the first corner point and the target edge is the shortest;

[0173] determining a target corner point in the second obstacle shape based on the distances between the first corner point and each corner point in the second obstacle shape; wherein the distance between the first corner point and the target corner point is the shortest among the multiple corner points in the second obstacle shape;

[0174] Obtaining a first distance between the first corner point and the target edge, and a second distance between the first corner point and the target corner point;

[0175] The target point is determined in the second obstacle shape according to the first distance and the second distance.

[0176] In a possible implementation, the processing module 1002 is specifically configured to:

[0177] When the first distance is less than or equal to the second distance, determining the projection point corresponding to the target edge as the target point; or,

[0178] When the first distance is greater than the second distance, the target corner point is determined as the target point.

[0179] In one possible implementation, if it is determined that no edge to be selected exists in the second obstacle shape based on the projection points of the first corner point corresponding to each edge in the second obstacle shape, the determining module 1003 is further configured to:

[0180] The target corner point is determined as the target point.

[0181] In a possible implementation, the processing module 1002 is specifically configured to:

[0182] Obtaining average coordinates of the coordinates of the target point and the coordinates of the first corner point;

[0183] The corner point corresponding to the average coordinate is determined as the first updated corner point.

[0184] In a possible implementation, the determining module 1003 is specifically configured to:

[0185] A shape formed by the multiple updated corner points is determined as the target obstacle shape.

[0186] In a possible implementation, the determining module 1003 is specifically configured to:

[0187] Obtaining a first number of the plurality of updated corner points;

[0188] When the first number is less than or equal to a preset threshold, determining a shape formed by the multiple updated corner points as the target obstacle shape;

[0189] When the first number is greater than the preset threshold, a plurality of target update corner points are determined from the plurality of update corner points, and a shape formed by the plurality of target update corner points is determined as the target obstacle shape.

[0190] In a possible implementation, the determining module 1003 is specifically configured to:

[0191] Determine a weight value of the updated corner point according to the side length and angle corresponding to the updated corner point; the side length corresponding to the updated corner point is the length of the two sides where the updated corner point is located, and the angle corresponding to the updated corner point is the angle formed by the two sides where the updated corner point is located;

[0192] The plurality of target update corner points are determined from the plurality of update corner points according to the weight values ​​of the plurality of update corner points.

[0193] In a possible implementation, the determining module 1003 is specifically configured to:

[0194] Sorting the multiple update corner points in descending order of weight values, deleting the update corner point with the smallest weight after sorting, to obtain multiple remaining update corner points;

[0195] If the number of the remaining update corner points is less than or equal to a preset number, the plurality of remaining update corner points are determined as the plurality of target update corner points; or,

[0196] If the number of the remaining update corner points is greater than the preset number, the weight value of each of the remaining update corner points is re-determined, and based on the re-determined weight value of each of the remaining update corner points, the above-mentioned operation of deleting the update corner point with the smallest weight is repeated until the number of the remaining update corner points is less than or equal to the preset number.

[0197] In a possible implementation, the processing module 1002 is further configured to:

[0198] After determining a target obstacle shape corresponding to the first obstacle shape according to the multiple updated corner points, automatic driving is performed according to the target obstacle shape.

[0199] The present disclosure provides an obstacle detection method and device, which are applied to the field of autonomous driving in the field of data processing, so as to avoid the polygonal shape of obstacles from jumping, thereby improving the stability of autonomous driving.

[0200] It should be noted that the head model in this embodiment is not a head model for a specific user and cannot reflect the personal information of a specific user. It should be noted that the two-dimensional face image in this embodiment comes from a public data set.

[0201] In the technical solutions disclosed herein, the collection, storage, use, processing, transmission, provision and disclosure of user personal information involved comply with the provisions of relevant laws and regulations and do not violate public order and good morals.

[0202] According to an embodiment of the present disclosure, the present disclosure also provides an electronic device, a readable storage medium, and a computer program product.

[0203] According to an embodiment of the present disclosure, the present disclosure also provides a computer program product, which includes: a computer program, the computer program is stored in a readable storage medium, at least one processor of an electronic device can read the computer program from the readable storage medium, and at least one processor executes the computer program so that the electronic device executes the solution provided by any of the above embodiments.

[0204] Figure 11 A schematic block diagram of an example electronic device 1100 that can be used to implement embodiments of the present disclosure is shown. The electronic device is intended to represent various forms of digital computers, such as laptop computers, desktop computers, workstations, personal digital assistants, servers, blade servers, mainframe computers, and other suitable computers. The electronic device can also represent various forms of mobile devices, such as personal digital assistants, cellular phones, smartphones, wearable devices, and other similar computing devices. The components shown herein, their connections and relationships, and their functions are provided as examples only and are not intended to limit the implementation of the present disclosure described and / or claimed herein.

[0205] like Figure 11 As shown, the device 1100 includes a computing unit 1101, which can perform various appropriate actions and processes according to a computer program stored in a read-only memory (ROM) 1102 or a computer program loaded from a storage unit 1108 into a random access memory (RAM) 1103. Various programs and data required for the operation of the device 1100 can also be stored in the RAM 1103. The computing unit 1101, the ROM 1102, and the RAM 1103 are connected to each other via a bus 1104. An input / output (I / O) interface 1105 is also connected to the bus 1104.

[0206] Various components in device 1100 are connected to I / O interface 1105, including an input unit 1106, such as a keyboard and mouse; an output unit 1107, such as various types of displays and speakers; a storage unit 1108, such as a magnetic disk and optical disk; and a communication unit 1109, such as a network card, a modem, a wireless communication transceiver, etc. Communication unit 1109 allows device 1100 to exchange information / data with other devices via a computer network such as the Internet and / or various telecommunication networks.

[0207] Computing unit 1101 can be any general-purpose and / or specialized processing component with processing and computing capabilities. Some examples of computing unit 1101 include, but are not limited to, a central processing unit (CPU), a graphics processing unit (GPU), various specialized artificial intelligence (AI) computing chips, various computing units running machine learning model algorithms, a digital signal processor (DSP), and any suitable processor, controller, microcontroller, etc. Computing unit 1101 performs the various methods and processes described above, such as the obstacle detection method. For example, in some embodiments, the obstacle detection method may be implemented as a computer software program tangibly embodied in a machine-readable medium, such as storage unit 1108. In some embodiments, part or all of the computer program may be loaded and / or installed onto device 1100 via ROM 1102 and / or communication unit 1109. When the computer program is loaded into RAM 1103 and executed by computing unit 1101, one or more steps of the obstacle detection method described above may be performed. Alternatively, in other embodiments, the computing unit 1101 may be configured to execute the obstacle detection method in any other appropriate manner (eg, by means of firmware).

[0208] Various embodiments of the systems and techniques described above can be implemented in digital electronic circuit systems, integrated circuit systems, field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), application specific standard products (ASSPs), system-on-chip systems (SOCs), complex programmable logic devices (CPLDs), computer hardware, firmware, software, and / or combinations thereof. These various embodiments can include being implemented in one or more computer programs that are executable and / or interpreted on a programmable system that includes at least one programmable processor, which can be a special purpose or general purpose programmable processor that can receive data and instructions from a storage system, at least one input device, and at least one output device, and transmit data and instructions to the storage system, the at least one input device, and the at least one output device.

[0209] The program code for implementing the method of the present disclosure can be written in any combination of one or more programming languages. These program codes can be provided to a processor or controller of a general-purpose computer, a special-purpose computer, or other programmable data processing device so that when the program code is executed by the processor or controller, the functions / operations specified in the flow chart and / or block diagram are implemented. The program code can be executed entirely on the machine, partially on the machine, as a stand-alone software package, partially on the machine and partially on a remote machine, or entirely on a remote machine or server.

[0210] In the context of the present disclosure, a machine-readable medium can be a tangible medium that can contain or store a program for use by or in conjunction with an instruction execution system, device or equipment. A machine-readable medium can be a machine-readable signal medium or a machine-readable storage medium. A machine-readable medium can include, but is not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, device or equipment, or any suitable combination of the foregoing. A more specific example of a machine-readable storage medium can include an electrical connection based on one or more lines, a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing.

[0211] To provide interaction with a user, the systems and techniques described herein can be implemented on a computer having: a display device (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor) for displaying information to the user; and a keyboard and pointing device (e.g., a mouse or trackball) through which the user can provide input to the computer. Other types of devices can also be used to provide interaction with the user; for example, the feedback provided to the user can be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback); and input from the user can be received in any form (including acoustic input, voice input, or tactile input).

[0212] The systems and techniques described herein can be implemented in a computing system that includes back-end components (e.g., as a data server), or a computing system that includes middleware components (e.g., an application server), or a computing system that includes front-end components (e.g., a user computer having a graphical user interface or a web browser through which a user can interact with implementations of the systems and techniques described herein), or a computing system that includes any combination of such back-end components, middleware components, or front-end components. The components of the system can be interconnected by any form or medium of digital data communication (e.g., a communication network). Examples of communication networks include a local area network (LAN), a wide area network (WAN), and the Internet.

[0213] A computer system may include a client and a server. The client and server are generally remote from each other and typically interact via a communication network. This client-server relationship is established by computer programs running on the respective computers, establishing a client-server relationship. The server may be a cloud server, also known as a cloud computing server or cloud host, a host product within the cloud computing service ecosystem that addresses the management difficulties and limited scalability of traditional physical hosts and VPS services ("Virtual Private Servers" or simply "VPS"). The server may also be a server in a distributed system or a server integrated with blockchain.

[0214] It should be understood that the various forms of the processes shown above can be used to reorder, add, or delete steps. For example, the steps described in this disclosure can be performed in parallel, sequentially, or in a different order, as long as the desired results of the technical solutions disclosed in this disclosure can be achieved. This is not a limitation herein.

[0215] The above specific embodiments do not constitute a limitation on the scope of protection of this disclosure. Those skilled in the art will appreciate that various modifications, combinations, sub-combinations, and substitutions may be made based on design requirements and other factors. Any modifications, equivalent substitutions, and improvements made within the spirit and principles of this disclosure shall be included within the scope of protection of this disclosure.

Claims

1. An obstacle detection method, comprising: Obtaining a first obstacle shape of an obstacle detected by the vehicle at a current moment and a second obstacle shape of the obstacle output by the vehicle at a previous moment; According to the first obstacle shape and the second obstacle shape, updating corner points in the first obstacle shape and the second obstacle shape respectively to obtain a plurality of updated corner points; The target obstacle shape output at the current moment is determined based on the multiple updated corner points, and the target obstacle shape is used for the vehicle to perform automatic driving.

2. The method according to claim 1, wherein According to the first obstacle shape and the second obstacle shape, updating corner points in the first obstacle shape and the second obstacle shape respectively to obtain multiple updated corner points includes: updating corner points in the first obstacle shape according to the second obstacle shape to obtain first updated corner points corresponding to each corner point in the first obstacle shape; updating corner points in the second obstacle shape according to the first obstacle shape to obtain second updated corner points corresponding to each corner point in the second obstacle shape; The multiple updated corner points include: first updated corner points corresponding to each corner point in the first obstacle shape, and second updated corner points corresponding to each corner point in the second obstacle shape.

3. The method according to claim 2, wherein: For any first corner point in the first obstacle shape; updating the corner points in the first obstacle shape according to the second obstacle shape to obtain first updated corner points corresponding to each corner point in the first obstacle shape, including: Obtaining projection points of the first corner point corresponding to each side of the second obstacle shape, and distances between the first corner point and each corner point in the second obstacle shape; determining a target point in the second obstacle shape based on projection points of the first corner point corresponding to respective edges in the second obstacle shape and distances between the first corner point and respective corner points in the second obstacle shape; The first updated corner point is determined according to the coordinates of the target point and the coordinates of the first corner point.

4. The method according to claim 3, wherein: Determining a target point in the second obstacle shape according to projection points of the first corner point corresponding to each side in the second obstacle shape and distances between the first corner point and each corner point in the second obstacle shape includes: Determining a side to be selected in the second obstacle shape according to the projection points of the first corner point corresponding to each side in the second obstacle shape; wherein the projection points of the first corner point corresponding to the side to be selected are located on the side to be selected; Determining a target edge among the edges to be selected, wherein, among the edges to be selected, a projection distance between the first corner point and the target edge is the shortest; determining a target corner point in the second obstacle shape based on the distances between the first corner point and each corner point in the second obstacle shape; wherein the distance between the first corner point and the target corner point is the shortest among the multiple corner points in the second obstacle shape; Obtaining a first distance between the first corner point and the target edge, and a second distance between the first corner point and the target corner point; The target point is determined in the second obstacle shape according to the first distance and the second distance.

5. The method according to claim 4, wherein Determining the target point in the second obstacle shape according to the first distance and the second distance includes: When the first distance is less than or equal to the second distance, determining the projection point corresponding to the target edge as the target point; or, When the first distance is greater than the second distance, the target corner point is determined as the target point.

6. The method according to claim 4, wherein if it is determined that no edges to be selected exist in the second obstacle shape based on the projection points of the first corner points corresponding to the edges in the second obstacle shape, the method further comprises: The target corner point is determined as the target point.

7. The method according to any one of claims 3 to 6, wherein: Determining the first updated corner point according to the coordinates of the target point and the coordinates of the first corner point includes: Obtaining average coordinates of the coordinates of the target point and the coordinates of the first corner point; The corner point corresponding to the average coordinate is determined as the first updated corner point.

8. The method according to any one of claims 1 to 6, wherein: Determining the target obstacle shape output at the current moment according to the multiple updated corner points includes: A shape formed by the multiple updated corner points is determined as the target obstacle shape.

9. The method according to any one of claims 1 to 6, wherein: Determining the target obstacle shape output at the current moment according to the multiple updated corner points includes: Obtaining a first number of the plurality of updated corner points; When the first number is less than or equal to a preset threshold, determining a shape formed by the multiple updated corner points as the target obstacle shape; When the first number is greater than the preset threshold, a plurality of target update corner points are determined from the plurality of update corner points, and a shape formed by the plurality of target update corner points is determined as the target obstacle shape.

10. The method according to claim 9, wherein: Determining a plurality of target update corner points from the plurality of update corner points comprises: Determine a weight value of the updated corner point according to the side length and angle corresponding to the updated corner point; the side length corresponding to the updated corner point is the length of the two sides where the updated corner point is located, and the angle corresponding to the updated corner point is the angle formed by the two sides where the updated corner point is located; The plurality of target update corner points are determined from the plurality of update corner points according to the weight values ​​of the plurality of update corner points.

11. The method according to claim 10, wherein: Determining the plurality of target update corner points from the plurality of update corner points according to the weight values ​​of the plurality of update corner points comprises: Sorting the multiple update corner points in descending order of weight values, deleting the update corner point with the smallest weight after sorting, to obtain multiple remaining update corner points; If the number of the remaining update corner points is less than or equal to a preset number, determining the plurality of remaining update corner points as the plurality of target update corner points; or, If the number of the remaining update corner points is greater than the preset number, the weight value of each of the remaining update corner points is re-determined, and based on the re-determined weight value of each of the remaining update corner points, the above-mentioned operation of deleting the update corner point with the smallest weight is repeated until the number of the remaining update corner points is less than or equal to the preset number.

12. The method according to any one of claims 1 to 6, 10 to 11, further comprising: after determining the target obstacle shape output at the current moment based on the multiple updated corner points; Automatic driving is performed according to the shape of the target obstacle.

13. An obstacle detection device comprising: an acquisition module, configured to acquire a first obstacle shape of an obstacle detected by the vehicle at a current moment, and a second obstacle shape of the obstacle output by the vehicle at a previous moment; a processing module, configured to update corner points in the first obstacle shape and the second obstacle shape respectively according to the first obstacle shape and the second obstacle shape, to obtain a plurality of updated corner points; A determination module is used to determine the target obstacle shape output at the current moment based on the multiple updated corner points, and the target obstacle shape is used for the vehicle to perform automatic driving.

14. The device according to claim 13, wherein The processing module is specifically used for: updating corner points in the first obstacle shape according to the second obstacle shape to obtain first updated corner points corresponding to each corner point in the first obstacle shape; updating corner points in the second obstacle shape according to the first obstacle shape to obtain second updated corner points corresponding to each corner point in the second obstacle shape; The multiple updated corner points include: first updated corner points corresponding to each corner point in the first obstacle shape, and second updated corner points corresponding to each corner point in the second obstacle shape.

15. The device according to claim 14, wherein For any first corner point in the first obstacle shape, the processing module is specifically configured to: Obtaining projection points of the first corner point corresponding to each side of the second obstacle shape, and distances between the first corner point and each corner point in the second obstacle shape; determining a target point in the second obstacle shape based on projection points of the first corner point corresponding to respective edges in the second obstacle shape and distances between the first corner point and respective corner points in the second obstacle shape; The first updated corner point is determined according to the coordinates of the target point and the coordinates of the first corner point.

16. The device according to claim 15, wherein The processing module is specifically used for: Determining a side to be selected in the second obstacle shape according to the projection points of the first corner point corresponding to each side in the second obstacle shape; wherein the projection points of the first corner point corresponding to the side to be selected are located on the side to be selected; Determining a target edge among the edges to be selected, wherein, among the edges to be selected, a projection distance between the first corner point and the target edge is the shortest; determining a target corner point in the second obstacle shape based on the distances between the first corner point and each corner point in the second obstacle shape; wherein the distance between the first corner point and the target corner point is the shortest among the multiple corner points in the second obstacle shape; Obtaining a first distance between the first corner point and the target edge, and a second distance between the first corner point and the target corner point; The target point is determined in the second obstacle shape according to the first distance and the second distance.

17. The device according to claim 16, wherein The processing module is specifically used for: When the first distance is less than or equal to the second distance, determining the projection point corresponding to the target edge as the target point; or, When the first distance is greater than the second distance, the target corner point is determined as the target point.

18. The apparatus according to claim 16, wherein if it is determined that no edges to be selected exist in the second obstacle shape based on the projection points of the first corner points corresponding to the edges in the second obstacle shape, the determining module is further configured to: The target corner point is determined as the target point.

19. The device according to any one of claims 15 to 18, wherein: The processing module is specifically used for: Obtaining average coordinates of the coordinates of the target point and the coordinates of the first corner point; The corner point corresponding to the average coordinate is determined as the first updated corner point.

20. The device according to any one of claims 13 to 18, wherein: The determining module is specifically configured to: A shape formed by the multiple updated corner points is determined as the target obstacle shape.

21. The device according to any one of claims 13 to 18, wherein: The determining module is specifically configured to: Obtaining a first number of the plurality of updated corner points; When the first number is less than or equal to a preset threshold, determining a shape formed by the multiple updated corner points as the target obstacle shape; When the first number is greater than the preset threshold, a plurality of target update corner points are determined from the plurality of update corner points, and a shape formed by the plurality of target update corner points is determined as the target obstacle shape.

22. The device according to claim 21, wherein The determining module is specifically configured to: Determine a weight value of the updated corner point according to the side length and angle corresponding to the updated corner point; the side length corresponding to the updated corner point is the length of the two sides where the updated corner point is located, and the angle corresponding to the updated corner point is the angle formed by the two sides where the updated corner point is located; The plurality of target update corner points are determined from the plurality of update corner points according to the weight values ​​of the plurality of update corner points.

23. The device according to claim 22, wherein The determining module is specifically configured to: Sorting the multiple update corner points in descending order of weight values, deleting the update corner point with the smallest weight after sorting, to obtain multiple remaining update corner points; If the number of the remaining update corner points is less than or equal to a preset number, determining the plurality of remaining update corner points as the plurality of target update corner points; or, If the number of the remaining update corner points is greater than the preset number, the weight value of each of the remaining update corner points is re-determined, and based on the re-determined weight value of each of the remaining update corner points, the above-mentioned operation of deleting the update corner point with the smallest weight is repeated until the number of the remaining update corner points is less than or equal to the preset number.

24. The apparatus according to any one of claims 13 to 18, 22 to 23, wherein the processing module is further configured to: After determining a target obstacle shape corresponding to the first obstacle shape according to the multiple updated corner points, automatic driving is performed according to the target obstacle shape.

25. An electronic device comprising: at least one processor; as well as a memory communicatively connected to the at least one processor; wherein, The memory stores instructions that can be executed by the at least one processor, and the instructions are executed by the at least one processor to enable the at least one processor to perform the method according to any one of claims 1 to 12.

26. A non-transitory computer-readable storage medium storing computer instructions, wherein: The computer instructions are used to cause the computer to execute the method according to any one of claims 1-12.

27. A computer program product comprising a computer program, which, when executed by a processor, implements the steps of the method according to any one of claims 1 to 12.

Citation Information

Patent Citations

  • Motion state estimation method and motion state estimation apparatus

    CN108985171A

  • Method and Apparatus for Detecting Obstacle

    US20210366155A1