Unable to detect `Aprilgrid` board


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写道: