Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unable to detect big ArUco markers #2913

Closed
wrmichaelmak opened this issue Apr 6, 2021 · 1 comment
Closed

Unable to detect big ArUco markers #2913

wrmichaelmak opened this issue Apr 6, 2021 · 1 comment

Comments

@wrmichaelmak
Copy link

wrmichaelmak commented Apr 6, 2021

System information (version)
  • OpenCV => 4.4.0/4.5.2
  • Operating System / Platform => Linux Ubuntu 18.04 64 bit
  • Tag dictionary => DICT_6X6_50
  • Image resolution =>640 x 480
Detailed description

I am having issues detecting markers of bigger size (0.5 m and above). I am aware of #2811 and #2900. I have implemented the proposed solutions from those issues but I still have no luck in trying to detect my marker. I noticed that the algorithm was able to identify the marker as a candidate but the algorithm rejects the marker as a valid marker. The problem does not occur at all times, it occurs only when I am outdoor. However, my use case of the ArUco markers is in an outdoor setting hence why I submitted this issue.

I noticed that the thresholding of the image seems to be fine and the algorithm was able to extract out the bits of the marker but I am not sure afterwards why the marker is rejected. I found out that apparently the algorithm is able to detect the marker itself as a candidate but additionally detects the outer white border as another candidate which then causes the function _filterTooCloseCandidate to remove the actual marker candidates and kept the white border candidates as a "valid candidate" due to its area being bigger. An example can be seen below.

Steps to reproduce

To reproduce the problem:

failed_marker_outside

Before _filterTooCloseCandidates function (black dots represent the corners of the candidates):
Screenshot 2021-04-07 at 14 51 12

After _filterTooCloseCandidates function:
Screenshot 2021-04-07 at 14 51 26

@wrmichaelmak
Copy link
Author

wrmichaelmak commented Apr 8, 2021

So to mitigate the problem, what I did was I decrease the minMarkerDistanceRate of the aruco detector parameters from 0.05 to 0.025. This might potentially increase the number of candidates to be identified later down the pipeline but it does solve my problem of filtering out the actual marker corners. Additionally another way i went about is to add a white piece of paper next to the board, hence the polygon of the board will seem to have more than 4 corners which will result in being discarded before it even reaches the _filterTooCloseCandidates function. Doing this will mean that we will not need to change the minMarkerDistanceRate.

However, all of these are mitigation and probably there exist a better way to fix the fundamental problem of the actual marker corners being discarded.

Feel free to close the issue @alalek if necessary.

@AleksandrPanov AleksandrPanov self-assigned this Mar 18, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants