Skip to main content

No.Model NameDescription
1DeepLabV3-Plus-MobileNetAtrous separable convolutions with encoder-decoder for segmentation.
1

Download Required Files

FileSave as
Modeldeeplabv3_plus_mobilenet_w8a8.tflite
dv3-argmax.jsondv3-argmax.json
Input videoai_demo_sample.mp4
If any downloaded file is a .zip archive, extract it on your host machine before copying: unzip filename.zip
2

Copy Files to Device

# Replace $HOME to the appropriate device path before running the commands.
# For QLI:    /root
# For Ubuntu: /home/ubuntu
# Modify this based on your platform and ensure files are copied to the correct location on the device.

ssh <user>@<device-ip> "mkdir -p $HOME/{models,labels,media,media/output}"
scp deeplabv3_plus_mobilenet_w8a8.tflite   <user>@<device-ip>:$HOME/models/
scp dv3-argmax.json                        <user>@<device-ip>:$HOME/labels/
scp ai_demo_sample.mp4              <user>@<device-ip>:$HOME/media/
3

Connect to device

# Run from your host machine — replace <user> and <device-ip>
ssh <user>@<device-ip>
4

Set Environment Variables

Qualcomm Linux
export MODEL_NAME=deeplabv3_plus_mobilenet_w8a8.tflite
export LABELS_NAME=dv3-argmax.json
export SRC_VIDEO_NAME=ai_demo_sample.mp4
5

Run the Pipeline

gst-launch-1.0 -e --gst-debug=2 \
filesrc location=$HOME/media/$SRC_VIDEO_NAME ! qtdemux ! h264parse ! \
v4l2h264dec capture-io-mode=4 output-io-mode=4 ! video/x-raw,format=NV12 ! queue ! \
tee name=t \
t. ! queue ! qtivcomposer name=seg_mix sink_1::alpha=0.5 ! queue ! waylandsink fullscreen=true sync=true \
t. ! queue ! qtimlvconverter ! queue ! \
qtimltflite model=$HOME/models/$MODEL_NAME delegate=external external-delegate-path=libQnnTFLiteDelegate.so external-delegate-options="QNNExternalDelegate,backend_type=htp,log_level=(string)1;" ! queue ! \
qtimlpostprocess module=deeplab-argmax labels=$HOME/labels/$LABELS_NAME ! video/x-raw,format=BGRA,width=520,height=520 ! queue ! seg_mix.
2FCN-ResNet50Fully convolutional network for dense pixel classification.
1

Download Required Files

FileSave as
Modelfcn_resnet50_w8a8.tflite
dv3-argmax.jsondv3-argmax.json
Street_Bridge_1080p_180s_30FPS.MOVStreet_Bridge_1080p_180s_30FPS.MOV
If any downloaded file is a .zip archive, extract it on your host machine before copying: unzip filename.zip
2

Copy Files to Device

# Replace $HOME to the appropriate device path before running the commands.
# For QLI:    /root
# For Ubuntu: /home/ubuntu
# Modify this based on your platform and ensure files are copied to the correct location on the device.

ssh <user>@<device-ip> "mkdir -p $HOME/{models,labels,media,media/output}"
scp fcn_resnet50_w8a8.tflite                <user>@<device-ip>:$HOME/models/
scp dv3-argmax.json                         <user>@<device-ip>:$HOME/labels/
scp Street_Bridge_1080p_180s_30FPS.MOV      <user>@<device-ip>:$HOME/media/
3

Connect to device

# Run from your host machine — replace <user> and <device-ip>
ssh <user>@<device-ip>
4

Set Environment Variables

Qualcomm Linux
export MODEL_NAME=fcn_resnet50_w8a8.tflite
export LABELS_NAME=dv3-argmax.json
export SRC_VIDEO_NAME=Street_Bridge_1080p_180s_30FPS.MOV
5

Run the Pipeline

gst-launch-1.0 -e --gst-debug=2 \
filesrc location=$HOME/media/$SRC_VIDEO_NAME ! qtdemux ! h264parse ! \
v4l2h264dec capture-io-mode=4 output-io-mode=4 ! video/x-raw,format=NV12 ! queue ! \
tee name=t \
t. ! queue ! qtivcomposer name=seg_mix sink_1::alpha=0.5 ! queue ! waylandsink fullscreen=true sync=true \
t. ! queue ! qtimlvconverter ! queue ! \
qtimltflite model=$HOME/models/$MODEL_NAME delegate=external external-delegate-path=libQnnTFLiteDelegate.so external-delegate-options="QNNExternalDelegate,backend_type=htp,log_level=(string)1;" ! queue ! \
qtimlpostprocess module=deeplab-argmax labels=$HOME/labels/$LABELS_NAME ! video/x-raw,format=BGRA,width=520,height=520 ! queue ! seg_mix.
3FFNet-122NS-LowResFast Fusion Network for real-time semantic segmentation.
1

Download Required Files

FileSave as
Modelffnet_122ns_lowres_w8a8.tflite
dv3-argmax.jsondv3-argmax.json
Street_Bridge_1080p_180s_30FPS.MOVStreet_Bridge_1080p_180s_30FPS.MOV
If any downloaded file is a .zip archive, extract it on your host machine before copying: unzip filename.zip
2

Copy Files to Device

# Replace $HOME to the appropriate device path before running the commands.
# For QLI:    /root
# For Ubuntu: /home/ubuntu
# Modify this based on your platform and ensure files are copied to the correct location on the device.

ssh <user>@<device-ip> "mkdir -p $HOME/{models,labels,media,media/output}"
scp ffnet_122ns_lowres_w8a8.tflite      <user>@<device-ip>:$HOME/models/
scp dv3-argmax.json                     <user>@<device-ip>:$HOME/labels/
scp Street_Bridge_1080p_180s_30FPS.MOV  <user>@<device-ip>:$HOME/media/
3

Connect to device

# Run from your host machine — replace <user> and <device-ip>
ssh <user>@<device-ip>
4

Set Environment Variables

Qualcomm Linux
export MODEL_NAME=ffnet_122ns_lowres_w8a8.tflite
export LABELS_NAME=dv3-argmax.json
export SRC_VIDEO_NAME=Street_Bridge_1080p_180s_30FPS.MOV
5

Run the Pipeline

gst-launch-1.0 -e --gst-debug=2 \
filesrc location=$HOME/media/$SRC_VIDEO_NAME ! qtdemux ! h264parse ! \
v4l2h264dec capture-io-mode=4 output-io-mode=4 ! video/x-raw,format=NV12 ! queue ! \
tee name=t \
t. ! queue ! qtivcomposer name=seg_mix sink_1::alpha=0.5 ! queue ! waylandsink fullscreen=true sync=true \
t. ! queue ! qtimlvconverter ! queue ! \
qtimltflite model=$HOME/models/$MODEL_NAME delegate=external external-delegate-path=libQnnTFLiteDelegate.so external-delegate-options="QNNExternalDelegate,backend_type=htp,log_level=(string)1;" ! queue ! \
qtimlpostprocess module=deeplab-argmax labels=$HOME/labels/$LABELS_NAME ! video/x-raw,format=BGRA,width=520,height=520 ! queue ! seg_mix.
4FFNet-78S-LowResCompact FFNet variant balancing speed and accuracy.
1

Download Required Files

FileSave as
Modelffnet_78s_lowres_w8a8.tflite
dv3-argmax.jsondv3-argmax.json
Street_Bridge_1080p_180s_30FPS.MOVStreet_Bridge_1080p_180s_30FPS.MOV
If any downloaded file is a .zip archive, extract it on your host machine before copying: unzip filename.zip
2

Copy Files to Device

# Replace $HOME to the appropriate device path before running the commands.
# For QLI:    /root
# For Ubuntu: /home/ubuntu
# Modify this based on your platform and ensure files are copied to the correct location on the device.

ssh <user>@<device-ip> "mkdir -p $HOME/{models,labels,media,media/output}"
scp ffnet_78s_lowres_w8a8.tflite        <user>@<device-ip>:$HOME/models/
scp dv3-argmax.json                     <user>@<device-ip>:$HOME/labels/
scp Street_Bridge_1080p_180s_30FPS.MOV  <user>@<device-ip>:$HOME/media/
3

Connect to device

# Run from your host machine — replace <user> and <device-ip>
ssh <user>@<device-ip>
4

Set Environment Variables

Qualcomm Linux
export MODEL_NAME=ffnet_78s_lowres_w8a8.tflite
export LABELS_NAME=dv3-argmax.json
export SRC_VIDEO_NAME=Street_Bridge_1080p_180s_30FPS.MOV
5

Run the Pipeline

gst-launch-1.0 -e --gst-debug=2 \
filesrc location=$HOME/media/$SRC_VIDEO_NAME ! qtdemux ! h264parse ! \
v4l2h264dec capture-io-mode=4 output-io-mode=4 ! video/x-raw,format=NV12 ! queue ! \
tee name=t \
t. ! queue ! qtivcomposer name=seg_mix sink_1::alpha=0.5 ! queue ! waylandsink fullscreen=true sync=true \
t. ! queue ! qtimlvconverter ! queue ! \
qtimltflite model=$HOME/models/$MODEL_NAME delegate=external external-delegate-path=libQnnTFLiteDelegate.so external-delegate-options="QNNExternalDelegate,backend_type=htp,log_level=(string)1;" ! queue ! \
qtimlpostprocess module=deeplab-argmax labels=$HOME/labels/$LABELS_NAME ! video/x-raw,format=BGRA,width=520,height=520 ! queue ! seg_mix.
5PidNetParallel information distillation network for real-time segmentation.
1

Download Required Files

FileSave as
Modelpidnet_w8a8.tflite
dv3-argmax.jsondv3-argmax.json
Street_Bridge_1080p_180s_30FPS.MOVStreet_Bridge_1080p_180s_30FPS.MOV
If any downloaded file is a .zip archive, extract it on your host machine before copying: unzip filename.zip
2

Copy Files to Device

# Replace $HOME to the appropriate device path before running the commands.
# For QLI:    /root
# For Ubuntu: /home/ubuntu
# Modify this based on your platform and ensure files are copied to the correct location on the device.

ssh <user>@<device-ip> "mkdir -p $HOME/{models,labels,media,media/output}"
scp pidnet_w8a8.tflite                  <user>@<device-ip>:$HOME/models/
scp dv3-argmax.json                     <user>@<device-ip>:$HOME/labels/
scp Street_Bridge_1080p_180s_30FPS.MOV  <user>@<device-ip>:$HOME/media/
3

Connect to device

# Run from your host machine — replace <user> and <device-ip>
ssh <user>@<device-ip>
4

Set Environment Variables

Qualcomm Linux
export MODEL_NAME=pidnet_w8a8.tflite
export LABELS_NAME=dv3-argmax.json
export SRC_VIDEO_NAME=Street_Bridge_1080p_180s_30FPS.MOV
5

Run the Pipeline

gst-launch-1.0 -e --gst-debug=2 \
filesrc location=$HOME/media/$SRC_VIDEO_NAME ! qtdemux ! h264parse ! \
v4l2h264dec capture-io-mode=4 output-io-mode=4 ! video/x-raw,format=NV12 ! queue ! \
tee name=t \
t. ! queue ! qtivcomposer name=seg_mix sink_1::alpha=0.5 ! queue ! waylandsink fullscreen=true sync=true \
t. ! queue ! qtimlvconverter ! queue ! \
qtimltflite model=$HOME/models/$MODEL_NAME delegate=external external-delegate-path=libQnnTFLiteDelegate.so external-delegate-options="QNNExternalDelegate,backend_type=htp,log_level=(string)1;" ! queue ! \
qtimlpostprocess module=deeplab-argmax labels=$HOME/labels/$LABELS_NAME ! video/x-raw,format=BGRA,width=520,height=520 ! queue ! seg_mix.
6DDRNet23-SlimDual-resolution discrepancy network (slim) for fast segmentation.
1

Download Required Files

FileSave as
Modelddrnet23_slim_w8a8.tflite
dv3-argmax.jsondv3-argmax.json
Street_Bridge_1080p_180s_30FPS.MOVStreet_Bridge_1080p_180s_30FPS.MOV
If any downloaded file is a .zip archive, extract it on your host machine before copying: unzip filename.zip
2

Copy Files to Device

# Replace $HOME to the appropriate device path before running the commands.
# For QLI:    /root
# For Ubuntu: /home/ubuntu
# Modify this based on your platform and ensure files are copied to the correct location on the device.

ssh <user>@<device-ip> "mkdir -p $HOME/{models,labels,media,media/output}"
scp ddrnet23_slim_w8a8.tflite           <user>@<device-ip>:$HOME/models/
scp dv3-argmax.json                     <user>@<device-ip>:$HOME/labels/
scp Street_Bridge_1080p_180s_30FPS.MOV  <user>@<device-ip>:$HOME/media/
3

Connect to device

# Run from your host machine — replace <user> and <device-ip>
ssh <user>@<device-ip>
4

Set Environment Variables

Qualcomm Linux
export MODEL_NAME=ddrnet23_slim_w8a8.tflite
export LABELS_NAME=dv3-argmax.json
export SRC_VIDEO_NAME=Street_Bridge_1080p_180s_30FPS.MOV
5

Run the Pipeline

gst-launch-1.0 -e --gst-debug=2 \
filesrc location=$HOME/media/$SRC_VIDEO_NAME ! qtdemux ! h264parse ! \
v4l2h264dec capture-io-mode=4 output-io-mode=4 ! video/x-raw,format=NV12 ! queue ! \
tee name=t \
t. ! queue ! qtivcomposer name=seg_mix sink_1::alpha=0.5 ! queue ! waylandsink fullscreen=true sync=true \
t. ! queue ! qtimlvconverter ! queue ! \
qtimltflite model=$HOME/models/$MODEL_NAME delegate=external external-delegate-path=libQnnTFLiteDelegate.so external-delegate-options="QNNExternalDelegate,backend_type=htp,log_level=(string)1;" ! queue ! \
qtimlpostprocess module=deeplab-argmax labels=$HOME/labels/$LABELS_NAME ! video/x-raw,format=BGRA,width=520,height=520 ! queue ! seg_mix.
7FFNet-40SMinimal FFNet for maximum throughput.
1

Download Required Files

FileSave as
Modelffnet_40s_w8a8.tflite
dv3-argmax.jsondv3-argmax.json
Input videoai_demo_sample.mp4
If any downloaded file is a .zip archive, extract it on your host machine before copying: unzip filename.zip
2

Copy Files to Device

# Replace $HOME to the appropriate device path before running the commands.
# For QLI:    /root
# For Ubuntu: /home/ubuntu
# Modify this based on your platform and ensure files are copied to the correct location on the device.

ssh <user>@<device-ip> "mkdir -p $HOME/{models,labels,media,media/output}"
scp ffnet_40s_w8a8.tflite          <user>@<device-ip>:$HOME/models/
scp dv3-argmax.json                <user>@<device-ip>:$HOME/labels/
scp ai_demo_sample.mp4      <user>@<device-ip>:$HOME/media/
3

Connect to device

# Run from your host machine — replace <user> and <device-ip>
ssh <user>@<device-ip>
4

Set Environment Variables

Qualcomm Linux
export MODEL_NAME=ffnet_40s_w8a8.tflite
export LABELS_NAME=dv3-argmax.json
export SRC_VIDEO_NAME=ai_demo_sample.mp4
5

Run the Pipeline

gst-launch-1.0 -e --gst-debug=2 \
filesrc location=$HOME/media/$SRC_VIDEO_NAME ! qtdemux ! h264parse ! \
v4l2h264dec capture-io-mode=4 output-io-mode=4 ! video/x-raw,format=NV12 ! queue ! \
tee name=t \
t. ! queue ! qtivcomposer name=seg_mix sink_1::alpha=0.5 ! queue ! waylandsink fullscreen=true sync=true \
t. ! queue ! qtimlvconverter ! queue ! \
qtimltflite model=$HOME/models/$MODEL_NAME delegate=external external-delegate-path=libQnnTFLiteDelegate.so external-delegate-options="QNNExternalDelegate,backend_type=htp,log_level=(string)1;" ! queue ! \
qtimlpostprocess module=deeplab-argmax labels=$HOME/labels/$LABELS_NAME ! video/x-raw,format=BGRA,width=520,height=520 ! queue ! seg_mix.
8FFNet-54SSmall FFNet for low-latency segmentation.
1

Download Required Files

FileSave as
Modelffnet_54s_w8a8.tflite
dv3-argmax.jsondv3-argmax.json
Input videoai_demo_sample.mp4
If any downloaded file is a .zip archive, extract it on your host machine before copying: unzip filename.zip
2

Copy Files to Device

# Replace $HOME to the appropriate device path before running the commands.
# For QLI:    /root
# For Ubuntu: /home/ubuntu
# Modify this based on your platform and ensure files are copied to the correct location on the device.

ssh <user>@<device-ip> "mkdir -p $HOME/{models,labels,media,media/output}"
scp ffnet_54s_w8a8.tflite          <user>@<device-ip>:$HOME/models/
scp dv3-argmax.json                <user>@<device-ip>:$HOME/labels/
scp ai_demo_sample.mp4      <user>@<device-ip>:$HOME/media/
3

Connect to device

# Run from your host machine — replace <user> and <device-ip>
ssh <user>@<device-ip>
4

Set Environment Variables

Qualcomm Linux
export MODEL_NAME=ffnet_54s_w8a8.tflite
export LABELS_NAME=dv3-argmax.json
export SRC_VIDEO_NAME=ai_demo_sample.mp4
5

Run the Pipeline

gst-launch-1.0 -e --gst-debug=2 \
filesrc location=$HOME/media/$SRC_VIDEO_NAME ! qtdemux ! h264parse ! \
v4l2h264dec capture-io-mode=4 output-io-mode=4 ! video/x-raw,format=NV12 ! queue ! \
tee name=t \
t. ! queue ! qtivcomposer name=seg_mix sink_1::alpha=0.5 ! queue ! waylandsink fullscreen=true sync=true \
t. ! queue ! qtimlvconverter ! queue ! \
qtimltflite model=$HOME/models/$MODEL_NAME delegate=external external-delegate-path=libQnnTFLiteDelegate.so external-delegate-options="QNNExternalDelegate,backend_type=htp,log_level=(string)1;" ! queue ! \
qtimlpostprocess module=deeplab-argmax labels=$HOME/labels/$LABELS_NAME ! video/x-raw,format=BGRA,width=520,height=520 ! queue ! seg_mix.
9FFNet-78SStandard-resolution FFNet-78S segmentation model.
1

Download Required Files

FileSave as
Modelffnet_78s_w8a8.tflite
dv3-argmax.jsondv3-argmax.json
Input videoai_demo_sample.mp4
If any downloaded file is a .zip archive, extract it on your host machine before copying: unzip filename.zip
2

Copy Files to Device

# Replace $HOME to the appropriate device path before running the commands.
# For QLI:    /root
# For Ubuntu: /home/ubuntu
# Modify this based on your platform and ensure files are copied to the correct location on the device.

ssh <user>@<device-ip> "mkdir -p $HOME/{models,labels,media,media/output}"
scp ffnet_78s_w8a8.tflite          <user>@<device-ip>:$HOME/models/
scp dv3-argmax.json                <user>@<device-ip>:$HOME/labels/
scp ai_demo_sample.mp4      <user>@<device-ip>:$HOME/media/
3

Connect to device

# Run from your host machine — replace <user> and <device-ip>
ssh <user>@<device-ip>
4

Set Environment Variables

Qualcomm Linux
export MODEL_NAME=ffnet_78s_w8a8.tflite
export LABELS_NAME=dv3-argmax.json
export SRC_VIDEO_NAME=ai_demo_sample.mp4
5

Run the Pipeline

gst-launch-1.0 -e --gst-debug=2 \
filesrc location=$HOME/media/$SRC_VIDEO_NAME ! qtdemux ! h264parse ! \
v4l2h264dec capture-io-mode=4 output-io-mode=4 ! video/x-raw,format=NV12 ! queue ! \
tee name=t \
t. ! queue ! qtivcomposer name=seg_mix sink_1::alpha=0.5 ! queue ! waylandsink fullscreen=true sync=true \
t. ! queue ! qtimlvconverter ! queue ! \
qtimltflite model=$HOME/models/$MODEL_NAME delegate=external external-delegate-path=libQnnTFLiteDelegate.so external-delegate-options="QNNExternalDelegate,backend_type=htp,log_level=(string)1;" ! queue ! \
qtimlpostprocess module=deeplab-argmax labels=$HOME/labels/$LABELS_NAME ! video/x-raw,format=BGRA,width=520,height=520 ! queue ! seg_mix.
10Segformer-BaseHierarchical transformer with lightweight MLP decoder.
1

Download Required Files

FileSave as
Modelsegformer_base_w8a8.tflite
segformer.jsonsegformer.json
Driving_1080p_180s_30FPS.MOVDriving_1080p_180s_30FPS.MOV
If any downloaded file is a .zip archive, extract it on your host machine before copying: unzip filename.zip
2

Copy Files to Device

# Replace $HOME to the appropriate device path before running the commands.
# For QLI:    /root
# For Ubuntu: /home/ubuntu
# Modify this based on your platform and ensure files are copied to the correct location on the device.

ssh <user>@<device-ip> "mkdir -p $HOME/{models,labels,media,media/output}"
scp segformer_base_w8a8.tflite         <user>@<device-ip>:$HOME/models/
scp segformer.json                     <user>@<device-ip>:$HOME/labels/
scp Driving_1080p_180s_30FPS.MOV       <user>@<device-ip>:$HOME/media/
3

Connect to device

# Run from your host machine — replace <user> and <device-ip>
ssh <user>@<device-ip>
4

Set Environment Variables

Qualcomm Linux
export MODEL_NAME=segformer_base_w8a8.tflite
export LABELS_NAME=segformer.json
export SRC_VIDEO_NAME=Driving_1080p_180s_30FPS.MOV
5

Run the Pipeline

gst-launch-1.0 -e --gst-debug=2 \
filesrc location=$HOME/media/$SRC_VIDEO_NAME ! qtdemux ! h264parse ! \
v4l2h264dec capture-io-mode=4 output-io-mode=4 ! video/x-raw,format=NV12 ! queue ! \
tee name=t \
t. ! queue ! qtivcomposer name=seg_mix sink_1::alpha=0.5 ! queue ! waylandsink fullscreen=true sync=true \
t. ! queue ! qtimlvconverter ! queue ! \
qtimltflite model=$HOME/models/$MODEL_NAME delegate=external external-delegate-path=libQnnTFLiteDelegate.so external-delegate-options="QNNExternalDelegate,backend_type=htp,log_level=(string)1;" ! queue ! \
qtimlpostprocess module=deeplab-argmax labels=$HOME/labels/$LABELS_NAME ! video/x-raw,format=BGRA,width=520,height=520 ! queue ! seg_mix.
11SINetSalient instance network for scene understanding.
1

Download Required Files

FileSave as
Modelsinet_w8a8.tflite
dv3-argmax.jsondv3-argmax.json
Input videoai_demo_sample.mp4
If any downloaded file is a .zip archive, extract it on your host machine before copying: unzip filename.zip
2

Copy Files to Device

# Replace $HOME to the appropriate device path before running the commands.
# For QLI:    /root
# For Ubuntu: /home/ubuntu
# Modify this based on your platform and ensure files are copied to the correct location on the device.

ssh <user>@<device-ip> "mkdir -p $HOME/{models,labels,media,media/output}"
scp sinet_w8a8.tflite              <user>@<device-ip>:$HOME/models/
scp dv3-argmax.json                <user>@<device-ip>:$HOME/labels/
scp ai_demo_sample.mp4      <user>@<device-ip>:$HOME/media/
3

Connect to device

# Run from your host machine — replace <user> and <device-ip>
ssh <user>@<device-ip>
4

Set Environment Variables

Qualcomm Linux
export MODEL_NAME=sinet_w8a8.tflite
export LABELS_NAME=dv3-argmax.json
export SRC_VIDEO_NAME=ai_demo_sample.mp4
5

Run the Pipeline

gst-launch-1.0 -e --gst-debug=2 \
filesrc location=$HOME/media/$SRC_VIDEO_NAME ! qtdemux ! h264parse ! \
v4l2h264dec capture-io-mode=4 output-io-mode=4 ! video/x-raw,format=NV12 ! queue ! \
tee name=t \
t. ! queue ! qtivcomposer name=seg_mix sink_1::alpha=0.5 ! queue ! waylandsink fullscreen=true sync=true \
t. ! queue ! qtimlvconverter ! queue ! \
qtimltflite model=$HOME/models/$MODEL_NAME delegate=external external-delegate-path=libQnnTFLiteDelegate.so external-delegate-options="QNNExternalDelegate,backend_type=htp,log_level=(string)1; ! queue ! \
qtimlpostprocess module=deeplab-argmax labels=$HOME/labels/$LABELS_NAME ! video/x-raw,format=BGRA,width=520,height=520 ! queue ! seg_mix.
12PSPNetPyramid pooling module for global scene context aggregation.
1

Download Required Files

FileSave as
Modelpspnet_w8a8.tflite
dv3-argmax.jsondv3-argmax.json
Input videoStreet_Bridge_1080p_180s_30FPS.MOV
If any downloaded file is a .zip archive, extract it on your host machine before copying: unzip filename.zip
2

Copy Files to Device

# Replace $HOME to the appropriate device path before running the commands.
# For QLI:    /root
# For Ubuntu: /home/ubuntu
# Modify this based on your platform and ensure files are copied to the correct location on the device.

ssh <user>@<device-ip> "mkdir -p $HOME/{models,labels,media,media/output}"
scp pspnet_w8a8.tflite                  <user>@<device-ip>:$HOME/models/
scp dv3-argmax.json                     <user>@<device-ip>:$HOME/labels/
scp Street_Bridge_1080p_180s_30FPS.MOV  <user>@<device-ip>:$HOME/media/
3

Connect to device

# Run from your host machine — replace <user> and <device-ip>
ssh <user>@<device-ip>
4

Set Environment Variables

Qualcomm Linux
export MODEL_NAME=pspnet_w8a8.tflite
export LABELS_NAME=dv3-argmax.json
export SRC_VIDEO_NAME=Street_Bridge_1080p_180s_30FPS.MOV
5

Run the Pipeline

gst-launch-1.0 -e --gst-debug=2 \
filesrc location=$HOME/media/$SRC_VIDEO_NAME ! qtdemux ! h264parse ! \
v4l2h264dec capture-io-mode=4 output-io-mode=4 ! video/x-raw,format=NV12 ! queue ! \
tee name=t \
t. ! queue ! qtivcomposer name=seg_mix sink_1::alpha=0.5 ! queue ! waylandsink fullscreen=true sync=true \
t. ! queue ! qtimlvconverter ! queue ! \
qtimltflite model=$HOME/models/$MODEL_NAME delegate=external external-delegate-path=libQnnTFLiteDelegate.so external-delegate-options="QNNExternalDelegate,backend_type=htp,log_level=(string)1;" ! queue ! \
qtimlpostprocess module=deeplab-argmax labels=$HOME/labels/$LABELS_NAME ! video/x-raw,format=BGRA,width=520,height=520 ! queue ! seg_mix.