Skip to content

Commit

Permalink
add face-detect-demo
Browse files Browse the repository at this point in the history
  • Loading branch information
arcanique committed Dec 19, 2019
1 parent b1a8189 commit aec1cfe
Show file tree
Hide file tree
Showing 4 changed files with 141 additions and 0 deletions.
9 changes: 9 additions & 0 deletions facedetect-rasyberrypi/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# face detect example
* This demonstration is based on kubeedge, allowing part of the algorithm analysis ability to run on the edge.
* Demo is just an example, you can use this as an example to run various algorithm applications on the edge.
* The docker image used in this example can be used as a [basic image](./dockerfile/Dockerfile) to make images of different business scenarios.
* The demo does not necessarily have better performance, this is just a scenario demonstration.

<img src="demo.png">

## Details for the face detect demo, please read the [Demo guide](./guides/face_detect_demo_guide.md)
Binary file added facedetect-rasyberrypi/demo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 3 additions & 0 deletions facedetect-rasyberrypi/dockerfile/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
FROM kubeedge/face-detect-demo:v1

## add your application code with python3
129 changes: 129 additions & 0 deletions facedetect-rasyberrypi/guides/face_detect_demo_guide.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,129 @@
# Guide for use Kubeedge to run face detect Demo for edge at a raspberryPi

## 1. Prepare Kubeedge environment
install guide please refers to the kubeedge install readme
[Kubeedge installation reference](https://github.com/kubeedge/kubeedge/blob/master/README.md)

## 2. Prepare the raspberryPi environment
> Demo supports raspberrypi3 and higher
```shell script
run rasp-config to enable the raspberryPi camera. and reboot.
```
## 3 . Run the face detect demo
> Provide two ways to run this face recognition demo on RaspberryPi
### 3.1. By using rtsp stream provided by the raspberryPi built-in camera
> note: This method supports the camera which support RTSP video stream. Not just the camera that comes with raspberryPi \
> The following steps use Raspberry Pi as an example
+ Step1. Generate RTSP vide stream with build-in camera

> install the dependent packages
```shell script
apt-get install cmake liblog4cpp5-dev libv4l-dev
```
> [download the rtsp tool](https://github.com/mpromonet/v4l2rtspserver/releases/tag/v0.1.9)
```shell script
# install the rtsp tool
dpkg -i v4l2rtspserver-0.1.9-Linux-armv7l.deb
```
> start the RTSP server
```shell script
v4l2rtspserver -H 640 -W 480 -F 15 -P 8555 /dev/video0 > rtsp.log 2>&1&
```
> -F : the frame rate \
> -H : the frame height \
> -W : the frame width \
> -P : the rtsp server port
> after finished the above steps, you will get a rtsp server url
```shell script
rtsp://hostip:8555/unicast
# the hostip depends on the configuration on your machine
```

+ Step2. Pull the Demo images
```shell script
docker pull kubeedge/face-detect-demo:v1
```
+ Step3. Run with docker
```shell script
docker run -d -p 8099:8099 -e VIDEO_URL=rtsp://${hostip}:8555/unicast kubeedge/face-detect-demo:v1 python3 /opt/src/app_rtsp.py
```
+ Or run with kubeedge
> The deployment files are as follows \
> Please modify the ${hostip} as your machine's \
> Please modify the ${node_id} maybe you need replace the nodeSelector \
```yaml
apiVersion: v1
kind: Pod
metadata:
name: face-detect-demo
labels:
app: demo
spec:
containers:
- name: demo
image: kubeedge/face-detect-demo:v1
imagePullPolicy: IfNotPresent
ports:
- containerPort: 8099
hostPort: 8099
args:
- /opt/src/app_rtsp.py
command:
- python3
env:
- name: VIDEO_URL
value: rtsp://${hostip}:8555/unicast
nodeSelector:
name: ${node_id}
```
### 3.2. By using the picamera module in python (Recommended,Performance will be better)
> this method just support the raspberryPi, does not support other types of machine
+ Step1. Pull the Demo images
```shell script
docker pull docker pull kubeedge/face-detect-demo:v1
```

+ Step2. Run with docker
> The deployment files are as follows
```shell script
docker run -d --privileged=true -v /dev/:/dev/ -p 8099:8099 kubeedge/face-detect-demo:v1 python3 /opt/src/app.py
```

+ Or run with kubeedge
> The deployment files are as follows \
> Please modify the ${node_id} maybe you need replace the nodeSelector
```yaml
apiVersion: v1
kind: Pod
metadata:
name: face-detect-demo
labels:
app: demo
spec:
containers:
- name: demo
image: kubeedge/face-detect-demo:v1
imagePullPolicy: IfNotPresent
ports:
- containerPort: 8099
hostPort: 8099
args:
- /opt/src/app.py
command:
- python3
volumeMounts:
- name: dev
mountPath: /dev/
securityContext:
privileged: true
volumes:
- name: dev
hostPath:
path: /dev/
nodeSelector:
name: ${node_id}
```

0 comments on commit aec1cfe

Please sign in to comment.