Pywayne AprilTag Detector
This module detects AprilTag fiducial markers for camera calibration and pose estimation.
Quick Start
from pywayne.cv.apriltag_detector import ApriltagCornerDetector
# Create detector
detector = ApriltagCornerDetector()
# Detect from file path
detections = detector.detect('test.png', show_result=True)
# Detect from numpy array
import cv2
image = cv2.imread('test.png')
detections = detector.detect(image)
Detection Methods
detect()
Detect AprilTags in an image:
detections = detector.detect(
image, # File path, Path object, or numpy array
show_result=False # Show visualization window
)
Returns list of detection results with:
id: Tag ID
hamming_distance: Detection confidence
center: Tag center coordinates (x, y)
corners: 4 corner coordinates
detect_and_draw()
Detect AprilTags and draw results on original image:
result_image = detector.detect_and_draw(image)
cv2.imshow('Detection Result', result_image)
cv2.waitKey(0)
Visualization includes:
- Green polygon outlines
- Red corner circles
- Red ID labels at tag centers
Requirements
cv2 (OpenCV) - Image processing
numpy - Array operations
gettool - Downloads apriltag_detection library automatically
Library Installation
The detector automatically checks for and installs the apriltag_detection library using gettool if not found.
Detection Result Format
Each detection contains:
| Field | Description |
|---|
id | Tag identifier |
hamming_distance | Hamming distance (lower = more confident) |
center | Tag center as (x, y) tuple |
corners | 4 corner coordinates as [(x1, y1), (x2, y2), (x3, y3), (x4, y4)] |
Notes
- Supports both grayscale and BGR images
- Automatic grayscale conversion for detection
- Visualization sizes scale with image dimensions
- Uses AprilTag 36h11 tag family