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.4.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.4-py3-none-any.whl
(31.4 kB
view details)
File details
Details for the file mindar-0.1.4.tar.gz.
File metadata
- Download URL: mindar-0.1.4.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 |
35faeb15911c6c35ae18bc784de83f5c4167bc83e336ace57c94d06a771689cd
|
|
| MD5 |
9b1050af81ff4c4097ab5bee38e14a0f
|
|
| BLAKE2b-256 |
70725a94b86c18c6b24e87969ae897abd4ca6e37008ff7738745bff11a188044
|
File details
Details for the file mindar-0.1.4-py3-none-any.whl.
File metadata
- Download URL: mindar-0.1.4-py3-none-any.whl
- Upload date:
- Size: 31.4 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 |
9d4d79042cfdd9fbd40618c402fca9f1b24f6f4630a02995b61a48532e8dcc93
|
|
| MD5 |
435be346184810e6c208ee4b7917f0a0
|
|
| BLAKE2b-256 |
8dcbcba32f7a6073ca982ff6e45491f518d33a7fe52b84c2761934d0eb01bfad
|