Automatic driving decision method and decision device

By calling multi-frame detection functions in the autonomous driving system, combining multi-frame perception and map output information, the problem of unstable single-frame detection results is solved, the stability and robustness of autonomous driving decisions are improved, and the user experience is improved.

CN118953418BActive Publication Date: 2025-02-11NEOLITHIC HUITONG TECHNOLOGY CO LTD
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202411437579.8
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2024-10-15
Publication Date
2025-02-11
Estimated Expiration
2044-10-15

AI Technical Summary

Technical Problem

In the existing autonomous driving technology, the PnC module may not be able to obtain a better driving strategy based on single-frame detection results, due to the instability and delay of perceived results, as well as jumps near map-related thresholds.

Method used

By calling the multi-frame detection function, N frame perception information and map output information of the autonomous driving object are obtained, N multi-frame detection instances of the multi-frame detection function are constructed, and multi-frame detection use the template function to determine multi-frames when the flag bit is the first value. The decision result is finally determined based on the multi-frame decision result.

Benefits of technology

The decision-making is determined using multi-frame perception and map output information fusion, which improves the stability and robustness of PnC decisions and improves the user experience.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN118953418B_ABST
    Figure CN118953418B_ABST
Patent Text Reader

Abstract

The present application relates to the field of autonomous driving technology, and provides an autonomous driving decision method and decision device. The method calls a multi-frame detection function, obtains N-frame perception information and map output information of an autonomous driving object, constructs N multi-frame detection instances of the multi-frame detection function according to the perception information and map output information of each frame, uses a template function to determine the multi-frame decision result according to the N multi-frame detection instances when the flag bit of the multi-frame detection function is the first value, and finally determines the autonomous driving strategy according to the multi-frame decision result, thereby realizing the decision determination by fusion of multi-frame perception and map output information, improving the stability and robustness of PnC decision, and enhancing the user experience.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of autonomous driving technology, and in particular to an autonomous driving decision-making method and decision-making device. Background Art

[0002] The decision-making planning and control (PnC) module of autonomous driving can process and judge the information output by perception and map, and give a Boolean decision result for specific business needs in each frame. It can design related logic based on the output of these detection functions to achieve a more macro decision, such as whether to use other roads.

[0003] However, due to the instability and delay of perception results, as well as jumps near map-related thresholds, single-frame detection results may be unstable. Making more macro decisions based on these unstable detection results may produce bad results and affect autonomous driving performance. Summary of the invention

[0004] In view of this, an embodiment of the present application provides an autonomous driving decision-making method and a decision-making device to solve the problem in the prior art that the PnC module of autonomous driving may not be able to obtain a better driving strategy based on the decision of a single frame detection result.

[0005] According to a first aspect of an embodiment of the present application, there is provided an autonomous driving decision-making method, comprising:

[0006] Calling a multi-frame detection function, which at least includes a template function and a flag;

[0007] Obtain N frames of perception information and map output information of the autonomous driving object, and construct N multi-frame detection instances of the multi-frame detection function according to the perception information and map output information of each frame, where N is a positive integer;

[0008] Input N multi-frame detection instances and flag values ​​into the template function;

[0009] In response to determining that the value of the flag bit is a first value, determining a multi-frame decision result according to the N multi-frame detection instances;

[0010] Determine the autonomous driving strategy based on multi-frame decision results.

[0011] According to a second aspect of an embodiment of the present application, an automatic driving decision-making device is provided, comprising:

[0012] A function calling module is configured to call a multi-frame detection function, where the multi-frame detection function includes at least a template function and a flag bit;

[0013] an acquisition module, configured to acquire N frames of perception information and map output information of the autonomous driving object, and construct N multi-frame detection instances of the multi-frame detection function according to the perception information and map output information of each frame, where N is a positive integer;

[0014] An input module, configured to input N multi-frame detection instances and flag bit values ​​into the template function;

[0015] A determination module is configured to determine a multi-frame decision result according to N multi-frame detection instances in response to determining that the value of the flag bit is a first value;

[0016] The determination module is also configured to determine the autonomous driving strategy based on the multi-frame decision results.

[0017] Compared with the prior art, the embodiments of the present application have the following beneficial effects: the embodiments of the present application call a multi-frame detection function and obtain N frames of perception information and map output information of the autonomous driving object, construct N multi-frame detection instances of the multi-frame detection function according to the perception information of each frame and the map output information, use a template function to determine the multi-frame decision result according to the N multi-frame detection instances when the flag bit of the multi-frame detection function is the first value, and finally determine the autonomous driving strategy according to the multi-frame decision result, thereby realizing the decision determination by fusing multi-frame perception and map output information, improving the stability and robustness of PnC decisions, and enhancing the user experience. BRIEF DESCRIPTION OF THE DRAWINGS

[0018] In order to more clearly illustrate the technical solutions in the embodiments of the present application, the drawings required for use in the embodiments or the description of the prior art will be briefly introduced below. Obviously, the drawings described below are only some embodiments of the present application. For ordinary technicians in this field, other drawings can be obtained based on these drawings without paying any creative work.

[0019] Figure 1 It is a flow chart of an automatic driving decision-making method provided in an embodiment of the present application.

[0020] Figure 2 It is a flowchart of a method for constructing a target multi-frame detection instance provided in an embodiment of the present application.

[0021] Figure 3 It is a flowchart of a method for determining a multi-frame decision result based on N multi-frame detection instances provided in an embodiment of the present application.

[0022] Figure 4 It is a flowchart of a method for determining a hit multi-frame detection instance in a detection queue using a preset detection strategy provided in an embodiment of the present application.

[0023] Figure 5It is a flowchart of another method for determining a hit multi-frame detection instance in a detection queue using a preset detection strategy provided in an embodiment of the present application.

[0024] Figure 6 It is a schematic diagram of an automatic driving decision-making device provided in an embodiment of the present application.

[0025] Figure 7 It is a schematic diagram of an electronic device provided in an embodiment of the present application. DETAILED DESCRIPTION

[0026] In the following description, specific details such as specific system structures, technologies, etc. are provided for the purpose of illustration rather than limitation, so as to provide a thorough understanding of the embodiments of the present application. However, it should be clear to those skilled in the art that the present application may also be implemented in other embodiments without these specific details. In other cases, detailed descriptions of well-known systems, devices, circuits, and methods are omitted to prevent unnecessary details from obstructing the description of the present application.

[0027] An automatic driving decision-making method and device according to an embodiment of the present application will be described in detail below with reference to the accompanying drawings.

[0028] As mentioned above, due to the instability and delay of perception results, as well as jumps near map-related thresholds, single-frame detection results may be unstable. Making more macro decisions based on these unstable detection results may produce bad results and affect autonomous driving performance.

[0029] In view of this, an embodiment of the present application provides an autonomous driving decision-making method, which calls a multi-frame detection function and obtains N frames of perception information and map output information of the autonomous driving object, constructs N multi-frame detection instances of the multi-frame detection function according to the perception information of each frame and the map output information, and uses a template function to determine the multi-frame decision result according to the N multi-frame detection instances when the flag bit of the multi-frame detection function is the first value. Finally, the autonomous driving strategy is determined according to the multi-frame decision result, thereby realizing the decision determination by fusing multi-frame perception and map output information, improving the stability and robustness of PnC decisions, and enhancing the user experience.

[0030] Figure 1 is a flow chart of an automatic driving decision-making method provided by an embodiment of the present application. Figure 1 As shown, the method comprises the following steps:

[0031] In step S101, a multi-frame detection function is called.

[0032] The multi-frame detection function at least includes a template function and a flag.

[0033] In step S102, N frames of perception information and map output information of the autonomous driving object are obtained, and N multi-frame detection instances of the multi-frame detection function are constructed according to the perception information and map output information of each frame.

[0034] Wherein, N is a positive integer.

[0035] In step S103, N multi-frame detection instances and flag values ​​are input into the template function.

[0036] In step S104, in response to determining that the value of the flag bit is the first value, a multi-frame decision result is determined according to N multi-frame detection instances.

[0037] In step S105, the autonomous driving strategy is determined based on the multi-frame decision results.

[0038] In certain embodiments of the embodiments of the present application, the autonomous driving decision method can be executed by a processing unit. In one example, the processing unit can be a processing unit configured in an autonomous driving object. In some other instances, the processing unit can also be a processing unit configured in a server or cloud, and the autonomous driving object can communicate with the processing unit, send information such as perception information to the processing unit, and receive instructions or information such as autonomous driving strategies from the processing unit. Furthermore, a PnC module can be configured in the processing unit to plan the autonomous driving process and provide strategies.

[0039] Among them, the autonomous driving object can be an object that performs autonomous driving tasks, such as an autonomous driving vehicle, an autonomous driving robot, or other autonomous driving objects, which are not limited here.

[0040] In some implementations, the PnC module may call a multi-frame detection function when making an autonomous driving decision, and the multi-frame detection function includes at least a template function and a flag. The flag is used to indicate whether the multi-frame detection function operates in a multi-frame detection mode or a single-frame detection mode. The value of the flag may be a Boolean value. When the value of the flag is a first value, such as true, the multi-frame detection function may operate in a multi-frame detection mode. On the contrary, when the value of the flag is a second value, such as false, the multi-frame detection function may operate in a single-frame detection mode.

[0041] On the other hand, the PnC module can also obtain N-frame perception information and map output information of the autonomous driving object.

[0042] The perception information can be actively acquired by the autonomous driving object, for example, by using its own perception devices including cameras, laser radar devices, etc., or by using perception devices such as road side units (RSUs) and then transmitted to the autonomous driving object. The perception information includes but is not limited to lane information, obstacle information, traffic light information, and traffic sign information.

[0043] The map output information may be map information acquired by the autonomous driving object, including lane information, obstacle information, traffic light information, traffic sign information, etc. marked in the map.

[0044] In some implementations of the present application, the PnC module can construct N multi-frame detection instances of the multi-frame detection function based on the perception information and map output information of each frame. In one example, the PnC module can obtain the first frame perception information and map output information, and then construct the first multi-frame detection instance of the multi-frame detection function based on the first frame perception information and map output information; then obtain the second frame perception information and map output information, and then construct the second multi-frame detection instance of the multi-frame detection function based on the second frame perception information and map output information, and so on, until the Nth multi-frame detection instance of the multi-frame detection function is constructed.

[0045] In some implementations, the constructed N multi-frame detection instances and the flag values ​​of the multi-frame detection function can be input into the template function. The template function first determines whether the received flag value is the first value, for example, whether it is true. If so, it indicates that the multi-frame detection function needs to work in the multi-frame detection mode. At this time, the template function can determine the multi-frame decision result based on the received N multi-frame detection instances, and determine the driving strategy of the autonomous driving object based on the multi-frame decision result.

[0046] On the other hand, if the template function determines that the value of the received flag is the second value, such as false, it indicates that the multi-frame detection function needs to work in the single-frame detection mode. At this time, the template function can be directly exited, and the perception information and map output information of the current frame can be detected using the single-frame detection function to obtain the detection result, and then the driving strategy can be determined using the detection result.

[0047] According to the technical solution provided in the embodiment of the present application, by calling a multi-frame detection function and obtaining N frames of perception information and map output information of the autonomous driving object, N multi-frame detection instances of the multi-frame detection function are constructed according to the perception information of each frame and the map output information. When the flag bit of the multi-frame detection function is the first value, a template function is used to determine the multi-frame decision result according to the N multi-frame detection instances. Finally, the autonomous driving strategy is determined according to the multi-frame decision result, thereby realizing the decision determination by utilizing the fusion of multi-frame perception and map output information, improving the stability and robustness of PnC decisions, and enhancing the user experience.

[0048] In certain embodiments of the present application, the multi-frame detection function may be a class, for example, recorded as FrameCheckInfo, which inherits from a detection base class, which is recorded as FrameCheckInfoBase. Furthermore, the following properties may be configured in the detection base class FrameCheckInfoBase: the decision result of the current frame, for example, recorded as frame_ans, the timestamp of the current frame frame_time, and the multi-frame decision result frame_final_ans. In some embodiments, the detection base class FrameCheckInfoBase may be configured with the log (LOG) information property of the current frame, for example, recorded as frame_info_sign. Furthermore, the detection base class FrameCheckInfoBase may also be configured with a pure virtual function PrintFrameCheckInfo to print relevant information of the detection base class FrameCheckInfoBase.

[0049] In some implementations, the multi-frame detection function may include detection parameters and return values, which may be configured to be the same as the detection parameters and return values ​​of the corresponding single-frame detection function, except that a flag bit use_multi_frame is additionally added to the multi-frame detection function. The corresponding multi-frame detection function and the single-frame detection function refer to detection functions used to implement the same detection function.

[0050] Some exemplary single-frame detection functions may be a detection function for whether there is no static obstacle in front, recorded as IsMiddleFrontStaticObsClear, a detection function for whether there is no static obstacle in front of the left, recorded as IsLeftFrontStaticObsClear, a detection function for whether there is no static obstacle in front of the right, recorded as IsRightFrontStaticObsClear, a detection function for whether there is no dynamic obstacle on the left, recorded as IsLeftDynamicObsClear, a detection function for whether there is no dynamic obstacle on the right, recorded as IsRightDynamicObsClear, a detection function for whether there is a traffic light in front, recorded as IsFrontHasTrafficLight, a detection function for whether there is a stop sign in front, recorded as IsFrontHasStopSign, Whether there is a crossroad ahead is detected, denoted as IsFrontHasCrossRoad, whether there is an uncrossable boundary ahead is detected, denoted as IsLeftFrontHasRoadBoundary, whether there is an uncrossable boundary ahead is detected, denoted as IsRightFrontHasRoadBoundary, whether there is a curve ahead is detected, denoted as IsFrontHasLaneTurn, and other detection functions that users can customize according to business needs using open interfaces.

[0051] The above detection functions are all defined according to business needs. By processing and judging the information output by perception and map, a Boolean decision result is given for each frame. The output of these detection functions can be combined to design relevant logic to implement a more macro decision, such as whether to borrow a lane. As mentioned above, due to the instability and delay of the perception results, as well as the jumps near the map-related thresholds, the single-frame detection results may be unstable. Making more macro decisions based on these unstable detection results may produce bad results and affect the performance of autonomous driving. In view of this, the embodiment of the present application provides a method for using a multi-frame detection function to fuse multiple single-frame decision results to obtain a more stable and accurate decision result, and then implement an autonomous driving strategy.

[0052] Furthermore, the multi-frame detection function inherits from the detection base class FrameCheckInfoBase. In addition to the attributes frame_ans, frame_time, frame_final_ans and frame_info_sign in the detection base class FrameCheckInfoBase, the multi-frame detection function can also configure attributes related to multi-frame checking. Furthermore, the multi-frame detection function can also configure a pure virtual function PrintFrameCheckInfo for printing relevant information of the multi-frame detection function.

[0053] Figure 2 Schematic diagram of the process of constructing a target multi-frame detection instance provided by the embodiment of the present application. Figure 2 As shown, the method comprises the following steps:

[0054] In step S201, perception information and map output information of the target frame are obtained.

[0055] In step S202, the detection parameters of the multi-frame detection function are called to obtain the target single-frame detection result.

[0056] In step S203, the target single-frame detection result is determined as the current frame decision result of the target multi-frame detection instance.

[0057] The target multi-frame detection instance is any instance among the N multi-frame detection instances.

[0058] When constructing a target multi-frame detection instance, the perception information and map output information of the target frame can be obtained first, and then the detection parameters of the multi-frame detection function can be called to obtain the target single-frame detection result, and the target single-frame detection result can be determined as the current frame decision result of the target multi-frame detection instance. In other words, according to the decision target and the perception information and map output information of the target frame, the corresponding detection parameters in the multi-frame detection function can be called to implement single-frame detection of the perception information and map output information of the target frame, obtain a single-frame detection result, and then use the single-frame detection result as the current frame decision result of the target multi-frame detection instance.

[0059] For example, if the decision target is to detect whether there is a traffic light ahead, the perception information and map output information of the acquired target frame can be used together with the detection parameters of IsFrontHasTrafficLight in the multi-frame detection function to obtain a single-frame detection result of whether there is a traffic light ahead, and then the single-frame detection result can be used as the decision result of this frame of the multi-frame detection instance of the target.

[0060] In certain implementations of the embodiments of the present application, when constructing a target multi-frame detection instance, you can also customize the LOG information of the target multi-frame detection instance, and assign other information updated by the corresponding single-frame detection function to the customized multi-frame inspection-related properties, thereby obtaining the target multi-frame detection instance.

[0061] Figure 3 1 is a flow chart of a method for determining a multi-frame decision result based on N multi-frame detection instances provided in an embodiment of the present application. Figure 3 As shown, the method comprises the following steps:

[0062] In step S301, a detection queue is constructed, and N multi-frame detection instances are added to the detection queue in sequence.

[0063] In step S302, a target multi-frame detection instance set is determined in the detection queue.

[0064] In step S303, a preset detection strategy is used to determine a hit multi-frame detection instance in the target multi-frame detection instance set.

[0065] In step S304, the multi-frame decision result of the multi-frame detection instance is determined to be the multi-frame decision result of the multi-frame detection function, and the current frame timestamp of the multi-frame detection instance is determined to be the timestamp of the multi-frame detection function.

[0066] Among them, in the detection queue, the difference between the timestamp of each multi-frame detection instance arranged in sequence and the current time increases successively, and the multi-frame decision result that hits the multi-frame detection instance is obtained by assigning the decision result of its current frame.

[0067] In some embodiments of the present application, when the template function determines the multi-frame decision result based on N multi-frame detection instances, a detection queue can be first constructed, and the N multi-frame detection instances can be added to the detection queue in sequence. Then, the hit multi-frame detection instance is determined in the detection queue using a preset detection strategy. Finally, the frame_final_ans of the hit multi-frame detection instance is passed into the multi-frame detection function as a return value, as the frame_final_ans of the multi-frame detection function. Furthermore, the frame_time of the hit multi-frame detection instance can also be passed into the multi-frame detection function as a return value, as the frame_time of the multi-frame detection function.

[0068] Among them, N multi-frame detection instances and use_multi_frame can be passed into the template function, and the detection capacity parameter horizon and weight parameter exp_param can also be defined. When the template function is initialized, frame_ans in each multi-frame detection instance can be assigned to frame_final_ans, for example, frame_ans in the target multi-frame detection instance can be assigned to frame_final_ans, and the target multi-frame detection instance is any multi-frame detection instance among the above N multi-frame detection instances. On the other hand, a current time parameter cur_frame_time can also be configured in the template function, and the current time can be copied to the cur_frame_time during initialization.

[0069] When the template function is working, it first determines whether the passed in use_multi_frame is true, if not, it exits the function. On the contrary, if it is true, the passed in N multi-frame detection instances are added to a detection queue in sequence. Among them, the detection queue can be a static double-ended queue frame_check_info_vec_static. Adding N multi-frame detection instances to the detection queue in sequence means that, according to the time sequence, the multi-frame detection instance with the earliest time corresponding to the timestamp of the current frame is first added to frame_check_info_vec_static as the first element of the queue, and the last element of the queue is the multi-frame detection instance with the latest time corresponding to the timestamp of the current frame. In other words, in the detection queue, the difference between the timestamps of each multi-frame detection instance arranged in sequence and the current time increases in sequence.

[0070] In an example, if a double-ended queue includes a total of 5 multi-frame detection instances, FrameCheckInfo1 to FrameCheckInfo5, where the difference between the current frame timestamp of FrameCheckInfo1 to FrameCheckInfo5 and the current time increases successively, that is, FrameCheckInfo5 is the multi-frame detection instance generated first and passed into the template function, and FrameCheckInfo1 is the multi-frame detection instance generated last and passed into the template function, then FrameCheckInfo1 to FrameCheckInfo5 in frame_check_info_vec_static can be arranged in sequence, and FrameCheckInfo5 is the first element of the queue, and FrameCheckInfo1 is the last element of the queue.

[0071] Before adding each multi-frame detection instance to frame_check_info_vec_static in sequence, the template function can first determine whether the frame_check_info_vec_static is empty. If so, the operation of adding each multi-frame detection instance in sequence is directly executed. Otherwise, it is necessary to determine whether the elements in the frame_check_info_vec_static are available.

[0072] In one example, the frame_time of the last element of frame_check_info_vec_static can be obtained, and then the difference between the frame_time of the last element of frame_check_info_vec_static and the current time is determined to be greater than a first preset threshold to determine whether each element is available. The last element of frame_check_info_vec_static is the last multi-frame detection instance added in frame_check_info_vec_static.

[0073] If the difference between the frame_time of the last element of frame_check_info_vec_static and the current time is greater than the first preset threshold, it can be determined that the difference between the frame_time of all elements in frame_check_info_vec_static and the current time is greater than the first preset threshold. At this time, it can be considered that the multi-frame detection instances in frame_check_info_vec_static are unavailable, and the frame_check_info_vec_static is cleared.

[0074] If the difference between the frame_time of the last element of frame_check_info_vec_static and the current time is less than or equal to the first preset threshold, it can be determined in turn whether the difference between the frame_time of the second last element to the first element of frame_check_info_vec_static and the current time is greater than the first preset threshold. If it is determined that the difference between the frame_time of an element and the current time is greater than the first preset threshold, all elements from the element to the first element are deleted in frame_check_info_vec_static. In one example, the first preset threshold can be recorded as kFrameTimeLowLim. The value of the first preset threshold can be determined according to actual needs, and its marking method can also be set according to actual needs, which is not limited here.

[0075] Furthermore, when the template function sequentially adds each multi-frame detection instance to frame_check_info_vec_static, it is also necessary to determine whether frame_check_info_vec_static is full. That is, after adding the target multi-frame detection instance, if it is determined that the number of multi-frame detection instances in frame_check_info_vec_static is greater than the second preset threshold, the first element of frame_check_info_vec_static is removed from frame_check_info_vec_static, and the target multi-frame detection instance is saved at the end of the frame_check_info_vec_static queue.

[0076] That is to say, if the second preset threshold used to characterize the maximum capacity of frame_check_info_vec_static is recorded as kFrameNums, then each time the template function adds a multi-frame detection instance to frame_check_info_vec_static, it needs to determine whether the number of elements in the frame_check_info_vec_static is greater than kFrameNums. If not, the multi-frame detection instance is added directly. If so, the first element in frame_check_info_vec_static needs to be removed and then the multi-frame detection instance is added.

[0077] In an example, if kFrameNums=10, frame_check_info_vec_static currently includes 10 elements, and the template function needs to continue adding multi-frame detection instances to frame_check_info_vec_static. Since the number of elements in frame_check_info_vec_static is 10+1=11 after adding the multi-frame detection instance, which is greater than kFrameNums, it is necessary to remove the first element in frame_check_info_vec_static, and then add the multi-frame detection instance to the end of the queue of frame_check_info_vec_static.

[0078] In this way, it can be ensured that what is saved in frame_check_info_vec_static are the latest multi-frame detection instances whose timestamps are closest to the current time.

[0079] In some implementations, a target multi-frame detection instance set may be determined in the detection queue. The target multi-frame detection instance set refers to the multi-frame detection instance in frame_check_info_vec_static that is required for this detection. In one example, the number M of target multi-frame detection instances may be determined first, and then the M elements in frame_check_info_vec_static starting from the end of the queue may be used as the target multi-frame detection instance set, where M is a positive integer.

[0080] Among them, M can be determined as follows: M=min(clamp(horizon, kMinHorizon, kFrameNums), frame_size), where kMinHorizon is the user-defined minimum detection range, frame_size is the number of elements in the current frame_check_info_vec_static, and clamp is a limit function, which means that when the value of horizon is greater than kMinHorizon and less than kFrameNums, the clamp function outputs the value of the horizon, when the value of horizon is less than or equal to kMinHorizon, the clamp function outputs the value of kMinHorizon, and when the value of horizon is greater than or equal to kFrameNums, the clamp function outputs the value of kFrameNums. min is a minimum value function.

[0081] In this way, the multi-frame detection instance objects used for detection can be flexibly adjusted according to different detection targets, and the decision efficiency and decision cost are fully considered on the basis of improving the decision stability.

[0082] After determining the target multi-frame detection instance set, the preset detection strategy can be used to determine the hit multi-frame detection instance in the target multi-frame detection instance set, and then determine the multi-frame decision result of the hit multi-frame detection instance as the multi-frame decision result of the multi-frame detection function, and determine the current frame timestamp of the hit multi-frame detection instance as the timestamp of the multi-frame detection function. As mentioned above, when the template function is initialized, the frame_ans of each multi-frame detection instance is assigned to frame_final_ans, so the multi-frame decision result of the hit multi-frame detection instance is its current frame decision result.

[0083] Furthermore, after using the multi-frame decision result and current frame timestamp of the hitting multi-frame detection function to update the multi-frame decision result and timestamp of the multi-frame detection function, the multi-frame decision result and current frame timestamp of the hitting multi-frame detection function can also be used to update the multi-frame decision result and current frame timestamp of the last element in the detection queue.

[0084] There are many ways to implement the preset detection strategy, such as determining an experience value strategy based on historical data statistics, using a preset weight algorithm strategy, using other algorithm strategies, etc. The following takes two different preset weight algorithm strategies as examples to introduce the implementation of using the preset detection strategy to determine a hit multi-frame detection instance in the detection queue. It is understandable that the preset detection strategy can be set as needed in actual use, and there is no limitation here.

[0085] In one example, the preset detection strategy may be to perform detection using an exponential weight decreasing algorithm.

[0086] Figure 4 1 is a flow chart of a method for determining a hit multi-frame detection instance in a detection queue using a preset detection strategy provided by an embodiment of the present application. Figure 4 As shown, the method comprises the following steps:

[0087] In step S401, a first score array and a weight array are defined.

[0088] In step S402, the current frame decision results of each multi-frame detection instance in the detection queue are sequentially written into the first score array.

[0089] In step S403, the weight value of each multi-frame detection instance in the detection queue is calculated, and each weight value is written into the weight array in sequence.

[0090] In step S404, a target score is calculated based on the first score array and the weight array, and a calculation decision result is determined based on the target score.

[0091] In step S405, the first score array is traversed sequentially starting from the last element of the first score array, and the first multi-frame detection instance whose current frame decision result is the same as the calculated decision result is determined as a hit multi-frame detection instance.

[0092] The last element of the first score array is the first element in the first score array, and the ordering of elements in the first score array and the weight array is the same as the ordering of each multi-frame detection instance in the detection queue.

[0093] In some implementations, a first score array frame_ans_scores and a weight array frame_ans_weights may be defined to represent a score sequence and a weight sequence, respectively.

[0094] Next, frame_check_info_vec_static can be traversed, and the frame_ans values ​​of each multi-frame detection instance in frame_check_info_vec_static can be written into frame_ans_scores in sequence. In other words, i is used as the sequence number of the currently traversed frame, and the value of the i-th element in frame_ans_scores is the frame_ans value of the i-th element in frame_check_info_vec_static, where i is an integer greater than or equal to 0 and less than N.

[0095] On the other hand, when traversing frame_check_info_vec_static, the weight value of each element obtained by the traversal can also be calculated, and then the calculated weight value is correspondingly saved in frame_ans_weights. The weight value of each element can be calculated by configuring a weight parameter, and configuring the weight parameter to be greater than 0 and less than 1; then determining that the i-th weight value in the weight array is the i+1th power of the weight parameter, where i is an integer greater than or equal to 0 and less than N.

[0096] For example, for the i-th element in frame_check_info_vec_static, its weight value frame_weight can be calculated as pow(exp_param, i+1), where pow is an exponential operation function, pow(exp_param, i+1)=exp_param i+1 If exp_param is set to a number greater than 0 and less than 1, as i increases, the value of frame_weight will decrease in accordance with the trend of the exponential function.

[0097] After completing the traversal of each element in frame_check_info_vec_static and constructing the arrays frame_ans_scores and frame_ans_weights, the target score can be calculated based on the arrays frame_ans_scores and frame_ans_weights, and the calculation decision result can be determined based on the target score.

[0098] The target score can be calculated based on the arrays frame_ans_scores and frame_ans_weights by multiplying the elements with the same serial number in the arrays frame_ans_scores and frame_ans_weights, and adding all the products to obtain the total score sum_scores. At the same time, all the weight values ​​in the array frame_ans_weights are added to obtain the total weight value sum_weights. Finally, the quotient of the total score and the total weight value is taken as the target score final_score.

[0099] Furthermore, since the decision results of the current frame of each multi-frame detection instance are all Boolean values, the decision result of the calculation can be determined according to the target score. In response to determining that the target score is greater than or equal to 0.5, the decision result of the calculation is determined to be the first decision result; in response to determining that the target score is less than 0.5, the decision result of the calculation is determined to be the second decision result. The first decision result is the same as the decision result when the decision result of the current frame of each multi-frame detection instance is true (1), and the second decision result is the same as the decision result when the decision result of the current frame of each multi-frame detection instance is false (0).

[0100] Finally, the hit multi-frame detection instance can be determined according to the calculated decision result. In one example, the first score array can be traversed sequentially starting from the last element of the first score array to determine the first multi-frame detection instance whose current frame decision result is the same as the calculated decision result as the hit multi-frame detection instance.

[0101] For example, if frame_check_info_vec_static includes 5 elements, the values ​​of frame_ans of each element from the end to the head are 01011 respectively, and the target score is 0.6>0.5, so the calculated decision result is 1. At this time, the second last element in frame_check_info_vec_static corresponding to the first 1 in the above 01111 can be used as a hit multi-frame detection instance.

[0102] For another example, if frame_check_info_vec_static still includes 5 elements, the frame_ans values ​​of the elements from the end to the head are 11000 respectively, and the target score is 0.48<0.5, so the calculation decision result is 0. At this time, the third element from the last element in frame_check_info_vec_static corresponding to the first 0 in the above 11000 can be used as the hit multi-frame detection instance. In this way, the exponential weight reduction algorithm can be used to determine the hit multi-frame detection instance in the detection queue.

[0103] In another example, the preset detection strategy may also be to perform detection using a geometric weight algorithm.

[0104] Figure 5 FIG. 1 is a flow chart of another method for determining a hit multi-frame detection instance in a detection queue using a preset detection strategy provided by an embodiment of the present application. Figure 5 As shown, the method comprises the following steps:

[0105] In step S501, a second score array is defined, and the current frame decision results of each multi-frame detection instance in the detection queue are sequentially written into the second score array.

[0106] Among them, the current frame decision results of each multi-frame detection instance are all Boolean values.

[0107] In step S502, in response to determining that the value of at least one element in the second score array is different from the values ​​of other elements, the second last element of the detection queue is determined to be a hit multi-frame detection instance.

[0108] The second last element of the detection queue is the second to last multi-frame detection instance added to the detection queue.

[0109] In step S503, in response to determining that the values ​​of all elements in the second score array are the same, the last element of the detection queue is determined to be a hit multi-frame detection instance.

[0110] The last element of the detection queue is the last multi-frame detection instance added to the detection queue.

[0111] In some embodiments of the present application, a second score array frame_ans_bool may be first defined, frame_check_info_vec_static may be traversed, and the frame_ans values ​​of each multi-frame detection instance in frame_check_info_vec_static may be sequentially written into the frame_ans_bool. That is, taking i as the sequence number of the currently traversed frame, the value of the i-th element in frame_ans_bool is the frame_ans value of the i-th element in frame_check_info_vec_static, and i is an integer greater than or equal to 0 and less than N.

[0112] Since the frame_ans value of each element in frame_check_info_vec_static is a Boolean value, it is possible to determine whether the values ​​of each element of frame_ans_bool are the same, for example, all true (1) or all false (0). If it is determined that the value of at least one element in frame_ans_bool is different from the values ​​of other elements, that is, not all 1 or not all 0, then the second last element of frame_check_info_vec_static can be determined as a hit multi-frame detection instance. It can be understood that the selection of the second last element of frame_check_info_vec_static as the hit multi-frame detection instance is based on the empirical value obtained from the historical data statistics at this stage. Under different detection targets and detection conditions, other suitable elements in frame_check_info_vec_static can be selected as the hit multi-frame detection instance, and there is no limitation here.

[0113] On the other hand, if it is determined that the values ​​of all elements in frame_ans_bool are the same, that is, all 1s or all 0s, then it can be determined that the last element of frame_check_info_vec_static is a hit multi-frame detection instance.

[0114] By adopting the technical solution of the embodiment of the present application and designing a multi-frame detection function, it is possible to determine the driving strategy based on the multi-frame detection results during the PnC process of autonomous driving, thereby improving the stability and robustness of the decision and enhancing the user experience.

[0115] Furthermore, the multi-frame detection function is configured to flexibly set the number of detection frames, which is suitable for decision-making in different situations and has high universality.

[0116] Furthermore, the multi-frame detection function is also configured to determine the decision result by calling a preset detection strategy, and the preset detection strategy can be set and expanded according to actual needs, further improving the adaptability of the solution.

[0117] All the above optional technical solutions can be arbitrarily combined to form optional embodiments of the present application, which will not be described one by one here.

[0118] The following is an embodiment of the device of the present application, which can be used to execute the embodiment of the method of the present application. For details not disclosed in the embodiment of the device of the present application, please refer to the embodiment of the method of the present application.

[0119] Figure 6 Schematic diagram of an automatic driving decision-making device provided in an embodiment of the present application. Figure 6 As shown, the device comprises:

[0120] The function calling module 601 is configured to call a multi-frame detection function, which at least includes a template function and a flag.

[0121] The acquisition module 602 is configured to acquire N frames of perception information and map output information of the autonomous driving object, and construct N multi-frame detection instances of the multi-frame detection function according to the perception information and map output information of each frame, where N is a positive integer.

[0122] The input module 603 is configured to input the N multi-frame detection instances and the value of the flag bit into the template function.

[0123] The determination module 604 is configured to determine a multi-frame decision result according to N multi-frame detection instances in response to determining that the value of the flag bit is the first value.

[0124] The determination module 604 is also configured to determine the autonomous driving strategy according to the multi-frame decision results.

[0125] According to the technical solution provided in the embodiment of the present application, by calling a multi-frame detection function and obtaining N frames of perception information and map output information of the autonomous driving object, N multi-frame detection instances of the multi-frame detection function are constructed according to the perception information of each frame and the map output information. When the flag bit of the multi-frame detection function is the first value, a template function is used to determine the multi-frame decision result according to the N multi-frame detection instances. Finally, the autonomous driving strategy is determined according to the multi-frame decision result, thereby realizing the decision determination by utilizing the fusion of multi-frame perception and map output information, improving the stability and robustness of PnC decisions, and enhancing the user experience.

[0126] In some embodiments, a multi-frame detection function inherits from a detection base class, and the detection base class includes at least the following properties: current frame decision result, current frame timestamp, and multi-frame decision result; the multi-frame detection function includes at least detection parameters and a return value, the detection parameters are used to implement single-frame detection corresponding to the multi-frame detection function, and the return value is the single-frame detection result; constructing a target multi-frame detection instance, including: obtaining perception information and map output information of the target frame; calling the detection parameters of the multi-frame detection function to obtain the target single-frame detection result; determining the target single-frame detection result as the current frame decision result of the target multi-frame detection instance; wherein the target multi-frame detection instance is any one of N multi-frame detection instances.

[0127] In some embodiments, a multi-frame decision result is determined based on N multi-frame detection instances, including: constructing a detection queue, and adding N multi-frame detection instances to the detection queue in sequence; determining a target multi-frame detection instance set in the detection queue; using a preset detection strategy to determine a hit multi-frame detection instance in the target multi-frame detection instance set; determining the multi-frame decision result of the hit multi-frame detection instance as the multi-frame decision result of the multi-frame detection function, and determining the current frame timestamp of the hit multi-frame detection instance as the timestamp of the multi-frame detection function; wherein the difference between the timestamps of each multi-frame detection instance arranged in sequence in the detection queue and the current time increases in sequence, and the multi-frame decision result of the hit multi-frame detection instance is obtained by assigning its current frame decision result.

[0128] In some embodiments, a preset detection strategy is used to determine a hit multi-frame detection instance in a detection queue, including: defining a first score array and a weight array; writing the current frame decision result of each multi-frame detection instance in the detection queue into the first score array in sequence; calculating the weight value of each multi-frame detection instance in the detection queue, and writing each weight value into the weight array in sequence; calculating a target score based on the first score array and the weight array, and determining the calculated decision result based on the target score; traversing the first score array in sequence starting from the last element of the first score array, and determining the first multi-frame detection instance whose current frame decision result is the same as the calculated decision result as the hit multi-frame detection instance; wherein the last element of the first score array is the first element in the first score array, and the ordering method of the elements in the first score array and the weight array is the same as the ordering method of the multi-frame detection instances in the detection queue.

[0129] In some implementations, calculating the weight value of each multi-frame detection instance in the detection queue includes: configuring a weight parameter, the weight parameter being greater than 0 and less than 1; determining the i-th weight value in the weight array to be the i+1th power of the weight parameter, where i is an integer greater than or equal to 0 and less than N.

[0130] In some embodiments, the target score is calculated based on the first score array and the weight array, including: multiplying the elements with the same sequence number in the first score array and the weight array, and adding all the products obtained to obtain a total score; adding all the weight values ​​in the weight array to obtain a total weight value; and taking the quotient of the total score and the total weight value as the target score.

[0131] In some embodiments, the decision results of this frame of each multi-frame detection instance are Boolean values; the decision result is determined based on the target score, including: in response to determining that the target score is greater than or equal to 0.5, determining that the calculated decision result is a first decision result; in response to determining that the target score is less than 0.5, determining that the calculated decision result is a second decision result.

[0132] In some embodiments, a preset detection strategy is used to determine a hit multi-frame detection instance in a detection queue, including: defining a second score array, and writing the current frame decision results of each multi-frame detection instance in the detection queue into the second score array in sequence, wherein the current frame decision results of each multi-frame detection instance are Boolean values; in response to determining that the value of at least one element in the second score array is different from the values ​​of other elements, determining that the second last element of the detection queue is the hit multi-frame detection instance, and the second last element of the detection queue is the second to last multi-frame detection instance added to the detection queue; or in response to determining that the values ​​of all elements in the second score array are the same, determining that the last element of the detection queue is the hit multi-frame detection instance, and the last element of the detection queue is the last multi-frame detection instance added to the detection queue.

[0133] In some embodiments, before adding N multi-frame detection instances to the detection queue in sequence, it also includes: in response to determining that the detection queue is not empty, obtaining the current frame timestamp of the last element of the detection queue, the last element of the detection queue is the last multi-frame detection instance added to the detection queue; in response to determining that the difference between the current frame timestamp of the last element of the detection queue and the current moment is greater than a first preset threshold, clearing the detection queue; when adding N multi-frame detection instances to the detection queue in sequence, it also includes: in response to determining that after adding the target multi-frame detection instance, the number of multi-frame detection instances in the detection queue is greater than a second preset threshold, moving the first element of the detection queue out of the detection queue, and saving the target multi-frame detection instance at the end of the detection queue; wherein, the first element of the detection queue is the first multi-frame detection instance added to the detection queue, and the target multi-frame detection instance is any instance of the N multi-frame detection instances.

[0134] It should be understood that the size of the serial numbers of the steps in the above embodiments does not mean the order of execution. The execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiments of the present application.

[0135] Figure 7 Schematic diagram of an electronic device provided in an embodiment of the present application. Figure 7 As shown, the electronic device 7 of this embodiment includes: a processor 701, a memory 702, and a computer program 703 stored in the memory 702 and executable on the processor 701. When the processor 701 executes the computer program 703, the steps in the above-mentioned method embodiments are implemented. Alternatively, when the processor 701 executes the computer program 703, the functions of the modules / units in the above-mentioned device embodiments are implemented.

[0136] The electronic device 7 may be a desktop computer, a notebook, a PDA, a cloud server, or other electronic device. The electronic device 7 may include, but is not limited to, a processor 701 and a memory 702. Those skilled in the art will appreciate that Figure 7 The electronic device 7 is merely an example and does not limit the electronic device 7 , and may include more or less components than those shown in the figure, or different components.

[0137] The processor 701 may be a central processing unit (CPU), or other general-purpose processors, digital signal processors (DSP), application-specific integrated circuits (ASIC), field-programmable gate arrays (FPGA), or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc.

[0138] The memory 702 may be an internal storage unit of the electronic device 7, for example, a hard disk or memory of the electronic device 7. The memory 702 may also be an external storage device of the electronic device 7, for example, a plug-in hard disk, a smart media card (SMC), a secure digital (SD) card, a flash card, etc. equipped on the electronic device 7. The memory 702 may also include both an internal storage unit and an external storage device of the electronic device 7. The memory 702 is used to store computer programs and other programs and data required by the electronic device.

[0139] Those skilled in the art can clearly understand that for the convenience and simplicity of description, only the division of the above-mentioned functional units and modules is used as an example. In actual applications, the above-mentioned functions can be assigned to different functional units and modules as needed, that is, the internal structure of the device can be divided into different functional units or modules to complete all or part of the functions described above. The functional units and modules in the embodiments can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit. The above-mentioned integrated unit can be implemented in the form of hardware or in the form of software functional units.

[0140] If the integrated module / unit is implemented in the form of a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the present application implements all or part of the processes in the above-mentioned embodiment method, and can also be completed by instructing the relevant hardware through a computer program. The computer program can be stored in a computer-readable storage medium, and the computer program can implement the steps of the above-mentioned various method embodiments when executed by the processor. The computer program may include computer program code, which may be in source code form, object code form, executable file or some intermediate form. The computer-readable medium may include: any entity or device capable of carrying computer program code, recording medium, U disk, mobile hard disk, disk, optical disk, computer memory, read-only memory (ROM), random access memory (RAM), electric carrier signal, telecommunication signal and software distribution medium, etc.

[0141] The above embodiments are only used to illustrate the technical solutions of the present application, rather than to limit them. Although the present application has been described in detail with reference to the aforementioned embodiments, a person skilled in the art should understand that the technical solutions described in the aforementioned embodiments may still be modified, or some of the technical features may be replaced by equivalents. Such modifications or replacements do not deviate the essence of the corresponding technical solutions from the spirit and scope of the technical solutions of the embodiments of the present application, and should be included in the protection scope of the present application.

Claims

1. An automatic driving decision-making method, characterized in that: include: Calling a multi-frame detection function, wherein the multi-frame detection function at least includes a template function and a flag bit; Acquire N frames of perception information and map output information of the autonomous driving object, and construct N multi-frame detection instances of the multi-frame detection function according to the perception information and map output information of each frame, where N is a positive integer; Inputting the N multi-frame detection instances and the value of the flag bit into the template function; In response to determining that the value of the flag bit is a first value, determining a multi-frame decision result according to the N multi-frame detection instances; Determining an autonomous driving strategy according to the multi-frame decision results; The determining the multi-frame decision result according to the N multi-frame detection instances includes: Constructing a detection queue, and sequentially adding the N multi-frame detection instances to the detection queue; Determining a target multi-frame detection instance set in the detection queue; Determine a hit multi-frame detection instance in the target multi-frame detection instance set using a preset detection strategy; Determine that the multi-frame decision result of the hit multi-frame detection instance is the multi-frame decision result of the multi-frame detection function, and determine that the current frame timestamp of the hit multi-frame detection instance is the timestamp of the multi-frame detection function; Among them, the difference between the timestamp of each multi-frame detection instance arranged sequentially in the detection queue and the current time increases successively, and the multi-frame decision result of the hit multi-frame detection instance is obtained by assigning the decision result of its current frame.

2. The method according to claim 1, characterized in that The multi-frame detection function inherits from the detection base class, which includes at least the following properties: The decision result of this frame, the timestamp of this frame and the decision results of multiple frames; The multi-frame detection function at least includes a detection parameter and a return value, wherein the detection parameter is used to implement a single-frame detection corresponding to the multi-frame detection function, and the return value is a single-frame detection result; Construct a target multi-frame detection instance, including: Obtain the perception information and map output information of the target frame; Calling the detection parameters of the multi-frame detection function to obtain the target single-frame detection result; Determine the target single-frame detection result as the current frame decision result of the target multi-frame detection instance; The target multi-frame detection instance is any one of the N multi-frame detection instances.

3. The method according to claim 1, characterized in that The using a preset detection strategy to determine a hit multi-frame detection instance in the target multi-frame detection instance set includes: Define the first score array and weight array; Writing the current frame decision results of each multi-frame detection instance in the detection queue into the first score array in sequence; Calculating the weight value of each multi-frame detection instance in the detection queue, and writing each weight value into the weight array in sequence; Calculate a target score according to the first score array and the weight array, and determine a calculation decision result according to the target score; Starting from the last element of the first score array, the first score array is traversed in sequence, and the first multi-frame detection instance whose current frame decision result is the same as the calculated decision result is determined as the hit multi-frame detection instance; The last element of the first score array is the first element in the first score array, and the ordering of elements in the first score array and the weight array is the same as the ordering of each multi-frame detection instance in the detection queue.

4. The method according to claim 3, characterized in that The calculating the weight value of each multi-frame detection instance in the detection queue includes: Configure a weight parameter, where the weight parameter is greater than 0 and less than 1; Determine that the i-th weight value in the weight array is the i+1th power of the weight parameter, where i is an integer greater than or equal to 0 and less than N.

5. The method according to claim 3, characterized in that: The step of calculating the target score according to the first score array and the weight array includes: Multiply the elements with the same sequence number in the first score array and the weight array, and add all the products obtained to obtain a total score; Adding all weight values ​​in the weight array to obtain a total weight value; The quotient of the total score and the total weight value is taken as the target score.

6. The method according to claim 3, characterized in that The decision results of the current frame of each multi-frame detection instance are all Boolean values; The step of determining a calculation decision result according to the target score includes: In response to determining that the target score is greater than or equal to 0.5, determining that the calculated decision result is a first decision result; In response to determining that the target score is less than 0.5, determining the calculated decision result as a second decision result.

7. The method according to claim 1, characterized in that The using a preset detection strategy to determine a hit multi-frame detection instance in the target multi-frame detection instance set includes: Define a second score array, and write the current frame decision results of each multi-frame detection instance in the detection queue into the second score array in sequence, wherein the current frame decision results of each multi-frame detection instance are all Boolean values; In response to determining that the value of at least one element in the second score array is different from the values ​​of other elements, determining that the second last element of the detection queue is the hit multi-frame detection instance, and the second last element of the detection queue is the second to last multi-frame detection instance added in the detection queue; or In response to determining that the values ​​of all elements in the second score array are the same, determining the last element of the detection queue as the hit multi-frame detection instance, the last element of the detection queue being the last multi-frame detection instance added to the detection queue.

8. The method according to claim 1, characterized in that Before sequentially adding the N multi-frame detection instances to the detection queue, the method further includes: In response to determining that the detection queue is not empty, obtaining a current frame timestamp of a last element of the detection queue, where the last element of the detection queue is a multi-frame detection instance last added to the detection queue; In response to determining that the difference between the current frame timestamp of the last element of the detection queue and the current time is greater than a first preset threshold, clearing the detection queue; When the N multi-frame detection instances are sequentially added to the detection queue, the method further includes: In response to determining that after adding the target multi-frame detection instance, the number of multi-frame detection instances in the detection queue is greater than a second preset threshold, removing the first element of the detection queue from the detection queue, and storing the target multi-frame detection instance at the end of the detection queue; The first element of the detection queue is the first multi-frame detection instance added to the detection queue, and the target multi-frame detection instance is any one of the N multi-frame detection instances.

9. An automatic driving decision-making device, characterized in that: include: A function calling module is configured to call a multi-frame detection function, wherein the multi-frame detection function includes at least a template function and a flag bit; an acquisition module, configured to acquire N frames of perception information and map output information of the autonomous driving object, and construct N multi-frame detection instances of the multi-frame detection function according to the perception information and map output information of each frame, where N is a positive integer; An input module, configured to input the N multi-frame detection instances and the value of the flag bit into the template function; A determination module, configured to determine a multi-frame decision result according to the N multi-frame detection instances in response to determining that the value of the flag bit is a first value; The determination module is further configured to determine an autonomous driving strategy according to the multi-frame decision results; The determination module is specifically configured to: construct a detection queue, add the N multi-frame detection instances to the detection queue in sequence; determine a target multi-frame detection instance set in the detection queue; and determine a hit multi-frame detection instance in the target multi-frame detection instance set using a preset detection strategy; Determine that the multi-frame decision result of the hitting multi-frame detection instance is the multi-frame decision result of the multi-frame detection function, and determine that the current frame timestamp of the hitting multi-frame detection instance is the timestamp of the multi-frame detection function; wherein, the difference between the timestamps of each multi-frame detection instance arranged in sequence in the detection queue and the current time increases successively, and the multi-frame decision result of the hitting multi-frame detection instance is obtained by assigning its current frame decision result.

Citation Information

Patent Citations

  • Passable space dynamic fusion method and device for autonomous vehicle

    CN115482515A