Daisykit - D.A.I.S.Y: Deploy AI Systems Yourself!
Daisykit (opens in a new tab) is an easy AI toolkit with face mask detection, pose detection, background matting, barcode detection and more. This open source project includes:
- Daisykit SDK - C++, the core of models and algorithms in NCNN deep learning framework.
- Daisykit Python wrapper for easy integration with Python.
- Daisykit Android - Example app demonstrate how to use Daisykit SDK in Android.
Links:
- Python Package: https://pypi.org/project/daisykit/ (opens in a new tab)
- Documentation: daisykit.nrl.ai (opens in a new tab)
Demo Video: https://www.youtube.com/watch?v=zKP8sgGoFMc (opens in a new tab).
1. Environment Setup
Ubuntu
Install packages from Terminal
sudo apt install -y build-essential libopencv-dev
sudo apt install -y libvulkan-dev vulkan-utils
sudo apt install -y mesa-vulkan-drivers # For Intel GPU supportWindows
For Windows, Visual Studio 2019 + Git Bash is recommended.
- Download and extract OpenCV from the official website (opens in a new tab), and add
OpenCV_DIRto path. - Download precompiled NCNN (opens in a new tab).
2. Build and run C++ examples
Clone the source code:
git clone https://github.com/nrl-ai/daisykit.git --recursive
cd daisykitUbuntu
Build Daisykit:
mkdir build
cd build
cmake .. -Dncnn_FIND_PATH="<path to ncnn lib>"
makeRun face detection example:
./bin/demo_face_detector_graphIf you dont specify ncnn_FIND_PATH, NCNN will be built from scratch.
Windows
Build Daisykit:
mkdir build
cd build
cmake -G "Visual Studio 16 2019" -Dncnn_FIND_PATH="<path to ncnn lib>" ..
cmake --build . --config ReleaseRun face detection example:
./bin/Release/demo_face_detector_graph3. C++ Coding convention
Read coding convention and contribution guidelines here.
4. Known issues and problems
- Slow model inference - Low FPS
This issue can happen on development build. Add -DCMAKE_BUILD_TYPE=Debug to cmake command and build again. The FPS can be much better.
5. References
This toolkit is developed on top of other source code. Including
- Toolchains setup from ncnn (opens in a new tab).
- QR Scanner from ZXing-CPP (opens in a new tab).
- JSON support from nlohmann/json (opens in a new tab).
- Pretrained AI models from different sources: /models.