Methods, systems, and media of determining pose of a moving object
By employing novel label styles and deep learning algorithms, combined with camera calibration and distortion correction, positioning points and marker points can be quickly identified, solving the problem of insufficient accuracy and robustness of visual positioning technology in indoor environments, and achieving efficient and accurate pose estimation.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- GUANGZHOU ON BRIGHT ELECTRONICS
- Filing Date
- 2023-02-22
- Publication Date
- 2026-06-19
AI Technical Summary
Existing visual positioning technologies suffer from low positioning accuracy and poor robustness in indoor environments, especially in strong light conditions where the label recognition error rate is high, and traditional algorithms have poor versatility.
A novel label style is adopted, with the shapes of the localization points and the marker points being significantly different. Combined with deep learning algorithms, camera calibration and distortion correction are performed. The first and second models are trained using a lightweight MobileNetv1 model to quickly identify localization points and marker points, perform distortion correction and position compensation, and improve the accuracy of pose estimation.
It improves the accuracy and robustness of visual positioning, reduces the error rate of label recognition, simplifies the operation process, is applicable to a variety of scenarios, does not require redevelopment due to changes in the environment, and saves computing resources.
Smart Images

Figure CN116188579B_ABST
Abstract
Description
Technical Field
[0001] This invention relates to the field of visual positioning technology, and more specifically to a method, system, and medium for determining the pose of a moving object. Background Technology
[0002] Visual positioning technology refers to a technology that allows machines to determine their location by capturing images and analyzing the information within them. It has been widely applied in numerous industries, such as robotics, drones, and autonomous driving. For machines to move autonomously in space, accurate positioning is essential; the accuracy of the positioning results and the robustness of the technology directly impact the application's effectiveness. In indoor environments, visual positioning technology relies on reference points for location. Tag-based visual positioning technology is widely used due to its ease of computation and high practicality.
[0003] Chinese patent application CN 114714352A discloses a method for determining robot pose information. This method requires the robot to perform rotational motion and fit the motion trajectory, which is cumbersome and carries a high risk of error.
[0004] Chinese patent application CN 106468553A discloses a method for locating moving objects based on road signs. However, when this method is applied to real-world scenarios, for locations with strong sunlight, such as near windows, the captured images are affected by infrared light interference from sunlight, causing brightness changes. In such cases, traditional pattern recognition algorithms may encounter label recognition errors, thus affecting positioning accuracy and resulting in insufficient robustness. Furthermore, if other reflective objects are placed in the environment, the recognition algorithm needs to add a large number of logical judgments to filter out the label areas, further reducing its versatility. Summary of the Invention
[0005] One aspect of this disclosure provides a method for determining the pose of a moving object. The method includes: acquiring an image including a label region, wherein the label region is an image of a label, the label including a location point for locating the label and an identifier point for uniquely identifying the label, and the identifier point being located within a region defined by the location point; cropping the label region from the image including the label region; identifying the location point and the identifier point from the label region; and determining the pose of the moving object based on the location point and the identifier point.
[0006] Another aspect of this disclosure provides a system for determining the pose of a moving object, comprising: a camera configured to acquire an image including a label region, wherein the label region is an image of a label, the label including a location point for locating the label and an identifier point for uniquely identifying the label, and the identifier point being located within a region defined by the location point; and processing circuitry coupled to the camera and configured to: crop the label region from the image including the label region; identify the location point and the identifier point from the label region; and determine the pose of the moving object based on the location point and the identifier point.
[0007] Another aspect of this disclosure provides a machine-readable medium. This machine-readable medium stores code that, when executed by processing circuitry, causes the processing circuitry to implement the aforementioned method for determining the pose of a moving object. Attached Figure Description
[0008] In accompanying drawings that are not necessarily drawn to scale, similar numbers may describe similar components in different views. Similar numbers with different letter suffixes may represent different instances of similar components. In the various figures of the accompanying drawings, some embodiments are shown by way of example rather than limitation, wherein:
[0009] Figure 1 A schematic diagram of an example label style according to an embodiment of this application is shown;
[0010] Figure 2 A schematic block diagram of a system for determining the pose of a moving object according to an embodiment of this application is shown;
[0011] Figure 3 A schematic flowchart illustrating the process of determining the pose of a moving object according to an embodiment of this application is shown; and
[0012] Figure 4 A schematic flowchart illustrating the process of training a first model and a second model according to an embodiment of this application is shown. Detailed Implementation
[0013] In the following description, numerous specific details are set forth for the purpose of explanation, in order to provide a thorough understanding of some exemplary embodiments. However, it will be apparent to those skilled in the art that this disclosure may be practiced without these specific details.
[0014] In view of one or more problems existing in existing visual positioning technologies, a method, system and medium for determining the pose of a moving object according to the present invention are proposed.
[0015] The tags used in visual positioning technology are often manually designed patterns, and their specific forms vary widely. Commonly used tags include QR codes and graphics with specific colors, shapes, and textures. To avoid affecting the interior design and aesthetics, tags are often placed on the ceiling. A camera mounted on top of the moving object captures an image of the tag looking upwards. Then, traditional image processing algorithms such as image binarization, connected component detection, and contour detection, combined with logical judgments, are used to identify the tag information and infer the pose of the moving object. Furthermore, to reduce interference from ambient light and other factors on tag recognition, reflective or luminescent materials are often used to make the tags, and then an infrared camera is used to photograph the tags to effectively filter out interference from lighting.
[0016] Generally, a label needs to include a positioning symbol for locating the label and an identification symbol for uniquely identifying the label. In the industry, positioning symbols are often simply called positioning points, and identification symbols are often simply called identification points. This is because they are simplified to a point in calculations (e.g., represented as (x, y) in a Cartesian coordinate system), rather than requiring the positioning symbols and identification symbols to be point-like. Positioning points allow for accurate identification of the label area, while identification points allow for label differentiation. The area defined by all positioning points (including the default positioning point) is called the identification zone, and all identification points must be located within the identification zone, i.e., they must not extend beyond the outer edge of the identification zone.
[0017] In some embodiments of this application, a novel label style is employed. In this style, the shapes of the positioning points and the marking points are significantly different, thereby enabling convenient and rapid differentiation between the two types of locations, reducing the difficulty of identification and improving the accuracy of identification.
[0018] Figure 1 A schematic diagram of an example label style according to an embodiment of this application is shown. Figure 1 In the example label style shown, for illustrative purposes only, the anchor point is L-shaped, while the label point is circular. In other examples, the anchor point and label point can be any other shapes, as long as they are significantly different. For example, the anchor point could be a square, and the label point could be a star.
[0019] Figure 1 The area defined by the positioning point is a square, but in other embodiments, the area defined by the positioning point can be of any shape. However, for convenience, axially symmetric or centrally symmetric shapes are generally chosen, such as circles, rectangles, rhombuses, etc. Positioning points at one or two corners of the square area can be omitted, such as... Figure 1The positioning point located at the lower right corner of the square area shown is omitted, but in other embodiments, positioning points at other corners can be omitted, such as any one of the other three corners of the square area, so as to conveniently determine the positive direction of the label. Alternatively, positioning points at two opposite corners can be omitted at the same time.
[0020] Within the area defined by the positioning points, one or more marker points are set. These marker points can be arranged in an m×n matrix, where m≥1, n≥1, and m and n can be unequal. The marker number is uniquely assigned using an n-ary encoding. In other embodiments, the marker points can also be arranged in other ways, such as in a circular or radial pattern, or other suitable encoding methods, as long as they can encode a marker number that meets the requirements.
[0021] In the example label style according to embodiments of this application, the shapes of the positioning points and the marker points are different. Regardless of whether traditional algorithms or deep learning algorithms are used, the two types of points can be quickly determined, reducing the error rate of label recognition. The example label style according to embodiments of this application is particularly suitable for deep learning algorithms because deep learning algorithms can also achieve rapid recognition of complex shapes. This provides more choices when designing the shapes of the positioning points and marker points, and the selected shapes of the positioning points and marker points can be significantly different.
[0022] Figure 2 A schematic block diagram of a system 200 for determining the pose of a moving object according to an embodiment of this application is shown. The system 200 may include one or more cameras (sometimes also called webcams) 210, a processing module 220, and a storage module 230, which may be interconnected / coupled to each other via a bus or wirelessly.
[0023] One or more cameras 210 are mounted on a moving object (e.g., a mobile robot) and move with the moving object, acquiring images including labeled regions as the object moves. These images may include one or more labeled regions. The labeled regions are labels (e.g., tags). Figure 1 The image is an example label. As described above, each label includes two or more positioning points for locating the label and at least one identification point for uniquely identifying the label, the at least one identification point being located within an area defined by the two or more positioning points. Since the labels are typically placed in locations such as ceilings in indoor environments, at least one of the one or more cameras 210 is mounted on top of the moving object to capture images of the labels. The one or more cameras 210 include infrared cameras, depth cameras, etc.
[0024] To improve the accuracy of pose estimation, one or more cameras 210 need to be specifically calibrated. For example, calibration methods such as the Zhang Zhengyou calibration method can be used in mathematical software such as MATLAB to calibrate the cameras and obtain their intrinsic parameters. The camera's intrinsic parameters mainly include the intrinsic parameter matrix and distortion coefficients.
[0025] The expression for the intrinsic parameter matrix in the two-dimensional (x,y) coordinate system is as follows:
[0026]
[0027] Where f x f is the focal length in the x-direction. y Let (u0, v0) be the focal length in the y-direction, and (u0, v0) be the optical center of the camera.
[0028] The expression for the distortion coefficient is as follows:
[0029] D=(k1,k2,k3,p1,p2) (2)
[0030] Where k1, k2, and k3 are radial distortion coefficients, and p1 and p2 are tangential distortion coefficients.
[0031] The accuracy of camera calibration directly affects the accuracy of subsequent pose estimation, therefore each camera used needs to be calibrated individually.
[0032] Processing module 220 may include one or more processing circuits, processors, processing cores, field-programmable gate arrays (FPGAs), chips, etc. For example, the processing chip of a mobile robot can serve as processing module 220, or a separate processing module 200 can be installed in the mobile robot.
[0033] Processing module 220 is configured to crop label regions from images including label regions acquired by one or more cameras 210. When an image includes multiple label regions, all label regions need to be cropped one by one. Processing module 220 is configured to identify localization points and marker points from the cropped label regions, and then determine the pose of the moving object based on these localization points and marker points.
[0034] Storage module 230 may include any form of storage device, such as volatile and non-volatile memory devices, read-only memory (ROM), random access memory (RAM), flash memory devices, floppy disks and other removable disks, magnetic storage media, optical storage media (e.g., CD-ROM, DVD, etc.), etc. Storage module 230 is configured to store any one or more of the following: images captured by one or more cameras 210, machine-readable instructions to be executed by processing module 220, tag encoding information, intermediate or process data, result data, etc.
[0035] In some embodiments, the processing module 220 may invoke a first model to crop the label region from an image including the label region, and may invoke a second model to identify localization points and marker points from the label region. The first and second models may be stored in the processing module 220, for example, in the form of machine-readable instructions. The first model may be trained, for example, using a first labeled data file, while the second model may be trained, for example, using a second labeled data file.
[0036] To obtain the first and second annotation data files, tags with different identification numbers need to be placed in different environments, and images need to be captured using a calibrated camera to simulate different lighting conditions, angles, and the presence of other reflective interference objects, which may be encountered in real-world applications. Since the ceiling height is not fixed in real-world applications, meaning the distance relative to the camera is not fixed, images from different distances must also be captured during shooting to ensure diversity in the size of the tag images.
[0037] After acquiring multiple images that meet the requirements, the labeled regions in each image are annotated, including marking the location of the labeled regions and indicating their categories. For example, the category of a labeled region can be defined as `big_label`. The annotated images are then stored as a first annotation data file.
[0038] Furthermore, the labeled regions in each of the multiple labeled images are cropped into sub-images, and the locations and categories of localization points and markers are then labeled in each sub-image. For example, the category of localization points can be defined as "location," while the category of markers is defined as "id." The labeled sub-images are then stored as a second annotation data file.
[0039] The first and second labeled data files are saved independently. After obtaining the first and second labeled data files, two models can be trained separately, for example, using object detection algorithms from deep learning algorithms. The object detection algorithm can be selected based on the configuration of the device used to train the model. For example, when training the model on a device containing processors such as graphics processing units (GPUs) and network processing units (NPUs), a model with a more complex network structure, such as the YOLO series, can be selected; while when training the model on a mobile device, a model with a lightweight network structure can be selected, such as modifying the backbone of the detection network to ShuffleNet or MobileNet series.
[0040] To improve real-time detection on mobile devices, in one embodiment of this application, a modified MobileNetv1 with altered layer and channel parameters is used as the backbone, and an SSD-like head is used as the head. The training loss function uses Multiple-loss, and the optimizer uses Adam to train two models. The model trained using this architecture is only about 1MB in size, and its accuracy is comparable to the original MobileNetv1 model. This allows it to be applied to lower-end hardware devices, saving costs.
[0041] When the first model is invoked, it obtains (x, y, w, h) as well as class and score based on the input image including the label region. (x, y) are the coordinates of the center point of the detection box, w and h are the width and height of the detection box, respectively, class is the category of the detection box, and score is the score of the detection box. Based on (x, y, w, h), it finds and crops the corresponding sub-image of the label region from the entire image.
[0042] Only the sub-image of the label region is input into the second model. Based on this sub-image, the second model obtains (x, y, w, h), class, and score. (x, y) are the coordinates of the detection box center point, w and h are the width and height of the detection box, respectively, class is the detection box category, and score is the detection box score. Based on the obtained category, localization points and marker points can be distinguished. Finally, the pixel coordinates of each localization point and each marker point in the label are obtained in the image. Decoding is performed according to the pixel coordinates of each marker point and a predefined encoding rule to obtain the corresponding identifier number for the label. Each identifier number is unique. Therefore, the processing module 220 can determine the pose of the moving object based on the pixel coordinates of each localization point and marker point.
[0043] Optionally, in order to improve the accuracy of pose estimation, the processing module 220 can perform distortion correction or position compensation after identifying the positioning point and the marker point.
[0044] Cameras often exhibit distortion due to variations in factory configurations, necessitating distortion correction. Conventional distortion correction processes adjust the entire image, but the truly relevant parameters are the coordinates of the labeled area. Therefore, distortion correction can be applied only to the identified localization points.
[0045] In embodiments of this application, for example, the following distortion correction process can be used: Based on the camera intrinsic parameter matrix (mtx) determined during camera calibration, a new intrinsic parameter matrix (newmtx) is calculated using the getOptimalNewCameraMatrix function in the OpenCV library; using the initUndistortRectifyMap function, (mapx, mapy) is calculated based on newmtx, mtx, and distortion parameters; and the undistortPoints function is used to perform distortion correction on the pixel coordinates of each identified location point and (mapx, mapy) to obtain the distorted pixel coordinates of each location point.
[0046] In the embodiments of this application, distortion correction is performed only on the positioning points, which can greatly increase the processing speed of each frame and save computing resources.
[0047] In addition, to prevent errors in the final position estimation due to inaccurate camera calibration parameters, position compensation is performed first based on a label whose world coordinates are known (hereinafter referred to as "known label") during the initial position estimation.
[0048] For ease of explanation, using Figure 1 The location compensation process is described using a label with a square area defined by the positioning point as an example. As an example, the compensation process according to this application includes the following steps:
[0049] (1) Take the point at the center of the known label as the origin of the world coordinate system, and measure the actual world coordinates of each positioning point and the actual length of the diagonal (e.g., the line segment between the positioning point in the upper right corner and the positioning point in the lower left corner).
[0050] (2) Make the center of the lens of the camera used for shooting aligned with the center position of the known label, that is, make the center point of the shooting image coincide with the center point of the known label, and calculate the pixel coordinates of each positioning point identified by the second model at this time. Calculate the diagonal pixel distance based on the pixel coordinates of the positioning points at the upper right and lower left corners identified by the second model, and set it as the initial diagonal pixel distance.
[0051] (3) Based on the actual diagonal distance of the known label and the initial diagonal pixel distance calculated in step (2), calculate the actual distance occupied by each pixel point, and then convert the pixel coordinates of each positioning point according to the actual world coordinates of each positioning point measured in step (1).
[0052] (4) Calculate the difference between the pixel coordinates of each positioning point identified by the second model and the pixel coordinates of the corresponding positioning point converted in step (3), and set the obtained difference as the initial coordinate offset of each positioning point;
[0053] (5) Divide the initial coordinate offset by the diagonal pixel distance and set the result as the initial relative coordinate offset of each positioning point; and
[0054] (6) The pixel coordinates of each positioning point measured subsequently are the values after position compensation according to the following formula.
[0055]
[0056] Where, ori_dis is the initial diagonal pixel distance, (ori_correct_x,ori_correct_y) is the initial coordinate offset of each positioning point, ori_correct_x / ori_dis or ori_correct_y / ori_dis is the initial relative coordinate offset of each positioning point, dis is the subsequently newly measured diagonal pixel distance, (x,y) is the subsequently newly measured pixel coordinate of the positioning point, and (correct_x,correct_y) is the pixel coordinate of the positioning point after position compensation.
[0057] After the above distortion correction and position compensation process, the processing module 220 can determine the pose of the moving object from the pixel coordinates of the label's identification point obtained from the second model and the pixel coordinates of the positioning point based on the distortion correction and position compensation.
[0058] As described above, having obtained the pixel coordinates of each positioning point, we can combine them with the corresponding world coordinates and use pose calculation methods such as PnP to calculate the translation matrix T and rotation matrix R, thereby obtaining the current pose of the moving object. The world coordinates can be set as needed, and the number of corresponding sets of world coordinates and pixel coordinates should be no less than 3.
[0059] As an example only, the following is an example of how processing module 220 calculates the pose of a moving object:
[0060] (a) Using mapping tools, determine the world coordinates of each set label and record them according to the corresponding label number;
[0061] (b) In actual identification, a new world coordinate system is established with the center point of each label as the origin. The positive direction of the label is taken as the line connecting the center point of the upper left and upper right positioning points and the center point of the label. Then the world coordinate values of each positioning point of each label are fixed values. In one embodiment, for example, the world coordinates of the upper left, upper right and lower left positioning points can be taken.
[0062] (c) Based on the pixel coordinates of each positioning point obtained in step (3) of the position compensation process above and the corresponding world coordinates obtained in step (b), three sets of corresponding coordinate pairs are formed. Then, a pose calculation method such as PnP is used to obtain the translation matrix T and the rotation matrix R, which are the pose offsets from the assumed new world coordinate system. In one embodiment, the pose calculation can be performed, for example, using the OpenCV library function solvePnP; and
[0063] (d) Based on the translation matrix T and rotation matrix R, and combined with the real-world coordinates of each label determined in step (a), the current true pose of the moving object can be calculated.
[0064] Other pose calculation methods known in the art are also applicable, and this application does not specifically limit them.
[0065] Figure 3 A schematic flowchart of a process 300 for determining the pose of a moving object according to an embodiment of this application is shown. Process 300 may be implemented, for example, by one or more circuits mounted on or remotely connected to the moving object, such as a computer, server, or any other computing device.
[0066] Process 300 may include, in block 310, acquiring an image including a label region. As described above, the label region is an image of a label, which includes a positioning point for locating the label and an identifier point for uniquely identifying the label, and the identifier point is located within the area defined by the positioning point.
[0067] Process 300 may include, in box 320, cropping the label region from the image that includes the label region. For example, the operation in box 320 can be implemented by calling the first model described above.
[0068] Process 300 may include, in box 330, identifying positioning points and marker points from the label area. For example, the operation of box 330 can be implemented by calling the second model described above.
[0069] Process 300 may also include, in box 340, determining the pose of the moving object based on the identified location points and marker points.
[0070] Optionally, before the operation of block 340, process 300 may also include operations (not shown) for distortion correction and position compensation of the identified positioning points.
[0071] Figure 4 A schematic flowchart of a process 400 for training a first model and a second model according to an embodiment of this application is shown. Process 400 may be implemented by one or more circuits of, for example, a computer, server, or any other computing device.
[0072] Process 400 may include, in block 410, calibrating one or more cameras to be used to obtain the intrinsic parameters of each camera.
[0073] Process 400 may include, in box 420, placing labels with different identification numbers in different environments and taking images from different distances using a calibrated camera to obtain multiple images.
[0074] Process 400 may include, in box 430, labeling the label regions in each of the multiple images, and storing the labeled multiple images as a first labeling data file.
[0075] Process 400 may include, in box 440, cropping the label region in each of the multiple labeled images into sub-images, then labeling the location and category of the positioning points and markers in each sub-image, and storing the multiple labeled sub-images as a second annotation data file.
[0076] Process 400 may include, in box 450, building and training a first model using a first labeled data file, and building and training a second model using a second labeled data file. The trained first model can be used, for example, in box 320 of process 300, to find and crop the labeled region from the image including the labeled region, and the trained second model can be used, for example, in box 330 of process 300, to identify localization points and marker points from the labeled region, for example, by determining the pixel coordinates of the localization points and marker points respectively.
[0077] Figure 3 Process 300 and Figure 4The process 400 can be implemented in one or more modules as a set of logic instructions stored in a machine or computer-readable storage medium such as random access memory (RAM), read-only memory (ROM), programmable ROM (PROM), firmware, flash memory; in configurable logic such as programmable logic array (PLA), field-programmable gate array (FPGA), complex programmable logic device (CPLD); in fixed-function logic hardware using circuit technologies such as application-specific integrated circuit (ASIC), complementary metal-oxide-semiconductor (CMOS) or transistor-transistor logic (TTL); or in any combination thereof.
[0078] For example, Figure 3 Process 300 and Figure 4 The computer program code for the operations shown in process 400 can be written in any combination of one or more programming languages, including object-oriented programming languages such as JAVA, SMALLTALK, C++, etc., and conventional procedural programming languages such as the "C" programming language or similar programming languages. Additionally, the logic instructions can include assembly instructions, instruction set architecture (ISA) instructions, machine instructions, machine-dependent instructions, microcode, state setting data, integrated circuit configuration data, and state information that personalizes hardware-local electronic circuits and / or other structural components (e.g., main processor, central processing unit (CPU), microcontroller, etc.).
[0079] In the embodiments of this application, by using deep learning algorithms, the designed labels can be identified quickly and accurately, unaffected by environmental changes and other reflective interference. Furthermore, the model used can be applied to multiple scenarios after a single training, eliminating the need for redevelopment due to changes in application scenarios. In addition, the method, system, and medium for determining the pose of a moving object according to the embodiments of this application are simple to operate. Only two trained models need to be called sequentially to obtain the pixel coordinates of each positioning point and marker point, eliminating the need to add a large amount of logic for different scenarios as with traditional algorithms, thus reducing development difficulty. Moreover, the addition of distortion correction and position compensation measures avoids imaging position shifts caused by camera problems (such as inaccurate calibration parameters or large distortion), thereby improving the accuracy, robustness, and versatility of pose estimation, making visual positioning more convenient, accurate, and efficient.
[0080] The foregoing description has been given for illustrative and descriptive purposes. It is not intended to be exhaustive or to limit the invention to the precise forms disclosed. Many variations and modifications are possible based on the foregoing teachings. Furthermore, it should be noted that any or all of the alternative embodiments mentioned above can be used in any combination required to form additional hybrid embodiments of the invention.
[0081] Furthermore, although specific embodiments of the invention have been described and illustrated, the invention is not limited to the specific form or arrangement of the described and illustrated portions. The scope of the invention is defined by the appended claims, any future claims filed in different applications, and their equivalents.
Claims
1. A method for determining the pose of a moving object, comprising: Acquire an image including a label region, wherein the label region is an image of a label, the label including a positioning point for locating the label and an identifier point for uniquely identifying the label, and the identifier point is located within a region defined by the positioning point; The label region is cropped from the image including the label region; Identify the location point and the marker point from the label area; as well as The pose of the moving object is determined based on the positioning point and the marker point. Determining the pose of the moving object based on the positioning point and the marker point includes: performing position compensation on the positioning point according to a compensation formula, and determining the pose of the moving object based on the marker point and the position-compensated positioning point. The compensation formula includes: ; Where (x,y) are the pixel coordinates of the positioning point to be position compensated, (correct_x,correct_y) are the pixel coordinates of the positioning point after position compensation, ori_dis is the initial diagonal pixel distance between the two positioning points, (ori_correct_x, ori_correct_y) are the initial coordinate offsets of each positioning point, and dis is the diagonal pixel distance in the current image. The initial diagonal pixel distance and the initial coordinate offset of each positioning point are determined through the following steps: Using the known label center point as the origin of the world coordinate system, measure the actual world coordinates of each of the positioning points and the actual length of the diagonal between two of the positioning points; Make the center of the captured image coincide with the center point of the known label, and calculate the first pixel coordinates of each of the positioning points and the initial diagonal pixel distance of the diagonal; Based on the actual length of the diagonal and the initial diagonal pixel distance, the actual distance occupied by each pixel is calculated, and the second pixel coordinates of each positioning point are converted according to the actual world coordinates of each positioning point. The difference between the first pixel coordinate and the second pixel coordinate of each of the positioning points is calculated and used as the initial coordinate offset of each positioning point.
2. The method of claim 1, wherein, The label is made of retroreflective or luminescent material, and the shape of the positioning point is different from the shape of the marking point.
3. The method according to claim 1 or 2, wherein, In the label, at least one of the positioning points in a particular orientation is omitted.
4. The method of claim 1 or 2, wherein, Cropping the label region from the image including the label region is achieved by a first model, which is trained using a deep learning algorithm on a first labeled data file, which is obtained in the following way: Multiple images were obtained by taking pictures of tags placed in different environments at different distances using a calibrated camera; Labeling is performed on the labeled regions in each of the plurality of images; and The labeled images are stored as the first labeled data file.
5. The method of claim 4, wherein, The identification of the location point and the marker point from the labeled area is achieved by a second model, which is trained using a second labeled data file through a deep learning algorithm. The second labeled data file is obtained in the following way: The labeled regions in each of the labeled images are cropped into sub-images; The location and category of the positioning point and the marker point are marked in the sub-image; as well as The labeled sub-image is stored as the second labeled data file.
6. A system for determining the pose of a moving object, comprising: A camera is configured to acquire an image including a label region, wherein the label region is an image of a label, the label including a positioning point for locating the label and an identifier point for uniquely identifying the label, and the identifier point is located within an area defined by the positioning point; The processing circuitry, coupled to the camera, is configured to: The label region is cropped from the image including the label region; Identify the location point and the marker point from the label area; and The pose of the moving object is determined based on the positioning point and the marker point; The processing circuit is further configured to: perform position compensation on the positioning point according to a compensation formula, and determine the pose of the moving object based on the marker point and the position-compensated positioning point, wherein the compensation formula includes: ; Where (x,y) are the pixel coordinates of the positioning point to be position compensated, (correct_x,correct_y) are the pixel coordinates of the positioning point after position compensation, ori_dis is the initial diagonal pixel distance between the two positioning points, (ori_correct_x, ori_correct_y) are the initial coordinate offsets of each positioning point, and dis is the diagonal pixel distance in the current image. The initial diagonal pixel distance and the initial coordinate offset of each positioning point are determined through the following steps: Using the known label center point as the origin of the world coordinate system, measure the actual world coordinates of each of the positioning points and the actual length of the diagonal between two of the positioning points; Make the center of the captured image coincide with the center point of the known label, and calculate the first pixel coordinates of each of the positioning points and the initial diagonal pixel distance of the diagonal; Based on the actual length of the diagonal and the initial diagonal pixel distance, the actual distance occupied by each pixel is calculated, and the second pixel coordinates of each positioning point are converted according to the actual world coordinates of each positioning point. The difference between the first pixel coordinate and the second pixel coordinate of each of the positioning points is calculated and used as the initial coordinate offset of each positioning point.
7. The system of claim 6, wherein, The label is made of retroreflective or luminescent material, and the shape of the positioning point is different from the shape of the marking point.
8. The system of claim 6 or 7, wherein, In the label, at least one of the positioning points in a particular orientation is omitted.
9. The system of claim 6 or 7 further includes one or more memories coupled to the camera or the processing circuitry, configured to store images acquired by the camera, machine-readable instructions readable by the processing circuitry, or intermediate processing data or result data of the processing circuitry.
10. The system of claim 6 or 7, wherein, The processing circuit invokes a first model to crop the label region from the image including the label region. The first model is trained using a deep learning algorithm on a first labeled data file, which is obtained in the following way: Multiple images were obtained by taking pictures of tags placed in different environments at different distances using a calibrated camera; Labeling is performed on the labeled regions in each of the plurality of images; and The labeled images are stored as the first labeled data file.
11. The system of claim 10, wherein, The processing circuit invokes a second model to identify the location point and the marker point from the label region. The second model is trained using a second annotation data file through a deep learning algorithm. The second annotation data file is obtained in the following way: The labeled regions in each of the labeled images are cropped into sub-images; The location and category of the positioning point and the marker point are marked in the sub-image; as well as The labeled sub-image is stored as the second labeled data file.
12. The system of claim 6 or 7, wherein, The camera is a calibrated camera.
13. A machine-readable medium storing code, which, when executed by a processing circuit, causes the processing circuit to perform the method for determining the pose of a moving object as described in any one of claims 1 to 5.