pupil-apriltags
Python bindings for apriltags v3
What it is and what it does
pupil-apriltags wraps the AprilTags3 library from AprilRobotics, providing a Python interface to detect and localize fiducial markers (AprilTags) in images. It is commonly used in robotics, augmented reality, and computer vision systems where visual markers serve as reference points for pose estimation, localization, or object tracking. The package ships with pre-built wheels for common platforms, reducing installation friction compared to compiling from source.
The core API centers on the Detector class, which you configure with tag family, threading, and image processing parameters, then call with image data to retrieve detections. The library depends on numpy for array handling and includes platform-specific threading support via pupil-pthreads-win on Windows. It is actively maintained, supports modern Python versions, and carries no known security vulnerabilities.
Use it for:
- Robotics: localize robots in indoor environments using AprilTag markers placed on walls or floors.
- Augmented reality: anchor virtual content to physical AprilTag markers in real-world scenes.
- Camera calibration and pose estimation: use tags as known reference points to compute camera position and orientation.
- Multi-agent tracking: coordinate multiple robots or objects by detecting shared AprilTag landmarks.
- Visual SLAM: integrate tag detections as loop-closure constraints in simultaneous localization and mapping.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Python bindings for the AprilTags v3 library, enabling detection and tracking of AprilTag fiducial markers in images for computer vision and robotics applications.
Yes. The package is production-stable, actively maintained, carries no known vulnerabilities, and offers pre-built wheels for broad platform coverage. Install it if you need AprilTag detection in Python and are comfortable with the pupil-labs variant of the AprilTags3 library; verify that its adjustments align with your specific accuracy or performance requirements if migrating from another AprilTag binding.
Install
pupil-apriltags on PyPI
pip
pip install pupil-apriltagsuv
uv add pupil-apriltagspoetry
poetry add pupil-apriltagsInstalling pupil-apriltags
Before you install
Pre-built wheels available for multiple Python versions on macOS (ARM64), Linux (x86_64), and Windows, reducing compile friction. Repository is actively maintained with recent commits and stable production status.
License in practice
MIT license permits commercial and private use with minimal restrictions; you may use, modify, and distribute this package freely provided you include the license notice.
Quickstart
pip install pupil-apriltags
from pupil_apriltags import Detector
at_detector = Detector(families="tag36h11", nthreads=1)
detections = at_detector.detect(img)
Requires numpy and a compatible Python version (3.6+); on Windows, pupil-pthreads-win is an additional runtime dependency.
Verify before relying
- Performance characteristics (detection speed, accuracy) relative to other AprilTag implementations.
- Whether the pupil-labs adjustments to the original AprilTags3 library introduce behavioral differences relevant to your use case.
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.6) |
| Install friction | medium — platform-specific wheel |
| Runtime dependencies | 3 — numpy, importlib-metadata, pupil-pthreads-win |
| Maintenance | actively maintained — 479 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 95,777/month — #13,249 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: pupil_apriltags-1.0.4.post11-cp310-cp310-macosx_11_0_arm64.whl; pupil_apriltags-1.0.4.post11-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl; pupil_apriltags-1.0.4.post11-cp310-cp310-win_amd64.whl; pupil_apriltags-1.0.4.post11-cp311-cp311-macosx_11_0_arm64.whl; pupil_apriltags-1.0.4.post11-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl; pupil_apriltags-1.0.4.post11-cp311-cp311-win_amd64.whl; pupil_apriltags-1.0.4.post11-cp312-cp312-macosx_11_0_arm64.whl; pupil_apriltags-1.0.4.post11-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl; pupil_apriltags-1.0.4.post11-cp312-cp312-win_amd64.whl; pupil_apriltags-1.0.4.post11-cp313-cp313-macosx_11_0_arm64.whl; pupil_apriltags-1.0.4.post11-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl; pupil_apriltags-1.0.4.post11-cp313-cp313-win_amd64.whl; pupil_apriltags-1.0.4.post11-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl; pupil_apriltags-1.0.4.post11-cp36-cp36m-win_amd64.whl; pupil_apriltags-1.0.4.post11-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl; pupil_apriltags-1.0.4.post11-cp37-cp37m-win_amd64.whl; pupil_apriltags-1.0.4.post11-cp38-cp38-macosx_11_0_arm64.whl; pupil_apriltags-1.0.4.post11-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl; pupil_apriltags-1.0.4.post11-cp38-cp38-win_amd64.whl; pupil_apriltags-1.0.4.post11-cp39-cp39-macosx_11_0_arm64.whl
Tags
More Scientific/Engineering packages
NumPy provides an N-dimensional array object…
permissive · top 100 on PyPI
pandaspandas provides fast, flexible data structures…
permissive · top 100 on PyPI
scipyscipy provides numerical algorithms for…
permissive · top 100 on PyPI
scikit-learnscikit-learn provides a comprehensive Python…
permissive · top 1,000 on PyPI
dilldill extends Python's pickle module to…
permissive · top 1,000 on PyPI
multiprocessMultiprocess is an enhanced fork of Python's…
permissive · top 1,000 on PyPI
pyPPGAnalyzes finger photoplethysmogram (PPG)…
agpl · top 15,000 on PyPI
norfairNorfair adds real-time multi-object tracking to…
permissive · top 15,000 on PyPI
pycolmapPyCOLMAP exposes Python bindings to COLMAP's…
permissive · top 15,000 on PyPI
pyobjc-framework-VisionProvides Python bindings to macOS's Vision…
permissive · top 5,000 on PyPI
dlibdlib is a C++ machine learning and computer…
unclear · top 15,000 on PyPI
ultralyticsUltralytics YOLO provides a unified framework…
agpl · top 5,000 on PyPI
azure-ai-vision-imageanalysisCalls Azure's Computer Vision service to…
permissive · top 15,000 on PyPI
gtsamGTSAM is a Python wrapper around a C++ library…
permissive · top 15,000 on PyPI
voxel51-etaETA is an extensible computer vision and…
permissive · top 15,000 on PyPI
mtcnnDetects faces and facial landmarks (eyes, nose,…
permissive · top 5,000 on PyPI