![]() |
Visual Servoing Platform version 3.7.0
|
#include <vpDetectorAprilTag.h>
Public Member Functions | |
| vpDetectorAprilTag (const vpAprilTagFamily &tagFamily=TAG_36h11, const vpPoseEstimationMethod &poseEstimationMethod=HOMOGRAPHY_VIRTUAL_VS) | |
| vpDetectorAprilTag (const vpDetectorAprilTag &o) | |
| vpDetectorAprilTag & | operator= (vpDetectorAprilTag o) |
| virtual | ~vpDetectorAprilTag () VP_OVERRIDE |
| bool | detect (const vpImage< unsigned char > &I) VP_OVERRIDE |
| bool | detect (const vpImage< unsigned char > &I, double tagSize, const vpCameraParameters &cam, std::vector< vpHomogeneousMatrix > &cMo_vec, std::vector< vpHomogeneousMatrix > *cMo_vec2=nullptr, std::vector< double > *projErrors=nullptr, std::vector< double > *projErrors2=nullptr) |
| void | displayFrames (const vpImage< unsigned char > &I, const std::vector< vpHomogeneousMatrix > &cMo_vec, const vpCameraParameters &cam, double size, const vpColor &color, unsigned int thickness=1) const |
| void | displayFrames (const vpImage< vpRGBa > &I, const std::vector< vpHomogeneousMatrix > &cMo_vec, const vpCameraParameters &cam, double size, const vpColor &color, unsigned int thickness=1) const |
| void | displayTags (const vpImage< unsigned char > &I, const std::vector< std::vector< vpImagePoint > > &tagsCorners, const vpColor &color=vpColor::none, unsigned int thickness=1) const |
| void | displayTags (const vpImage< vpRGBa > &I, const std::vector< std::vector< vpImagePoint > > &tagsCorners, const vpColor &color=vpColor::none, unsigned int thickness=1) const |
| float | getAprilTagDecisionMarginThreshold () const |
| int | getAprilTagHammingDistanceThreshold () const |
| bool | getPose (size_t tagIndex, double tagSize, const vpCameraParameters &cam, vpHomogeneousMatrix &cMo, vpHomogeneousMatrix *cMo2=nullptr, double *projError=nullptr, double *projError2=nullptr) |
| vpPoseEstimationMethod | getPoseEstimationMethod () const |
| bool | getTagImage (vpImage< unsigned char > &I, int id) |
| std::vector< std::vector< vpImagePoint > > | getTagsCorners () const |
| std::vector< float > | getTagsDecisionMargin () const |
| std::vector< int > | getTagsHammingDistance () const |
| std::vector< int > | getTagsId () const |
| std::vector< std::vector< vpPoint > > | getTagsPoints3D (const std::vector< int > &tagsId, const std::map< int, double > &tagsSize) const |
| bool | isZAlignedWithCameraAxis () const |
| void | setAprilTagDebugOption (bool flag) |
| void | setAprilTagDecisionMarginThreshold (float decisionMarginThreshold) |
| void | setAprilTagDecodeSharpening (double decodeSharpening) |
| void | setAprilTagFamily (const vpAprilTagFamily &tagFamily) |
| void | setAprilTagHammingDistanceThreshold (int hammingDistanceThreshold) |
| void | setAprilTagNbThreads (int nThreads) |
| void | setAprilTagPoseEstimationMethod (const vpPoseEstimationMethod &poseEstimationMethod) |
| void | setAprilTagQuadDecimate (float quadDecimate) |
| void | setAprilTagQuadSigma (float quadSigma) |
| void | setAprilTagRefineEdges (bool refineEdges) |
| void | setDisplayTag (bool display, const vpColor &color=vpColor::none, unsigned int thickness=2) |
| void | setZAlignedWithCameraAxis (bool zAlignedWithCameraFrame) |
Friends | |
| void | swap (vpDetectorAprilTag &o1, vpDetectorAprilTag &o2) |
Deprecated functions | |
| bool | m_displayTag |
| vpColor | m_displayTagColor |
| unsigned int | m_displayTagThickness |
| vpPoseEstimationMethod | m_poseEstimationMethod |
| vpAprilTagFamily | m_tagFamily |
| VP_DEPRECATED void | setAprilTagRefinePose (bool refinePose) |
| VP_DEPRECATED void | setAprilTagRefineDecode (bool refineDecode) |
Inherited functionalities from vpDetectorBase | |
| std::vector< std::vector< vpImagePoint > > | m_polygon |
| std::vector< std::string > | m_message |
| size_t | m_nb_objects |
| unsigned long | m_timeout_ms |
| vpRect | getBBox (size_t i) const |
| vpImagePoint | getCog (size_t i) const |
| std::vector< std::string > & | getMessage () |
| std::string & | getMessage (size_t i) |
| size_t | getNbObjects () const |
| std::vector< std::vector< vpImagePoint > > & | getPolygon () |
| std::vector< vpImagePoint > & | getPolygon (size_t i) |
| void | setTimeout (unsigned long timeout_ms) |
Base class for AprilTag detector. This class is a wrapper over AprilTag. There is no need to download and install AprilTag from source code or from existing pre-built packages since the source code is embedded in ViSP. Reference papers are AprilTag: A robust and flexible visual fiducial system ([42]), AprilTag 2: Efficient and robust fiducial detection ([58]) and Flexible Layouts for Fiducial Tags ([25]).
Supported tag families are the following:
To use this class you can follow Tutorial: AprilTag/ArUco marker detection.
The detect() function allows to detect multiple tags in an image. Once detected, for each tag it is possible to retrieve the location of the corners using getPolygon(), the encoded message using getMessage(), the bounding box using getBBox() and the center of gravity using getCog().
If camera parameters and the size of the tag are provided, you can also estimate the 3D pose of the tag in terms of position and orientation wrt the camera considering 2 cases:
The following sample code shows how to use this class to detect the location of 36h11 AprilTag patterns in an image.
The previous example may produce results like:
As shown in the next image, two different tag frames could be considered for pose estimation.
There is the function setZAlignedWithCameraAxis() that allows to choose which tag frame has to be considered.
This other example shows how to estimate the 3D pose of 36h11 AprilTag patterns considering that all the tags have the same size (in our example 0.053 m). Here we consider the default case, when z-camera and z-tag axis are not aligned.
The previous example may produce results like:
In this other example we estimate the 3D pose of 36h11 AprilTag patterns considering that tag 36h11 with id 0 (in that case the tag message is "36h11 id: 0") has a size of 0.040 m, while all the others have a size of 0.053m.
With respect to the previous example, this example may now produce a different pose for tag with id 0:
Tutorials
If you want a detailed explanation on how to use this class, you may have a look at:
Definition at line 261 of file vpDetectorAprilTag.h.
| Enumerator | |
|---|---|
| TAG_36h11 | AprilTag 36h11 pattern (recommended). |
| TAG_36h10 | DEPRECATED. |
| TAG_36ARTOOLKIT | DEPRECATED AND WILL NOT DETECT ARTOOLKIT TAGS. |
| TAG_25h9 | AprilTag 25h9 pattern. |
| TAG_25h7 | DEPRECATED AND POOR DETECTION PERFORMANCE. |
| TAG_16h5 | AprilTag 16h5 pattern. |
| TAG_CIRCLE21h7 | AprilTag Circle21h7 pattern. |
| TAG_CIRCLE49h12 | AprilTag Circle49h12 pattern. |
| TAG_CUSTOM48h12 | AprilTag Custom48h12 pattern. |
| TAG_STANDARD41h12 | AprilTag Standard41h12 pattern. |
| TAG_STANDARD52h13 | AprilTag Standard52h13 pattern. |
| TAG_ARUCO_4x4_50 | ArUco 4x4 pattern: 4x4 bits, minimum hamming distance between any two codes = 4, 50 codes. |
| TAG_ARUCO_4x4_100 | ArUco 4x4 pattern: 4x4 bits, minimum hamming distance between any two codes = 3, 100 codes. |
| TAG_ARUCO_4x4_250 | ArUco 4x4 pattern: 4x4 bits, minimum hamming distance between any two codes = 3, 250 codes. |
| TAG_ARUCO_4x4_1000 | ArUco 4x4 pattern: 4x4 bits, minimum hamming distance between any two codes = 2, 1000 codes. |
| TAG_ARUCO_5x5_50 | ArUco 5x5 pattern: 5x5 bits, minimum hamming distance between any two codes = 8, 50 codes. |
| TAG_ARUCO_5x5_100 | ArUco 5x5 pattern: 5x5 bits, minimum hamming distance between any two codes = 7, 100 codes. |
| TAG_ARUCO_5x5_250 | ArUco 5x5 pattern: 5x5 bits, minimum hamming distance between any two codes = 6, 250 codes. |
| TAG_ARUCO_5x5_1000 | ArUco 5x5 pattern: 5x5 bits, minimum hamming distance between any two codes = 5, 1000 codes. |
| TAG_ARUCO_6x6_50 | ArUco 6x6 pattern: 6x6 bits, minimum hamming distance between any two codes = 13, 50 codes. |
| TAG_ARUCO_6x6_100 | ArUco 6x6 pattern: 6x6 bits, minimum hamming distance between any two codes = 12, 100 codes. |
| TAG_ARUCO_6x6_250 | ArUco 6x6 pattern: 6x6 bits, minimum hamming distance between any two codes = 11, 250 codes. |
| TAG_ARUCO_6x6_1000 | ArUco 6x6 pattern: 6x6 bits, minimum hamming distance between any two codes = 9, 1000 codes. |
| TAG_ARUCO_7x7_50 | ArUco 7x7 pattern: 7x7 bits, minimum hamming distance between any two codes = 19, 50 codes. |
| TAG_ARUCO_7x7_100 | ArUco 7x7 pattern: 7x7 bits, minimum hamming distance between any two codes = 18, 100 codes. |
| TAG_ARUCO_7x7_250 | ArUco 7x7 pattern: 7x7 bits, minimum hamming distance between any two codes = 17, 250 codes. |
| TAG_ARUCO_7x7_1000 | ArUco 7x7 pattern: 7x7 bits, minimum hamming distance between any two codes = 14, 1000 codes. |
| TAG_ARUCO_MIP_36h12 | ArUco 6x6 pattern: 6x6 bits, minimum hamming distance between any two codes = 12, 250 codes. |
Definition at line 264 of file vpDetectorAprilTag.h.
Definition at line 346 of file vpDetectorAprilTag.h.
| BEGIN_VISP_NAMESPACE vpDetectorAprilTag::vpDetectorAprilTag | ( | const vpAprilTagFamily & | tagFamily = TAG_36h11, |
| const vpPoseEstimationMethod & | poseEstimationMethod = HOMOGRAPHY_VIRTUAL_VS ) |
Definition at line 1169 of file vpDetectorAprilTag.cpp.
References m_displayTag, m_displayTagColor, m_displayTagThickness, m_poseEstimationMethod, and m_tagFamily.
Referenced by operator=(), swap, and vpDetectorAprilTag().
| vpDetectorAprilTag::vpDetectorAprilTag | ( | const vpDetectorAprilTag & | o | ) |
Definition at line 1176 of file vpDetectorAprilTag.cpp.
References m_displayTag, m_displayTagColor, m_displayTagThickness, m_poseEstimationMethod, m_tagFamily, vpDetectorAprilTag(), and vpDetectorBase::vpDetectorBase().
|
virtual |
Definition at line 1188 of file vpDetectorAprilTag.cpp.
|
virtual |
Detect AprilTag tags in the image. Return true if at least one tag is detected, false otherwise.
| I | : Input image. |
Implements vpDetectorBase.
Definition at line 1197 of file vpDetectorAprilTag.cpp.
References m_displayTag, m_displayTagColor, m_displayTagThickness, vpDetectorBase::m_message, vpDetectorBase::m_nb_objects, and vpDetectorBase::m_polygon.
Referenced by visp.python.rbt.xfeat.XFeatTrackingBackend.XFeatTrackingBackend::process_frame().
| bool vpDetectorAprilTag::detect | ( | const vpImage< unsigned char > & | I, |
| double | tagSize, | ||
| const vpCameraParameters & | cam, | ||
| std::vector< vpHomogeneousMatrix > & | cMo_vec, | ||
| std::vector< vpHomogeneousMatrix > * | cMo_vec2 = nullptr, | ||
| std::vector< double > * | projErrors = nullptr, | ||
| std::vector< double > * | projErrors2 = nullptr ) |
Detect AprilTag tags in the image and compute the corresponding tag poses considering that all the tags have the same size.
If tags with different sizes have to be considered, you may use getPose().
| [in] | I | : Input image. |
| [in] | tagSize | : Tag size in meter corresponding to the external width of the pattern. |
| [in] | cam | : Camera intrinsic parameters. |
| [out] | cMo_vec | : List of tag poses. |
| [out] | cMo_vec2 | : Optional second list of tag poses, since there are 2 solutions for planar pose estimation. |
| [out] | projErrors | : Optional (sum of squared) projection errors in the normalized camera frame. |
| [out] | projErrors2 | : Optional (sum of squared) projection errors for the 2nd solution in the normalized camera frame. |
Definition at line 1229 of file vpDetectorAprilTag.cpp.
References m_displayTag, m_displayTagColor, m_displayTagThickness, vpDetectorBase::m_message, vpDetectorBase::m_nb_objects, and vpDetectorBase::m_polygon.
Referenced by visp.python.rbt.xfeat.XFeatTrackingBackend.XFeatTrackingBackend::process_frame().
| void vpDetectorAprilTag::displayFrames | ( | const vpImage< unsigned char > & | I, |
| const std::vector< vpHomogeneousMatrix > & | cMo_vec, | ||
| const vpCameraParameters & | cam, | ||
| double | size, | ||
| const vpColor & | color, | ||
| unsigned int | thickness = 1 ) const |
Display the tag frames on a grayscale image.
| [in] | I | : The image. |
| [in] | cMo_vec | : The vector of computed tag poses. |
| [in] | cam | : Camera intrinsic parameters. |
| [out] | size | : Size of the frame. |
| [out] | color | : The desired color, if none the X-axis is red, the Y-axis green and the Z-axis blue. |
| [out] | thickness | : The thickness of the lines. |
Definition at line 1258 of file vpDetectorAprilTag.cpp.
| void vpDetectorAprilTag::displayFrames | ( | const vpImage< vpRGBa > & | I, |
| const std::vector< vpHomogeneousMatrix > & | cMo_vec, | ||
| const vpCameraParameters & | cam, | ||
| double | size, | ||
| const vpColor & | color, | ||
| unsigned int | thickness = 1 ) const |
Display the tag frames on a vpRGBa image.
| [in] | I | : The image. |
| [in] | cMo_vec | : The vector of computed tag poses. |
| [in] | cam | : Camera intrinsic parameters. |
| [out] | size | : Size of the frame. |
| [out] | color | : The desired color, if none the X-axis is red, the Y-axis green and the Z-axis blue. |
| [out] | thickness | : The thickness of the lines. |
Definition at line 1274 of file vpDetectorAprilTag.cpp.
| void vpDetectorAprilTag::displayTags | ( | const vpImage< unsigned char > & | I, |
| const std::vector< std::vector< vpImagePoint > > & | tagsCorners, | ||
| const vpColor & | color = vpColor::none, | ||
| unsigned int | thickness = 1 ) const |
Display the tag contours on a grayscale image.
| [in] | I | : The image. |
| [in] | tagsCorners | : The vector of tag contours. |
| [out] | color | : The desired color, if none RGBY colors are used. |
| [out] | thickness | : The thickness of the lines. |
Definition at line 1288 of file vpDetectorAprilTag.cpp.
| void vpDetectorAprilTag::displayTags | ( | const vpImage< vpRGBa > & | I, |
| const std::vector< std::vector< vpImagePoint > > & | tagsCorners, | ||
| const vpColor & | color = vpColor::none, | ||
| unsigned int | thickness = 1 ) const |
Display the tag contours on a vpRGBa image.
| [in] | I | : The image. |
| [in] | tagsCorners | : The vector of tag contours. |
| [out] | color | : The desired color, if none RGBY colors are used. |
| [out] | thickness | : The thickness of the lines. |
Definition at line 1302 of file vpDetectorAprilTag.cpp.
| float vpDetectorAprilTag::getAprilTagDecisionMarginThreshold | ( | ) | const |
Get the decision margin threshold to filter out false detections. Higher is the decision margin for each detected tag, better is the detection. When the decision margin threshold is equal to -1, tags decision margin values are not used to filter potential false positive detection.
Definition at line 1417 of file vpDetectorAprilTag.cpp.
| int vpDetectorAprilTag::getAprilTagHammingDistanceThreshold | ( | ) | const |
Get the hamming distance threshold to filter out false detections. For each tag detected, the hamming distance is between 0 and 255 and indicates the number of bit-error that are corrected. A value of 0 indicates that no correction was applied when the tag was detected, while a value of 2 indicates that 2 bits were corrected to achieve detection. The lower the Hamming distance, the more reliable the detection.
Default value is 2, meaning that we don't filter out detections with corrected bits.
This threshold could be used to filter out detections where the hamming distance is greater than this threshold.
Definition at line 1435 of file vpDetectorAprilTag.cpp.
|
inherited |
Return the bounding box of the ith object.
Definition at line 92 of file vpDetectorBase.cpp.
References m_polygon.
Referenced by detect().
|
inherited |
Return the center of gravity location of the ith object.
Definition at line 78 of file vpDetectorBase.cpp.
References m_polygon.
Referenced by detect().
|
inlineinherited |
Returns the contained message of the ith object if there is one.
Definition at line 98 of file vpDetectorBase.h.
References m_message.
|
inherited |
Returns the contained message of the ith object if there is one.
Definition at line 64 of file vpDetectorBase.cpp.
References vpException::badValue, m_message, and m_polygon.
|
inlineinherited |
Return the number of objects that are detected.
Definition at line 108 of file vpDetectorBase.h.
References m_nb_objects.
|
inlineinherited |
Returns object container box as a vector of points.
Definition at line 113 of file vpDetectorBase.h.
References m_polygon.
|
inherited |
Returns ith object container box as a vector of points.
Definition at line 50 of file vpDetectorBase.cpp.
References vpException::badValue, and m_polygon.
| bool vpDetectorAprilTag::getPose | ( | size_t | tagIndex, |
| double | tagSize, | ||
| const vpCameraParameters & | cam, | ||
| vpHomogeneousMatrix & | cMo, | ||
| vpHomogeneousMatrix * | cMo2 = nullptr, | ||
| double * | projError = nullptr, | ||
| double * | projError2 = nullptr ) |
Get the pose of a tag depending on its size and camera parameters. This function is useful to get the pose of tags with different sizes, while detect(const vpImage<unsigned char> &, const double, const vpCameraParameters &, std::vector<vpHomogeneousMatrix> &) considers that all the tags have the same size.
| [in] | tagIndex | : Index of the tag. Value should be in range [0, nb tags-1] with nb_tags = getNbObjects(). Note that this index doesn't correspond to the tag id. |
| [in] | tagSize | : Tag size in meter corresponding to the external width of the pattern. |
| [in] | cam | : Camera intrinsic parameters. |
| [out] | cMo | : Pose of the tag. |
| [out] | cMo2 | : Optional second pose of the tag. |
| [out] | projError | : Optional (sum of squared) projection errors in the normalized camera frame. |
| [out] | projError2 | : Optional (sum of squared) projection errors for the 2nd solution in the normalized camera frame. |
The following code shows how to use this function:
Definition at line 1339 of file vpDetectorAprilTag.cpp.
|
inline |
Return the pose estimation method.
Definition at line 390 of file vpDetectorAprilTag.h.
References getPoseEstimationMethod(), and m_poseEstimationMethod.
Referenced by getPoseEstimationMethod().
| bool vpDetectorAprilTag::getTagImage | ( | vpImage< unsigned char > & | I, |
| int | id ) |
Create an image of a marker corresponding to the current tag family with a given id.
| [out] | I | : Image with the created marker. |
| [in] | id | : Marker id. |
Definition at line 1474 of file vpDetectorAprilTag.cpp.
| std::vector< std::vector< vpImagePoint > > vpDetectorAprilTag::getTagsCorners | ( | ) | const |
Return the corners coordinates for the detected tags.
Definition at line 1445 of file vpDetectorAprilTag.cpp.
References vpDetectorBase::m_polygon.
| std::vector< float > vpDetectorAprilTag::getTagsDecisionMargin | ( | ) | const |
Return the decision marging for each detection. It could be seen as a quality detection indicator. The higher the value, the greater the confidence in detection.
Definition at line 1488 of file vpDetectorAprilTag.cpp.
| std::vector< int > vpDetectorAprilTag::getTagsHammingDistance | ( | ) | const |
Return the hamming distance for each detection in range 0 - 255. This hamming distance corresponds to the number of bits that were corrected. Having values greater than 0 leads to greatly increased false positive rates. Thus it could be seen as a quality detection indicator.
Definition at line 1500 of file vpDetectorAprilTag.cpp.
| std::vector< int > vpDetectorAprilTag::getTagsId | ( | ) | const |
Return the decoded Apriltag id for each detection.
Definition at line 1507 of file vpDetectorAprilTag.cpp.
| std::vector< std::vector< vpPoint > > vpDetectorAprilTag::getTagsPoints3D | ( | const std::vector< int > & | tagsId, |
| const std::map< int, double > & | tagsSize ) const |
Return a vector that contains for each tag id the corresponding tag 3D corners coordinates in the tag frame.
| tagsId | : A vector containing the id of each tag that is detected. It's size corresponds to the number of tags that are detected. This vector is returned by getTagsId(). |
| tagsSize | : a map that contains as first element a tag id and as second elements its 3D size in meter. When first element of this map is -1, the second element corresponds to the default tag size. std::map<int, double> tagsSize;
tagsSize[-1] = 0.05; // Default tag size in meter, used when detected tag id is not in this map
tagsSize[10] = 0.1; // All tags with id 10 are 0.1 meter large
tagsSize[20] = 0.2; // All tags with id 20 are 0.2 meter large
|
Definition at line 1363 of file vpDetectorAprilTag.cpp.
References vpException::fatalError.
| bool vpDetectorAprilTag::isZAlignedWithCameraAxis | ( | ) | const |
Indicate it z-axis of the tag frame is aligned with the camera frame or not.
Definition at line 1696 of file vpDetectorAprilTag.cpp.
| vpDetectorAprilTag & vpDetectorAprilTag::operator= | ( | vpDetectorAprilTag | o | ) |
Definition at line 1182 of file vpDetectorAprilTag.cpp.
References swap, and vpDetectorAprilTag().
| void vpDetectorAprilTag::setAprilTagDebugOption | ( | bool | flag | ) |
Using this option allows debugging the AprilTag marker detection process. This can be used to understand why a marker is not detected for instance.
It will generate in the exe folder different debugging images, among others:
| [in] | flag | : Debug flag. |
Definition at line 1462 of file vpDetectorAprilTag.cpp.
| void vpDetectorAprilTag::setAprilTagDecisionMarginThreshold | ( | float | decisionMarginThreshold | ) |
See the AprilTag documentation:
A measure of the quality of the binary decoding process: the average difference between the intensity of a data bit versus the decision threshold. Higher numbers roughly indicate better decodes. This is a reasonable measure of detection accuracy only for very small tags– not effective for larger tags (where we could have sampled anywhere within a bit cell and still gotten a good detection.)
It has been experimentally observed that using the AprilTag detection and decoding pipeline, lots of false positives arise with 16h5, 4x4, 5x5, 6x6 and 7x7 ArUco dictionnaries. A decision margin threshold can be used to filter these detections.
| [in] | decisionMarginThreshold | : Decision margin threshold used to filter false positive detections.
|
Definition at line 1537 of file vpDetectorAprilTag.cpp.
| void vpDetectorAprilTag::setAprilTagDecodeSharpening | ( | double | decodeSharpening | ) |
Definition at line 1509 of file vpDetectorAprilTag.cpp.
| void vpDetectorAprilTag::setAprilTagFamily | ( | const vpAprilTagFamily & | tagFamily | ) |
Definition at line 1569 of file vpDetectorAprilTag.cpp.
References m_poseEstimationMethod.
| void vpDetectorAprilTag::setAprilTagHammingDistanceThreshold | ( | int | hammingDistanceThreshold | ) |
See the AprilTag documentation:
How many error bits were corrected? Note: accepting large numbers of corrected errors leads to greatly increased false positive rates. NOTE: As of this implementation, the detector cannot detect tags with a hamming distance greater than 2.
It has been experimentally observed that using the AprilTag detection and decoding pipeline, lots of false positives arise with 16h5, 4x4, 5x5, 6x6 and 7x7 ArUco dictionnaries. Their hamming distance is than usually set to 2. A hamming distance threshold can be used to filter these detections using setAprilTagHammingDistanceThreshold().
| [in] | hammingDistanceThreshold | : Threshold between 0 and 255 used to filter tags whose hamming distance is greater than this threshold.
|
Definition at line 1563 of file vpDetectorAprilTag.cpp.
| void vpDetectorAprilTag::setAprilTagNbThreads | ( | int | nThreads | ) |
Set the number of threads for April Tag detection (default is 1).
| nThreads | : Number of thread. |
Definition at line 1599 of file vpDetectorAprilTag.cpp.
| void vpDetectorAprilTag::setAprilTagPoseEstimationMethod | ( | const vpPoseEstimationMethod & | poseEstimationMethod | ) |
Set the method to use to compute the pose,
| poseEstimationMethod | : The method to used. |
Definition at line 1611 of file vpDetectorAprilTag.cpp.
References m_poseEstimationMethod.
| void vpDetectorAprilTag::setAprilTagQuadDecimate | ( | float | quadDecimate | ) |
From the AprilTag code:
detection of quads can be done on a lower-resolution image, improving speed at a cost of pose accuracy and a slight decrease in detection rate. Decoding the binary payload is still done at full resolution.
Default is 1.0, increase this value to reduce the computation time.
| quadDecimate | : Value for quad_decimate. |
Definition at line 1629 of file vpDetectorAprilTag.cpp.
| void vpDetectorAprilTag::setAprilTagQuadSigma | ( | float | quadSigma | ) |
From the AprilTag code:
What Gaussian blur should be applied to the segmented image (used for quad detection?) Parameter is the standard deviation in pixels. Very noisy images benefit from non-zero values (e.g. 0.8).
Default is 0.0.
| quadSigma | : Value for quad_sigma. |
Definition at line 1643 of file vpDetectorAprilTag.cpp.
| void vpDetectorAprilTag::setAprilTagRefineDecode | ( | bool | refineDecode | ) |
Definition at line 1649 of file vpDetectorAprilTag.cpp.
| void vpDetectorAprilTag::setAprilTagRefineEdges | ( | bool | refineEdges | ) |
From the AprilTag code:
When non-zero, the edges of the each quad are adjusted to "snap to" strong gradients nearby. This is useful when decimation is employed, as it can increase the quality of the initial quad estimate substantially. Generally recommended to be on (1). Very computationally inexpensive. Option is ignored if quad_decimate = 1.
Default is 1.
| refineEdges | : If true, set refine edges parameter. |
Definition at line 1669 of file vpDetectorAprilTag.cpp.
| void vpDetectorAprilTag::setAprilTagRefinePose | ( | bool | refinePose | ) |
Definition at line 1675 of file vpDetectorAprilTag.cpp.
|
inline |
Allow to enable the display of overlay tag information in the windows (vpDisplay) associated to the input image.
Definition at line 416 of file vpDetectorAprilTag.h.
References m_displayTag, m_displayTagColor, m_displayTagThickness, and vpColor::none.
|
inlineinherited |
Set detector timeout in milli-seconds. When set to 0, there is no timeout.
Definition at line 123 of file vpDetectorBase.h.
References m_timeout_ms.
Referenced by vpDetectorDataMatrixCode::vpDetectorDataMatrixCode().
| void vpDetectorAprilTag::setZAlignedWithCameraAxis | ( | bool | zAlignedWithCameraFrame | ) |
Modify the resulting tag pose returned by getPose() or detect(const vpImage<unsigned char> &, double, const vpCameraParameters &, std::vector<vpHomogeneousMatrix> &, std::vector<vpHomogeneousMatrix> *, std::vector<double> *, std::vector<double> *) in order to get a pose where z-axis is aligned when the camera plane is parallel to the tag.
| zAlignedWithCameraFrame | : When set to true, estimated tag pose has a z-axis aligned with the camera frame. |
Definition at line 1687 of file vpDetectorAprilTag.cpp.
|
friend |
Definition at line 423 of file vpDetectorAprilTag.h.
References swap, and vpDetectorAprilTag().
Referenced by operator=(), and swap.
|
protected |
Definition at line 442 of file vpDetectorAprilTag.h.
Referenced by detect(), detect(), setDisplayTag(), vpDetectorAprilTag(), and vpDetectorAprilTag().
|
protected |
Definition at line 443 of file vpDetectorAprilTag.h.
Referenced by detect(), detect(), setDisplayTag(), vpDetectorAprilTag(), and vpDetectorAprilTag().
|
protected |
Definition at line 444 of file vpDetectorAprilTag.h.
Referenced by detect(), detect(), setDisplayTag(), vpDetectorAprilTag(), and vpDetectorAprilTag().
|
protectedinherited |
Message attached to each object.
Definition at line 129 of file vpDetectorBase.h.
Referenced by vpDetectorAprilTag::detect(), vpDetectorAprilTag::detect(), vpDetectorDataMatrixCode::detect(), vpDetectorFace::detect(), vpDetectorQRCode::detect(), getMessage(), getMessage(), vpDetectorBase(), and vpDetectorBase().
|
protectedinherited |
Number of detected objects.
Definition at line 130 of file vpDetectorBase.h.
Referenced by vpDetectorAprilTag::detect(), vpDetectorAprilTag::detect(), vpDetectorDataMatrixCode::detect(), vpDetectorFace::detect(), vpDetectorQRCode::detect(), getNbObjects(), vpDetectorBase(), and vpDetectorBase().
|
protectedinherited |
For each object, defines the polygon that contains the object.
Definition at line 128 of file vpDetectorBase.h.
Referenced by vpDetectorAprilTag::detect(), vpDetectorAprilTag::detect(), vpDetectorDataMatrixCode::detect(), vpDetectorFace::detect(), vpDetectorQRCode::detect(), getBBox(), getCog(), getMessage(), getPolygon(), getPolygon(), vpDetectorAprilTag::getTagsCorners(), vpDetectorBase(), and vpDetectorBase().
|
protected |
Definition at line 445 of file vpDetectorAprilTag.h.
Referenced by getPoseEstimationMethod(), setAprilTagFamily(), setAprilTagPoseEstimationMethod(), vpDetectorAprilTag(), and vpDetectorAprilTag().
|
protected |
Definition at line 446 of file vpDetectorAprilTag.h.
Referenced by vpDetectorAprilTag(), and vpDetectorAprilTag().
|
protectedinherited |
Detection timeout.
Definition at line 131 of file vpDetectorBase.h.
Referenced by vpDetectorDataMatrixCode::detect(), setTimeout(), vpDetectorBase(), and vpDetectorBase().