Privacy is the most important issue for the AI surveillance camera. Open source and BYOD is the only way to solve privacy issue. SharpAI DeepCamera provides private deployment architecture to save all your information on your own devices.
What's SharpAI DeepCamera
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)
Demo
Get Started
Prepare System
Please install 32bit system (official raspbian)
Prepare Camera
Now you need to enable camera support using the raspi-config program you will have used when you first set up your Raspberry Pi. Use the cursor keys to select and open Interfacing Options, and then select Camera and follow the prompt to enable the camera. https://www.raspberrypi.org/documentation/configuration/camera.md
Prepare Docker
sudo curl -sSL https://get.docker.com | sh
on Raspberry Pi 3/4
Get source code
git clone https://github.com/SharpAI/DeepCamera
Configure
edit configuration on Pi, change following environment variables to PC/Server/Cloud ip address:
docker/aws.env
AWS_END_POINT='<Server_IP>'
AWS_BUCKET=faces
AWS_READABLE_PREFIX='http://<Server_IP>:9000/faces/'
docker/servers.env
MQTT_BROKER_ADDRESS=<Server_IP>
API_SERVER_ADDRESS=<Server_IP>
Start DeepCamera
cd DeepCamera
./run-on-rpi.sh start
on PC/Server/Cloud
git clone https://github.com/SharpAI/DeepCamera
cd DeepCamera
./start-cloud.sh start
You need ip address of private cloud server on next step (replace ip address to <Server_IP> on next step).
If you don't want to setup your own server for now, a test server can be used for evaluation, the ip address of test server is 165.232.62.29
Use Mobile APP to receive recognition result on Raspberry Pi
Get device serial number
cat docker/workaipython/ro_serialno
82f28703d001
82f28703d001
is device ID.
Generate QRCode of device ID
SharpAI Mobile APP
Download and installConfigure on Mobile APP
Connect to Surveillance Camera 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
Develop your own Application GUI with DeepCamera
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:
{
"success": true
}
Get Token of created user
REST API:
curl -X POST -H "Content-type: application/json" http://localhost:3000/api/v1/login/ -d '{"username": "test11", "email": "xxxx@xxx.xx", "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:
{
"success": true
}
Then restart DeepCamera service.
SharpAI/ApiServer
API Server document can be found here:How to run DeepCamera On PC
You can also develop/debug code on your PCCommercial Support
Slack
Click to join sharpai slack channel