High-performance MindAR implementation for real-time image recognition on edge devices. Developed by FANSEE LAB.
Project description
MindAR Python
High-performance MindAR implementation for real-time image recognition on edge devices.
Features
- MindAR Compatible: Full compatibility with MindAR .mind file format
- High Performance: Optimized with numba JIT compilation for edge devices
- Real-time Detection: Efficient feature detection and matching
- Modern Architecture: Clean configuration-based API with dataclasses
- Type Safe: Full type hints and proper error handling
- Production Ready: Comprehensive testing and linting (pylint score 7.5+)
Installation
From PyPI (Recommended)
pip install mindar
From Source
git clone https://github.com/FANSEE-LAB/mind-ar.git
cd mind-ar
pip install -e .
Requirements
- Python >= 3.9 (required for numba optimization)
- OpenCV
- NumPy
- msgpack (for .mind file format)
- numba (for performance optimization)
Usage
Basic Detection
import cv2
from mindar import Detector, Matcher, MindARCompiler
from mindar.types import DetectorConfig, MatcherConfig
# Configure detector with new configuration system
detector_config = DetectorConfig(
method="super_hybrid",
max_features=1000,
debug_mode=False
)
detector = Detector(detector_config)
# Configure matcher
matcher_config = MatcherConfig(
ratio_threshold=0.75,
min_matches=8,
debug_mode=False
)
matcher = Matcher(matcher_config)
# Detect features in image
image = cv2.imread("target.jpg", cv2.IMREAD_GRAYSCALE)
result = detector.detect(image)
feature_points = result["feature_points"]
print(f"Detected {len(feature_points)} features")
Compile .mind Files
from mindar.compiler import MindARCompiler
# Initialize compiler with debug mode
compiler = MindARCompiler(debug_mode=True)
# Compile images to .mind file
success = compiler.compile_directory("./images", "./targets.mind")
if success:
print("✅ Compilation successful")
# Load compiled targets
mind_data = compiler.load_mind_file("./targets.mind")
print(f"Loaded {len(mind_data['dataList'])} targets")
Performance
Optimized for edge devices like Raspberry Pi 4:
- Detection: ~50ms per frame (640x480)
- Matching: ~20ms per target
- Memory: <100MB usage
License
MIT License - Compatible with original MindAR project
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
mindar-0.1.5.tar.gz
(27.3 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
mindar-0.1.5-py3-none-any.whl
(31.3 kB
view details)
File details
Details for the file mindar-0.1.5.tar.gz.
File metadata
- Download URL: mindar-0.1.5.tar.gz
- Upload date:
- Size: 27.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cb2920336ead58ee2182c1f0cfd4893b0de14840938667c1686924af109c0658
|
|
| MD5 |
4af6057701028c3567553c0e8c48e1ad
|
|
| BLAKE2b-256 |
84b41e0f2dfa472dd2d99a36c85ca1300f808f2563e662e98aabbb7507614a91
|
File details
Details for the file mindar-0.1.5-py3-none-any.whl.
File metadata
- Download URL: mindar-0.1.5-py3-none-any.whl
- Upload date:
- Size: 31.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e612fb3a6b48584ca398113beaf91247ed44e9a215a808befa44b45b0649fae9
|
|
| MD5 |
69e9894418cb6311d6ff1679fd80e77e
|
|
| BLAKE2b-256 |
eb600965dc80edd049b1b68856419311897439bd7aa336e60f547984f1dde6ba
|