No project description provided
Project description
Application Module Library
Application Module Library (modlib) is an SDK designed to simplify and streamline the process of creating end-to-end applications for the IMX500 vision sensor.
1. Quickstart
For the Raspberry Pi AI Camera, make sure that the python version of the virtual environment is the same as the system Python version. (Verify by running /usr/bin/python3 -V). This depends on your platform.
- Raspberry Pi OS Bookworm: Python 3.11
- Raspberry Pi OS Trixie: Python 3.13
We expect the Raspberry Pi computer to be installed correclty with the AiCamera connected and access to the board terminal. Ensure that your Raspberry Pi runs the latest software. A full setup guide can be found here.
One can use pip to install the library in your project Python environment.
pip install modlib
Create a new Python file named hello_world.py. and run the following code to see a camera preview.
from modlib.devices import AiCamera
device = AiCamera()
with device as stream:
for frame in stream:
frame.display()
2. Documentation
For a comprehensive guide on how to use the library, including detailed API documentation, tutorials, and examples, make sure to check out the documentation!
- Documentation site: Coming soon!
- Local Documentation: You can run a local documentation server using:
python -m http.server --directory ./docs
3. Development Environment Setup (Build from source)
Before getting started, ensure you have the following prerequisites installed on your system:
3.1 Prerequisites
3.1.1 UV
UV is the Python environment and package manager used for the project. Follow the installation instructions provided in the UV documentation to set it up. Verify your uv installation by running:
uv --version
3.1.2 Build environment dependencies
- On Linux, install ninja using apt. And make sure to have a gcc compiler installed on your system:
sudo apt install ninja-build - On Windows, install ninja using Chocolatey. And make sure to have an MSVC compiler installed on your system:
choco install ninja
3.2 Hardware setup
3.2.1 Raspberry Pi AI Camera
We expect the Raspberry Pi computer to be installed correclty with the AiCamera connected and access to the board terminal. Ensure that your Raspberry Pi runs the latest software:
sudo apt update && sudo apt full-upgrade
sudo apt install imx500-all
Reboot if needed.
3.2.2 Triton® Smart (IMX501)
NOTE: It is possible to skip this step if you do not intend to use the Triton® Smart device. Be aware that any attempt to initialize the Triton® device will fail if you chose to skip the installation of the Arena SDK.
We recommend a PoE (IEEE 802.3af) setup where both the Triton® Smart camera and the host device are connected.
[PC] --- [POE] --- [Triton® Camera]
IPv4 should be set to Manual, Address: 169.254.0.1, Netmask: 255.255.0.0
System requirements (LUCID Arena compatible device as stated by the Arena SDK docs):
- Linux: x64 - Ubuntu 22.04/24.04 (64-bit)
- Linux: arm64 - Ubuntu 22.04/24.04 (64-bit)
- Windows: amd64 - Windows 11 (64-bit) & Windows 10 (32/64-bit)
Install the Arena SDK (Linux x64 or ARM64 or Windows) Download from: https://thinklucid.com/downloads-hub/
- Windows: Run the ArenaSDK installer for profile:
Developer. - Linux: Unzip and make sure to make the libraries (.so) available. Example Linux x64 (but similar for aarch64):
tar -xvzf ArenaSDK_<sdk-version-number>_Linux_x64.tar.gz
cd /path/to/ArenaSDK_Linux
sudo sh Arena_SDK_Linux_x64.conf
3.3 Setup
uv sync
This will setup and build the project using the meson-python build system.
3.4 Running examples
As a basic example let's demonstrate the usage of the Raspberry Pi AiCamera device using a pre-trained SSDMobileNetV2FPNLite320x320 object detection model.
- Run any of the model examples from
./examples/aicam:
uv run examples/aicam/classifier.py
uv run examples/aicam/detector.py
uv run examples/aicam/segment.py
uv run examples/aicam/posenet.py
Note that the Application Module Library API allows you to create custom Models and combine any network.rpk with your own custom post_processing function. More information in Docs > getting_started > custom_models.md.
- Run any of the application examples
./examples/apps:
uv run examples/apps/tracker.py
uv run examples/apps/area.py
uv run examples/apps/heatmap.py
...
Extra
- Unit-tests are included in the corresponding
/testsfolder and can be exectued by running:make test - Linting corrections and checks using ruff by running:
make lint - Building the Python wheel.
One can create a wheel file of the Application Module Library by running:
make buildThe generated wheel file located in the/distfolder can be used to install the library in you project environment.
Releases
Release tags must be of the format "\d+.\d+.\d+" example "1.0.4".
License
Trademarks
Trademarks | Sony Semiconductor Solutions Group
Notice
Sony Semiconductor Solutions Corporation assumes no responsibility for applications created using this library. Use of the library is entirely at the user's own risk.
Security
Please read the Site Policy of GitHub and understand the usage conditions.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
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
File details
Details for the file modlib-1.4.0-cp313-cp313-win_amd64.whl.
File metadata
- Download URL: modlib-1.4.0-cp313-cp313-win_amd64.whl
- Upload date:
- Size: 18.3 MB
- Tags: CPython 3.13, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.11 {"installer":{"name":"uv","version":"0.9.11"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2645b64d60c1719db2f9eb2eef538a36c3603ed88b545164c5350742d0183c46
|
|
| MD5 |
9991c6fd48736f4e8968b673ebf88878
|
|
| BLAKE2b-256 |
b980d40f30598f4b336eb5570d74c84693bbf1db8d3f5293211f1ee08e1d2273
|
File details
Details for the file modlib-1.4.0-cp313-cp313-manylinux_2_35_x86_64.whl.
File metadata
- Download URL: modlib-1.4.0-cp313-cp313-manylinux_2_35_x86_64.whl
- Upload date:
- Size: 31.7 MB
- Tags: CPython 3.13, manylinux: glibc 2.35+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.11 {"installer":{"name":"uv","version":"0.9.11"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
73468db29a70a0539829379d395b598db2d2a5ee3eb6db2efdf29081debddd35
|
|
| MD5 |
8d05be941ee862a5a53d409a63beb93f
|
|
| BLAKE2b-256 |
46050b8aed5a4dc48948cf6365fdcdf91667b969fe7f2287d6af303bf085a220
|
File details
Details for the file modlib-1.4.0-cp313-cp313-manylinux_2_34_aarch64.manylinux_2_35_aarch64.whl.
File metadata
- Download URL: modlib-1.4.0-cp313-cp313-manylinux_2_34_aarch64.manylinux_2_35_aarch64.whl
- Upload date:
- Size: 7.9 MB
- Tags: CPython 3.13, manylinux: glibc 2.34+ ARM64, manylinux: glibc 2.35+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.11 {"installer":{"name":"uv","version":"0.9.11"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
692c2afab40391591bb55323bc035fbf797052558ce2471936efe5354019f77a
|
|
| MD5 |
61be110b75122b79a133d24c92f1925e
|
|
| BLAKE2b-256 |
c3ee5f03f02cabcbfeb67480fff7594cd12c33d1cc68983a99a9d3b660dc418c
|
File details
Details for the file modlib-1.4.0-cp312-cp312-win_amd64.whl.
File metadata
- Download URL: modlib-1.4.0-cp312-cp312-win_amd64.whl
- Upload date:
- Size: 18.3 MB
- Tags: CPython 3.12, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.11 {"installer":{"name":"uv","version":"0.9.11"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ec7487f08ef7c30ee719a6396b160c4a28b5cf3c5dac7757b1841059c9160c63
|
|
| MD5 |
b4cb8c27a9200c5eb5d547544e2920f0
|
|
| BLAKE2b-256 |
c1734b7520d458ea3de141a7f33ffd593627acdc390a3e6080d1d1452c8da074
|
File details
Details for the file modlib-1.4.0-cp312-cp312-manylinux_2_35_x86_64.whl.
File metadata
- Download URL: modlib-1.4.0-cp312-cp312-manylinux_2_35_x86_64.whl
- Upload date:
- Size: 31.7 MB
- Tags: CPython 3.12, manylinux: glibc 2.35+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.11 {"installer":{"name":"uv","version":"0.9.11"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
62a23623c4ea059be09ed94276d4f59e7ee1b1fefbee91857ae41e936c00272f
|
|
| MD5 |
953776ff84ed43ecdff8a3cbad15a67c
|
|
| BLAKE2b-256 |
770eaf37fb663388cb9bd64ce61e2773ff27c80703be0b3d6deda60ba748d101
|
File details
Details for the file modlib-1.4.0-cp312-cp312-manylinux_2_34_aarch64.manylinux_2_35_aarch64.whl.
File metadata
- Download URL: modlib-1.4.0-cp312-cp312-manylinux_2_34_aarch64.manylinux_2_35_aarch64.whl
- Upload date:
- Size: 7.9 MB
- Tags: CPython 3.12, manylinux: glibc 2.34+ ARM64, manylinux: glibc 2.35+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.11 {"installer":{"name":"uv","version":"0.9.11"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8f02e52c02e47ab7538216504404d4cc1f6e2004074f452bcf74bdbc745182a8
|
|
| MD5 |
7628f53670c9ac71eadf38e022ef6be5
|
|
| BLAKE2b-256 |
00bb110f5b890642a1a9e5889c41df29c0c24cae1349b62fd17f785af61b6a81
|
File details
Details for the file modlib-1.4.0-cp311-cp311-win_amd64.whl.
File metadata
- Download URL: modlib-1.4.0-cp311-cp311-win_amd64.whl
- Upload date:
- Size: 18.3 MB
- Tags: CPython 3.11, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.11 {"installer":{"name":"uv","version":"0.9.11"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ad06e937a02cbb5887bb2fd70cb83814f5940f6feb2a55ef2389180817504bb4
|
|
| MD5 |
f22bb4618b634402cf6f21da256a5d3a
|
|
| BLAKE2b-256 |
daef7f9d2dea0a17893d83dca48420cc91ff6bed5ad99c54eda8480105045e09
|
File details
Details for the file modlib-1.4.0-cp311-cp311-manylinux_2_35_x86_64.whl.
File metadata
- Download URL: modlib-1.4.0-cp311-cp311-manylinux_2_35_x86_64.whl
- Upload date:
- Size: 31.7 MB
- Tags: CPython 3.11, manylinux: glibc 2.35+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.11 {"installer":{"name":"uv","version":"0.9.11"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1c6ee955cfa7b574d49abcb0fb0c425ba8966a8b632b9338251ed1c94a94d847
|
|
| MD5 |
f071bc5c6fc8486023d56c54aaba5a38
|
|
| BLAKE2b-256 |
0b209335d071fea2f9fb0e9ec654e4712a02f03e71fe79cbc24eb45563753dc8
|
File details
Details for the file modlib-1.4.0-cp311-cp311-manylinux_2_34_aarch64.manylinux_2_35_aarch64.whl.
File metadata
- Download URL: modlib-1.4.0-cp311-cp311-manylinux_2_34_aarch64.manylinux_2_35_aarch64.whl
- Upload date:
- Size: 7.9 MB
- Tags: CPython 3.11, manylinux: glibc 2.34+ ARM64, manylinux: glibc 2.35+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.11 {"installer":{"name":"uv","version":"0.9.11"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
76f9dbe24d27932d60bb9ee0c4e3fd56a7427eaa1b8efafba5471e65f3ace29c
|
|
| MD5 |
44397b082b2485d086e00803009ed519
|
|
| BLAKE2b-256 |
60cb347bc74936f8f4153c1312f29bdfa144adbeaa248e0a75441c94f3202f81
|