Get Started with Smart Parking using SceneScape#
The Smart Parking application can optionally run with Intel® SceneScape. In this variant, the DL Streamer Pipeline Server sends vehicle detections to SceneScape, which tracks every vehicle on a calibrated 2D map of the parking lot and reports which parking slot each vehicle occupies. The Grafana dashboard shows the live video of each zone together with a per-slot occupancy table (status, vehicle type, color, entry time and dwell time).
The default Smart Parking application is unchanged. SceneScape is only enabled when the ss
option is passed to the installation script.
By following this guide, you will learn how to:
Set up the sample application with SceneScape: Use Docker Compose to deploy the application and the SceneScape services.
Run the predefined pipelines: Execute the pipelines to see SceneScape-based parking slot occupancy in action.
Access the application’s features and user interfaces: Explore the SceneScape UI, Grafana dashboard, Node-RED interface, InfluxDB and DL Streamer Pipeline Server.
Prerequisites#
Verify that your system meets the minimum requirements.
Install Docker: Installation Guide.
Set up and First Use#
Clone the Suite:
Go to the target directory of your choice and clone the suite. If you want to clone a specific release branch, replace
mainwith the desired tag. To learn more on partial cloning, check the Repository Cloning guide.git clone --filter=blob:none --sparse --branch main https://github.com/open-edge-platform/metro-ai-suite.git cd metro-ai-suite git sparse-checkout set metro-vision-ai-app-recipe/ cd metro-vision-ai-app-recipe/
Setup Application and Download Assets:
Use the installation script with the
ssoption to configure the application with SceneScape, download the required models and videos, and generate the SceneScape secrets:./install.sh smart-parking ss
Note
For environments requiring a specific host IP address (for example, when deploying across different network interfaces), you can explicitly specify the
IP address : ./install.sh smart-parking ss <HOST_IP> (replace <HOST_IP> with your target IP address).
Note
To switch back to the default Smart Parking application, stop the application with docker compose down
and run ./install.sh smart-parking. This removes the SceneScape settings from the .env file.
Run the Application#
Start the Application:
Export the SceneScape admin password as an environment variable:
export SUPASS=$(cat ./smart-parking/src/secrets/supass)
Download container images with Application microservices and run with Docker Compose:
docker compose up -d
Check Status of Microservices
- The application starts the following microservices. - To check if all microservices are in Running state:docker psExpected Services:
Grafana Dashboard
DL Streamer Pipeline Server
MQTT Broker
Node-RED
InfluxDB
MediaMTX and coturn (WebRTC streaming)
SceneScape services (web server, scene controller, analytics, database and NTP server)
Run Predefined Pipelines:
Start video streams to run video inference pipelines. Pass
cpu,gpuornputo select the inference device:./sample_start.sh gpuOne pipeline is started for each of the four parking zones. Each pipeline publishes its detections to the matching SceneScape camera (
sp_cam_zone1tosp_cam_zone4).To check the status of the pipelines:
./sample_status.sh
Stop pipelines
- To stop the pipelines without waiting for video streams to finish replay:./sample_stop.sh
Note
This will stop all the pipelines and the streams. DO NOT run this if you want to see smart parking detection.
View the Application Output:
Open a browser and go to
https://localhost/grafanato access the Grafana dashboard.Change the localhost to your host IP if you are accessing it remotely.
Log in with the following credentials:
Username:
adminPassword:
admin
Open the Smart Parking Dashboard (SceneScape) dashboard under the Dashboards section.
Expected Results: The dashboard displays the real-time video stream of each zone with AI overlays, and an occupancy table with the status, vehicle type, color, entry time and dwell time of every parking slot. All slots are shown as
Emptyuntil a vehicle is detected in them.
Access the Application and Components#
Note
All services are accessed through the nginx reverse proxy at https://localhost.
Change the localhost to your host IP if you are accessing it remotely.
SceneScape UI#
URL:
https://localhostLog in with credentials:
Username:
adminPassword: Stored in
supass. (Check./smart-parking/src/secrets/supass)
The SceneScape UI shows four scenes,
Smart-Parking-Zone1toSmart-Parking-Zone4. Each scene has one calibrated camera and five parking slot regions (Slot1toSlot5). Open a scene to see the tracked vehicles on the 2D map of the parking lot.
Grafana UI#
URL:
https://localhost/grafanaLog in with credentials:
Username:
adminPassword:
admin(You will be prompted to change it on first login.)
In Grafana UI, the Smart Parking Dashboard (SceneScape) dashboard displays the video of each zone and the parking slot occupancy.
InfluxDB UI#
URL:
http://localhost:8086Log in with credentials:
Username: Check
./smart-parking/src/secrets/influxdb2/influxdb2-admin-usernamePassword: Check
./smart-parking/src/secrets/influxdb2/influxdb2-admin-password
The parking slot occupancy is stored in the
SS-Parkingbucket, in theparking_spotmeasurement.
NodeRED UI#
URL:
https://localhost/nodered/Log in with credentials:
Username: Check
./smart-parking/src/secrets/nodered/nodered-admin-usernamePassword: Check
./smart-parking/src/secrets/nodered/nodered-admin-password
The Node-RED flow subscribes to the SceneScape slot (region) events and per-zone vehicle data, and writes the occupancy of every slot to InfluxDB.
DL Streamer Pipeline Server#
REST API:
https://localhost/api/pipelines/statusWebRTC:
https://localhost/mediamtx/object_detection_1/https://localhost/mediamtx/object_detection_2/https://localhost/mediamtx/object_detection_3/https://localhost/mediamtx/object_detection_4/
Stop the Application#
To stop the application microservices, use the following command:
docker compose down -v
Supporting Resources#
Get Started: Run the default Smart Parking application without SceneScape.
Troubleshooting: Find detailed steps to resolve common issues during deployments.
DL Streamer Pipeline Server: Intel microservice based on Python for video ingestion and deep learning inferencing functions.
SceneScape: Intel Scene-based AI software framework.