Unable to detect `Aprilgrid` board

Hi.

I’m trying to do “camera calibration” with “Arpilgrid”.
I have read the introduction aruco_board_detection
However the “board” that i’m using is different from the “board” in the instruction.

Here is an image of my ‘aprilboard’

Here is my code:

image = cv2.imread(args["image"])
base = cv2.aruco.Dictionary_get(cv2.aruco.DICT_APRILTAG_36h11)
# base = cv2.aruco.Dictionary_get(cv2.aruco.DICT_4X4_50)
# board = cv2.aruco.GridBoard_create(7, 5, 0.03, 0.006, base)
board = cv2.aruco.GridBoard_create(6, 6, 0.0352, 0.01056, base)
corners, ids , rejected= cv2.aruco.detectMarkers(image, board.dictionary)
print("[INFO] detected {} markers ".format(len(corners)))
corners, ids, rejected, recover = cv2.aruco.refineDetectedMarkers(image, board, corners, ids, rejected)
print("[INFO] refine {} markers ".format(len(corners)))

The “corners” is always None.
Is there any problem with my “aprilboard” or my “code”??

april tags and aruco tags aren’t compatible with each other.

if you have april tags, you need to use april tag detection.

if you have aruco tag detection, you need aruco tags.

It seems that opencv do not have a “april tag detection”。
But in the enum of aruco tag detection,there is a “DICT_APRIL_36h11”。
I think april tag and aruco tag may share the same detection in opencv. Am i right?

Christoph Rackwitz via OpenCV <opencv@discoursemail.com>于2021年3月23日 周二02:58写道:

@1119 Did you manage to solve your issue?

I think there is AprilTag marker detection in OpenCV module. You can see the example here.

I am using the same AprilTagGenerator tool also.

You’d have to set your markerBorderBits to 2, as the AprilGrid uses AprilTags with border width the size of two.

I wrote a pure python version of aprilgrid detection.

You need a “quiet/white zone” around the marker.
OpenCV uses AprilTag implementation from UMich: AprilTag

See: