Data verification method and device, medium, electronic equipment and program product
By acquiring images of the calibration board captured by the camera, the pose and translational magnitude of the marker group are determined using a pose estimation algorithm. The accuracy of the pose estimation algorithm is verified, which solves the problem of insufficient accuracy caused by data uncertainty in hand-eye calibration and improves the accuracy of calibration.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-09-12
- Publication Date
- 2026-03-13
AI Technical Summary
In existing technologies, the accuracy of hand-eye calibration is affected by many factors, especially the uncertainty of data in the equation system, which leads to insufficient accuracy.
By acquiring images of the calibration board captured by the camera, the pose estimation algorithm is used to determine the pose of the markers in the marker group relative to the camera coordinate system. The accuracy of the pose estimation algorithm is verified by the relative pose and translational modulus between the markers. Noisy images are removed to improve the accuracy of hand-eye calibration.
It improves the accuracy of hand-eye calibration, ensures the accuracy of pose estimation algorithm, and reduces the impact of noisy images on calibration.
Smart Images

Figure CN121661147A_ABST
Abstract
Description
Technical Field
[0001] This disclosure relates to the field of camera calibration technology, and more specifically, to a data verification method, apparatus, medium, electronic device, and program product. Background Technology
[0002] In related technologies, nonlinear optimization methods are often used to solve the constructed system of equations in order to achieve hand-eye calibration. Therefore, the data involved in the constructed system of equations is an important factor affecting the accuracy of hand-eye calibration. Summary of the Invention
[0003] This summary section is provided to briefly introduce the concepts, which will be described in detail in the detailed description section below. This summary section is not intended to identify key or essential features of the claimed technical solution, nor is it intended to limit the scope of the claimed technical solution.
[0004] Firstly, this disclosure provides a data verification method, including: Acquire a first calibration board image captured by a camera, the first calibration board image including markers arranged in an array; The first group of markers in the first calibration board image is determined, and the pose estimation algorithm is used to determine the pose of the markers in the first group of markers relative to the camera coordinate system. Based on the poses of the markers in the first group of markers relative to the camera coordinate system, determine the relative poses between the coordinate systems of each marker in the first group of markers. Based on the relative poses of each marker in the first marker group within the coordinate system, determine the estimated translational modulus between the markers in the first marker group. The pose estimation algorithm is verified based on the estimated translational modulus between the markers in the first marker group and the actual translational modulus between the markers in the first marker group on the corresponding calibration plate.
[0005] Secondly, this disclosure provides a data verification device, comprising: The acquisition module is used to acquire a first calibration board image captured by the camera, the first calibration board image including markers arranged in an array; The first determining module is used to determine the first group of markers in the first calibration board image, and to determine the poses of the markers in the first group of markers relative to the camera coordinate system using a pose estimation algorithm. The second determining module is used to determine the relative poses between the coordinate systems of each marker in the first marker group based on the poses of the markers in the first marker group relative to the camera coordinate system. The third determining module is used to determine the estimated translational modulus between the markers in the first marker group based on the relative poses between the coordinate systems of the markers in the first marker group. The first verification module is used to verify the pose estimation algorithm based on the estimated translational modulus between the markers in the first marker group and the actual translational modulus between the markers in the first marker group on the corresponding calibration plate.
[0006] Thirdly, this disclosure provides a computer-readable medium having a computer program stored thereon, which, when executed by a processing device, implements the steps of the method described in the first aspect.
[0007] Fourthly, this disclosure provides an electronic device, comprising: A storage device on which computer programs are stored; A processing device for executing the computer program in the storage device to implement the steps of the method described in the first aspect.
[0008] Fifthly, this disclosure provides a computer program product, including a computer program that, when executed by a processor, implements the steps of the method described in the first aspect.
[0009] The above technical solution uses a pose estimation algorithm to determine the poses of the markers in the first group of markers in the first calibration board image relative to the camera coordinate system. Then, based on the poses of the markers in the first group of markers relative to the camera coordinate system, the relative poses between the coordinate systems of each marker in the first group of markers are determined. Next, relying on the estimated translational magnitudes between the markers determined by the relative poses and the actual translational magnitudes between the markers in the corresponding calibration board, the pose estimation algorithm calculates the accuracy of the poses of the markers relative to the camera coordinate system. Since the poses determined by the pose estimation algorithm are required in hand-eye calibration, offline verification of the pose estimation algorithm can improve the accuracy of hand-eye calibration.
[0010] Other features and advantages of this disclosure will be described in detail in the following detailed description section. Attached Figure Description
[0011] The above and other features, advantages, and aspects of the embodiments of this disclosure will become more apparent from the accompanying drawings and the following detailed description. Throughout the drawings, the same or similar reference numerals denote the same or similar elements. It should be understood that the drawings are schematic, and the originals and elements are not necessarily drawn to scale. In the drawings: Figure 1 This is a schematic diagram illustrating a hardware environment according to an exemplary embodiment of the present disclosure.
[0012] Figure 2This is a flowchart illustrating a data verification method according to an exemplary embodiment of the present disclosure.
[0013] Figure 3 This is a schematic diagram of an exemplary ChArUco calibration board according to an embodiment of this disclosure.
[0014] Figure 4 This is a block diagram illustrating a data verification apparatus according to an exemplary embodiment of the present disclosure.
[0015] Figure 5 This is a schematic diagram of the structure of an electronic device according to an exemplary embodiment of the present disclosure. Detailed Implementation
[0016] Embodiments of this disclosure will now be described in more detail with reference to the accompanying drawings. While some embodiments of this disclosure are shown in the drawings, it should be understood that this disclosure can be implemented in various forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided to provide a more thorough and complete understanding of this disclosure. It should be understood that the accompanying drawings and embodiments of this disclosure are for illustrative purposes only and are not intended to limit the scope of protection of this disclosure.
[0017] It should be understood that the steps described in the method embodiments of this disclosure may be performed in different orders and / or in parallel. Furthermore, the method embodiments may include additional steps and / or omit the steps shown. The scope of this disclosure is not limited in this respect.
[0018] The term "comprising" and its variations as used herein are open-ended inclusions, meaning "including but not limited to". The term "based on" means "at least partially based on". The term "one embodiment" means "at least one embodiment"; the term "another embodiment" means "at least one additional embodiment"; the term "some embodiments" means "at least some embodiments". Definitions of other terms will be given in the description below.
[0019] It should be noted that the concepts of "first" and "second" mentioned in this disclosure are used only to distinguish different devices, modules or units, and are not used to limit the order of functions performed by these devices, modules or units or their interdependencies.
[0020] It should be noted that the terms "a" and "a plurality of" used in this disclosure are illustrative rather than restrictive, and those skilled in the art should understand that, unless otherwise expressly indicated in the context, they should be understood as "one or more".
[0021] The names of messages or information exchanged between multiple devices in the embodiments of this disclosure are for illustrative purposes only and are not intended to limit the scope of such messages or information.
[0022] It is understood that before using the technical solutions disclosed in the various embodiments of this disclosure, users should be informed of the types, scope of use, and usage scenarios of the personal information involved in this disclosure in an appropriate manner in accordance with relevant laws and regulations, and user authorization should be obtained.
[0023] For example, upon receiving a user's active request, a prompt message is sent to the user to explicitly inform them that the requested operation will require the acquisition and use of the user's personal information. This allows the user to independently choose whether to provide personal information to the software or hardware, such as the electronic device, application, server, or storage medium performing the operations of this disclosed technical solution, based on the prompt message.
[0024] As an optional but non-limiting implementation, in response to a user's active request, sending a prompt message to the user can be done via a pop-up window, where the prompt message can be presented in text format. Furthermore, the pop-up window can also include a selection control allowing the user to choose "agree" or "disagree" to provide personal information to the electronic device.
[0025] It is understood that the above notification and user authorization process are merely illustrative and do not constitute a limitation on the implementation of this disclosure. Other methods that comply with relevant laws and regulations may also be applied to the implementation of this disclosure.
[0026] Meanwhile, it is understood that the data involved in this technical solution (including but not limited to the data itself, the acquisition or use of the data) shall comply with the requirements of relevant laws, regulations and related provisions.
[0027] Figure 1 This is a schematic diagram illustrating a hardware environment according to an exemplary embodiment of this disclosure. Figure 1 In this context, the hardware environment may include a robot, a calibration board, and a camera.
[0028] The robot comprises a base, a robotic arm, and a gripper (i.e., the end effector of the robotic arm). The robot controls the rotation of each joint of the robotic arm. A camera can be mounted on the end effector, and the camera's field of view includes at least the calibration plate. During the control of the robotic arm's movement, the camera can capture images of the calibration plate used to describe it.
[0029] Figure 2 This is a flowchart illustrating a data verification method according to an exemplary embodiment of the present disclosure. The data verification method relies on... Figure 1 The hardware environment shown is such that the data verification method can be executed by an electronic device, specifically a data verification device, which can be implemented in software and / or hardware. (See reference...) Figure 2 The data verification method may include the following steps: Step 210: Acquire a first calibration board image captured by the camera. The first calibration board image includes markers arranged in an array.
[0030] In this embodiment, the camera can be Figure 1 The camera shown.
[0031] The first calibration board image describes the calibration board, which can be a ChArUco calibration board, an AprilTag calibration board, etc. It should be understood that the calibration board contains identifiable markers; specifically, these markers can be square QR codes. By identifying the markers, information about pre-defined feature points can be obtained, and this feature point information is used to determine the pose of the markers relative to the camera coordinate system. Figure 3 This is a schematic diagram of an exemplary ChArUco calibration board according to an embodiment of this disclosure, as shown below. Figure 3 As shown, the ChArUco calibration board is obtained by inserting identifiable markers into the white squares of a black and white checkerboard pattern. Figure 3 The ArUco code in the text is a marker. Figure 3 The ArUco codes in the array are arranged in an array.
[0032] Step 220: Determine the first group of markers in the first calibration board image, and use a pose estimation algorithm to determine the poses of the markers in the first group of markers relative to the camera coordinate system.
[0033] It should be understood that the first set of markers may include two markers. The following description uses two markers as an example to illustrate this disclosure. Each marker corresponds to a different identifier, and the first set of markers can be obtained by combining the identifiers.
[0034] The pose estimation algorithm can be the Perspective-n-Point (PNP) algorithm. The PNP algorithm is a method for finding the correspondence between 3D points and 2D points, that is, given the coordinates of the object in the world coordinate system and the pixel coordinates of the object on the camera's image plane, the camera pose can be calculated. Corresponding to the embodiments of this disclosure, the camera pose of each marker in the first marker group relative to the camera coordinate system can be determined in the following way: obtaining the 3D coordinates of the feature points of the markers in the first marker group in the calibration board coordinate system; identifying the identifiers of the markers in the first marker group, and determining the pixel coordinates of the feature points in the first marker group based on the identifiers; and using the pose estimation algorithm to determine the camera pose of the markers in the first marker group relative to the camera coordinate system based on the 3D coordinates and pixel coordinates of the feature points in the first marker group.
[0035] Among them, the feature points in the first group of markers can be the corner points of the markers.
[0036] It should be understood that a world coordinate system can be established based on the calibration plate. The world coordinate system is the calibration plate coordinate system. Based on the size information of the calibration plate, the three-dimensional coordinates of the feature points of the markers on the calibration plate in the calibration plate coordinate system can be determined. As an example, the calibration plate coordinate system is established with the upper left corner of the calibration plate as the origin. Then, based on the size information of the calibration plate, the three-dimensional coordinates of the corner points of the markers on the calibration plate in the calibration plate coordinate system can be determined.
[0037] It should be understood that the identifier of a marker is associated with the pixel coordinates of corresponding feature points, and therefore the pixel coordinates of the feature points can be obtained from the identifier of the marker.
[0038] Step 230: Determine the relative poses of each marker in the first group of markers relative to the camera coordinate system.
[0039] It should be understood that the relative pose in this embodiment refers to the relative pose between the coordinate system of one marker in the first group of markers and the coordinate system of another marker. The coordinate system of each marker refers to the coordinate system with itself as the reference.
[0040] Furthermore, the relative poses of each marker in the first set of markers can be determined using the following formula: est_T_id1_id2 = INV(T_cam_id1)·T_cam_id2; Where est_T_id1_id2 is the relative pose between the coordinate systems of each marker in the first marker group, T_cam_id1 is the pose of one marker in the first marker group relative to the camera coordinate system, T_cam_id2 is the pose of another marker in the first marker group relative to the camera coordinate system, and INV() is the inverse operation.
[0041] Step 240: Determine the estimated translational modulus between the markers in the first group based on the relative poses between the coordinate systems of the markers in the first group.
[0042] It should be understood that the relative poses of the coordinate systems of each marker in the first group of markers contain translational components that characterize the coordinate systems. Therefore, the estimated translational magnitudes between the markers in the first group of markers can be determined based on these translational components.
[0043] Step 250: Verify the pose estimation algorithm based on the estimated translational modulus between the markers in the first marker group and the actual translational modulus between the markers in the first marker group on the corresponding calibration plate.
[0044] It is worth noting that the actual translational length is the actual distance between the markers obtained by measuring the calibration plate using measuring equipment.
[0045] Furthermore, if the difference between the estimated translational magnitude between the markers in the first marker group and the actual translational magnitude between the markers in the first marker group on the corresponding calibration plate is less than a preset difference, the pose estimation algorithm can be determined to have passed the verification. Conversely, if the difference between the estimated translational magnitude between the markers in the first marker group and the actual translational magnitude between the markers in the first marker group on the corresponding calibration plate is greater than or equal to a preset difference, the pose estimation algorithm is determined to have failed the verification. As an example, the preset difference can be 5 millimeters (mm).
[0046] Using the above method, a pose estimation algorithm is employed to determine the poses of the markers in the first group of markers in the first calibration board image relative to the camera coordinate system. Then, based on the poses of the markers in the first group of markers relative to the camera coordinate system, the relative poses between the coordinate systems of each marker in the first group of markers are determined. Next, relying on the estimated translational magnitudes between the markers determined by the relative poses and the actual translational magnitudes between the markers in the corresponding calibration board, the pose estimation algorithm is used to calculate the accuracy of the poses of the markers relative to the camera coordinate system. Since the poses determined by the pose estimation algorithm are required in hand-eye calibration, offline verification of the pose estimation algorithm can improve the accuracy of hand-eye calibration.
[0047] In some embodiments, the data verification method may further include: if the pose estimation algorithm passes verification, determining at least one second set of markers in a second calibration board image captured by the camera for hand-eye calibration; and using the pose estimation algorithm to determine the pose of each marker in each second set of markers relative to the camera coordinate system, wherein the second calibration board image includes markers arranged in an array; determining the relative pose between the coordinate systems of each marker in the second set of markers based on the pose of each marker in the second set of markers relative to the camera coordinate system; determining the estimated translational magnitude between the markers in the second set of markers based on the relative pose between the coordinate systems of each marker in the second set of markers; verifying the second set of markers based on the estimated translational magnitude between the markers in the second set of markers and the actual translational magnitude between the markers in the second set of markers in the corresponding calibration board; and determining whether the second calibration board image is a noisy image based on the number of second set of markers that pass verification.
[0048] The second calibration board image is similar to the first calibration board image, and the second set of markers is similar to the first set of markers. The relevant explanations and descriptions can be referred to the above embodiments, and will not be repeated here.
[0049] As can be seen from the above, each marker corresponds to a unique identifier. The identifiers can be traversed and combined to obtain a second marker group composed of markers with different identifiers.
[0050] Continuing with the example above, the pose estimation algorithm can be the PNP algorithm. Determining the pose of each marker in each second group of markers relative to the camera coordinate system using a pose estimation algorithm can be implemented as follows: obtain the three-dimensional coordinates of the feature points of the markers in the second group of markers in the calibration board coordinate system; identify the identifiers of the markers in the second group of markers, and determine the pixel coordinates of the feature points in the second group of markers based on the identifiers; based on the three-dimensional coordinates and pixel coordinates of the feature points in the second group of markers, use the pose estimation algorithm to determine the camera pose of the markers in the second group of markers relative to the camera coordinate system. The feature points in the second group of markers can be the corner points of the markers.
[0051] The method for determining the relative pose between the coordinate systems of each marker in the second marker group can refer to the method for determining the relative pose between the coordinate systems of each marker in the first marker group, and will not be elaborated here in this embodiment.
[0052] As can be seen from the above, the relative poses of the coordinate systems of each marker in the second marker group contain translational components that characterize the coordinate systems. Therefore, the estimated translational magnitudes between the markers in the second marker group can be determined based on these translational components.
[0053] As can be seen from the above, the actual translational length is the actual distance between the markers obtained by measuring the calibration plate using measuring equipment.
[0054] It should be understood that if the difference between the estimated translational magnitude of the markers in the second marker group and the actual translational magnitude of the markers in the second marker group on the corresponding calibration plate is less than the aforementioned preset difference, the second marker group can be determined to have passed the verification. Conversely, if the difference between the estimated translational magnitude of the markers in the second marker group and the actual translational magnitude of the markers in the second marker group on the corresponding calibration plate is greater than or equal to the aforementioned preset difference, the second marker group is determined to have failed the verification. Determining whether the second marker group has passed the verification is equivalent to determining whether the pose estimation algorithm has passed the verification.
[0055] The step of determining whether the second calibration board image is a noise image based on the number of second marker groups that pass the verification can be implemented in the following manner: count the total number of second marker groups; if the ratio of the number of second marker groups that pass the verification to the total number of groups is greater than a preset value, determine that the second calibration board image is not a noise image; if the ratio of the number of second marker groups that pass the verification to the total number of groups is less than or equal to a preset value, determine that the second calibration board image is a noise image.
[0056] In the hand-eye calibration process, the calibration board image is verified online, and noisy images are removed from the image set used for hand-eye calibration. That is, noisy images do not participate in the construction of the equation set used to solve the hand-eye calibration, thereby reducing the impact of noisy images on hand-eye calibration.
[0057] It should be understood that in the hand-eye calibration process, not only is it desirable that the camera pose estimation algorithm has sufficient accuracy (i.e., that the pose estimation algorithm passes verification), but also, since hand-eye calibration often uses nonlinear optimization methods to solve the constructed equations, and these equations are related to the camera pose of each frame of the calibration board image, it is also desirable that the camera pose accuracy of each frame of the calibration board image is sufficient. Therefore, Figure 2 The provided method is integrated into hand-eye calibration to remove noisy images and improve the accuracy of hand-eye calibration.
[0058] In some embodiments, the first calibration board image may include multiple images. The step of verifying the pose estimation algorithm based on the estimated translational magnitude between the markers in the first marker group and the actual translational magnitude between the markers in the first marker group on the corresponding calibration board may also be implemented in the following manner: determining whether the first marker group passes the verification based on the estimated translational magnitude between the markers in the first marker group and the actual translational magnitude between the markers in the first marker group on the corresponding calibration board; verifying the pose estimation algorithm based on the number of first marker groups that pass the verification.
[0059] It should be understood that each first calibration plate image corresponds to a first set of markers.
[0060] Furthermore, if the ratio of the number of first marker groups that pass the verification to the total number of all first marker groups is greater than a preset value, the pose estimation algorithm is determined to have passed the verification; if the ratio of the number of first marker groups that pass the verification to the total number of all first marker groups is less than or equal to a preset value, the pose estimation algorithm is determined to have failed the verification.
[0061] By using the above method to verify the pose estimation algorithm with multiple images of the first calibration board, the accuracy of the pose estimation algorithm verification can be improved.
[0062] In some embodiments, the actual spacing between the markers in the first and second marker groups on the corresponding calibration plate is greater than a preset spacing, thereby providing a way to verify the pose estimation algorithm and the accuracy of the second marker group.
[0063] Figure 4 This is a block diagram illustrating a data verification apparatus 400 according to an exemplary embodiment of the present disclosure, the apparatus 400 including: The acquisition module 401 is used to acquire a first calibration board image captured by the camera, wherein the first calibration board image includes markers arranged in an array; The first determining module 402 is used to determine the first group of markers in the first calibration board image, and to determine the poses of the markers in the first group of markers relative to the camera coordinate system using a pose estimation algorithm. The second determining module 403 is used to determine the relative poses between the coordinate systems of each marker in the first marker group based on the poses of the markers in the first marker group relative to the camera coordinate system. The third determining module 404 is used to determine the estimated translational modulus between the markers in the first marker group based on the relative poses between the coordinate systems of the markers in the first marker group. The first verification module 405 is used to verify the pose estimation algorithm based on the estimated translational modulus between the markers in the first marker group and the actual translational modulus between the markers in the first marker group on the corresponding calibration plate.
[0064] Optionally, the device 400 further includes: The fourth determining module is used to determine at least one second set of markers in the second calibration board image for hand-eye calibration captured by the camera, provided that the pose estimation algorithm passes the verification, and to determine the pose of each marker in each second set of markers relative to the camera coordinate system using the pose estimation algorithm. The second calibration board image includes markers arranged in an array. The fifth determining module is used to determine the relative pose between the coordinate systems of each marker in the second marker group based on the pose of each marker in the second marker group relative to the camera coordinate system. The sixth determining module is used to determine the estimated translational modulus between the markers in the second group of markers based on the relative poses between the coordinate systems of the markers in the second group of markers. The second verification module is used to verify the second marker group based on the estimated translational modulus between the markers in the second marker group and the actual translational modulus between the markers in the second marker group on the corresponding calibration plate. The third verification module is used to determine whether the second calibration board image is a noisy image based on the number of the second marker groups that pass the verification.
[0065] Optionally, the first calibration board image includes multiple images, and the first verification module 405 includes: The first determining submodule is used to determine whether the first group of markers passes the verification based on the estimated translational modulus between the markers in the first group of markers and the actual translational modulus between the markers in the first group of markers in the corresponding calibration plate. The first verification submodule is used to verify the pose estimation algorithm based on the number of the first set of markers that pass the verification.
[0066] Optionally, the device 400 further includes: A deletion module is used to delete the noisy images from the image set used for the hand-eye calibration.
[0067] Optionally, the actual spacing between the markers in the first marker group and the second marker group on the corresponding calibration plate is greater than a preset spacing.
[0068] The specific implementation methods of each module in the data verification device 400 can be referred to the above-mentioned related embodiments, and will not be repeated here.
[0069] Based on the same concept, embodiments of this disclosure also provide a computer-readable medium having a computer program stored thereon, which, when executed by a processing device, implements the steps of the above-described data verification method.
[0070] Based on the same concept, this disclosure also provides a computer program product, including a computer program, characterized in that the computer program, when executed by a processor, implements the steps of the above-described data verification method.
[0071] Based on the same concept, embodiments of this disclosure also provide an electronic device, including: A storage device on which computer programs are stored; A processing device is configured to execute the computer program in the storage device to implement the steps of the above-described data verification method.
[0072] The following is for reference. Figure 5 This diagram illustrates a structural schematic of an electronic device 500 suitable for implementing embodiments of the present disclosure. The terminal devices in these embodiments may include, but are not limited to, mobile terminals such as mobile phones, laptops, digital broadcast receivers, PDAs (personal digital assistants), PADs (tablet computers), PMPs (portable multimedia players), in-vehicle terminals (e.g., in-vehicle navigation terminals), and fixed terminals such as digital TVs and desktop computers. Figure 5 The electronic device shown is merely an example and should not be construed as limiting the functionality and scope of the embodiments disclosed herein.
[0073] like Figure 5 As shown, electronic device 500 may include a processing unit (e.g., a central processing unit, a graphics processing unit, etc.) 501, which can perform various appropriate actions and processes according to a program stored in read-only memory (ROM) 502 or a program loaded from storage device 508 into random access memory (RAM) 503. RAM 503 also stores various programs and data required for the operation of electronic device 500. Processing unit 501, ROM 502, and RAM 503 are interconnected via bus 504. Input / output (I / O) interface 505 is also connected to bus 504.
[0074] Typically, the following devices can be connected to I / O interface 505: input devices 506 including, for example, touchscreens, touchpads, keyboards, mice, cameras, microphones, accelerometers, gyroscopes, etc.; output devices 507 including, for example, liquid crystal displays (LCDs), speakers, vibrators, etc.; storage devices 508 including, for example, magnetic tapes, hard disks, etc.; and communication devices 509. Communication device 509 allows electronic device 500 to communicate wirelessly or wiredly with other devices to exchange data. Although Figure 5 An electronic device 500 with various devices is shown; however, it should be understood that it is not required to implement or possess all of the devices shown. More or fewer devices may be implemented or possessed alternatively.
[0075] In particular, according to embodiments of this disclosure, the processes described above with reference to the flowcharts can be implemented as computer software programs. For example, embodiments of this disclosure include a computer program product comprising a computer program carried on a non-transitory computer-readable medium, the computer program containing program code for performing the methods shown in the flowcharts. In such embodiments, the computer program can be downloaded and installed from a network via a communication device 509, or installed from a storage device 508, or installed from a ROM 502. When the computer program is executed by the processing device 501, it performs the functions defined in the methods of embodiments of this disclosure.
[0076] It should be noted that the computer-readable medium described in this disclosure can be a computer-readable signal medium or a computer-readable storage medium, or any combination thereof. A computer-readable storage medium can be, for example,—but not limited to—an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any combination thereof. More specific examples of a computer-readable storage medium may include, but are not limited to: an electrical connection having one or more wires, a portable computer disk, a hard disk, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), optical fiber, portable compact disk read-only memory (CD-ROM), optical storage device, magnetic storage device, or any suitable combination thereof. In this disclosure, a computer-readable storage medium can be any tangible medium containing or storing a program that can be used by or in conjunction with an instruction execution system, apparatus, or device. In this disclosure, a computer-readable signal medium can include a data signal propagated in baseband or as part of a carrier wave, carrying computer-readable program code. Such propagated data signals can take various forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination thereof. A computer-readable signal medium can be any computer-readable medium other than a computer-readable storage medium, which can send, propagate, or transmit a program for use by or in connection with an instruction execution system, apparatus, or device. The program code contained on the computer-readable medium can be transmitted using any suitable medium, including but not limited to: wires, optical fibers, RF (radio frequency), etc., or any suitable combination thereof.
[0077] In some implementations, electronic devices can communicate using any currently known or future-developed network protocol, such as HTTP (Hypertext Transfer Protocol), and can interconnect with digital data communications (e.g., communication networks) of any form or medium. Examples of communication networks include local area networks (“LANs”), wide area networks (“WANs”), the Internet (e.g., the Internet of Things), and peer-to-peer networks (e.g., ad hoc peer-to-peer networks), as well as any currently known or future-developed networks.
[0078] The aforementioned computer-readable medium may be included in the aforementioned electronic device; or it may exist independently and not assembled into the electronic device.
[0079] The aforementioned computer-readable medium carries one or more programs that, when executed by the electronic device, cause the electronic device to: acquire a first calibration board image captured by a camera, the first calibration board image including markers arranged in an array; determine a first group of markers in the first calibration board image, and use a pose estimation algorithm to determine the poses of the markers in the first group of markers relative to the camera coordinate system; determine the relative poses between the coordinate systems of each marker in the first group of markers based on the poses of the markers in the first group of markers relative to the camera coordinate system; determine the estimated translational magnitudes between the markers in the first group of markers based on the relative poses between the coordinate systems of each marker in the first group of markers; and verify the pose estimation algorithm based on the estimated translational magnitudes between the markers in the first group of markers and the actual translational magnitudes between the markers in the first group of markers in the corresponding calibration board.
[0080] Computer program code for performing the operations of this disclosure can be written in one or more programming languages or a combination thereof, including but not limited to object-oriented programming languages such as Java, Smalltalk, and C++, as well as conventional procedural programming languages such as the "C" language or similar programming languages. The program code can be executed entirely on the user's computer, partially on the user's computer, as a standalone software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In cases involving remote computers, the remote computer can be connected to the user's computer via any type of network—including a local area network (LAN) or a wide area network (WAN)—or can be connected to an external computer (e.g., via the Internet using an Internet service provider).
[0081] The flowcharts and block diagrams in the accompanying drawings illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of this disclosure. In this regard, each block in a flowchart or block diagram may represent a module, segment, or portion of code containing one or more executable instructions for implementing a specified logical function. It should also be noted that in some alternative implementations, the functions indicated in the blocks may occur in a different order than those indicated in the drawings. For example, two consecutively indicated blocks may actually be executed substantially in parallel, and they may sometimes be executed in reverse order, depending on the functions involved. It should also be noted that each block in the block diagrams and / or flowcharts, and combinations of blocks in the block diagrams and / or flowcharts, can be implemented using a dedicated hardware-based system that performs the specified function or operation, or using a combination of dedicated hardware and computer instructions.
[0082] The modules described in the embodiments of this disclosure can be implemented in software or hardware. The names of the modules are not, in some cases, intended to limit the functionality of the module itself.
[0083] The functions described above in this document can be performed at least in part by one or more hardware logic components. For example, exemplary types of hardware logic components that can be used, without limitation, include: field-programmable gate arrays (FPGAs), application-specific integrated circuits (ASICs), application-specific standard products (ASSPs), system-on-a-chip (SoCs), complex programmable logic devices (CPLDs), and so on.
[0084] In the context of this disclosure, a machine-readable medium can be a tangible medium that may contain or store a program for use by or in conjunction with an instruction execution system, apparatus, or device. A machine-readable medium can be a machine-readable signal medium or a machine-readable storage medium. A machine-readable medium can be, but is not limited to, electronic, magnetic, optical, electromagnetic, infrared, or semiconductor systems, apparatus, or devices, or any suitable combination of the foregoing. More specific examples of machine-readable storage media include electrical connections based on one or more wires, portable computer disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), optical fiber, portable compact disk read-only memory (CD-ROM), optical storage devices, magnetic storage devices, or any suitable combination of the foregoing.
[0085] The above description is merely a preferred embodiment of this disclosure and an explanation of the technical principles employed. Those skilled in the art should understand that the scope of this disclosure is not limited to technical solutions formed by specific combinations of the above-described technical features, but should also cover other technical solutions formed by arbitrary combinations of the above-described technical features or their equivalents without departing from the above-described concept. For example, technical solutions formed by substituting the above features with (but not limited to) technical features disclosed in this disclosure that have similar functions.
[0086] Furthermore, while the operations are described in a specific order, this should not be construed as requiring these operations to be performed in the specific order shown or in a sequential order. In certain environments, multitasking and parallel processing may be advantageous. Similarly, while several specific implementation details are included in the above discussion, these should not be construed as limiting the scope of this disclosure. Certain features described in the context of individual embodiments may also be implemented in combination in a single embodiment. Conversely, various features described in the context of a single embodiment may also be implemented individually or in any suitable sub-combination in multiple embodiments.
[0087] Although the subject matter has been described using language specific to structural features and / or methodological logic, it should be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or actions described above. Rather, the specific features and actions described above are merely illustrative forms of implementing the claims. Regarding the apparatus in the above embodiments, the specific manner in which the various modules perform their operations has been described in detail in the embodiments relating to the method, and will not be elaborated upon here.
Claims
1. A data verification method, characterized in that, include: Acquire a first calibration board image captured by a camera, the first calibration board image including markers arranged in an array; The first group of markers in the first calibration board image is determined, and the pose estimation algorithm is used to determine the pose of the markers in the first group of markers relative to the camera coordinate system. Based on the poses of the markers in the first group of markers relative to the camera coordinate system, determine the relative poses between the coordinate systems of each marker in the first group of markers. Based on the relative poses of each marker in the first marker group within the coordinate system, determine the estimated translational modulus between the markers in the first marker group. The pose estimation algorithm is verified based on the estimated translational modulus between the markers in the first marker group and the actual translational modulus between the markers in the first marker group on the corresponding calibration plate.
2. The method according to claim 1, characterized in that, The method further includes: If the pose estimation algorithm passes the verification, at least one second set of markers in the second calibration board image captured by the camera for hand-eye calibration is determined, and the pose estimation algorithm is used to determine the pose of each marker in each second set of markers relative to the camera coordinate system. The second calibration board image includes markers arranged in an array. Based on the pose of each marker in the second marker group relative to the camera coordinate system, determine the relative pose between the coordinate systems of each marker in the second marker group; Based on the relative poses of each marker in the second marker group within the coordinate system, determine the estimated translational modulus between the markers in the second marker group; The second set of markers is verified based on the estimated translational modulus between the markers in the second set and the actual translational modulus between the markers in the second set on the corresponding calibration plate. Based on the number of the second marker groups that pass the verification, it is determined whether the second calibration board image is a noisy image.
3. The method according to claim 1, characterized in that, The first calibration board image includes multiple images. The step of verifying the pose estimation algorithm based on the estimated translational magnitudes between markers in the first marker group and the actual translational magnitudes between markers in the first marker group on the corresponding calibration board includes: Based on the estimated translational modulus between the markers in the first marker group and the actual translational modulus between the markers in the first marker group on the corresponding calibration plate, determine whether the first marker group passes the verification. The pose estimation algorithm is validated based on the number of the first set of markers that pass the validation.
4. The method according to claim 2, characterized in that, The method further includes: Remove the noisy images from the image set used for the hand-eye calibration.
5. The method according to any one of claims 1-4, characterized in that, The actual spacing between the markers in the first and second marker groups on the corresponding calibration plates is greater than the preset spacing.
6. A data verification device, characterized in that, include: The acquisition module is used to acquire a first calibration board image captured by the camera, the first calibration board image including markers arranged in an array; The first determining module is used to determine the first group of markers in the first calibration board image, and to determine the poses of the markers in the first group of markers relative to the camera coordinate system using a pose estimation algorithm. The second determining module is used to determine the relative poses between the coordinate systems of each marker in the first marker group based on the poses of the markers in the first marker group relative to the camera coordinate system. The third determining module is used to determine the estimated translational modulus between the markers in the first marker group based on the relative poses between the coordinate systems of the markers in the first marker group. The first verification module is used to verify the pose estimation algorithm based on the estimated translational modulus between the markers in the first marker group and the actual translational modulus between the markers in the first marker group on the corresponding calibration plate.
7. The apparatus according to claim 6, characterized in that, The device further includes: The fourth determining module is used to determine at least one second set of markers in the second calibration board image for hand-eye calibration captured by the camera, provided that the pose estimation algorithm passes the verification, and to determine the pose of each marker in each second set of markers relative to the camera coordinate system using the pose estimation algorithm. The second calibration board image includes markers arranged in an array. The fifth determining module is used to determine the relative pose between the coordinate systems of each marker in the second marker group based on the pose of each marker in the second marker group relative to the camera coordinate system. The sixth determining module is used to determine the estimated translational modulus between the markers in the second group of markers based on the relative poses between the coordinate systems of the markers in the second group of markers. The second verification module is used to verify the second marker group based on the estimated translational modulus between the markers in the second marker group and the actual translational modulus between the markers in the second marker group on the corresponding calibration plate. The third verification module is used to determine whether the second calibration board image is a noisy image based on the number of the second marker groups that pass the verification.
8. A computer-readable medium having a computer program stored thereon, characterized in that, When executed by a processing device, the computer program performs the steps of the method described in any one of claims 1-5.
9. An electronic device, characterized in that, include: A storage device on which computer programs are stored; A processing device for executing the computer program in the storage device to implement the steps of the method according to any one of claims 1-5.
10. A computer program product, comprising a computer program, characterized in that, When the computer program is executed by a processor, it implements the steps of the method according to any one of claims 1-5.