Skip to main content

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!

  1. Documentation site: Coming soon!
  2. 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.

  1. 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.

  1. 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 /tests folder 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 build The generated wheel file located in the /dist folder 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

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

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

modlib-1.4.0-cp313-cp313-win_amd64.whl (18.3 MB view details)

Uploaded CPython 3.13Windows x86-64

modlib-1.4.0-cp313-cp313-manylinux_2_35_x86_64.whl (31.7 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.35+ x86-64

modlib-1.4.0-cp313-cp313-manylinux_2_34_aarch64.manylinux_2_35_aarch64.whl (7.9 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.34+ ARM64manylinux: glibc 2.35+ ARM64

modlib-1.4.0-cp312-cp312-win_amd64.whl (18.3 MB view details)

Uploaded CPython 3.12Windows x86-64

modlib-1.4.0-cp312-cp312-manylinux_2_35_x86_64.whl (31.7 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.35+ x86-64

modlib-1.4.0-cp312-cp312-manylinux_2_34_aarch64.manylinux_2_35_aarch64.whl (7.9 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.34+ ARM64manylinux: glibc 2.35+ ARM64

modlib-1.4.0-cp311-cp311-win_amd64.whl (18.3 MB view details)

Uploaded CPython 3.11Windows x86-64

modlib-1.4.0-cp311-cp311-manylinux_2_35_x86_64.whl (31.7 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.35+ x86-64

modlib-1.4.0-cp311-cp311-manylinux_2_34_aarch64.manylinux_2_35_aarch64.whl (7.9 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.34+ ARM64manylinux: glibc 2.35+ ARM64

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

Hashes for modlib-1.4.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 2645b64d60c1719db2f9eb2eef538a36c3603ed88b545164c5350742d0183c46
MD5 9991c6fd48736f4e8968b673ebf88878
BLAKE2b-256 b980d40f30598f4b336eb5570d74c84693bbf1db8d3f5293211f1ee08e1d2273

See more details on using hashes here.

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

Hashes for modlib-1.4.0-cp313-cp313-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 73468db29a70a0539829379d395b598db2d2a5ee3eb6db2efdf29081debddd35
MD5 8d05be941ee862a5a53d409a63beb93f
BLAKE2b-256 46050b8aed5a4dc48948cf6365fdcdf91667b969fe7f2287d6af303bf085a220

See more details on using hashes here.

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

Hashes for modlib-1.4.0-cp313-cp313-manylinux_2_34_aarch64.manylinux_2_35_aarch64.whl
Algorithm Hash digest
SHA256 692c2afab40391591bb55323bc035fbf797052558ce2471936efe5354019f77a
MD5 61be110b75122b79a133d24c92f1925e
BLAKE2b-256 c3ee5f03f02cabcbfeb67480fff7594cd12c33d1cc68983a99a9d3b660dc418c

See more details on using hashes here.

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

Hashes for modlib-1.4.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 ec7487f08ef7c30ee719a6396b160c4a28b5cf3c5dac7757b1841059c9160c63
MD5 b4cb8c27a9200c5eb5d547544e2920f0
BLAKE2b-256 c1734b7520d458ea3de141a7f33ffd593627acdc390a3e6080d1d1452c8da074

See more details on using hashes here.

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

Hashes for modlib-1.4.0-cp312-cp312-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 62a23623c4ea059be09ed94276d4f59e7ee1b1fefbee91857ae41e936c00272f
MD5 953776ff84ed43ecdff8a3cbad15a67c
BLAKE2b-256 770eaf37fb663388cb9bd64ce61e2773ff27c80703be0b3d6deda60ba748d101

See more details on using hashes here.

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

Hashes for modlib-1.4.0-cp312-cp312-manylinux_2_34_aarch64.manylinux_2_35_aarch64.whl
Algorithm Hash digest
SHA256 8f02e52c02e47ab7538216504404d4cc1f6e2004074f452bcf74bdbc745182a8
MD5 7628f53670c9ac71eadf38e022ef6be5
BLAKE2b-256 00bb110f5b890642a1a9e5889c41df29c0c24cae1349b62fd17f785af61b6a81

See more details on using hashes here.

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

Hashes for modlib-1.4.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 ad06e937a02cbb5887bb2fd70cb83814f5940f6feb2a55ef2389180817504bb4
MD5 f22bb4618b634402cf6f21da256a5d3a
BLAKE2b-256 daef7f9d2dea0a17893d83dca48420cc91ff6bed5ad99c54eda8480105045e09

See more details on using hashes here.

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

Hashes for modlib-1.4.0-cp311-cp311-manylinux_2_35_x86_64.whl
Algorithm Hash digest
SHA256 1c6ee955cfa7b574d49abcb0fb0c425ba8966a8b632b9338251ed1c94a94d847
MD5 f071bc5c6fc8486023d56c54aaba5a38
BLAKE2b-256 0b209335d071fea2f9fb0e9ec654e4712a02f03e71fe79cbc24eb45563753dc8

See more details on using hashes here.

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

Hashes for modlib-1.4.0-cp311-cp311-manylinux_2_34_aarch64.manylinux_2_35_aarch64.whl
Algorithm Hash digest
SHA256 76f9dbe24d27932d60bb9ee0c4e3fd56a7427eaa1b8efafba5471e65f3ace29c
MD5 44397b082b2485d086e00803009ed519
BLAKE2b-256 60cb347bc74936f8f4153c1312f29bdfa144adbeaa248e0a75441c94f3202f81

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page