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. image

DeepCamera Architecture

architecture

Feature List

Commercial Support

Slack

Click to join sharpai slack channel

Demo

demo

Get Started

On X86 Linux

  1. Install Docker
    sudo curl -sSL https://get.docker.com | sh
    
  2. Get source code
    git clone https://github.com/SharpAI/DeepCamera
    
  3. Start container
    cd DeepCamera/
    ./run-on-linux.sh start
    

    On OSX

  4. Install Docker Install Docker Desktop on Mac(Offical)
  5. Get source code
    git clone https://github.com/SharpAI/DeepCamera
    
  6. 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:

{
  "success": true
}

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:

{
  "success": true
}

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: