ArUco Thresholding Window Size

asked 2020-09-24 13:01:09 -0500

Mark S gravatar image

As stated in the ArUco guide:

The simplest case is using the same value for adaptiveThreshWinSizeMin and adaptiveThreshWinSizeMax, which produces a single thresholding step.

For example:

parm = aruco.DetectorParameters_create()   
constant = 7
parm.adaptiveThreshWinSizeMin = constant
parm.adaptiveThreshWinSizeMax = constant
parm.adaptiveThreshWinSizeStep = constant

Looping through values for constant it was found that as the window size increases, there was a decrease in the number of markers detected in a video stream.

However, when using two poor individually performing thresholds (for example window sizes of 21, and 25 - based off this function), yielded extremely accurate results.

parm = aruco.DetectorParameters_create()
parm.adaptiveThreshWinSizeMin = 21
parm.adaptiveThreshWinSizeMax = 25
parm.adaptiveThreshWinSizeStep = 4

Can anyone please explain how two individually poor performing windows combine to create an accurate one? Statistically I can understand an increase but not of this magnitude. Am I missing something (e.g. - incorrect calculation of the windows). Here is an example image.

edit retag flag offensive close merge delete