Get Started#

The Smart Intersection Sample Application is a modular sample application designed to help developers create intelligent intersection monitoring solutions. By leveraging AI and sensor fusion, this sample application demonstrates how to achieve accurate traffic detection, congestion management, and real-time alerting.

To get started:

  • Set up the sample application: use Docker Compose to quickly deploy the application in your environment.

  • Run a predefined pipeline: execute a sample pipeline to see real-time transportation monitoring and object detection in action.

  • Access the application’s features and user interfaces: explore the Scenescape Web UI, Grafana dashboard, Node-RED interface, and DL Streamer Pipeline Server to monitor, analyze and customize workflows.

  • Consider Enabling Security features: use hardware-based security measures to make your application safer.

Prerequisites#

Setup and First Use#

  1. 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 main with 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/edge-ai-suites.git
    cd edge-ai-suites
    git sparse-checkout set metro-ai-suite
    cd metro-ai-suite/metro-vision-ai-app-recipe/
    
  2. Setup Application and Download Assets:

    • Use the installation script to configure the application and download required models:

      ./install.sh smart-intersection
      

Note: For environments requiring a specific host IP address (for example, when deploying across different network interfaces), you can explicitly specify the IP address (Replace <HOST_IP> with your target IP address.): ./install.sh smart-intersection <HOST_IP>

Run the Application#

  1. Start the Application:

    • Export admin password as environment variable:

      export SUPASS=$(cat ./smart-intersection/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 ps
      

    Expected Services:

    • Grafana Dashboard

    • DL Streamer Pipeline Server

    • MQTT Broker

    • Node-RED (for applications without Scenescape)

    • Scenescape services (for Smart Intersection only)

  2. View the Application Output:

    • Open a browser and go to https://localhost/grafana/ to access the Grafana dashboard.

      • Change the localhost to your host IP if you are accessing it remotely.

    • Log in with the following credentials:

      • Username: admin

      • Password: admin

    • Check under the Dashboards section for the application-specific preloaded dashboard.

    • Expected Results: The dashboard displays real-time video streams with AI overlays and detection metrics.

Access the Application and Components#

Application UI#

Open a browser and go to the following endpoints to access the application. Use <actual_ip> instead of localhost for external access:

Note:

  • All services are accessed through the nginx reverse proxy at https://localhost with appropriate paths.

  • For passwords stored in files (e.g., supass or influxdb2-admin-token), refer to the respective secret files in your deployment under ./src/secrets (Docker) or chart/files/secrets (Helm).

  • Since the application uses HTTPS with self-signed certificates, your browser may display a certificate warning. For the best experience, use Google Chrome and accept the certificate.

  • URL: https://localhost

  • Log in with credentials:

    • Username: admin

    • Password: Stored in supass. (Check ./smart-intersection/src/secrets/supass)

Note:

  • After starting the application, wait approximately 1 minute for the MQTT broker to initialize. You can confirm it is ready when green arrows appear for MQTT in the application interface. Since the application uses HTTPS, your browser may display a self-signed certificate warning. For the best experience, use Google Chrome.

Grafana UI#

  • URL: https://localhost/grafana/

  • Log in with credentials:

    • Username: admin

    • Password: admin (You will be prompted to change it on first login.)

InfluxDB UI#

  • URL: http://localhost:8086

  • Log in with credentials:

    • Username: <your_influx_username> (Check ./smart-intersection/src/secrets/influxdb2/influxdb2-admin-username)

    • Password: <your_influx_password> (Check ./smart-intersection/src/secrets/influxdb2/influxdb2-admin-password).

NodeRED UI#

DL Streamer Pipeline Server#

Verify the Application#

  • Fused object tracks: in Scene Management UI, click on the Intersection-Demo card to navigate to the Scene. On the Scene page, you will see fused tracks moving on the map. You will also see greyed out frames from each camera. Toggle the “Live View” button to see the incoming camera frames. The object detections in the camera feeds will correlate to the tracks on the map.

    Intersection Scene Homepage

  • Grafana Dashboard: In Grafana UI, observe aggregated analytics of different regions of interests in the grafana dashboard. After navigating to Grafana home page, click on “Dashboards” and click on item “Anthem-ITS-Data”.

    Intersection Grafana Dashboard

Stop the Application#

  • To stop the application microservices, use the following command:

    docker compose down
    

Deploy with Trusted Compute#

Intel Trusted Compute runs workloads inside a hardware-isolated virtual machine, providing an additional layer of security for sensitive AI workloads.

Note: GPU acceleration is currently not supported when deploying with Trusted Compute.

1. Install Trusted Compute#

Follow the Trusted Compute baremetal installation guide to install Trusted Compute runtime version 1.5.0 on your host system. Complete the following sections:

  • Prerequisites

  • Download the Trusted Compute Package

  • Docker Option

Note: Trusted Compute version 1.5.0 is required for this deployment.

Note: Trusted Compute 1.5.0 is not compatible with Docker version 29.5 or later. Docker version 29.4.x is required (tested with 29.4.3).

2. Deploy the Smart Intersection Sample Application with Trusted Compute#

Configure Network Settings

By default, Trusted Compute uses the subnet 172.20.0.0/16 for isolated container networking. If this subnet conflicts with your existing networks, you can customize it before deployment.

Requirements:

  • Subnet format must be exactly 172.X.0.0/16 where X is between 18–31 (RFC 1918 private IP range)

  • The subnet must not conflict with existing Docker networks on your system

  • DNS relay service will be automatically configured at 172.X.0.200

Example:

# Optional: Customize the subnet if needed (default is 172.20.0.0/16)
export TC_SUBNET=172.25.0.0/16  # DNS relay will be at 172.25.0.200

Deploy with Trusted Compute

export ENABLE_TC=true
./install.sh smart-intersection

The DL Streamer Pipeline Server containers will run inside hardware-isolated TC VMs, protecting inference workloads and video data from untrusted co-tenants on the same host.

Start the Application

docker compose up -d

Once the application is running, follow the Access the Application and Components section to access the UI and services.

Stop the Application

docker compose down

To uninstall Trusted Compute from the host, refer to the Trusted Compute documentation.

Other Deployment Options#

Choose one of the following methods to deploy the Smart Intersection Sample Application:

  • Deploy Using Helm: Use Helm to deploy the application to a Kubernetes cluster for scalable and production-ready deployments.

Security Enablement#

With AI systems handling sensitive city data and making autonomous decisions, robust security is essential. Intel platforms provide built-in security features to protect data, infrastructure, and AI processing. See the Security Enablement Guide that uses the example of Smart Intersection to show how to secure Open Edge Platform applications.

Learn More#