Get Started#
Time to Complete: 30 minutes
Programming Language: Python 3
Prerequisites#
Set up the application#
The following instructions assume Docker engine is correctly set up in the host system. If not, follow the installation guide for docker engine at docker.com.
Clone the edge-ai-suites repository and change into industrial-edge-insights-vision directory. The directory contains the utility scripts required in the instructions that follows.
git clone https://github.com/open-edge-platform/edge-ai-suites.git cd edge-ai-suites/manufacturing-ai-suite/industrial-edge-insights-vision/
Set app-specific environment variable file
cp .env_pallet_defect_detection .env
Edit the
HOST_IP
,MTX_WEBRTCICESERVERS2_0_USERNAME
andMTX_WEBRTCICESERVERS2_0_PASSWORD
environment variables in the.env
file as follows:HOST_IP=<HOST_IP> # IP address of server where DLStreamer Pipeline Server is running. MTX_WEBRTCICESERVERS2_0_USERNAME=<username> # WebRTC credentials e.g. intel1234 MTX_WEBRTCICESERVERS2_0_PASSWORD=<password> # application directory SAMPLE_APP=pallet-defect-detection
Install the pre-requisites. Run with sudo if needed.
./setup.sh
This script sets up application pre-requisites, download artifacts, sets executable permissions for scripts etc. Downloaded resource directories are made available to the application via volume mounting in docker compose file automatically.
Deploy the Application#
Start the Docker application:
The Docker daemon service should start automatically at boot. If not, you can start it manually:
sudo systemctl start docker
```bash
docker compose up -d
```
Fetch the list of pipeline loaded available to launch:
./sample_list.sh
This lists the pipeline loaded in DL Streamer Pipeline Server.
Example Output:
# Example output for Pallet Defect Detection Environment variables loaded from /home/intel/OEP/edge-ai-suites/manufacturing-ai-suite/industrial-edge-insights-vision/.env Running sample app: pallet-defect-detection Checking status of dlstreamer-pipeline-server... Server reachable. HTTP Status Code: 200 Loaded pipelines: [ ... { "description": "DL Streamer Pipeline Server pipeline", "name": "user_defined_pipelines", "parameters": { "properties": { "detection-properties": { "element": { "format": "element-properties", "name": "detection" } } }, "type": "object" }, "type": "GStreamer", "version": "pallet_defect_detection" } ... ]
Start the sample application with a pipeline.
./sample_start.sh -p pallet_defect_detection
This command will look for the payload for the pipeline specified in the
-p
argument above, inside thepayload.json
file and launch a pipeline instance in DLStreamer Pipeline Server. Refer to the table, to learn about different available options.Output:
# Example output for Pallet Defect Detection Environment variables loaded from /home/intel/OEP/edge-ai-suites/manufacturing-ai-suite/industrial-edge-insights-vision/.env Running sample app: pallet-defect-detection Checking status of dlstreamer-pipeline-server... Server reachable. HTTP Status Code: 200 Loading payload from /home/intel/OEP/edge-ai-suites/manufacturing-ai-suite/industrial-edge-insights-vision/apps/pallet-defect-detection/payload.json Payload loaded successfully. Starting pipeline: pallet_defect_detection Launching pipeline: pallet_defect_detection Extracting payload for pipeline: pallet_defect_detection Found 1 payload(s) for pipeline: pallet_defect_detection Payload for pipeline 'pallet_defect_detection' {"source":{"uri":"file:///home/pipeline-server/resources/videos/warehouse.avi","type":"uri"},"destination":{"frame":{"type":"webrtc","peer-id":"pdd"}},"parameters":{"detection-properties":{"model":"/home/pipeline-server/resources/models/pallet-defect-detection/model.xml","device":"CPU"}}} Posting payload to REST server at http://<HOST_IP>:8080/pipelines/user_defined_pipelines/pallet_defect_detection Payload for pipeline 'pallet_defect_detection' posted successfully. Response: "4b36b3ce52ad11f0ad60863f511204e2"
NOTE: This will start the pipeline. To view the inference stream on WebRTC, open a browser and navigate to http://<HOST_IP>:8889/pdd/ for Pallet Defect Detection
Get the status of running pipeline instance(s):
./sample_status.sh
This command lists the statuses of pipeline instances launched during the lifetime of sample application.
Output:
# Example output for Pallet Defect Detection Environment variables loaded from /home/intel/OEP/edge-ai-suites/manufacturing-ai-suite/industrial-edge-insights-vision/.env Running sample app: pallet-defect-detection [ { "avg_fps": 30.00446179356829, "elapsed_time": 36.927825689315796, "id": "4b36b3ce52ad11f0ad60863f511204e2", "message": "", "start_time": 1750956469.620569, "state": "RUNNING" } ]
Stop pipeline instances.
./sample_stop.sh
This command will stop all instances that are currently in the
RUNNING
state and return their last status.Output:
# Example output for Pallet Defect Detection No pipelines specified. Stopping all pipeline instances Environment variables loaded from /home/intel/OEP/edge-ai-suites/manufacturing-ai-suite/industrial-edge-insights-vision/.env Running sample app: pallet-defect-detection Checking status of dlstreamer-pipeline-server... Server reachable. HTTP Status Code: 200 Instance list fetched successfully. HTTP Status Code: 200 Found 1 running pipeline instances. Stopping pipeline instance with ID: 4b36b3ce52ad11f0ad60863f511204e2 Pipeline instance with ID '4b36b3ce52ad11f0ad60863f511204e2' stopped successfully. Response: { "avg_fps": 30.002200575353214, "elapsed_time": 63.72864031791687, "id": "4b36b3ce52ad11f0ad60863f511204e2", "message": "", "start_time": 1750956469.620569, "state": "RUNNING" }
To stop a specific instance, identify it with the
--id
argument. For example,./sample_stop.sh --id 4b36b3ce52ad11f0ad60863f511204e2
Stop the Docker application.
docker compose down -v
This will bring down the services in the application and remove any volumes.