added streaming

This commit is contained in:
Cédric Verstraeten
2016-08-24 09:04:54 +02:00
parent fa33aa7497
commit 69c347fde7
5 changed files with 35 additions and 4 deletions

View File

@@ -38,7 +38,8 @@
* Fix removal images if disk is almost full (wrong path was defined). [#1](https://github.com/kerberos-io/kios/issues/1)
* Support for the Raspberry Pi Camera module v2.1. [#3](https://github.com/kerberos-io/kios/issues/3)
* Support for the Raspberry Pi Zero; updated kernel to latest Raspbian. [#3](https://github.com/kerberos-io/kios/issues/3)
* KiOS GUI installer.
<a name="2-0-0"></a>
## 2.0.0

View File

@@ -13,7 +13,7 @@ The machinery is an **image processing framework** which is devided into four st
The steps belong to a four passway; illustrated on the image below. In each cycle a sequence of images is processed. Each step will process the sequence, and will return some result to the next step. For example: an algorithm will process the images and returns an array to the Expositor, which contains boolean values. The steps are **loosly coupled**, so they have **simple conventions**, just like the example before.
Thanks to the loosly coupling, each step can be developed indepently. So algorithms, expositors, heuristics and conditions can be switched on the fly. This makes it easier for other developers who want to contribute to kerberos. They can create a new algorithm without knowing how a specific expositor or heuristic works. They just need to be aware of the convention an algorithm should meet.
Thanks to the loosly coupling, each step can be developed indepently. So algorithms, expositors, heuristics and conditions can be switched on the fly. This makes it easier for other developers who want to contribute to Kerberos.io. They can create a new algorithm without knowing how a specific expositor or heuristic works. They just need to be aware of the convention an algorithm should meet.
![Lifecycle](1_project_structure.png)

View File

@@ -2,7 +2,7 @@
This Background subtraction algorithm is **a more advanced** method in comparison to the **Differential images** method. The key difference is that it uses and calculates a background image. Images taken from the capture device are then subtracted from the background image, resulting in a more robust segmentation of the foreground. As this method is more accurate, it also **consumes a lot more CPU power and memory**; the background model is adapted by every iteration.
# Parameters
## Parameters
The parameters of the Background images algorithm can be found in the *config/algorithm.xml* file, but you can also use the web to modify the parameters. Below you see a default configuration file.

View File

@@ -0,0 +1,30 @@
# Streaming
The machinery has the ability to stream your capture device as a MJPG stream.
## Parameters
The parameters for the supported streaming protocols can be found in the *config/stream.xml* file, but you can also use the web to modify the parameters. Below you see a default configuration file; at the moment of writing only a MJPG stream is supported.
<streams>
<Mjpg>
<enabled type="bool">true</enabled>
<streamPort type="number">8888</streamPort>
<quality type="number">75</quality>
</Mjpg>
</streams>
### Enabled
A boolean which turns ON/OFF the stream. This is interesting when working with IP cameras, where you already have an RTSP/MJPG stream from the camera itself.
### Stream Port
The port on which the stream is available.
### Quality
The quality is a value between [0-100]. The lower the quality, the more the image will be compressed.

View File

@@ -26,7 +26,7 @@ When opening the counter heuristic, you'll see two lines (a green and red one) w
### Specify the webhook url
The **Webhook Io device** is used to retrieve the number of incoming and outgoing objects; therefore we need to specify an endpoint to which the webhook will post the JSON object. The web application we will create in next paragraph will listen on port 25000, therefore we chage the url of the webhook to:
The **Webhook Io device** is used to send the number of incoming and outgoing objects to your own application; therefore we need to specify an endpoint to which the webhook will post the JSON object (e.g. your own API). We will demonstrate how this works with a traditional NodeJS application, which we will create in next paragraph. The application will run on our local machine, and listen on port 25000, therefore we need to change the url of the webhook to:
http://localhost:250000