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 support
Windows
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_DIR
to 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 daisykit
Ubuntu
Build Daisykit:
mkdir build
cd build
cmake .. -Dncnn_FIND_PATH="<path to ncnn lib>"
make
Run face detection example:
./bin/demo_face_detector_graph
If 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 Release
Run face detection example:
./bin/Release/demo_face_detector_graph
3. 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.