# Apply semantic segmentation to frames of a video

Before running the pipeline command for a model, follow the required [Prerequisites](https://docs.qualcomm.com/doc/80-70018-15B/topic/ai-hub-qualcomm-im-sdk.html#prerequisites).

Run the following command to ensure result is displayed on connected display:

export XDG_RUNTIME_DIR=/dev/socket/weston && export WAYLAND_DISPLAY=wayland-1
    Copy to clipboard

## DeepLabV3-Plus\_MobileNet-Quantized

DeepLabV3 Quantized is designed for semantic segmentation at multiple scales and trained on various datasets.

The AI Hub model is based on [this implementation of DeepLabV3-Plus-MobileNet-Quantized](https://github.com/jfzhang95/pytorch-deeplab-xception).

- Model: [deeplabv3_plus_mobilenet_quantized.tflite](https://aihub.qualcomm.com/iot/models/deeplabv3_plus_mobilenet_quantized)
- Label: [voc_labels.txt](https://github.com/quic/ai-hub-models/blob/main/qai_hub_models/labels/voc_labels.txt)

gst-launch-1.0 -e --gst-debug=2 \
    filesrc location=/etc/media/video.mp4 ! qtdemux ! queue ! h264parse ! v4l2h264dec capture-io-mode=4 output-io-mode=4 ! video/x-raw,format=NV12 ! queue ! tee name=split \
    split. ! queue ! qtivcomposer name=mixer sink_1::alpha=0.5 ! queue ! waylandsink sync=true fullscreen=true \
    split. ! queue ! qtimlvconverter ! queue ! qtimltflite delegate=external external-delegate-path=libQnnTFLiteDelegate.so \
    external-delegate-options="QNNExternalDelegate,backend_type=htp;" model=/etc/models/deeplabv3_plus_mobilenet_quantized.tflite ! queue ! \
    qtimlvsegmentation module=deeplab-argmax labels=/etc/labels/voc_labels.txt \
    constants="deeplab,q-offsets=<92.0>,q-scales=<0.04518842324614525>;" ! video/x-raw,format=BGRA,width=256,height=144 ! queue ! mixer.
    Copy to clipboard

## FCN-Resnet50-Quantized

FCN\_ResNet50 is a quantized machine learning model that can segment images from the COCO dataset.

The AI Hub model is based on [this implementation of FCN-ResNet50-Quantized](https://github.com/pytorch/vision/blob/main/torchvision/models/segmentation/fcn.py).

- Model: [FCN-ResNet50-Quantized.tflite](https://aihub.qualcomm.com/iot/models/fcn_resnet50_quantized)
- Label: [voc_labels.txt](https://github.com/quic/ai-hub-models/blob/main/qai_hub_models/labels/voc_labels.txt)

Note

This pipeline is currently not supported on QCS6490.

gst-launch-1.0 -e --gst-debug=2 \
    filesrc location=/etc/media/video.mp4 ! qtdemux ! queue ! h264parse ! v4l2h264dec capture-io-mode=4 output-io-mode=4 ! video/x-raw,format=NV12 ! queue ! tee name=split \
    split. ! queue ! qtivcomposer name=mixer sink_1::alpha=0.5 ! queue ! waylandsink sync=true fullscreen=true \
    split. ! queue ! qtimlvconverter ! queue ! qtimltflite delegate=external external-delegate-path=libQnnTFLiteDelegate.so \
    external-delegate-options="QNNExternalDelegate,backend_type=htp;" model=/etc/models/fcn_resnet50_quantized.tflite ! queue ! \
    qtimlvsegmentation module=deeplab-argmax labels=/etc/labels/voc_labels.txt \
    constants="deeplab,q-offsets=<0.0>,q-scales=<1.0>;" ! video/x-raw,format=BGRA,width=256,height=144 ! queue ! mixer.
    Copy to clipboard

## FFNet-40S-Quantized

FFNet-40S-Quantized is a “fuss-free network” that segments street scene images with per-pixel classes like road, sidewalk, and pedestrian.

It’s trained on the cityscapes dataset.

The AI Hub model is based on [this implementation of FFNet-40S-Quantized](https://github.com/Qualcomm-AI-research/FFNet)

- Model: [ffnet_40s_quantized.tflite](https://aihub.qualcomm.com/iot/models/ffnet_40s_quantized)
- Label: [voc_labels.txt](https://github.com/quic/ai-hub-models/blob/main/qai_hub_models/labels/voc_labels.txt)

gst-launch-1.0 -e --gst-debug=2 \
    filesrc location=/etc/media/video.mp4 ! qtdemux ! queue ! h264parse ! v4l2h264dec capture-io-mode=4 output-io-mode=4 ! video/x-raw,format=NV12 ! queue ! tee name=split \
    split. ! queue ! qtivcomposer name=mixer sink_1::alpha=0.5 ! queue ! waylandsink sync=false fullscreen=true \
    split. ! queue ! qtimlvconverter ! queue ! qtimltflite delegate=external external-delegate-path=libQnnTFLiteDelegate.so \
    external-delegate-options="QNNExternalDelegate,backend_type=htp;" model=/etc/models/ffnet_40s_quantized.tflite ! queue ! \
    qtimlvsegmentation module=deeplab-argmax labels=/etc/labels/voc_labels.txt constants="ffnet,q-offsets=<178.0>,q-scales=<0.31378185749053955>;" ! \
    video/x-raw,format=BGRA,width=256,height=144 ! queue ! mixer.
    Copy to clipboard

## FFNet-54S-Quantized

FFNet-54S-Quantized is a “fuss-free network” that segments street scene images with per-pixel classes like road, sidewalk, and pedestrian.

It’s trained on the cityscapes dataset.

The AI Hub model is based on [this implementation of FFNet-54S-Quantized](https://github.com/Qualcomm-AI-research/FFNet).

- Model: [ffnet_54s_quantized.tflite](https://aihub.qualcomm.com/iot/models/ffnet_54s_quantized)
- Label: [voc_labels.txt](https://github.com/quic/ai-hub-models/blob/main/qai_hub_models/labels/voc_labels.txt)

gst-launch-1.0 -e --gst-debug=2 \
    filesrc location=/etc/media/video.mp4 ! qtdemux ! queue ! h264parse ! v4l2h264dec capture-io-mode=4 output-io-mode=4 ! video/x-raw,format=NV12 ! queue ! tee name=split \
    split. ! queue ! qtivcomposer name=mixer sink_1::alpha=0.5 ! queue ! waylandsink sync=false fullscreen=true \
    split. ! queue ! qtimlvconverter ! queue ! qtimltflite delegate=external external-delegate-path=libQnnTFLiteDelegate.so \
    external-delegate-options="QNNExternalDelegate,backend_type=htp;" model=/etc/models/ffnet_54s_quantized.tflite ! queue ! \
    qtimlvsegmentation module=deeplab-argmax labels=/etc/labels/voc_labels.txt constants="ffnet,q-offsets=<178.0>,q-scales=<0.2929433584213257>;" ! \
    video/x-raw,format=BGRA,width=256,height=144 ! queue ! mixer.
    Copy to clipboard

## FFNet-78S-Quantized

FFNet-78S-Quantized is a “fuss-free network” that segments street scene images with per-pixel classes like road, sidewalk, and pedestrian.

It’s trained on the cityscapes dataset.

The AI Hub model is based on [this implementation of FFNet-78S-Quantized](https://github.com/Qualcomm-AI-research/FFNet).

- Model: [ffnet_78s_quantized.tflite](https://aihub.qualcomm.com/iot/models/ffnet_78s_quantized)
- Label: [voc_labels.txt](https://github.com/quic/ai-hub-models/blob/main/qai_hub_models/labels/voc_labels.txt)

gst-launch-1.0 -e --gst-debug=2 \
    filesrc location=/etc/media/video.mp4 ! qtdemux ! queue ! h264parse ! v4l2h264dec capture-io-mode=4 output-io-mode=4 ! video/x-raw,format=NV12 ! queue ! tee name=split \
    split. ! queue ! qtivcomposer name=mixer sink_1::alpha=0.5 ! queue ! waylandsink sync=false fullscreen=true \
    split. ! queue ! qtimlvconverter ! queue ! qtimltflite delegate=external external-delegate-path=libQnnTFLiteDelegate.so \
    external-delegate-options="QNNExternalDelegate,backend_type=htp;" model=/etc/models/ffnet_78s_quantized.tflite ! queue ! \
    qtimlvsegmentation module=deeplab-argmax labels=/etc/labels/voc_labels.txt constants="ffnet,q-offsets=<171.0>,q-scales=<0.3849360942840576>;" ! \
    video/x-raw,format=BGRA,width=256,height=144 ! queue ! mixer.
    Copy to clipboard

Last Published: Oct 13, 2025

[Previous Topic
Detect objects](https://docs.qualcomm.com/bundle/publicresource/80-70018-15B/topics/object-detection.md) [Next Topic
Upscale images with super resolution](https://docs.qualcomm.com/bundle/publicresource/80-70018-15B/topics/super-resolution.md)