Skip to main content
Version: 10 Jul 2024

MarkerUnderstanding

NameSpace: Features

Classes

TypeName
structAprilTagSettings
Settings associated with the AprilTag marker type.
structArucoSettings
Settings associated with the Aruco marker type.
structCustomProfileSettings
The custom settings applied to the marker tracker when a custom profile is used.
classMagicLeapMarkerUnderstandingFeature
structMarkerData
The data retrieved from a marker detector.
classMarkerDetector
Used to detect data from a specified type of marker tracker based on specific settings.
structMarkerDetectorSettings
All of the settings associated with the marker tracker.
structQRSettings
Settings associated with the QR marker type.

Enums

Name
enumAprilTagType
{
Dictionary_16H5 = 0, Dictionary_25H9, Dictionary_36H10, Dictionary_36H11
}

Supported pre-defined AprilTag dictionaries. Marker Understanding supports pre-defined AprilTag dictionaries. AprilTag dictionaries can be looked up and markers can be generated for them here: http://chev.me/arucogen/
enumArucoType
{
Dictionary_4x4_50 = 0, Dictionary_4x4_100, Dictionary_4x4_250, Dictionary_4x4_1000, Dictionary_5x5_50, Dictionary_5x5_100, Dictionary_5x5_250, Dictionary_5x5_1000, Dictionary_6x6_50, Dictionary_6x6_100, Dictionary_6x6_250, Dictionary_6x6_1000, Dictionary_7x7_50, Dictionary_7x7_100, Dictionary_7x7_250, Dictionary_7x7_1000
}

Supported pre-defined ArUco dictionaries. Marker Understanding supports pre-defined ArUco dictionaries. ArUco dictionaries can be looked up and markers can be generated for them here: http://chev.me/arucogen/
enumMarkerDetectorCamera
{
RGB = 0, World
}

The MarkerDetectorCamera enum values are used to hint to the camera that should be used. This is set in the CustomProfileSettings structure and this setting currently only applies to the aruco detectors.
enumMarkerDetectorCornerRefineMethod
{
None = 0, Subpix, Contour, AprilTag
}

The Aruco/April tag detector comes with several corner refinement methods. Choosing the right corner refinement method has an impact on the accuracy and speed trade-off that comes with each detection pipeline. Corner refinement only applies to Aruco and April tags, not QR codes.
enumMarkerDetectorFPS
{
Low = 0, Medium, High, Max
}

Used to hint to the back-end the max frames per second that should be analyzed. This is set in the CustomProfileSettings structure and this setting applies to all enabled trackers.
enumMarkerDetectorFullAnalysisInterval
{
Max = 0, Fast, Medium, Slow
}

In order to improve performance, the detectors don't always run on the full frame. Full frame analysis is however necessary to detect new markers that weren't detected before. Use this option to control how often the detector may detect new markers and its impact on tracking performance.
enumMarkerDetectorProfile
{
Default = 0, Speed, Accuracy, SmallTargets, LargeFOV, Custom
}

Represents the different tracker profiles used to optimize marker tracking in difference use cases.
enumMarkerDetectorResolution
{
Low = 0, Medium, High
}

The MarkerDetectorResolution enum values are used to hint to the back-end the resolution that should be used. This is set in the CustomProfileSettings structure and this setting currently only applies to the QR, UPC and EAN detectors.
enumMarkerDetectorStatus
{
Pending = 0, Ready, Error
}

The current status of the readiness of the marker tracker.
enumMarkerType
{
Aruco = 0, AprilTag, QR, EAN13, UPCA, Code128
}

Represents the different marker types supported by the API

Enums Documentation

AprilTagType

Supported pre-defined AprilTag dictionaries. Marker Understanding supports pre-defined AprilTag dictionaries. AprilTag dictionaries can be looked up and markers can be generated for them here: http://chev.me/arucogen/

EnumeratorValueDescription
Dictionary_16H504x4 bits, minimum hamming distance between any two codes = 5, 30 codes
Dictionary_25H95x5 bits, minimum hamming distance between any two codes = 9, 35 codes
Dictionary_36H106x6 bits, minimum hamming distance between any two codes = 10, 2320 codes
Dictionary_36H116x6 bits, minimum hamming distance between any two codes = 11, 587 codes

ArucoType

Supported pre-defined ArUco dictionaries. Marker Understanding supports pre-defined ArUco dictionaries. ArUco dictionaries can be looked up and markers can be generated for them here: http://chev.me/arucogen/

EnumeratorValueDescription
Dictionary_4x4_5004 by 4 pixel ArUco marker dictionary with 50 IDs.
Dictionary_4x4_1004 by 4 pixel ArUco marker dictionary with 100 IDs.
Dictionary_4x4_2504 by 4 pixel ArUco marker dictionary with 250 IDs.
Dictionary_4x4_10004 by 4 pixel ArUco marker dictionary with 1000 IDs.
Dictionary_5x5_505 by 5 pixel ArUco marker dictionary with 50 IDs.
Dictionary_5x5_1005 by 5 pixel ArUco marker dictionary with 100 IDs.
Dictionary_5x5_2505 by 5 pixel ArUco marker dictionary with 250 IDs.
Dictionary_5x5_10005 by 5 pixel ArUco marker dictionary with 1000 IDs.
Dictionary_6x6_506 by 6 pixel ArUco marker dictionary with 50 IDs.
Dictionary_6x6_1006 by 6 pixel ArUco marker dictionary with 100 IDs.
Dictionary_6x6_2506 by 6 pixel ArUco marker dictionary with 250 IDs.
Dictionary_6x6_10006 by 6 pixel ArUco marker dictionary with 1000 IDs.
Dictionary_7x7_507 by 7 pixel ArUco marker dictionary with 50 IDs.
Dictionary_7x7_1007 by 7 pixel ArUco marker dictionary with 100 IDs.
Dictionary_7x7_2507 by 7 pixel ArUco marker dictionary with 250 IDs.
Dictionary_7x7_10007 by 7 pixel ArUco marker dictionary with 1000 IDs.

MarkerDetectorCamera

The MarkerDetectorCamera enum values are used to hint to the camera that should be used. This is set in the CustomProfileSettings structure and this setting currently only applies to the aruco detectors.

EnumeratorValueDescription
RGB0Single RGB Camera.
WorldOne or more world cameras.

Details*

RGB camera has higher resolution than world cameras and are better suited for use cases where the target to be tracked is small or needs to be detected from far.

World cameras make use of multiple world cameras to improve accuracy and increase the FoV for detection. from far.


MarkerDetectorCornerRefineMethod

The Aruco/April tag detector comes with several corner refinement methods. Choosing the right corner refinement method has an impact on the accuracy and speed trade-off that comes with each detection pipeline. Corner refinement only applies to Aruco and April tags, not QR codes.

EnumeratorValueDescription
None0No refinement, may have inaccurate corners.
SubpixCorners have subpixel coordinates. High detection rate, very fast, reasonable accuracy.
ContourHigh detection rate, fast, reasonable accuracy.
AprilTagReasonable detection rate, slowest, but very accurate.

MarkerDetectorFPS

Used to hint to the back-end the max frames per second that should be analyzed. This is set in the CustomProfileSettings structure and this setting applies to all enabled trackers.

EnumeratorValueDescription
Low0
Medium
High
Max

Details*

CPU load is a combination of enabled detector types, FpsHint and ResolutionHint. More detectors with a higher FPS and resolution hints will result in a higher CPU load. High CPU load can affect the performance of your system.


MarkerDetectorFullAnalysisInterval

In order to improve performance, the detectors don't always run on the full frame. Full frame analysis is however necessary to detect new markers that weren't detected before. Use this option to control how often the detector may detect new markers and its impact on tracking performance.

EnumeratorValueDescription
Max0Detector analyzes every frame fully.
FastDetector analyzes frame fully very often.
MediumDetector analyzes frame fully a few times per second.
SlowDetector analyzes frame fully about every second.

MarkerDetectorProfile

Represents the different tracker profiles used to optimize marker tracking in difference use cases.

EnumeratorValueDescription
Default0Generic tracker profile. Tracker profile that covers standard use cases. If this does not fit the needs of the application try the other profiles.
SpeedUse this profile to reduce the compute load and increase detection/tracker speed. This can result poor poses.
AccuracyUse this profile to optimize for accurate marker poses. This can cause increased load on the compute.
SmallTargetsUse this profile to optimize for markers that are small or for larger markers that need to detected from far.
LargeFOVUse this profile to be able to detect markers across a larger Field Of View. Marker Tracker system will attempt to use multiple cameras to detect the markers.
CustomApplication can define a custom tracker profiler.

MarkerDetectorResolution

The MarkerDetectorResolution enum values are used to hint to the back-end the resolution that should be used. This is set in the CustomProfileSettings structure and this setting currently only applies to the QR, UPC and EAN detectors.

EnumeratorValueDescription
Low0
Medium
High

Details*

CPU load is a combination of enabled detector types, MarkerDetectorFPS and MarkerDetectorResolution. More detectors and a higher fps and resolution hints will result in a higher CPU load. High CPU load can affect the performance of your system.


MarkerDetectorStatus

The current status of the readiness of the marker tracker.

EnumeratorValueDescription
Pending0
Ready
Error

MarkerType

Represents the different marker types supported by the API

EnumeratorValueDescription
Aruco0
AprilTag
QR
EAN13
UPCA
Code128