visiongraph


Namevisiongraph JSON
Version 1.0.2 PyPI version JSON
download
home_pagehttps://github.com/cansik/visiongraph
SummaryVisiongraph is a high level computer vision framework.
upload_time2025-01-10 10:23:08
maintainerNone
docs_urlNone
authorFlorian Bruggisser
requires_pythonNone
licenseMIT License
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            <img src="https://github.com/user-attachments/assets/0ed34695-ca0e-47ff-aebb-eb59ff851770" alt="Visiongraph Logo Bright" width="75%">

# Visiongraph

[![PyPI](https://img.shields.io/pypi/v/visiongraph)](https://pypi.org/project/visiongraph/)
![Pepy Total Downloads](https://img.shields.io/pepy/dt/visiongraph)
[![Documentation](https://img.shields.io/badge/read-documentation-blue)](https://cansik.github.io/visiongraph/visiongraph.html#documentation)

Visiongraph is a high level computer vision framework that includes predefined modules to quickly create and run algorithms on images. It is based on opencv and includes other computer vision frameworks like [Intel openVINO](https://github.com/openvinotoolkit/openvino) and [Google MediaPipe](https://github.com/google-ai-edge/mediapipe).

Here an example on how to start a webcam capture and display the image:

```python
from visiongraph import vg

vg.create_graph(vg.VideoCaptureInput()).then(vg.ImagePreview()).open()
```

Get started with `visiongraph` by reading the **[documentation](https://cansik.github.io/visiongraph/visiongraph.html#documentation)**.

## Installation
Visiongraph supports Python 3.10 and 3.11. Other versions may also work, but are not officially supported. Usually this is a third-party dependency problem: for example, [pyrealsense2](https://pypi.org/project/pyrealsense2/#files) does not have wheel packages for `3.12`.

To install visiongraph with all dependencies call [pip](https://pypi.org/project/pip/) like this:

```bash
pip install "visiongraph[all]"
```

It is also possible to only install certain packages depending on your needs (recommended):

```bash
# example on how to install realsense and openvino support only
pip install "visiongraph[realsense, openvino]"
```

Please read more about the extra packages in the [documentation](https://cansik.github.io/visiongraph/visiongraph.html#extras).

## Examples
To demonstrate the possibilities of visiongraph there are already implemented [examples](examples) ready for you to try out. Here is a list of the current examples:

- [SimpleVisionGraph](examples/SimpleVisionGraph.py) - SSD object detection & tracking of live webcam input with `5` lines of code.
- [VisionGraphExample](examples/VisionGraphExample.py) - A face detection and tracking example with custom events.
- [InputExample](examples/InputExample.py) - A basic input example that determines the center if possible.
- [RealSenseDepthExample](examples/DepthCameraExample.py) - Display the RealSense or Azure Kinect depth map.
- [FaceDetectionExample](examples/FaceDetectionExample.py) - A face detection pipeline example.
- [FindFaceExample](examples/FindFaceExample.py) - A face recognition example to find a target face.
- [CascadeFaceDetectionExample](examples/CascadeFaceDetectionExample.py) -  A face detection pipeline that also predicts other feature points of the face.
- [HandDetectionExample](examples/HandDetectionExample.py) - A hand detection pipeline example.
- [PoseEstimationExample](examples/PoseEstimationExample.py) - A pose estimation pipeline which annotates the generic pose keypoints.
- [ProjectedPoseExample](examples/ProjectedPoseExample.py) -  Project the pose estimation into 3d space with the RealSense camera.
- [ObjectDetectionExample](examples/ObjectDetectionExample.py) - An object detection & tracking example.
- [InstanceSegmentationExample](examples/InstanceSegmentationExample.py) - Intance Segmentation based on COCO80 dataset.
- [InpaintExample](examples/InpaintExample.py) - GAN based inpainting example.
- [MidasDepthExample](examples/MidasDepthExample.py) - Realtime depth prediction with the [midas-small](https://github.com/isl-org/MiDaS) network.
- [RGBDSmoother](examples/RGBDSmoother.py) - Smooth RGB-D depth map videos with a one-euro filter per pixel.
- [FaceMeshVVADExample.py](examples/FaceMeshVVADExample.py) - Detect voice activation by landmark sequence classification.

There are even more examples where visiongraph is currently in use:

- [Spout/Syphon RGB-D Example](https://github.com/cansik/spout-rgbd-example) - Share RGB-D images over spout or syphon.
- [WebRTC Input](https://github.com/cansik/visiongraph-webrtc) - WebRTC input example for visiongraph

## Development
To develop on visiograph it is recommended to clone this repository and install the dependencies like this:

```bash
# in the visiongraph directory
pip install -e ".[all]"
```

### Build
To build a new wheel package of visiongraph run the following command in the root directory.

```bash
python setup.py bdist_wheel
```

### Docs

To generate the documentation, use the following commands.

```bash
# create documentation into "./docs
python setup.py doc

# launch pdoc webserver
python setup.py doc --launch
```

## Dependencies

Parts of these libraries are directly included and adapted to work with visiongraph.

* [motpy](https://github.com/wmuron/motpy) - simple multi object tracking library (MIT License)
* [motrackers](https://github.com/adipandas/multi-object-tracker) - Multi-object trackers in Python (MIT License)
* [OneEuroFilter-Numpy](https://github.com/HoBeom/OneEuroFilter-Numpy) - (MIT License)

Here you can find a list of the dependencies of visiongraph and their licence:

```
depthai               MIT License
faiss-cpu             MIT License
filterpy              MIT License
mediapipe             Apache License 2.0
moviepy               MIT License
numba                 BSD License
onnxruntime           MIT License
onnxruntime-directml  MIT License
onnxruntime-gpu       MIT License
opencv-python         Apache License 2.0
openvino              Apache License 2.0
pyk4a-bundle          MIT License
pyopengl              BSD License
pyrealsense2          Apache License 2.0
pyrealsense2-macosx   Apache License 2.0
requests              Apache License 2.0
scipy                 MIT License
SpoutGL               BSD License
syphon-python         MIT License
tqdm                  MIT License
vector                BSD License
vidgear               Apache License 2.0
wheel                 MIT License
```

For more information about the dependencies have a look at the [requirements.txt](https://github.com/cansik/visiongraph/blob/main/requirements.txt).

Please note that some models (such as Ultralytics YOLOv8 and YOLOv11) have specific licences (AGPLv3). Always check the model licence before using the model.

## About
Copyright (c) 2025 Florian Bruggisser

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/cansik/visiongraph",
    "name": "visiongraph",
    "maintainer": null,
    "docs_url": null,
    "requires_python": null,
    "maintainer_email": null,
    "keywords": null,
    "author": "Florian Bruggisser",
    "author_email": "github@broox.ch",
    "download_url": null,
    "platform": null,
    "description": "<img src=\"https://github.com/user-attachments/assets/0ed34695-ca0e-47ff-aebb-eb59ff851770\" alt=\"Visiongraph Logo Bright\" width=\"75%\">\n\n# Visiongraph\n\n[![PyPI](https://img.shields.io/pypi/v/visiongraph)](https://pypi.org/project/visiongraph/)\n![Pepy Total Downloads](https://img.shields.io/pepy/dt/visiongraph)\n[![Documentation](https://img.shields.io/badge/read-documentation-blue)](https://cansik.github.io/visiongraph/visiongraph.html#documentation)\n\nVisiongraph is a high level computer vision framework that includes predefined modules to quickly create and run algorithms on images. It is based on opencv and includes other computer vision frameworks like [Intel openVINO](https://github.com/openvinotoolkit/openvino) and [Google MediaPipe](https://github.com/google-ai-edge/mediapipe).\n\nHere an example on how to start a webcam capture and display the image:\n\n```python\nfrom visiongraph import vg\n\nvg.create_graph(vg.VideoCaptureInput()).then(vg.ImagePreview()).open()\n```\n\nGet started with `visiongraph` by reading the **[documentation](https://cansik.github.io/visiongraph/visiongraph.html#documentation)**.\n\n## Installation\nVisiongraph supports Python 3.10 and 3.11. Other versions may also work, but are not officially supported. Usually this is a third-party dependency problem: for example, [pyrealsense2](https://pypi.org/project/pyrealsense2/#files) does not have wheel packages for `3.12`.\n\nTo install visiongraph with all dependencies call [pip](https://pypi.org/project/pip/) like this:\n\n```bash\npip install \"visiongraph[all]\"\n```\n\nIt is also possible to only install certain packages depending on your needs (recommended):\n\n```bash\n# example on how to install realsense and openvino support only\npip install \"visiongraph[realsense, openvino]\"\n```\n\nPlease read more about the extra packages in the [documentation](https://cansik.github.io/visiongraph/visiongraph.html#extras).\n\n## Examples\nTo demonstrate the possibilities of visiongraph there are already implemented [examples](examples) ready for you to try out. Here is a list of the current examples:\n\n- [SimpleVisionGraph](examples/SimpleVisionGraph.py) - SSD object detection & tracking of live webcam input with `5` lines of code.\n- [VisionGraphExample](examples/VisionGraphExample.py) - A face detection and tracking example with custom events.\n- [InputExample](examples/InputExample.py) - A basic input example that determines the center if possible.\n- [RealSenseDepthExample](examples/DepthCameraExample.py) - Display the RealSense or Azure Kinect depth map.\n- [FaceDetectionExample](examples/FaceDetectionExample.py) - A face detection pipeline example.\n- [FindFaceExample](examples/FindFaceExample.py) - A face recognition example to find a target face.\n- [CascadeFaceDetectionExample](examples/CascadeFaceDetectionExample.py) -  A face detection pipeline that also predicts other feature points of the face.\n- [HandDetectionExample](examples/HandDetectionExample.py) - A hand detection pipeline example.\n- [PoseEstimationExample](examples/PoseEstimationExample.py) - A pose estimation pipeline which annotates the generic pose keypoints.\n- [ProjectedPoseExample](examples/ProjectedPoseExample.py) -  Project the pose estimation into 3d space with the RealSense camera.\n- [ObjectDetectionExample](examples/ObjectDetectionExample.py) - An object detection & tracking example.\n- [InstanceSegmentationExample](examples/InstanceSegmentationExample.py) - Intance Segmentation based on COCO80 dataset.\n- [InpaintExample](examples/InpaintExample.py) - GAN based inpainting example.\n- [MidasDepthExample](examples/MidasDepthExample.py) - Realtime depth prediction with the [midas-small](https://github.com/isl-org/MiDaS) network.\n- [RGBDSmoother](examples/RGBDSmoother.py) - Smooth RGB-D depth map videos with a one-euro filter per pixel.\n- [FaceMeshVVADExample.py](examples/FaceMeshVVADExample.py) - Detect voice activation by landmark sequence classification.\n\nThere are even more examples where visiongraph is currently in use:\n\n- [Spout/Syphon RGB-D Example](https://github.com/cansik/spout-rgbd-example) - Share RGB-D images over spout or syphon.\n- [WebRTC Input](https://github.com/cansik/visiongraph-webrtc) - WebRTC input example for visiongraph\n\n## Development\nTo develop on visiograph it is recommended to clone this repository and install the dependencies like this:\n\n```bash\n# in the visiongraph directory\npip install -e \".[all]\"\n```\n\n### Build\nTo build a new wheel package of visiongraph run the following command in the root directory.\n\n```bash\npython setup.py bdist_wheel\n```\n\n### Docs\n\nTo generate the documentation, use the following commands.\n\n```bash\n# create documentation into \"./docs\npython setup.py doc\n\n# launch pdoc webserver\npython setup.py doc --launch\n```\n\n## Dependencies\n\nParts of these libraries are directly included and adapted to work with visiongraph.\n\n* [motpy](https://github.com/wmuron/motpy) - simple multi object tracking library (MIT License)\n* [motrackers](https://github.com/adipandas/multi-object-tracker) - Multi-object trackers in Python (MIT License)\n* [OneEuroFilter-Numpy](https://github.com/HoBeom/OneEuroFilter-Numpy) - (MIT License)\n\nHere you can find a list of the dependencies of visiongraph and their licence:\n\n```\ndepthai               MIT License\nfaiss-cpu             MIT License\nfilterpy              MIT License\nmediapipe             Apache License 2.0\nmoviepy               MIT License\nnumba                 BSD License\nonnxruntime           MIT License\nonnxruntime-directml  MIT License\nonnxruntime-gpu       MIT License\nopencv-python         Apache License 2.0\nopenvino              Apache License 2.0\npyk4a-bundle          MIT License\npyopengl              BSD License\npyrealsense2          Apache License 2.0\npyrealsense2-macosx   Apache License 2.0\nrequests              Apache License 2.0\nscipy                 MIT License\nSpoutGL               BSD License\nsyphon-python         MIT License\ntqdm                  MIT License\nvector                BSD License\nvidgear               Apache License 2.0\nwheel                 MIT License\n```\n\nFor more information about the dependencies have a look at the [requirements.txt](https://github.com/cansik/visiongraph/blob/main/requirements.txt).\n\nPlease note that some models (such as Ultralytics YOLOv8 and YOLOv11) have specific licences (AGPLv3). Always check the model licence before using the model.\n\n## About\nCopyright (c) 2025 Florian Bruggisser\n",
    "bugtrack_url": null,
    "license": "MIT License",
    "summary": "Visiongraph is a high level computer vision framework.",
    "version": "1.0.2",
    "project_urls": {
        "Homepage": "https://github.com/cansik/visiongraph"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "7bbefee9b3ec0ed2e5b11c957901dd8f15a2c791cd138dac74dc1ebb79a1d11d",
                "md5": "53c97fdd14c7a6661f229024a13a6e86",
                "sha256": "3c5497ac24c9cec1a3ad057b8143de90a66c97e8a75ae76a891dc47c8e43d295"
            },
            "downloads": -1,
            "filename": "visiongraph-1.0.2-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "53c97fdd14c7a6661f229024a13a6e86",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": null,
            "size": 357515,
            "upload_time": "2025-01-10T10:23:08",
            "upload_time_iso_8601": "2025-01-10T10:23:08.657089Z",
            "url": "https://files.pythonhosted.org/packages/7b/be/fee9b3ec0ed2e5b11c957901dd8f15a2c791cd138dac74dc1ebb79a1d11d/visiongraph-1.0.2-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-01-10 10:23:08",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "cansik",
    "github_project": "visiongraph",
    "github_not_found": true,
    "lcname": "visiongraph"
}
        
Elapsed time: 0.36647s