Method and device for determining pose transformation information of target object and computer equipment
By obtaining the point set of target objects and the pose transformation information of the lidar from the target frame point cloud, and calculating the pose transformation information of the target object, the problem of high delay and low accuracy in obtaining the pose transformation information in the prior art is solved, and fast and accurate determination of pose transformation information is achieved.
Patent Information
- Application Number
- CN202311826606.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2023-12-26
- Publication Date
- 2025-06-27
AI Technical Summary
In the prior art, when acquiring the position transformation information of the target object based on two-frame point clouds, the delay is greater and the accuracy is low.
By obtaining the set of points corresponding to the target object from the target frame point cloud, combining the pose transformation information of the lidar at the acquisition time of the target frame point cloud, the pose transformation information of the target object, including the translation speed and rotation angular velocity.
The pose transformation information of the target object is quickly and accurately determined, reducing delays and avoiding the low accuracy problems caused by point cloud registration.
Smart Images

Figure CN120214816A_ABST
Abstract
Description
Technical Field
[0001] This application belongs to the technical field of lidar, and particularly relates to a method, apparatus, and computer device for determining pose transformation information of a target object. Background Art
[0002] Pose transformation information refers to the transformation relationship describing the position and pose of an object in space. For a rigid body, the position change information generally includes two parts: translation and rotation. Among them, translation means that the position of the object in space changes, and rotation means that the pose of the object changes. Pose transformation information plays an important role in fields such as autonomous driving, robotics, and visual recognition.
[0003] Currently, the recognition of target pose transformation information based on lidar point clouds often requires point cloud registration by means of at least two complete frames of point clouds before and after, and then the pose transformation information of the target of interest is obtained based on the registered point clouds. Since the calculation amount in the point cloud registration process is large and the accuracy of point cloud registration is also easily affected by various factors, the accuracy of the obtained pose transformation information of the target of interest is poor and the time consumption is serious.
[0004] Therefore, how to quickly and accurately obtain the pose transformation information of the target of interest based on lidar point clouds has become an urgent technical problem to be solved. Summary of the Invention
[0005] The embodiments of this application provide a method, apparatus, and computer device for determining pose transformation information of a target object, which can solve the technical problems of large delay and low accuracy in obtaining pose transformation information based on two frames of point clouds in the prior art.
[0006] In a first aspect, the embodiments of this application provide a method for determining pose transformation information of a target object, including: obtaining a point set corresponding to the target object from the target frame point cloud, where the target frame point cloud is a frame of point cloud obtained by scanning a target area with a lidar, and the information of each point in the point set includes position information and radial velocity, and the target object is any object in the target area scanned by the target frame point cloud; obtaining the pose transformation information of the lidar at the first moment, where the first moment is the acquisition moment of the target frame point cloud; and determining the pose transformation information of the target object according to the position information and radial velocity of each point in the point set and the pose transformation information of the lidar at the first moment, where the pose transformation information includes translational velocity and rotational angular velocity.
[0007] In the above method, by determining the point set corresponding to the target object from the target frame point cloud, obtaining the pose transformation information of the lidar at the first moment corresponding to the target frame, and finally determining the pose transformation information of the target object according to the position information and radial velocity of each point in the point set and the pose transformation information of the lidar at the first moment. This method can determine the position transformation information of the target object in the point set of a frame of point cloud after obtaining a frame of point cloud, without waiting until the next frame of point cloud is obtained to obtain the position transformation information of the target object, so the delay is small; in addition, since it is not necessary to register two frames of point cloud, the problem of low result accuracy caused by point cloud registration can be avoided. Therefore, the method in the embodiment of the present application can quickly and accurately determine the pose transformation information of the target object.
[0008] In one embodiment, the position transformation information of the lidar at the first moment includes the first translational velocity, and the pose transformation information of the target object includes the second translational velocity. Determining the pose transformation information of the target object according to the position information and radial velocity of each point in the point set and the pose transformation information of the lidar at the first moment includes: decomposing the radial velocity of each point in the point set on the three coordinate axes in the three-axis coordinate system of the lidar to obtain the decomposition velocity of each point on each coordinate axis; determining the average decomposition velocity corresponding to each coordinate axis, and the average decomposition velocity corresponding to each coordinate axis is the average value of the decomposition velocities of all points in the point set on each coordinate axis; determining the second translational velocity according to the average decomposition velocity corresponding to each coordinate axis in the three coordinate axes and the first translational velocity. In this embodiment, the translational velocity of the target object is determined by the decomposition velocities of the radial velocity of each point in the point set on the three coordinate axes in the three-axis coordinate system of the lidar and the average value of the decomposition velocities on each coordinate axis, and the method is simple and easy to implement.
[0009] In one embodiment, the position transformation information of the lidar at the first moment further includes a first rotational angular velocity, and the pose transformation information of the target object further includes a second rotational angular velocity. The method further includes: determining three differential velocities corresponding to each point in the point set, where the first differential velocity is the difference between the decomposition velocity of each point on the first coordinate axis and the average decomposition velocity corresponding to the first coordinate axis, the second differential velocity is the difference between the decomposition velocity of each point on the second coordinate axis and the average decomposition velocity corresponding to the second coordinate axis, and the third differential velocity is the difference between the decomposition velocity of each point on the third coordinate axis and the average decomposition velocity corresponding to the third coordinate axis. The three coordinate axes include the first coordinate axis, the second coordinate axis, and the third coordinate axis; if the proportion of the number of first points in the point set is greater than a second threshold, then determine the first rotational angular velocity as the second rotational angular velocity, and the absolute values of the three differential velocities corresponding to the first points are all less than or equal to a first threshold; or if the proportion of the number of first points in the point set is less than or equal to the second threshold, then determine a third rotational angular velocity according to the three differential velocities corresponding to each point in the point set and the position information of each point in the point set, where the third rotational angular velocity is the rotational angular velocity of the target object relative to the lidar; determine the second rotational angular velocity according to the first rotational angular velocity and the third rotational angular velocity. In this embodiment, according to the difference between the decomposition velocity of the radial velocity of each point on the three coordinate axes of the lidar and the average decomposition velocity on that axis, it is determined whether each point rotates relative to the lidar, and then according to the proportion of the points that rotate in the point set, it is determined whether the target object rotates relative to the lidar, so that it is possible to simply and accurately determine whether the target object rotates relative to the lidar; in two different cases of determining that the target object rotates relative to the lidar and does not rotate relative to the lidar, different methods are respectively used to determine the rotational angular velocity of the target object, and the method is simple and easy to implement.
[0010] In one embodiment, determining the third rotational angular velocity according to the three differential velocities corresponding to each point in the point set and the position information of each point in the point set includes: determining the tangent vector of the plane where the second point is located, where the second point is any point in the point set; decomposing the resultant velocity of the three differential velocities corresponding to the second point onto the tangent vector of the plane where the second point is located to obtain the linear velocity corresponding to the second point. Each point in the point set corresponds to a linear velocity, and the resultant velocity is the vector sum of the three differential velocities; determining the coordinate information of the rotation center of the target object; determining the rotational angular velocity of the second point according to the linear velocity corresponding to the second point, the position information of the second point, and the coordinate information of the rotation center of the target object. Each point in the point set corresponds to a rotational angular velocity; taking the average value of the rotational angular velocities corresponding to all points in the point set as the third rotational angular velocity. In this embodiment, when determining the third rotational angular velocity of the target object rotating relative to the lidar, the component of the resultant velocity of the three differential velocities corresponding to each point in the point set on the tangent vector of the plane where each point is located is used as the linear velocity; then, based on the determined coordinate information of the rotation center of the target object, the linear velocity corresponding to each point, and the position information of each point, the rotational angular velocity of each point is determined; finally, the average value of the rotational angular velocities corresponding to all points in the point set is taken as the third rotational angular velocity. The determination method of the linear velocity is very simple, and the third rotational angular velocity is the average value of the rotational angular velocities corresponding to all points in the point set. Therefore, the third rotational angular velocity takes into account each point corresponding to the target object, avoiding the influence of a single point on the third rotational angular velocity and ensuring that the third rotational angular velocity has a high accuracy.
[0011] In one embodiment, determining the tangent vector of the plane where the second point is located includes: determining the distance between each point in the point set other than the second point and the second point; determining a third point and a fourth point from the point set, where the second point, the third point, and the fourth point are not on the same straight line, the distance between the third point and the second point is less than or equal to a third threshold, and the distance between the fourth point and the second point is less than or equal to the third threshold; determining the normal vector of the plane where the second point is located according to the position information of the second point, the position information of the third point, and the position information of the fourth point. The plane where the second point is located is the plane determined by the second point, the third point, and the fourth point; determining the tangent vector according to the direction vector in the vertical direction and the normal vector. In this embodiment, for each point, the plane determined by the point and two other points that are relatively close to the point and not collinear in the point set is used as the plane where the point is located, and then the tangent vector of the plane where the point is located is determined. Three points that are relatively close and not collinear can determine a small plane, and the fitting degree of the small plane with the actual plane where the point is located is relatively high. Therefore, the result is relatively accurate, and the calculation method is simple and easy to implement.
[0012] In one embodiment, the position information of each point in the point set includes coordinate information. Determining the coordinate information of the rotation center of the target object includes: determining the rotation radius of the second point according to the coordinate information of the first rotation center and the coordinate information of the second point, where the first rotation center is any one of a plurality of preset rotation centers; determining the rotational angular velocity of the second point according to the rotation radius of the second point and the linear velocity of the second point, and each point in the point set corresponds to a rotational angular velocity; determining the average rotational angular velocity as the average value of the rotational angular velocities corresponding to each point in the point set; determining the error term corresponding to the first rotation center, where the error term is determined according to the deviation value between the rotational angular velocity corresponding to each point in the point set and the average rotational angular velocity, and each rotation center of the plurality of rotation centers corresponds to an error term; determining the coordinate information of the rotation center of the target object as the coordinate information of the rotation center corresponding to the smallest error term among the plurality of rotation centers. In this embodiment, by presetting a plurality of different rotation centers and calculating the error term corresponding to each rotation center, the rotation center with the smallest error term is determined as the rotation center of the target object; among them, the rotation center corresponding to the smallest error term is the closest to the actual rotation center of the target object, so it is determined as the rotation center of the target object for relevant calculations, making the accuracy of the final result relatively high; in addition, by calculating through a plurality of preset rotation centers, the process of determining the rotation center of the target object is simple and fast.
[0013] In one embodiment, the error term corresponding to the first rotation center satisfies the following conditions:
[0014]
[0015] In the formula: ε1 represents the error term of the first rotation center, n represents the number of points in the point set, ω i represents the rotational angular velocity corresponding to the i-th point in the point set, represents the average rotational angular velocity. In this embodiment, the error term is determined by summing the squares of the differences between the calculated rotational angular velocity of each point and the average rotational angular velocity, that is, the error term is determined in the form of calculating the standard deviation, which can well measure the difference between the rotational angular velocities of all points in the point set and the actual rotational angular velocity of the target object.
[0016] In one embodiment, the method further includes: determining an error function, where the independent variable of the error function includes the three-dimensional coordinates of the rotation center, and the dependent variable of the error function is an error term; taking the partial derivatives of the error function with respect to the three-dimensional coordinates respectively to obtain three first-order derivatives of the error function; and determining the coordinate information of each rotation center among a plurality of preset rotation centers according to the three first-order derivatives. In this embodiment, the plurality of preset rotation centers are determined by the error function, so that the plurality of preset rotation centers are all as close as possible to the actual rotation center of the target object, ensuring the accuracy of the rotation center of the target object determined subsequently.
[0017] In one embodiment, the error function is shown as the following formula:
[0018]
[0019] where: ε represents the error term, n represents the number of points in the point set, v' i represents the linear velocity of the i-th point in the point set, x i , y i and z i represent the three-dimensional coordinate information of the i-th point in the point set, and x, y, and z represent the three-dimensional coordinate information of the rotation center.
[0020] In a second aspect, an embodiment of the present application provides an apparatus for determining pose transformation information of a target object, where the apparatus includes units for performing each step of the method described in any one of the above first aspects.
[0021] In a third aspect, an embodiment of the present application provides a computer device, including a memory, a processor, and a computer program stored in the memory and executable on the processor, where the processor implements the method described in any one of the above first aspects when executing the computer program.
[0022] In a fourth aspect, an embodiment of the present application provides a computer-readable storage medium, where the computer-readable storage medium stores a computer program, and the computer program implements the method described in any one of the above first aspects when executed by a processor.
[0023] In a fifth aspect, an embodiment of the present application provides a chip, including: a processor for calling and running a computer program from a memory, so that a computer device installed with the chip executes the method described in any one of the above first aspects.
[0024] It can be understood that the beneficial effects of the above second aspect to the fifth aspect can refer to the relevant descriptions in the above first aspect, and will not be elaborated here. BRIEF DESCRIPTION OF THE DRAWINGS
[0025] To more clearly illustrate the technical solutions in the embodiments of the present application, the following briefly introduces the drawings required for use in the embodiments or the description of the prior art. Obviously, the drawings in the following description are only some embodiments of the present application. For those of ordinary skill in the art, without creative efforts, other drawings can also be obtained based on these drawings.
[0026] Figure 1 is a schematic diagram of the application environment of the method for determining the pose transformation information of a target object provided by an embodiment of the present application;
[0027] Figure 2 is an internal structure diagram of a computer device provided by an embodiment of the present application;
[0028] Figure 3 is a schematic flowchart of the method for determining the pose transformation information of a target object provided by an embodiment of the present application;
[0029] Figure 4 is a schematic diagram of the coordinate system of a lidar;
[0030] Figure 5 is a schematic flowchart of the process of determining the rotational angular velocity of a target object in the method for determining the pose transformation information of a target object provided by an embodiment of the present application;
[0031] Figure 6 is a schematic flowchart of the process of determining the third rotational angular velocity of a target object relative to a lidar in the method for determining the pose transformation information of a target object provided by another embodiment of the present application;
[0032] Figure 7 is a schematic diagram of the plane where the second point is located and the coordinate system where the second point is located in the method for determining the pose transformation information of a target object provided by an embodiment of the present application;
[0033] Figure 8 is a structural block diagram of the device for determining the pose transformation information of a target object provided by an embodiment of the present application. Detailed implementation manners
[0034] In the following description, for the purpose of illustration rather than limitation, specific details such as specific system structures and technologies are presented to thoroughly understand the embodiments of the present application. However, those skilled in the art should clearly understand that the present application can 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 avoid unnecessary details from interfering with the description of the present application.
[0035] It should be understood that, as used in the specification of the present application and the appended claims, the term "comprising" indicates the presence of the described features, integers, steps, operations, elements and / or components, but does not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components and / or their combinations.
[0036] It should also be understood that the term "and / or" as used in the specification of the present application and the appended claims refers to any combination and all possible combinations of one or more of the associated listed items, and includes these combinations.
[0037] As used in the specification of the present application and the appended claims, the term "if" may be construed, depending on the context, as "when", "once", "in response to determining", or "in response to detecting". Similarly, the phrase "if determined" or "if [the described condition or event] is detected" may be construed, depending on the context, as meaning "once determined", "in response to determining", "once [the described condition or event] is detected", or "in response to detecting [the described condition or event]".
[0038] In addition, in the description of the specification of the present application and the appended claims, the terms "first", "second", "third", etc. are used only for descriptive distinction and should not be construed as indicating or implying relative importance.
[0039] The reference to "one embodiment" or "some embodiments" etc. described in the specification of the present application means that a specific feature, structure or characteristic described in connection with the embodiment is included in one or more embodiments of the present application. Thus, statements such as "in one embodiment", "in some embodiments", "in other some embodiments", "in still other embodiments" etc. that appear in different places in this specification are not necessarily all referring to the same embodiment, but mean "one or more but not all embodiments", unless otherwise specifically emphasized in another way. The terms "comprising", "including", "having" and their variants all mean "including but not limited to", unless otherwise specifically emphasized in another way.
[0040] The lidar in the embodiments of the present application refers to a speed measurement lidar, which may be, for example, an FMCW (Frequency-Modulated Continuous Wave) lidar or an OPA (Optical Phased Array Lida) lidar.
[0041] The embodiment of the present application provides a method for determining the pose transformation information of a target object. By determining a point set corresponding to the target object from the target frame point cloud, obtaining the pose transformation information of the lidar at the first moment corresponding to the target frame, and finally determining the pose transformation information of the target object according to the position information and radial velocity of each point in the point set and the pose transformation information of the lidar at the first moment. After obtaining a frame of point cloud, the position transformation information of the target object can be determined for the point set of the target object in a frame of point cloud, without waiting until the next frame of point cloud is obtained to obtain the position transformation information of the target object. Therefore, the delay is small. In addition, since it is not necessary to register two frames of point cloud, the problem of low result accuracy caused by point cloud registration can be avoided. Therefore, the method in the embodiment of the present application can quickly and accurately determine the pose transformation information of the target object.
[0042] The following combines specific embodiments to exemplarily illustrate the method for determining the pose transformation information of the target object provided by the present application.
[0043] See Figure 1 , which is a schematic diagram of the application environment of the method for determining the pose transformation information of the target object provided by the embodiment of the present application. As Figure 1 shown, in this scenario, the vehicle 110 is driving on the road 10, the driving direction of the vehicle 110 is D1, and a lidar 111 is installed on the vehicle 110. The lidar 111 scans the objects around the vehicle 110. Figure 1 Five scanned points scanned by the lidar 111 are schematically shown. Among the five return points: two scanned points are on the first object 120, two scanned points are on the second object 130, and one scanned point is on the third object 140.
[0044] It should be understood that in the point cloud obtained by the lidar 111 scanning the scanned points, the information corresponding to the scanned points includes the position information and radial velocity of the scanned points, where the radial velocity is the relative velocity between the scanned point and the lidar 111. The direction of the radial velocity is along the line connecting the lidar 111 and the scanned point, and the magnitude of the radial velocity is the difference between the velocity of the lidar 111 and the component of the velocity of the scanned point in the connection direction.
[0045] Exemplarily, when the scanned point is moving towards the lidar (i.e., the scanned point is approaching the lidar), the sign of the radial velocity of this scan is positive; when the scanned point is moving away from the lidar (i.e., the scanned point is moving away from the lidar), the sign of the radial velocity of this scanned point is negative.
[0046] As Figure 1As shown, the driving direction of the first object 120 is the same as that of the vehicle 110, both being D1. Since the driving speed of the first object 120 is greater than that of the vehicle 110, the scanning points on the first object 120 are gradually moving away from the lidar 111. Therefore, the signs of the radial velocities of the two scanning points on the first object 120 are negative, and the radial velocities of the two scanning points on the first object 120 are respectively Figure 1 V shown in r1 and V r2 .
[0047] As Figure 1 shown, the driving direction of the second object 130 is D2, which is opposite to the driving direction D1 of the vehicle 110. The scanning points on the second object 130 are gradually approaching the lidar 111. Therefore, the signs of the velocities of the two scanning points on the second object 130 are positive, and the radial velocities of the two scanning points on the second object 130 are respectively Figure 1 V shown in r3 and V r4 .
[0048] As Figure 1 shown, the third object 140 is in a stationary state. The scanning points on the third object 140 are gradually approaching the lidar 111. Therefore, the sign of the velocity of the scanning points on the third object 140 is positive. The radial velocities of the two scanning points on the second object 130 are respectively Figure 1 V shown in r5 .
[0049] For simplicity Figure 1 only five scanning points are schematically shown in Figure 1 . For other scanning points, no display and description are made. Those skilled in the art can know that a frame of point cloud actually scanned by the lidar will include information of a large number of scanning points. The representation method of the radial velocity corresponding to other scanning points can refer to the representation method of the radial velocity of the scanning points shown in
[0050] In the scenario as Figure 1 shown, in this scenario, a computer device 150 communicatively connected to the lidar 111 is set. The communication connection between the lidar 111 and the computer device 150 can be a wired communication connection or a wireless communication connection. This application does not make specific limitations on this
[0051] In some embodiments, the computer device 150 receives the point cloud data (i.e., the target frame point cloud) sent by the lidar 111. The target frame point cloud includes multiple points, and the information of each point includes position information and radial velocity. The computer device 150 obtains the point set corresponding to the target object from the target frame point cloud. The computer device 150 obtains the pose transformation information of the lidar at the first moment, where the first moment is the acquisition moment of the target frame point cloud. The computer device 150 determines the pose transformation information of the target object according to the position information and radial velocity of each point in the point set and the pose transformation information of the lidar at the first moment.
[0052] It can be understood that the computer device 150 can be a local server or a remote server. The computer device 150 can also be set in the vehicle 110, or the computer device can be integrally set in the lidar 111. The embodiments of the present application do not limit this.
[0053] Figure 2 The following is the internal structure diagram of the computer device 150 provided by an embodiment of the present application. As Figure 2 shown, the computer device 150 of this embodiment includes at least one processor 200 ( Figure 2 only one processor is shown here), a memory 201, and a computer program 202 stored in the memory 201 and executable on the at least one processor 200.
[0054] To execute the method for determining the pose transformation information of the target object in the embodiments of the present application, when the processor 200 executes the computer program 202: it obtains the point set corresponding to the target object from the target frame point cloud. The target frame point cloud is a frame of point cloud obtained by the lidar scanning the target area. The information of each point in the point set includes position information and radial velocity. The target object is any object in the target area scanned by the target frame point cloud. It obtains the pose transformation information of the lidar at the first moment, where the first moment is the acquisition moment of the target frame point cloud. It determines the pose transformation information of the target object according to the position information and radial velocity of each point in the point set and the pose transformation information of the lidar at the first moment. The pose transformation information includes translational velocity and rotational angular velocity.
[0055] The computer device 150 may include, but is not limited to, the processor 200 and the memory 201. Those skilled in the art can understand that Figure 2 this is only an example of the computer device 150 and does not constitute a limitation on the computer device 150. It may include more or fewer components than shown in the figure, or combine certain components, or different components. For example, it may also include input / output devices, network access devices, etc.
[0056] The so-called processor 200 may be a Central Processing Unit (CPU), and the processor 200 may also be other general-purpose processors, Digital Signal Processors (DSPs), Application Specific Integrated Circuits (ASICs), Field-Programmable Gate Arrays (FPGAs), or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. The general-purpose processor may be a microprocessor or the processor may also be any conventional processor, etc.
[0057] The memory 201 may be an internal storage unit in some embodiments, such as a hard disk or memory. The memory 201 may also be an external storage device in other embodiments, such as a plug-in hard disk, a SmartMedia Card (SMC), a Secure Digital (SD) card, a Flash Card, etc. Further, the memory 201 may also include both an internal storage unit and an external storage device. The memory 201 is used to store an operating system, application programs, a BootLoader, data, and other programs, such as the program code of the computer program, etc. The memory 201 may also be used to temporarily store data that has been output or will be output.
[0058] Those skilled in the art can understand that Figure 2 the structure shown in
[0059] is only a block diagram of a part of the structure related to the solution of this application, and does not constitute a limitation on the computer device to which the solution of this application is applied. The specific computer device may include more or fewer components than those shown in the figure, or combine some components, or have a different component layout. Figure 1 Based on the application scenario schematic diagram of the method for determining the pose transformation information of the target object as shown in Figure 3 a method for determining the pose transformation information of a target object as shown in Figure 1 is provided in an embodiment of this application. Taking the application of this method to the scenario in Figure 3 as an example for illustration, it can be understood that the following description is only an example and does not constitute a limitation on the protection scope of this application. As shown in
[0060] Step S310: Obtain a point set corresponding to the target object from the target frame point cloud. The target frame point cloud is a frame of point cloud obtained by scanning a target area with a lidar. The information of each point in the point set includes position information and radial velocity. The target object is any object in the target area scanned by the target frame point cloud.
[0061] In the embodiments of the present application, the target frame point cloud is a frame of point cloud obtained by scanning a target area with a velocity measurement radar. In the target frame point cloud, the information of each point includes both the position information of the scanned point and the radial velocity of the scanned point. The position information may include three-dimensional coordinate information, and the radial velocity is the velocity of the scanned point relative to the lidar. The relevant meaning of the radial velocity can be referred to Figure 1 and the related descriptions therein, which will not be elaborated here.
[0062] It can be understood that the target object is any object scanned by the target frame point cloud in the target area. For example, Figure 1 as shown, assuming that the target frame point cloud is obtained by scanning with lidar 111, and the target frame point cloud scans the first object 120, the second object 130, and the third object 140, then the target object can be any one of the first object 120, the second object 130, and the third object 140.
[0063] It should be understood that the point set includes at least one point. Obtaining the set of points corresponding to the target object from the target frame point cloud is to perform target recognition on the target frame point cloud to determine which point clouds belong to the same target object; or it can also be said to determine the set of points in the target frame point cloud that belong to each target of interest.
[0064] In some embodiments, the target object is a dynamic object in the target area. When performing target recognition, it may include: obtaining static points and dynamic points in the target frame point cloud, where the static points are the points corresponding to the static objects in the target area, and the dynamic points are the points corresponding to the dynamic objects in the target area; dividing multiple points in the dynamic points into at least one set, each set including multiple points, and the absolute value of the difference in radial velocity between any two points in each set is less than a third threshold; dividing each set into at least one subset, and the distance between any two points in each subset is less than a fourth threshold; determining the points in each subset as the points corresponding to a dynamic object. In this embodiment, the points of each dynamic object are determined according to the position information (also called coordinate information) and radial velocity between the points in the dynamic points. First, the dynamic points are classified according to whether the difference in radial velocity between any two points in the dynamic points meets a certain threshold (i.e., the third threshold). Suppose it is divided into 3 categories. Then, distance classification (calculating the distance between points according to the coordinate values) is performed separately in the 3 categories. For example, in the first category, the radial velocity is about 20 m / s, but the coordinates of some points in this category are very different from the coordinates of other points, exceeding the given distance threshold (i.e., the fourth threshold). Then it is considered that these are two objects with exactly the same speed. The division of the points of different dynamic objects in the dynamic state is realized by limiting with two thresholds of radial velocity and distance, and the method is simple and easy to implement.
[0065] It can be understood that dynamic objects and static objects are relative to the earth coordinate system. When an object is stationary relative to the earth coordinate system, then the object is a static object; when an object is moving relative to the earth coordinate system, then the object is a dynamic object.
[0066] For example, the road surface and signals on the roadside are static objects, so the points scanned on the road surface and roadside signal lights are static points; the moving traffic objects (such as cars, pedestrians, etc.) on the road surface are dynamic objects, so the points scanned on the moving traffic objects are dynamic points.
[0067] It should be understood that for the target object corresponding to the static points, it can also be determined by a method similar to that for determining the target object in the above dynamic points. For example: dividing multiple points in the static points into at least one set, each set including multiple points, and the absolute value of the difference in radial velocity between any two points in each set is less than a third threshold; dividing each set into at least one subset, and the distance between any two points in each subset is less than a fourth threshold; determining the points in each subset as the points corresponding to a static object. Or other conventional methods can also be used to determine the target object in the static points, which will not be elaborated in this application.
[0068] It can be understood that the target object recognition based on the target frame point cloud can also adopt the commonly used technical means in the art. Therefore, those skilled in the art can select appropriate methods to implement according to their needs, and the present application will not elaborate on this.
[0069] Step S320: Obtain the pose transformation information of the lidar at the first moment, where the first moment is the acquisition moment of the target frame point cloud.
[0070] In the embodiment of the present application, the first moment is the acquisition moment of the target frame point cloud. Specifically, it is to synchronize the pose transformation information of the lidar with the pose transformation information of the target object. The pose transformation information of the lidar at the first moment may include the first translational velocity and the first rotational angular velocity.
[0071] Exemplarily, the first translational velocity may refer to the velocity of the lidar moving translationally relative to the earth coordinate system, and the first rotational angular velocity may refer to the rotational angular velocity of the lidar rotating relative to the earth coordinate system. If the lidar only moves translationally relative to the earth coordinate system, then the first translational velocity is not 0, and the first rotational angular velocity is equal to 0; if the lidar only rotates relative to the earth coordinate system, then the first translational velocity is 0, and the first rotational angular velocity is not 0; if the lidar both rotates and moves translationally relative to the earth coordinate system, then both the first translational velocity and the first rotational angular velocity are not 0.
[0072] In some embodiments, the process of the first translational velocity of the lidar is as follows: First, determine the static points from the target frame point cloud, and then determine the first translational velocity of the lidar according to the static points. Exemplarily, determine the radial velocity of each point in the static points, the first component velocity on each of the three coordinate axes, where the three coordinate axes are the three coordinate axes of the coordinate system of the lidar; determine the first average velocity corresponding to each coordinate axis, and the first average velocity corresponding to the first coordinate axis is the average value of all the first component velocities on the first coordinate axis, and the first coordinate axis is any one of the three coordinate axes; determine the vector sum of the first average velocities on the three coordinate axes as the first translational velocity of the lidar. In this embodiment, by decomposing the radial velocity of each point in the static points on the three coordinate axes of the coordinate system of the lidar and taking the average value, the average velocity (i.e., the first average velocity) corresponding to each of the three coordinate axes is obtained, and then the vector sum of the three first average velocities is determined to obtain the first translational velocity of the lidar. When determining the first translational velocity of the lidar, since the radial velocities of all static points are considered, the obtained first translational velocity of the lidar has a high accuracy.
[0073] In some other embodiments, the pose transformation information of the lidar at the first moment can also be determined based on the data detected by an inertial sensor (IMU, Inertial Measurement Unit). Exemplarily, the inertial sensor can be disposed on the lidar or on the vehicle where the lidar is located. This application does not elaborate on this.
[0074] It can be understood that the pose transformation information of the lidar at the first moment can be obtained by any feasible method in the prior art. This application does not limit the specific manner of obtaining the pose transformation information of the lidar at the first moment.
[0075] Step S330: Determine the pose transformation information of the target object based on the position information and radial velocity of each point in the point set, and the pose transformation information of the lidar at the first moment. The pose transformation information includes a translational velocity and a rotational angular velocity.
[0076] It should be understood that the pose transformation information mainly refers to the information of the change in the position and attitude of the rigid body coordinate system. In the embodiments of this application, the pose transformation information mainly includes a translational velocity and a rotational angular velocity.
[0077] It can be understood that the information of each point in the point set corresponding to the target object includes position information and radial velocity information, where the position information is the position information of the scanning point corresponding to each point, and the radial velocity is the velocity of the scanning point relative to the lidar; when the information of each point in the point set of the target object and the pose transformation information of the lidar at the first moment are both determined, the pose transformation information of the target object can be obtained.
[0078] Next, an exemplary description of the process of determining the translational velocity in the pose transformation information of the target object will be given first.
[0079] In some embodiments, the position transformation information of the lidar at the first moment includes a first translational velocity, and the pose transformation information of the target object includes a second translational velocity. Step S330 specifically includes: decomposing the radial velocity of each point in the point set on the three coordinate axes in the three-axis coordinate system of the lidar to obtain the decomposed velocity of each point on each coordinate axis; determining the average decomposed velocity corresponding to each coordinate axis, where the average decomposed velocity corresponding to each coordinate axis is the average value of the decomposed velocities of all points in the point set on each coordinate axis; and determining the second translational velocity based on the average decomposed velocity corresponding to each coordinate axis among the three coordinate axes and the first translational velocity.
[0080] Exemplarily, such as Figure 4As shown in the figure, the origin of the coordinate system of the lidar is O, and the three coordinate axes are the X-axis, Y-axis, and Z-axis respectively. The X-axis refers to the horizontal scanning direction of the lidar, the Z-axis refers to the vertical scanning direction of the lidar, and the Y-axis refers to the depth direction of the lidar. Assume that there are n points in the point set. Figure 4 Point I in Figure 4 is the i-th point in the point set, and the radial velocity of point I is v i , decompose the velocity v i into the X-axis, Y-axis, and Z-axis. Among them: v iX is the decomposition velocity of the radial velocity of point I on the X-axis, v iY is the decomposition velocity of the radial velocity of point I on the Y-axis, v iZ is the decomposition velocity of the radial velocity of point I on the Z-axis. The average decomposition velocity on the X-axis is and The average decomposition velocity on the Y-axis is and The average decomposition velocity on the Z-axis is and
[0081] After determining the average decomposition velocities of the point set on the three coordinate axes, determine the second translation velocity according to the average decomposition velocity corresponding to each coordinate axis among the three coordinate axes and the first translation velocity.
[0082] In some embodiments, the vector sum of the three average decomposition velocities can be obtained to obtain a resultant velocity, and then the resultant velocity and the first translation velocity are vector-summed to obtain the second translation velocity.
[0083] In some other embodiments, the first translation velocity can also be decomposed on the three coordinate axes to obtain the decomposition velocities of the first translation velocity on each coordinate axis; the decomposition velocities of the first translation velocity on each coordinate axis are summed with the average decomposition velocities on each coordinate axis to obtain three decomposition resultant velocities, and finally the vector sum of the three decomposition resultant velocities is obtained to obtain the second translation velocity. Of course, those skilled in the art can also use any other available method to obtain the second translation velocity, and this application will not elaborate on this.
[0084] The process of obtaining the second translation velocity described above is exemplary and should not be construed as a limitation on the protection scope of this application. Those skilled in the art can also determine the second translation velocity according to other known methods, and this application will not elaborate on this.
[0085] It can be understood that in some embodiments, the target object can also perform rotational motion. Therefore, after an exemplary description of the process of determining the translation velocity in the pose transformation information of the target object, the process of determining the rotational angular velocity in the pose transformation information of the target object will be described below.
[0086] Figure 5 This is a schematic flowchart of the process of determining the rotational angular velocity of a target object in the method for determining the pose transformation information of the target object provided by an embodiment of the present application. In this embodiment, the position transformation information of the lidar at the first moment further includes a first rotational angular velocity, and the pose transformation information of the target object further includes a second rotational angular velocity. The process of determining the rotational angular velocity of the target object includes steps S510 to S540:
[0087] S510. Determine three differential velocities corresponding to each point in the point set.
[0088] Among them, the first differential velocity is the difference between the decomposition velocity of each point on the first coordinate axis and the average decomposition velocity corresponding to the first coordinate axis, the second differential velocity is the difference between the decomposition velocity of each point on the second coordinate axis and the average decomposition velocity corresponding to the second coordinate axis, and the third differential velocity is the difference between the decomposition velocity of each point on the third coordinate axis and the average decomposition velocity corresponding to the third coordinate axis. The three coordinate axes include the first coordinate axis, the second coordinate axis, and the third coordinate axis.
[0089] The following takes Figure 4 as an example for illustration. Assume that the first coordinate axis is the X-axis, the second coordinate axis is the Y-axis, and the third coordinate axis is the Z-axis. Then the first differential velocity of point I on the X-axis is v X差值 , the second differential velocity of point I on the Y-axis is v Y差值 , the second differential velocity of point I on the Y-axis is v Z差值 ,
[0090] S520. If the proportion of the number of the first points in the point set is greater than the second threshold, determine the first rotational angular velocity as the second rotational angular velocity.
[0091] Among them, the absolute values of the three differential velocities corresponding to the first points are all less than or equal to the first threshold.
[0092] It can be understood that the first threshold is the threshold for whether the differential velocity can be ignored. When the differential velocity is less than or equal to the first threshold, it means that the differential velocity is small and can be ignored. Since the three differential velocities of the first points in the point set can all be ignored, it can be considered that the scanning points corresponding to the first points are not rotating relative to the lidar, while the scanning points corresponding to the points in the first point set other than the first points are rotating relative to the lidar.
[0093] In the embodiment of the present application, the second threshold is the threshold for whether the rotation of other points in the point set except the first point can be ignored. The proportion of the number of the first points in the point set is equal to the ratio of the number of the first points to the total number of points in the point set.
[0094] In step S520, the proportion of the first points is greater than the second threshold. In this case, it can be considered that most points in the point set of the target object have no rotation relative to the lidar, and it can be considered that the target object has no rotation relative to the lidar. Therefore, the first rotation angular velocity of the lidar can be directly determined as the second rotation angular velocity of the target object.
[0095] S530: If the proportion of the number of the first points in the point set is less than or equal to the second threshold, then according to the three differential velocities corresponding to each point in the point set and the position information of each point in the point set, a third rotation angular velocity is determined, and the third rotation angular velocity is the rotation angular velocity of the target object relative to the lidar.
[0096] S540: Determine the second rotation angular velocity according to the first rotation angular velocity and the third rotation angular velocity.
[0097] In the embodiment of the present application, in step S530, the proportion of the first points is less than or equal to the second threshold. In this case, it can be considered that most points in the point set of the target object have rotation relative to the lidar, and it can be considered that the target object has rotation relative to the lidar. At this time, it is necessary to first determine the third rotation angular velocity of the target object relative to the lidar, and then determine the second rotation angular velocity according to the first rotation angular velocity and the third rotation angular velocity.
[0098] It can be understood that since the three differential velocities corresponding to each point can reflect the rotation of the target object relative to the lidar, and the position information of each point is also related to the rotation of the target object; therefore, it is reasonable to comprehensively determine the third rotation angular velocity according to the three differential velocities corresponding to each point in the point set and the position information of each point in the point set, and the accuracy of the result is relatively high.
[0099] It should be understood that any other possible method can also be used to determine the rotation angular velocity of the target object, and the present application does not enumerate this.
[0100] For the convenience of understanding, the process of determining the third rotation angular velocity of the target object relative to the lidar is exemplarily described below.
[0101] Figure 6 It is a schematic flowchart of the process of determining the third rotation angular velocity of the target object relative to the lidar in the method for determining the pose transformation information of the target object provided in an embodiment of the present application. Specifically, it includes: S610 to S650. Among them:
[0102] S610. Determine the tangent vector of the plane where the second point is located, where the second point is any point in the point set.
[0103] S620. Decompose the resultant velocity of the three differential velocities corresponding to the second point onto the tangent vector of the plane where the second point is located to obtain the linear velocity corresponding to the second point. Each point in the point set corresponds to a linear velocity, and the resultant velocity is the vector sum of the three differential velocities.
[0104] It can be understood that within the time of the radar scanning one frame of point cloud, the rotational angular velocity of the target object is instantaneous. Therefore, it can be considered that the direction of the linear velocity of each point in the point set rotating around the rotation center is consistent with the direction of the tangent vector of the plane where the point is located; and the three differential velocities of each point in the point set represent the rotation of the point relative to the lidar. Therefore, by decomposing the resultant velocity of the three differential velocities of each point (i.e., the resultant velocity is the vector sum of the three differential velocities) onto the tangent vector of the plane where the point is located, the linear velocity of the point can be obtained.
[0105] For the convenience of understanding, the process of determining the tangent vector of the plane where the second point is located is exemplarily described below taking the second point as an example. The second point is any point in the point set.
[0106] First, determine the distance between each point in the point set except the second point and the second point; then determine the third point and the fourth point from the point set. The second point, the third point, and the fourth point are not on the same straight line, the distance between the third point and the second point is less than or equal to the third threshold, and the distance between the fourth point and the second point is less than or equal to the third threshold; then, according to the position information of the second point, the position information of the third point, and the position information of the fourth point, determine the normal vector of the plane where the second point is located. The plane where the second point is located is the plane determined by the second point, the third point, and the fourth point; finally, according to the direction vector in the vertical direction and the normal vector, determine the tangent vector of the plane where the second point is located.
[0107] It can be understood that the distances between the third point and the fourth point and the second point are both less than the third threshold, indicating that both the third point and the fourth point are points in the point set that are relatively close to the second point, and the second point, the third point, and the fourth point are not on the same straight line. Therefore, the second point, the third point, and the fourth point determine a small plane. Exemplarily, the third point and the fourth point are the points in the point set that are the closest to the second point and the second point, the third point, and the fourth point are not collinear.
[0108] Figure 7 FIG. is a schematic diagram of the plane where the second point is located and the coordinate system where the second point is located in an embodiment of the present application. In the coordinate system where the second point is located, the position where the second point is located is p2, the y-axis is parallel to the plane 701 where the second point is located, the x-axis is perpendicular to the plane 701 where the second point is located, and the z-axis is perpendicular to the plane where xyp2 is located.
[0109] It can be understood that the direction of the z-axis can be represented by a direction vector in the vertical direction, that is, the direction where the z-axis is located is the vertical direction, and the vertical direction can also be referred to as the plumb direction.
[0110] Suppose the second point is p2, the third point is p3, and the fourth point is p4. The vector between the second point and the third point is The vector between the third point and the fourth point Then the direction vector corresponding to the x-axis is And It can be understood that the direction vector corresponding to the x-axis is That is, the normal vector of the plane where the second point is located. Since the direction vector of the z-axis is known (for example, it can be (0, 0, 1)), by calculating the cross product between the direction vector of the x-axis and the direction vector of the z-axis, the direction vector of the y-axis can be obtained. The direction vector of the y-axis is the tangent vector of the plane where the second point is located. According to the above method, the tangent vector of the plane where each point in the point set is located can be obtained. The method is simple, the calculation amount is small, and it is easy to implement.
[0111] Of course, those skilled in the art can also obtain the tangent vector of the plane where the second point is located according to other existing methods, and this application does not limit this.
[0112] It can be understood that the resultant velocity of the three differential velocities corresponding to the second point, the velocity component in the y-axis direction in the coordinate system of the second point, is the velocity component on the tangent vector of the plane where the second point is located, that is, the linear velocity corresponding to the second point.
[0113] S630. Determine the coordinate information of the rotation center of the target object.
[0114] It can be understood that since the coordinate of the second point is known, after obtaining the linear velocity of the second point, only by determining the coordinate information of the rotation center can the angular velocity corresponding to the second point be obtained.
[0115] For the convenience of understanding, the following gives an exemplary description of the process of determining the coordinate information of the rotation center of the target object.
[0116] In some embodiments, the process of determining the coordinate information of the rotation center of the target object includes steps (1) to (4):
[0117] Step (1) According to the coordinate information of the first rotation center and the coordinate information of the second point, determine the rotation radius of the second point. The first rotation center is any one of a plurality of preset rotation centers.
[0118] It can be understood that assuming there are n points in the point set, it is necessary to calculate the rotation radius of each point rotating around the first rotation center. A plurality of preset rotation centers means that the coordinate information of each rotation center is preset, that is, the coordinates of each rotation center are known.
[0119] In some embodiments, a plurality of rotation centers can be preset according to experience.
[0120] Step (2) determines the rotational angular velocity of the second point according to the rotation radius of the second point and the linear velocity of the second point. Each point in the point set corresponds to a rotational angular velocity.
[0121] Exemplarily, assuming there are n points in the point set, the second point is the i-th point among the n points, and the linear velocity of the second point is v' i , the rotation radius of the second point is r i Then the rotational angle of the second point is ω i And
[0122] It can be understood that each point in the point set will correspond to a rotational angular velocity.
[0123] Step (3) determines the average rotational angular velocity as the average value of the rotational angular velocities corresponding to each point in the point set; determines the error term corresponding to the first rotation center, and the error term is determined according to the deviation value between the rotational angular velocity corresponding to each point in the point set and the average rotational angular velocity. Each rotation center of the plurality of rotation centers corresponds to an error term.
[0124] It should be understood that the closer the first rotation center is to the actual rotation center of the target object, the closer the rotational angular velocity of each point is to the average rotational angular velocity. Therefore, the error term between the first rotation center and the actual rotation center of the target object can be determined by the deviation value between the rotational angular velocity corresponding to each point and the average rotational angular velocity. Each rotation center in the preset plurality of rotation centers corresponds to an error term.
[0125] Exemplarily, the error term determined according to the deviation value between the rotational angular velocity corresponding to each point in the point set and the average rotational angular velocity can be calculated in different ways. For example, the sum of the absolute values of the differences between the rotational angular velocity corresponding to each point and the average rotational angular velocity can be determined as the error term.
[0126] In some other embodiments, the error term corresponding to the first rotation center satisfies the following conditions:
[0127]
[0128] In Equation (1): ε1 represents the error term of the first rotation center, n represents the number of points in the point set, ω iIt represents the angular velocity of rotation corresponding to the i-th point in the point set. It represents the average angular velocity of rotation.
[0129] In step (4), the coordinate information of the rotation center corresponding to the smallest error term among the multiple rotation centers is determined as the coordinate information of the rotation center of the target object.
[0130] It should be understood that among the multiple rotation centers, the rotation center corresponding to the smallest error term is the closest to the actual rotation center of the target object. Therefore, the coordinate information of this rotation center is determined as the coordinate information of the rotation center of the target object, making the determined coordinate information of the rotation center of the target object have a relatively high accuracy.
[0131] In some other embodiments, a plurality of preset rotation centers can also be determined according to the error function. The specific process is as follows: First, determine the error function. The independent variable of the error function includes the three-dimensional coordinates of the rotation center, and the dependent variable of the error function is the error term. Then, take the partial derivatives of the error function with respect to the three-dimensional coordinates respectively to obtain three first-order derivatives of the error function. Finally, according to the three first-order derivatives, determine the coordinate information of each rotation center among the preset plurality of rotation centers.
[0132] Exemplarily, the error function is shown in Equation (2):
[0133]
[0134] In Equation (2): ε represents the error term, n represents the number of points in the point set, v' i represents the linear velocity of the i-th point in the point set, x i 、y i and z i represent the three-dimensional coordinate information of the i-th point in the point set, and x, y, and z represent the three-dimensional coordinate information of the rotation center.
[0135] In the error function shown in Equation (2), the three-dimensional coordinates of the rotation center are the independent variables (i.e., x, y, and z), and the error term is the dependent variable (i.e., ε). Take the first-order derivatives of this function with respect to x, y, and z respectively. Therefore, the changes of the error term in the x, y, and z directions can be obtained. Continuously update the three coordinate values of the rotation center according to the gradient descent direction of the error function, and then determine a plurality of preset rotation centers, so that the coordinate values of each rotation center among the preset plurality of rotation centers are all relatively close to the actual rotation center of the target object, thereby making the coordinate value of the rotation center of the target object finally determined closer to the actual rotation center and improving the accuracy of the determined rotation center of the target object.
[0136] In some other embodiments, a rotation center can be determined first through an error term function, and then the three coordinate values of the rotation center are continuously updated along the gradient descent direction of the error function, thereby realizing the iteration of the rotation center until the value of the error term is less than or equal to a preset threshold, and then the iteration stops. In this way, the number of iterations can be determined according to the magnitude of the error term, so that the coordinate information of the rotation center of the obtained target object is more in line with our expectations.
[0137] Of course, any common method can also be used to determine the rotation center of the target object, which will not be elaborated in this application.
[0138] S640. Determine the rotational angular velocity of the second point according to the linear velocity corresponding to the second point, the position information of the second point, and the coordinate information of the rotation center of the target object. Each point in the point set corresponds to a rotational angular velocity.
[0139] In the embodiments of this application, the position information of the second point includes the coordinate information of the second point. Therefore, according to the position information of the second point and the coordinate information of the rotation center of the target object, the rotation radius of the second point can be determined.
[0140] S650. Determine the average value of the rotational angular velocities corresponding to all points in the point set as the third rotational angular velocity.
[0141] Assume that the point set includes n points, the second point is the i-th point among the n points, the coordinate of the second point is (x i , y i , z i ), the coordinate of the rotation center is (x, y, z), and the rotation radius corresponding to the second point is r i , then Therefore, the rotational angular velocity of the second point is ω i , The third rotational angular velocity is equal to the average value of the rotational angular velocities
[0142] It should be understood that the magnitudes of the sequence numbers of the steps in the above embodiments do not mean the order of execution. The execution order of each process should be determined according to its function and internal logic, and should not constitute any limitation to the implementation process of the embodiments of this application.
[0143] Corresponding to a method for determining the pose transformation information of a target object in the above embodiments, Figure 8 The structural block diagram of a device for determining the pose transformation information of a target object provided by an embodiment of this application is shown. For the sake of convenience of description, only the parts related to the embodiments of this application are shown.
[0144] Refer to Figure 8, the pose transformation information determination device 800 of the target object includes: a first acquisition unit 810, a second acquisition unit 820, and a determination unit 830, where:
[0145] The first acquisition unit 810 is configured to acquire a point set corresponding to the target object from the target frame point cloud. The target frame point cloud is a frame of point cloud obtained by scanning a target area with a lidar. The information of each point in the point set includes position information and radial velocity. The target object is any object in the target area scanned by the target frame point cloud;
[0146] The second acquisition unit 820 is configured to acquire the pose transformation information of the lidar at the first moment, where the first moment is the acquisition moment of the target frame point cloud;
[0147] The determination unit 830 is configured to determine the pose transformation information of the target object according to the position information and radial velocity of each point in the point set, and the pose transformation information of the lidar at the first moment. The pose transformation information includes translational velocity and rotational angular velocity.
[0148] In an embodiment, the position transformation information of the lidar at the first moment includes a first translational velocity, and the pose transformation information of the target object includes a second translational velocity. The determination unit 830 is configured to determine the pose transformation information of the target object according to the position information and radial velocity of each point in the point set, and the pose transformation information of the lidar at the first moment, including: decomposing the radial velocity of each point in the point set on the three coordinate axes in the three-axis coordinate system of the lidar to obtain the decomposition velocity of each point on each coordinate axis; determining the average decomposition velocity corresponding to each coordinate axis, where the average decomposition velocity corresponding to each coordinate axis is the average value of the decomposition velocities of all points in the point set on each coordinate axis; and determining the second translational velocity according to the average decomposition velocity corresponding to each coordinate axis in the three coordinate axes and the first translational velocity.
[0149] In one embodiment, the position transformation information of the lidar at the first moment further includes a first rotational angular velocity, and the pose transformation information of the target object further includes a second rotational angular velocity. The determining unit 830 is further configured to: determine three differential velocities corresponding to each point in the point set. The first differential velocity is the difference between the resolved velocity of each point on the first coordinate axis and the average resolved velocity corresponding to the first coordinate axis. The second differential velocity is the difference between the resolved velocity of each point on the second coordinate axis and the average resolved velocity corresponding to the second coordinate axis. The third differential velocity is the difference between the resolved velocity of each point on the third coordinate axis and the average resolved velocity corresponding to the third coordinate axis. The three coordinate axes include a first coordinate axis, a second coordinate axis, and a third coordinate axis. If the proportion of the number of first points in the point set is greater than a second threshold, then determine the first rotational angular velocity as the second rotational angular velocity, and the absolute values of the three differential velocities corresponding to the first points are all less than or equal to a first threshold. Or if the proportion of the number of first points in the point set is less than or equal to the second threshold, then determine a third rotational angular velocity according to the three differential velocities corresponding to each point in the point set and the position information of each point in the point set. The third rotational angular velocity is the rotational angular velocity of the target object relative to the lidar. Determine the second rotational angular velocity according to the first rotational angular velocity and the third rotational angular velocity.
[0150] In one embodiment, the determining unit 830 is configured to determine a third rotational angular velocity according to the three differential velocities corresponding to each point in the point set and the position information of each point in the point set, including: determining a tangent vector of the plane where a second point is located, and the second point is any point in the point set. Decompose the combined velocity of the three differential velocities corresponding to the second point onto the tangent vector of the plane where the second point is located to obtain a linear velocity corresponding to the second point. Each point in the point set corresponds to a linear velocity, and the combined velocity is the vector sum of the three differential velocities. Determine the coordinate information of the rotation center of the target object. Determine the rotational angular velocity of the second point according to the linear velocity corresponding to the second point, the position information of the second point, and the coordinate information of the rotation center of the target object. Each point in the point set corresponds to a rotational angular velocity. Determine the average value of the rotational angular velocities corresponding to all points in the point set as the third rotational angular velocity.
[0151] In one embodiment, the determining unit 830 is configured to determine a tangent vector of the plane where the second point is located, including: determining the distance between each point in the point set and the second point except the second point; determining a third point and a fourth point from the point set, where the second point, the third point, and the fourth point are not on the same straight line, the distance between the third point and the second point is less than or equal to a third threshold, and the distance between the fourth point and the second point is less than or equal to the third threshold; determining a normal vector of the plane where the second point is located according to the position information of the second point, the position information of the third point, and the position information of the fourth point, where the plane where the second point is located is the plane determined by the second point, the third point, and the fourth point; and determining the tangent vector according to the direction vector in the vertical direction and the normal vector.
[0152] In one embodiment, the position information of each point in the point set includes coordinate information, and the determining unit 830 is configured to determine the coordinate information of the rotation center of the target object, including: determining the rotation radius of the second point according to the coordinate information of the first rotation center and the coordinate information of the second point, where the first rotation center is any one of a plurality of preset rotation centers; determining the rotational angular velocity of the second point according to the rotation radius of the second point and the linear velocity of the second point, and each point in the point set corresponds to a rotational angular velocity; determining the average value of the rotational angular velocities corresponding to each point in the point set as the average rotational angular velocity; determining an error term corresponding to the first rotation center, where the error term is determined according to the deviation value between the rotational angular velocity corresponding to each point in the point set and the average rotational angular velocity, and each rotation center of the plurality of rotation centers corresponds to an error term; and determining the coordinate information of the rotation center of the target object as the coordinate information of the rotation center corresponding to the smallest error term among the plurality of rotation centers.
[0153] In one embodiment, the error term corresponding to the first rotation center satisfies the following conditions:
[0154]
[0155] where: ε1 represents the error term of the first rotation center, n represents the number of points in the point set, ω i represents the rotational angular velocity corresponding to the i-th point in the point set, and represents the average rotational angular velocity.
[0156] In one embodiment, the determining unit 830 is further configured to: determine an error function, where the independent variable of the error function includes the three-dimensional coordinates of the rotation center, and the dependent variable of the error function is the error term; take the partial derivatives of the error function with respect to the three-dimensional coordinates respectively to obtain three first-order derivatives of the error function; and determine the coordinate information of each rotation center among the plurality of preset rotation centers according to the three first-order derivatives.
[0157] In one embodiment, the error function is as shown in the following formula:
[0158]
[0159] In the formula: ε represents the error term, n represents the number of points in the point set, and v' i represents the linear velocity of the i-th point in the point set, and x i , y i and z i represent the three-dimensional coordinate information of the i-th point in the point set, and x, y, and z represent the three-dimensional coordinate information of the rotation center.
[0160] The embodiment of the present application also provides a computer device, including a memory and a processor. A computer program is stored in the memory, and when the computer program is executed by the processor, the steps in the above-mentioned method embodiments can be implemented.
[0161] In this embodiment, the steps implemented when the processor executes the computer program have the same implementation principle and technical effects as those of the method for determining the pose transformation information of the target object described above, and will not be elaborated here.
[0162] Those skilled in the art can clearly understand that, for the convenience and simplicity of description, only the above-mentioned division of each functional unit and module is used as an example. In actual applications, the above functions can be allocated to different functional units and modules according to needs, that is, the internal structure of the device is divided into different functional units or modules to complete all or part of the functions described above. Each functional unit and module in the embodiment can be integrated into a processing unit, or each unit can exist physically alone, 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 a software functional unit. In addition, the specific names of each functional unit and module are only for the convenience of mutual distinction and do not limit the protection scope of the present application. The specific working process of the units and modules in the above system can refer to the corresponding process in the foregoing method embodiments and will not be elaborated here.
[0163] The embodiment of the present application also provides a computer-readable storage medium. The computer-readable storage medium stores a computer program, and when the computer program is executed by the processor, the steps in the above-mentioned method embodiments can be implemented.
[0164] The embodiment of the present application provides a computer program product. When the computer program product runs on a computer device, it enables the computer device to implement the steps in the above-mentioned method embodiments when executed.
[0165] The embodiment of the present application also provides a chip, including: a processor, configured to call and run a computer program from a memory, so that a computer device installed with the chip executes the steps in the above-mentioned method embodiments.
[0166] In the above embodiments, the descriptions of the various embodiments each have their own focuses. For parts not detailed or recorded in a certain embodiment, reference may be made to the relevant descriptions of other embodiments.
[0167] Those of ordinary skill in the art can realize that the units and algorithm steps of the examples described in combination with the embodiments disclosed herein can be implemented by electronic hardware, or a combination of computer software and electronic hardware. Whether these functions are executed in a hardware or software manner depends on the specific application and design constraints of the technical solution. Professional technicians can use different methods to implement the described functions for each specific application, but such implementation should not be considered to exceed the scope of this application.
[0168] In the embodiments provided in this application, it should be understood that the disclosed device / equipment and method can be implemented in other ways. For example, the device / equipment embodiments described above are merely illustrative. For example, the division of the modules or units is only a logical function division, and there may be other division methods in actual implementation. For example, multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. Another point is that the displayed or discussed couplings or direct couplings or communication connections to each other can be through some interfaces, and the indirect couplings or communication connections of the devices or units can be in electrical, mechanical or other forms.
[0169] The units described as separate components may or may not be physically separated, and the components displayed as units may or may not be physical units, that is, they may be located in one place, or may be distributed to multiple network units. Some or all of the units can be selected according to actual needs to achieve the purpose of the solution of this embodiment.
[0170] In addition, the functional units in the various embodiments of this application can be integrated in a processing unit, or each unit can exist physically alone, or two or more units can be integrated in one unit. The above integrated units can be implemented in the form of hardware or in the form of software functional units.
[0171] 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, to implement all or part of the processes in the above-described embodiment methods of this application, it can also be completed by a computer program instructing relevant hardware. The computer program can be stored in a computer-readable storage medium. When the computer program is executed by a processor, the steps of the above-described various method embodiments can be implemented. Among them, the computer program includes computer program code, and the computer program code can be in the form of source code, object code, executable file, or some intermediate form, etc. The computer-readable storage medium can include: any entity or device capable of carrying the computer program code, recording medium, USB flash drive, mobile hard disk, magnetic disk, optical disc, computer memory, read-only memory (ROM, Read-Only Memory), random access memory (RAM, Random Access Memory), electrical carrier signal, telecommunication signal, and software distribution medium, etc. It should be noted that the content included in the computer-readable storage medium can be appropriately increased or decreased according to the requirements of legislation and patent practice in the jurisdiction. For example, in some jurisdictions, according to legislation and patent practice, the computer-readable storage medium does not include electrical carrier signals and telecommunication signals.
[0172] The above-described embodiments are only used to illustrate the technical solutions of this application, rather than to limit them; although this application has been described in detail with reference to the foregoing embodiments, those of ordinary skill in the art should understand that: they can still modify the technical solutions recorded in the foregoing embodiments, or perform equivalent replacements on some of the technical features; and these modifications or replacements do not cause the essence of the corresponding technical solutions to deviate from the spirit and scope of the technical solutions of the various embodiments of this application, and should all be included in the protection scope of this application.
Claims
1. A method for determining pose transformation information of a target object, characterized in that The method includes: Obtaining a point set corresponding to a target object from a target frame point cloud, where the target frame point cloud is a frame of point cloud obtained by lidar scanning a target area, and the information of each point in the point set includes position information and radial velocity, and the target object is any object in the target area scanned by the target frame point cloud; Obtaining the pose transformation information of the lidar at a first moment, where the first moment is the acquisition moment of the target frame point cloud; Determining the pose transformation information of the target object according to the position information and radial velocity of each point in the point set, and the pose transformation information of the lidar at the first moment, where the pose transformation information includes translational velocity and rotational angular velocity.
2. The method according to claim 1, wherein The position transformation information of the lidar at the first moment includes a first translational velocity, and the pose transformation information of the target object includes a second translational velocity. Determining the pose transformation information of the target object according to the position information and radial velocity of each point in the point set, and the pose transformation information of the lidar at the first moment includes: Decomposing the radial velocity of each point in the point set on three coordinate axes in the three-axis coordinate system of the lidar to obtain the decomposed velocity of each point on each coordinate axis; Determining the average decomposed velocity corresponding to each coordinate axis, where the average decomposed velocity corresponding to each coordinate axis is the average value of the decomposed velocities of all points in the point set on each coordinate axis; Determining the second translational velocity according to the average decomposed velocity corresponding to each coordinate axis among the three coordinate axes and the first translational velocity.
3. The method according to claim 2, wherein The position transformation information of the lidar at the first moment further includes a first rotational angular velocity, and the pose transformation information of the target object further includes a second rotational angular velocity. The method further includes: Determining three differential velocities corresponding to each point in the point set, where the first differential velocity is the difference between the decomposed velocity of each point on the first coordinate axis and the average decomposed velocity corresponding to the first coordinate axis, the second differential velocity is the difference between the decomposed velocity of each point on the second coordinate axis and the average decomposed velocity corresponding to the second coordinate axis, and the third differential velocity is the difference between the decomposed velocity of each point on the third coordinate axis and the average decomposed velocity corresponding to the third coordinate axis. The three coordinate axes include the first coordinate axis, the second coordinate axis, and the third coordinate axis; If the proportion of the number of first points in the point set is greater than a second threshold, then determining the first rotational angular velocity as the second rotational angular velocity, and the absolute values of the three differential velocities corresponding to the first points are all less than or equal to a first threshold; or If the proportion of the number of first points in the point set is less than or equal to the second threshold, then determining a third rotational angular velocity according to the three differential velocities corresponding to each point in the point set, and the position information of each point in the point set, where the third rotational angular velocity is the rotational angular velocity of the target object relative to the lidar. Determine the second rotational angular velocity according to the first rotational angular velocity and the third rotational angular velocity.
4. The method according to claim 3, characterized in that, The determining the third rotational angular velocity according to the three differential velocities corresponding to each point in the point set and the position information of each point in the point set includes: Determine the tangent vector of the plane where the second point is located, where the second point is any point in the point set; Decompose the resultant velocity of the three differential velocities corresponding to the second point onto the tangent vector of the plane where the second point is located to obtain the linear velocity corresponding to the second point. Each point in the point set corresponds to a linear velocity, and the resultant velocity is the vector sum of the three differential velocities; Determine the coordinate information of the rotation center of the target object; Determine the rotational angular velocity of the second point according to the linear velocity corresponding to the second point, the position information of the second point, and the coordinate information of the rotation center of the target object. Each point in the point set corresponds to a rotational angular velocity; Determine the average value of the rotational angular velocities corresponding to all points in the point set as the third rotational angular velocity.
5. The method according to claim 4, wherein The determining the tangent vector of the plane where the second point is located includes: Determine the distance between each point in the point set except the second point and the second point; Determine a third point and a fourth point from the point set. The second point, the third point, and the fourth point are not on the same straight line. The distance between the third point and the second point is less than or equal to a third threshold, and the distance between the fourth point and the second point is less than or equal to the third threshold; Determine the normal vector of the plane where the second point is located according to the position information of the second point, the position information of the third point, and the position information of the fourth point. The plane where the second point is located is the plane determined by the second point, the third point, and the fourth point; Determine the tangent vector according to the direction vector in the vertical direction and the normal vector.
6. The method according to claim 4, characterized in that, The position information of each point in the point set includes coordinate information. The determining the coordinate information of the rotation center of the target object includes: Determine the rotation radius of the second point according to the coordinate information of the first rotation center and the coordinate information of the second point, where the first rotation center is any one of a preset plurality of rotation centers; Determine the rotational angular velocity of the second point according to the rotation radius of the second point and the linear velocity of the second point. Each point in the point set corresponds to a rotational angular velocity; Determine the average value of the rotational angular velocities corresponding to each point in the point set as the average rotational angular velocity; Determine the error term corresponding to the first rotation center, where the error term is determined according to the deviation value between the rotational angular velocity corresponding to each point in the point set and the average rotational angular velocity. Each rotation center of the plurality of rotation centers corresponds to an error term; Determine the coordinate information of the rotation center of the target object as the coordinate information of the rotation center corresponding to the smallest error term among the plurality of rotation centers.
7. The method according to claim 6, wherein The error term corresponding to the first rotation center satisfies the following conditions: Where: ε1 represents the error term of the first rotation center, n represents the number of points in the point set, ω i represents the angular velocity of rotation corresponding to the i-th point in the point set, represents the average angular velocity of rotation.
8. The method according to claim 6, wherein The method further includes: Determine an error function, where the independent variable of the error function includes the three-dimensional coordinates of the rotation center, and the dependent variable of the error function is an error term; Derive the error function with respect to the three-dimensional coordinates respectively to obtain three first-order derivatives of the error function; Determine the coordinate information of each rotation center among the preset multiple rotation centers according to the three first-order derivatives.
9. The method according to claim 8, wherein The error function is shown as the following formula: Where: ε represents the error term, n represents the number of points in the point set, v' i represents the linear velocity of the i-th point in the point set, x i , y i and z i represent the three-dimensional coordinate information of the i-th point in the point set, and x, y, and z represent the three-dimensional coordinate information of the rotation center.
10. An apparatus for determining pose transformation information of a target object, characterized in that, The device includes units for performing the respective steps of the method according to any one of claims 1 to 9.
11. A computer device, comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, characterized in that, When the processor executes the computer program, the method according to any one of claims 1 to 9 is implemented.
12. A computer-readable storage medium storing a computer program, characterized in that, When the computer program is executed by the processor, the method according to any one of claims 1 to 9 is implemented.