The vin library is minimal (Qt and Apache Arrow only) support for media capture and visualization. It is meant to bookend the functional-dag so that other cognitive components can rely on these pieces and build the real architecture.
The commitment being made with this cognitive architecture is that tensors are the key data structure passed between components of the system rather than CvMats. This system does not support linear algebra routines and will do as much as possible to support native tensors into and out of pytorch and to do it in the most minimal way possible that is compatible with the package managers.
The build is Meson based and is built for cxx23 standards. First class build support is given to Ubuntu and MacOS through the homebrew and aptitude infrastrucure.
$ brew tap petroglyf/functional-dag https://github.com/petroglyf/functional-dag
$ brew tap petroglyf/vin https://github.com/petroglyf/vin
$ brew install petroglyf/vin/vin$ curl -s --compressed "https://petroglyf.github.io/ppa/KEY.gpg" | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/ppa.gpg >/dev/null
$ sudo curl -s --compressed -o /etc/apt/sources.list.d/packages.list "https://petroglyf.github.io/ppa/packages.list"
$ apt update
$ apt install vinThis project tries to minimize dependencies so as to not stack dependencies across larger projects and to make it easier to build simple layers to other languages like python.
Build dependencies:
- Qt6
- Arrow
- Flatbuffers
- λg
- Catch2 (if you want to unit test)
- clang-tidy (if you want to lint the code as well)
- ONNX Runtime (If you want to build deep learning inference support)
Runtime dependencies
- Qt6 (Gstreamer doesn't always support native libraries. Qt is a great library to support basic multimedia and OpenGL)
- Flatbuffers
- Glog
- ONNX Runtime (optional)
We work on issues. If you'd like to help out, take a look at the issues, assign a free one and start coding!
You're also welcome to perform unsolicited push requests to main and ask for a review. We'll be happy to take a look and provide feedback.
You can also help out by simply providing bug reports!
