# 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-80020-15B/topic/use-ai-hub-models-with-gstreamer.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 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](https://github.com/jfzhang95/pytorch-deeplab-xception). - Model: [DeepLabV3-Plus_MobileNet](https://aihub.qualcomm.com/iot/models/deeplabv3_plus_mobilenet) - Label: [deeplabv3_resnet50.json](https://github.com/quic/sample-apps-for-qualcomm-linux/blob/main/qualcomm-linux/artifacts/json_labels/deeplabv3_resnet50.json) 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 ! \ qtimlpostprocess module=deeplab-argmax labels=/etc/labels/deeplabv3_resnet50.json ! video/x-raw,format=BGRA,width=256,height=144 ! queue ! mixer. Copy to clipboard ## FCN-Resnet50 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](https://github.com/pytorch/vision/blob/main/torchvision/models/segmentation/fcn.py). - Model: [FCN-Resnet50](https://aihub.qualcomm.com/iot/models/fcn_resnet50) - Label: [deeplabv3_resnet50.json](https://github.com/quic/sample-apps-for-qualcomm-linux/blob/main/qualcomm-linux/artifacts/json_labels/deeplabv3_resnet50.json) Note This pipeline is currently not supported on Qualcomm Dragonwing™ RB3 Gen 2. 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 ! \ qtimlpostprocess module=deeplab-argmax labels=/etc/labels/deeplabv3_resnet50.json ! video/x-raw,format=BGRA,width=256,height=144 ! queue ! mixer. Copy to clipboard ## FFNet-40S FFNet-40S 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](https://github.com/Qualcomm-AI-research/FFNet) - Model: [FFNet-40S](https://aihub.qualcomm.com/iot/models/ffnet_40s) - Label: [deeplabv3_resnet50.json](https://github.com/quic/sample-apps-for-qualcomm-linux/blob/main/qualcomm-linux/artifacts/json_labels/deeplabv3_resnet50.json) 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 ! \ qtimlpostprocess module=deeplab-argmax labels=/etc/labels/deeplabv3_resnet50.json ! \ video/x-raw,format=BGRA,width=256,height=144 ! queue ! mixer. Copy to clipboard ## FFNet-54S FFNet-54S 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](https://github.com/Qualcomm-AI-research/FFNet). - Model: [FFNet-54S](https://aihub.qualcomm.com/iot/models/ffnet_54s) - Label: [deeplabv3_resnet50.json](https://github.com/quic/sample-apps-for-qualcomm-linux/blob/main/qualcomm-linux/artifacts/json_labels/deeplabv3_resnet50.json) 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 ! \ qtimlpostprocess module=deeplab-argmax labels=/etc/labels/deeplabv3_resnet50.json ! \ video/x-raw,format=BGRA,width=256,height=144 ! queue ! mixer. Copy to clipboard ## FFNet-78S FFNet-78S 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](https://github.com/Qualcomm-AI-research/FFNet). - Model: [FFNet-78S](https://aihub.qualcomm.com/iot/models/ffnet_78s) - Label: [deeplabv3_resnet50.json](https://github.com/quic/sample-apps-for-qualcomm-linux/blob/main/qualcomm-linux/artifacts/json_labels/deeplabv3_resnet50.json) 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 ! \ qtimlpostprocess module=deeplab-argmax labels=/etc/labels/deeplabv3_resnet50.json ! \ video/x-raw,format=BGRA,width=256,height=144 ! queue ! mixer. Copy to clipboard Last Published: Feb 27, 2026 [Previous Topic Detect objects](https://docs.qualcomm.com/bundle/publicresource/80-80020-15B/topics/object-detection.md) [Next Topic Upscale images with super resolution](https://docs.qualcomm.com/bundle/publicresource/80-80020-15B/topics/super-resolution.md)