The E2E sample implements aspects of smart city sensing, analytics and management features as follows:
- Camera Provisioning: Tag and calibrate cameras for installation locations, calibration parameters and other usage pattern information.
- Camera Discovery: Discover and register IP cameras on specified IP blocks. Registered cameras automatically participate into the analytics activities. See Sensor Simulation and Discovery for additional details.
- Recording: Record and manage segmented camera footage for preview or review (at a later time) purpose.
- Analytics: Perform analytics on the live/recorded camera streams. Latency-sensitive analytics are performed on Edge while others are on cloud.
- Triggers and Alerts: Manage triggers on analytics data. Respond with actions on triggered alerts.
- Smart Upload and Archive: Transcode and upload only critical data to cloud for archival or further offline analysis.
- Stats: Calculate statistics for planning/monitoring purpose on analytical data.
- UI: Present above data to users/administrators/city planners.
The sample implements the Smart-City traffic
and stadium
scenarios. The traffic
scenario measures vehicle/pedestrian flow for planning purpose. The stadium
scenario focuses on different access control techniques, including entrance people counting, service-point queue counting, and stadium seating zone crowd counting.
Traffic | Stadium |
---|---|
The sample is powered by the following Open Visual Cloud software stacks:
- Edge Low-latency Analytics:
- The GStreamer-based media analytics stack is used for object detection, people-counting, queue-counting and crowd-counting on camera streams. The software stack is optimized for Intel® Xeon® Scalable Processors.
- Smart Upload with Transcoding:
- The FFmpeg-based media transcoding stack is used to transcode recorded content before uploading to cloud. The software stack is optimized for Intel Xeon Scalable Processors.
-
Time Zone: Check that the timezone setting of your host machine is correctly configured. Timezone is used during build. If you plan to run the sample on a cluster of machines managed by Docker Swarm or Kubernetes, please make sure to synchronize time among the manager/master node and worker nodes.
-
Build Tools: Install
cmake
,make
,m4
,wget
andgawk
if they are not available on your system. -
Docker Engine:
- Install docker engine. Minimum version required:
17.05
. Make sure you setup docker to run as a regular user. - Setup docker swarm, if you plan to deploy through docker swarm. See Docker Swarm Setup for additional setup details.
- Setup Kubernetes, if you plan to deploy through Kubernetes. See Kubernetes Setup for additional setup details.
- Setup docker proxy as follows if you are behind a firewall:
- Install docker engine. Minimum version required:
sudo mkdir -p /etc/systemd/system/docker.service.d
printf "[Service]\nEnvironment=\"HTTPS_PROXY=$https_proxy\" \"NO_PROXY=$no_proxy\"\n" | sudo tee /etc/systemd/system/docker.service.d/proxy.conf
sudo systemctl daemon-reload
sudo systemctl restart docker
Use the following commands to build the sample. By default, the sample builds to the traffic
scenario. To enable the stadium
scenario, use cmake -DSCENARIO=stadium ..
. See also: Build Options.
mkdir build
cd build
cmake ..
make
Use the following commands to start/stop services via docker swarm:
make update # optional for private registry
make start_docker_swarm
make stop_docker_swarm
See also: Docker Swarm Setup.
Use the following commands to start/stop Kubernetes services:
make update # optional for private registry
make start_kubernetes
make stop_kubernetes
See also: Kubernetes Setup.
Launch your browser and browse to https://<hostname>
for the sample UI.
- For Kubernetes/Docker Swarm,
<hostname>
is the hostname of the manager/master node. - If you see a browser warning of self-signed certificate, please accept it to proceed to the sample UI.