Common Vision Studio
An open-source edge vision workbench for Raspberry Pi and Linux. Calibrate cameras, run OpenCV/YOLO pipelines, measure world coordinates, control a gimbal, and replay reproducible sessions from one browser.
The media in this repository is generated by the safe synthetic demo. It does not represent measured hardware or model performance.
Why Common Vision Studio?
Most prototypes grow around separate camera loops, one-off calibration scripts, and control processes that cannot reproduce an earlier run. Common Vision Studio provides one shared latest-frame source and a consistent operational boundary:
- camera capture, calibration, source switching, and health diagnostics;
- reusable preprocessing, recognition, geometry, and measurement services;
- navigation, ball tracking, A4 targeting, and a fail-safe gimbal protocol;
- event recording, configuration snapshots, offline replay, and A/B comparison;
- ground-truth evaluation that keeps code regression separate from vision quality;
- a no-hardware demo that never opens a camera or serial port.
Three-minute demo
Python 3.11 or newer is required.
python -m pip install common-vision-studio
common-vision --demo
Open http://127.0.0.1:5000. Demo mode always binds to loopback, uses synthetic frames and an in-process gimbal transport, disables laser authorization, and stores mutable data in an isolated temporary directory.
To work from a clone:
python -m venv .venv
# Linux/macOS: source .venv/bin/activate
# Windows: .venv\Scripts\activate
python -m pip install -e ".[dev]"
common-vision --demo
Feature map
| Area | Included capabilities |
|---|---|
| Acquisition | OpenCV/Picamera2 camera, files, RTSP, MJPEG, UDP, reconnect supervision |
| Calibration | Diverse chessboard capture, robust outlier filtering, undistortion quality gates |
| Vision | ROI, illumination correction, color/shape/character/QR/fiducial/YOLO recognition |
| Geometry | Camera/world transforms, planar homography, pose and approximate ranging |
| Tasks | Vehicle navigation, ball tracking, A4 target planning and aiming |
| Control | Framed serial protocol, heartbeat, telemetry, stale-command expiry, E-stop, laser authorization |
| Reproducibility | Recording, replay, configuration bundles, scoring, ground-truth evaluation |
Architecture
flowchart LR
Sources[Camera / file / stream / synthetic] --> Hub[Shared latest-frame hub]
Hub --> Vision[Calibration and vision services]
Vision --> Tasks[Measurement and task pipelines]
Tasks --> Safety[Expiry, authorization and E-stop]
Safety --> Gimbal[Gimbal protocol / simulated transport]
Hub --> Sessions[Record, replay and evaluation]
Vision --> Sessions
See the architecture guide for ownership, threading, and failure boundaries.
Screenshots
| Dashboard | Image preprocessing |
|---|---|
| Camera calibration | Record and replay |
Hardware and platform support
| Platform | Status | Notes |
|---|---|---|
| Linux x86-64 | Supported | OpenCV camera and production WSGI deployment |
| Raspberry Pi OS 64-bit | Supported | Picamera2/OpenCV; validate on the target device |
| Windows 11 | Software-tested | OpenCV camera and demo; Waitress for serving |
| macOS | Community-tested | Demo and OpenCV paths; no maintained hardware profile |
| Gimbal firmware | Reference implementation | C codec and host vectors are included; hardware acceptance remains mandatory |
Detailed combinations and reporting requirements are in hardware compatibility.
Installation profiles
pip install common-vision-studio # core and safe demo
pip install "common-vision-studio[production]" # Waitress/Gunicorn
pip install "common-vision-studio[inference]" # Ultralytics and NCNN
Mutable data defaults to the operating system's application data directory. Use
--data-dir PATH or COMMON_VISION_DATA_DIR to select a device data root. Run
common-vision-doctor before a real deployment.
Documentation
- Getting started
- Architecture
- Hardware compatibility
- Deployment
- Operations API
- Algorithm validation
- Maintainer release guide
- Roadmap
Contributing and support
Issues and pull requests are welcome. Start with CONTRIBUTING.md and use the structured issue forms so reports include platform and hardware data. Questions belong in GitHub Discussions; security issues must follow SECURITY.md.
The code is licensed under Apache-2.0. Model weights and datasets have separate terms described in MODEL_LICENSES.md.
Metadata
Release files for common-vision-studio 1.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| common_vision_studio-1.2.0.tar.gz | 1.5 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| common_vision_studio-1.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 2.0 MB
Release files / common_vision_studio-1.2.0.tar.gz
| Download URL | common_vision_studio-1.2.0.tar.gz |
|---|---|
| Size | 1.5 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
89286a033f19e6c8446eb6e805b54aa246c23147ed2b369c0e14d039cdb4188f
|
|
BLAKE2b-256 checksum How to use checksums |
cb3a8da57ce1bcd0ffd38e0cd7c1e61956c256c40297801003901f2a7f9fcfea
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 17, 2026.
Transparency logRelease files / common_vision_studio-1.2.0-py3-none-any.whl
| Download URL | common_vision_studio-1.2.0-py3-none-any.whl |
|---|---|
| Size | 471.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
fd2436fcb268925c83922b509ee28bf7215842f9fc42bb504650d5e613afa080
|
|
BLAKE2b-256 checksum How to use checksums |
cc0a72351ab7f267f2ae43d29a62230069920700116c34540a26e2d4b98c99aa
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 17, 2026.
Transparency log