Skip to main content

FalcoCV — Industrial Machine Vision Framework

PyPI Python Qt OpenCV CI

FalcoCV

FalcoCV is a modular machine vision environment for industrial automation. It combines a workflow-driven tool pipeline with real-time image processing, inspection, depth/3D analysis and camera acquisition, plus a web-based HMI for operator dashboards.

FalcoCV is under active development: interfaces and job formats may change between releases.

Highlights

  • Workflow engine — connect tools in a directed graph; jobs are saved as .cvj files.
  • Vision toolset — acquisition, image enhancement, segmentation, template and shape matching, code reading, measurement, deep-learning inspection and 3D analysis.
  • Depth + 3D — depth/range loading, point clouds, plane fitting and a 3D viewer with world-space overlays.
  • Fixture system — per-image coordinate transforms; tools work in fixture-relative coordinates.
  • Vector overlays — annotations are mathematical primitives rendered only by visible viewers; source pixels are never modified.
  • Scripting + debugger — editor, breakpoints, stepping and variable/watch panels.
  • HMI designer + web server — design operator dashboards, deploy them to a FastAPI server and open them from any browser.
  • Camera acquisition — GigE Vision and USB3 Vision cameras through Harvesters and a vendor GenTL producer.

Install

FalcoCV is distributed as a wheel for Windows x86_64 and Linux x86_64 (CPython 3.13.x):

python -m pip install falcocv

Python 3.13 is the only supported version for this release. The native kernel ships inside the wheel, so no compiler is needed. On Windows, install the Microsoft Visual C++ 2015-2022 Redistributable (x64); ONNX Runtime and the native kernel use that runtime. On platforms without a wheel, pip builds it from the sdist and needs Python 3.13.x, CMake 3.20+ and a C++17 compiler. On Linux the wheels target glibc 2.34+ (Ubuntu 22.04+, Debian 12+, RHEL 9+), which is what PyQt6 requires. GigE and USB3 Vision cameras only need the vendor GenTL producer (.cti file); the Harvesters integration is installed by default.

From source

Requires CPython 3.13.x:

git clone https://github.com/jaesc/falcocv.git
cd falcocv
python -m pip install ".[dev]"

Models

ONNX models are not bundled with the package; they are downloaded on first use to:

  • Windows: %APPDATA%/FalcoCV/models
  • Linux: $XDG_DATA_HOME/FalcoCV/models (or ~/.local/share/FalcoCV/models)

The splash screen shows progress and startup waits until the models are ready. To pre-download or repair them:

falcocv download-models
# or the dedicated entry point
falcocv-download-models

To use an existing local bundle instead (offline or pre-provisioned machines), point FALCOCV_MODELS_DIR at the folder that contains the model files.

Downloads come from a GitHub Release. Override the base URL to use a mirror:

export FALCOCV_MODELS_URL="https://mirror.example.com/falcocv/models-v1"

Run

Command What runs
falcocv or python -m falcocv Vision Editor (desktop)
falcocv-server Web server / dashboard
falcocv-hmi Standalone HMI Designer
falcocv download-models Download/verify ONNX models

The web dashboard is served at http://localhost:8000; HMI pages are available at http://localhost:8000/?id=<project_id>.

Demo

examples/demo_inspection.cvj locates a bracket with Shape Match, uses it as a fixture, counts the two through-holes with Blob Detector and measures their distance with Measurement:

Demo result

git clone https://github.com/jaesc/falcocv.git
cd falcocv
falcocv run examples/demo_inspection.cvj --output results.json

The dataset is 14 synthetic images (10 OK, including cosmetic scratches and stains; 4 NG: missing/blocked/extra hole and wrong hole spacing). Image generation, the trained job and the annotated results are scripted and reproducible — see examples/README.md. All of it is original CC0 artwork.

Architecture

src/falcocv/
├── core/        Workflow engine, VisionImage, overlays, ROI, model resolver
├── tools/       Vision tools
├── ui/          PyQt6 widgets, viewers, ROI editors, HMI designer
├── web/         FastAPI server, HMI workers, dashboard
├── main.py      Vision Editor
├── cli.py       `falcocv` / `python -m falcocv`
└── version.py

cpp/kernel/      Native kernel (no OpenCV)
tests/           Pytest suite

FalcoCV is Python-first: tools and algorithms use OpenCV/NumPy unless a measured benchmark justifies native code. The small C++ kernel in cpp/kernel accelerates the hot paths where that win exists (for example point-cloud generation, plane fitting and template matching). It has no OpenCV dependency; OpenCV is provided by opencv-python.

See ARCHITECTURE.md for the module layout and benchmarks/ for the performance harness.

Development

git clone https://github.com/jaesc/falcocv.git
cd falcocv
python -m pip install -e ".[dev]"
pytest -q --ignore=tests/test_trainer_equivalence.py

An editable install builds the native kernel through scikit-build-core. To run directly from the source tree, build the kernel once and point PYTHONPATH at src:

build_kernel.bat          # Windows
./build_kernel.sh         # Linux/macOS

set PYTHONPATH=src        # Windows
export PYTHONPATH=src     # Linux/macOS
python -m falcocv

Native kernel

build_kernel.bat            :: configure + build + deploy to cpp/bin
build_kernel.bat --rebuild  :: clean cache first
build_kernel.bat --clean    :: remove artifacts
./build_kernel.sh

Requirements: CMake 3.20+, a C++17 compiler, pybind11 and OpenMP. On Windows, Visual Studio 2022 with the "Desktop development with C++" workload is enough. No OpenCV build is required.

Testing

pytest -q --ignore=tests/test_trainer_equivalence.py

Targeted runs:

pytest -q -m integration   # headless workflows, jobs, barcode, depth
pytest -q -m ui            # offscreen Qt config dialogs / main window
pytest -q -m web           # FastAPI / HMI endpoints
falcocv self-test          # installation smoke test (also works from a wheel)

The suite covers the workflow engine, vision tools, UI (offscreen Qt) and web/HMI endpoints. The trainer-equivalence test needs the optional training toolchain (torch/timm) and is excluded.

License

FalcoCV is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

FalcoCV is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See LICENSE for the full text.

Metadata

Release files for falcocv 1.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for falcocv 1.0.1
File Size Uploaded Provenance Actions
falcocv-1.0.1.tar.gz 6.1 MB Without provenance Details for falcocv-1.0.1.tar.gz

Built distributions (wheels)

Table of built distributions (wheels) for falcocv 1.0.1
File Interpreter ABI Platform Actions
falcocv-1.0.1-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details for falcocv-1.0.1-cp313-cp313-win_amd64.whl
falcocv-1.0.1-cp313-cp313-manylinux_2_34_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.34+ x86-64 Details for falcocv-1.0.1-cp313-cp313-manylinux_2_34_x86_64.whl

Total release size: 8.8 MB

Release files / falcocv-1.0.1.tar.gz

Download URL falcocv-1.0.1.tar.gz
Size 6.1 MB
Tags Source
SHA-256 checksum
How to use checksums
2efffa08ddbd964c129ff37da498966e1a45d89647df2714a6945208e6a3787a
BLAKE2b-256 checksum
How to use checksums
f5515e7e756affd88316048edc85c2ab1bfffec9c86e7523a30992826ede2b1b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / falcocv-1.0.1-cp313-cp313-win_amd64.whl

Download URL falcocv-1.0.1-cp313-cp313-win_amd64.whl
Size 1.4 MB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
2153b99b3616af4047870bc589b04ef4e5e20f126f2d8c995fa43ba0e2b3530d
BLAKE2b-256 checksum
How to use checksums
c561495045a65f305d9eedd01d59c2db446e0042065b50c23d65db143adcb3dd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Release files / falcocv-1.0.1-cp313-cp313-manylinux_2_34_x86_64.whl

Download URL falcocv-1.0.1-cp313-cp313-manylinux_2_34_x86_64.whl
Size 1.3 MB
Tags CPython 3.13 Linux glibc 2.34+ x86-64
SHA-256 checksum
How to use checksums
6ebc8f2e8c833e77bf0312eda88f4b39ae1e188861bfa71c37c5dd7a2ef10694
BLAKE2b-256 checksum
How to use checksums
b74e45dacda79891482eccc23888afab6c1abd1f6fdb13ff59529b0a119e0a08
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Security for falcocv 1.0.1

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.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page