SharpAI is open source stack for machine learning engineering with private deployment and AutoML for edge computing. DeepCamera is application of SharpAI designed for connect computer vision model to surveillance camera. Developers can run same code on Raspberry Pi/Android/PC/AWS to boost your AI production development.

DeepCamera Architecture
Feature List
- High accurate Face Recognition
- Face Detection
- Inference on ARM Mali GPU
- Support Android TF Lite(GPU/CPU/NPU)
- Support open source embedded linux
- Control from mobile application
- Management System for devices
- Push Notification to Mobile Device
- Object Detection
- Distributed System based on celery
- Plugin to process video by Shinobi CCTV
- Application on Android to decode video with hw acc
- Motion Detection with Android GPU
- Lable and train from Mobile to Edge Device
- Native raspberry pi camera support
- Labelling server and application is down, need BYOD document API server repo
- Image upload to AWS or on premise AWS compatiable server(MINIO)
Commercial Support
Slack
Click to join sharpai slack channel
Demo
Get Started
On X86 Linux
- Install Docker
sudo curl -sSL https://get.docker.com | sh
- Get source code
git clone https://github.com/SharpAI/DeepCamera
- Start container
cd DeepCamera/
./run-on-linux.sh start
On OSX
- Install Docker Install Docker Desktop on Mac(Offical)
- Get source code
git clone https://github.com/SharpAI/DeepCamera
- Start container
cd DeepCamera/
./run-on-mac.sh start
On Raspberry Pi 3B+/4B
Connect Streaming
Through Open Source NVR
Shinobi login page(device_ip:8080):
username: user@sharpaibox.com
password: SharpAI2018
Change IP configuration and camera url on the page. Detail information
If you are using other camera support streaming, please check The Shinobi NVR's document Supported Devices
Connect DeepCamera to API Server
Get device serial number
cat docker/workaipython/ro_serialno
82f28703d001
82f28703d001 is device ID
Create User on API Server
REST API:
curl -X POST -H "Content-type: application/json" http://localhost:3000/api/v1/sign-up -d '{"username": "test11", "email": "xxxx@xxx.xx", "password": "xxxxxx"}'
Response:
Get Token of created user
REST API:
curl -X POST http://localhost:3000/api/v1/login/ -d "username=testuser&password=123456"
Response:
{
"status": "success",
"data": {
"authToken": "t6QsPaU3VdbfUQMkNIf6I3MDtox29WLrPJRAKkOCfpc",
"userId": "tiK8RYG87sGJAErdB"
}
}
Create Group on API Server
Rest API:
Fill in X-Auth-Token and X-User-Id in previous response.
curl -X POST -H "X-Auth-Token: t6QsPaU3VdbfUQMkNIf6I3MDtox29WLrPJRAKkOCfpc" -H "X-User-Id: tiK8RYG87sGJAErdB" http://localhost:3000/api/v1/groups -d "name=group01"
Response:
{
"groupId": "e309ff8c7a3a8ceb4011e86e"
}
Add device to Group on API Server
REST API:
Replace X-Auth-Token and X-User-Id.
Replace group id in requesting URL: http://localhost:3000/api/v1/groups/`e309ff8c7a3a8ceb4011e86e`/devices
curl -X POST -H "X-Auth-Token: t6QsPaU3VdbfUQMkNIf6I3MDtox29WLrPJRAKkOCfpc" -H "X-User-Id: tiK8RYG87sGJAErdB" -H "Content-type: application/json" http://localhost:3000/api/v1/groups/e309ff8c7a3a8ceb4011e86e/devices -d '{"uuid": "82f28703d001", "deviceName": "testDevice", "name":"testdevice","type": "inout"}'
Response:
Then restart DeepCamera service.
Rebuild Mobile App to connect to your own API Server(Doc WIP)
Clone https://github.com/SharpAI/ApiServer
Setup your own travis service for CI (to build your own APK on travis)
Setup your own sign keystore, setup your own Environment
Trigger build
Labelling and receive message sent from DeepCamera with Face Detection/Recognition result
API Server document can be found here: SharpAI/ApiServer
Contributions
This project contains source code or library dependencies from the follow projects:
- Tensorflow available at: https://github.com/tensorflow/tensorflow Apache License 2.0
- MXNet available at: https://github.com/apache/incubator-mxnet Apache License 2.0
- TVM available at: https://github.com/dmlc/tvm Apache License 2.0
- Shinobi project available at: https://gitlab.com/Shinobi-Systems/Shinobi/ Copyright (c) 2018 Shinobi Systems
- Termux project available at: https://github.com/termux/termux-app GPLv3/Apache License 2.0
- Insightface project available at: https://github.com/deepinsight/insightface MIT License
- Easyrs project available at: https://github.com/silvaren/easyrs MIT License
- Nodejs: https://nodejs.org Copyright Node.js contributors. All rights reserved.
- Python: https://www.python.org Python 2.7 license
- Gcc for termux with fortran scipy etc: https://github.com/its-pointless/gcc_termux
- RembrandtAndroid project available at https://github.com/imgly/RembrandtAndroid
- Great English-writing introduction on analyticsvidhya

