Skip to content

openvisionapi/ova-server

Repository files navigation

Open Vision API

Static Badge

🌟 Project Description

Open Vision API is an open source computer vision API based on open source models.


🚀 Quick Start

The following instructions detail how to set up the ova-server.

For information regarding the official clients and a quick demo of the API functionality head to:

  • ova-client: the official Python client.
  • ova: the official Rust client.

Installation

Make sure you have:

Set up a local environment using TensorFlow Lite as the backend framework.

$ just setup-tensorflow-lite

See documentation for a list of supported deep learning frameworks.

Download the models.

$ poetry run ./cli.py download --model=yolov4 --framework=tensorflow_lite --hardware=cpu

Usage

Run the ova-server.

$ just run-with-tensorflow-lite
INFO: Created TensorFlow Lite XNNPACK delegate for CPU.
INFO:     Started server process [3588600]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)

Get the official client.

Python client:

$ git clone https://github.com/openvisionapi/ova-client
$ cd ova-client
$ just setup
$ OVA_DETECTION_URL=http://localhost:8000/api/v1/detection poetry run ./ova.py detection images/cat.jpeg

For more information about the python client, please visit https://github.com/openvisionapi/ova-client

Rust client:

$ git clone https://github.com/openvisionapi/ova
$ cd ova
$ OVA_DETECTION_URL=http://localhost:8000/api/v1/detection cargo run -- detection -i assets/cat.jpeg

For more information about the rust client, please visit https://github.com/openvisionapi/ova


⛏️ Built Using


🤝 Contributions

All contributions are welcome!

Setting up the Development Environment

To set up the development environment, simply run the command:

$ just dev

Code Style Checks

ruff and mypy are used to ensure that contributions are stylized in a uniform manner.

  • ruff is used as a linter and a code formatter.
  • mypy is used for static typing.

🔧 Tests

To run the tests, simply use the commands:

$ just dev
$ just test

📄 Documentation

The complete documentation can be found here documentation


⚖️ License

AGPLv3