skillfed

pupil-apriltags

Python bindings for apriltags v3

pupil-apriltags v1.0.4.post11 95.8K downloads/30d#13,249 on PyPI163
Permissive license MIT Active released

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-apriltags

uv

uv add pupil-apriltags

poetry

poetry add pupil-apriltags

Installing 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

Development Status :: 5 - Production/StableIntended Audience :: DevelopersLicense :: OSI Approved :: MIT LicenseProgramming Language :: Python :: 3Programming Language :: Python :: 3 :: Only

Tags

apriltag detection pythonfiducial marker detectionapril tags librarycomputer vision markersrobotics tag detectionpose estimation markersvisual localization tags
computer-visionroboticsfiducial-markers

More Scientific/Engineering packages