English | 中文
BNS AI is an edge-device vision SDK built around two production-ready algorithms:
- Face Recognition — detection, tracking, landmarks, liveness, 1:N identification
- Cat/Dog Individual Recognition — detection, tracking, per-individual recognition and registration
The SDK is delivered as prebuilt libraries with public C/C++ headers. This repository publishes the public headers, API documentation and usage samples. To run the algorithms on your device, request a time-limited evaluation package.
| Module | Capabilities |
|---|---|
| Face | Detection, tracking, 5-point & 106-point landmarks, head pose, feature extraction, 1:N register/search, RGB/IR liveness, one-call access-control pipeline |
| Cat | Body detection, multi-object tracking, cat-face detection + 5 landmarks, individual recognition, registration DB |
Liveness, 106-point landmarks and the access-control pipeline ship with the full BNS SDK (bns_* C API) and are available in the evaluation package on request.
- Smart pet feeders & pet cameras — recognize each individual cat/dog, track visits and eating behavior
- Access control & attendance — face recognition with liveness for door locks, turnstiles and attendance machines
- Smart home & IPC cameras — on-device vision analytics with no cloud dependency
Demo videos and real-scene showcases of face recognition, liveness detection and cat/dog individual recognition are available on request — contact [email protected].
| Platform | Inference Backend | Status |
|---|---|---|
| x86-64 Linux | ONNX Runtime | Available |
| Rockchip RK | RKNN | Available |
| SigmaStar | MI_IPU | Available |
| Ingenic | Ingenic NPU | Available |
| Other NPU / SoC | Porting on demand | Contact us |
- Public headers:
include/— plain C API plus C++ RAII wrappers - API reference:
docs/API_REFERENCE.md - Integration guide:
docs/INTEGRATION.md - Runnable samples:
samples/(require the evaluation library)
Minimal example — face detection and registration (C++ API):
#include "bns_ai.hpp"
#include "bns_ai_face.hpp"
bns_ai::Library::Init();
auto* cfg = bns_ai::Config::Create();
cfg->SetString("face_model_dir", "models/face");
bns_ai::Face* face = bns_ai::Face::Create(cfg); // takes over the config
delete cfg;
bns_ai::Image* img = bns_ai::Image::Wrap(w, h, BNS_AI_COLOR_BGR, data);
bns_ai::FaceDetection det; // RAII result holder
face->Detect(img, det.get()); // boxes, track ids, landmarks
face->Register(img, /*feat_id*/ 1, "owner"); // register into 1:N database
delete img;
delete face;
bns_ai::Library::Deinit();Minimal example — cat detection and individual recognition (C++ API):
#include "bns_ai.hpp"
#include "bns_ai_cat.hpp"
bns_ai::Library::Init();
auto* cfg = bns_ai::Config::Create();
cfg->SetString("cat_model_dir", "models/cat");
bns_ai::Cat* cat = bns_ai::Cat::Create(cfg); // takes over the config
delete cfg;
bns_ai::Image* img = bns_ai::Image::Wrap(w, h, BNS_AI_COLOR_BGR, data);
bns_ai::CatResult result; // RAII result holder
cat->Process(img, result.get()); // detect, track, identify
cat->Register(img, /*feat_id*/ 1, /*cat_id*/ 1001, "custom-string");
delete img;
delete cat;
bns_ai::Library::Deinit();include/ Public headers (C API + C++ wrappers)
docs/ API reference, integration guide, capabilities
samples/ C and C++ usage samples
This repository ships no binaries or models. The evaluation flow:
- Contact us with your use case and hardware platform (SoC, NPU, OS, toolchain).
- We issue a device-bound, time-limited evaluation package (
libbns_ai*.so+ models + full docs) that builds and runs the samples in this repo. - After evaluation, we can discuss commercial licensing — including algorithm porting and custom development for new chips (RKNN, SigmaStar IPU, TNN, MNN, ONNX Runtime and others).
Contact
- Email: [email protected]
The headers, documentation and samples in this repository are provided for evaluation only. Redistribution and reverse engineering are prohibited. Prebuilt libraries and model files require a commercial license — see LICENSE.