# Classify images Before running the pipeline command for a model, follow the required [Prerequisites](https://docs.qualcomm.com/doc/80-70029-15B/topic/use-ai-hub-models-with-gstreamer.html#prerequisites). Run the following command in the SSH shell before running the classification commands. export XDG_RUNTIME_DIR=/dev/socket/weston && export WAYLAND_DISPLAY=wayland-1 Copy to clipboard ## GoogLeNet GoogLeNet is a machine learning model that can classify images from the Imagenet dataset. It can also be used to build more complex models for specific use cases. The AI Hub model is based on [this implementation of GoogLeNet](https://github.com/pytorch/vision/blob/main/torchvision/models/googlenet.py). - Model: [GoogLeNet](https://aihub.qualcomm.com/iot/models/googlenet) - Label: [classification.json](https://github.com/quic/sample-apps-for-qualcomm-linux/blob/main/qualcomm-linux/artifacts/json_labels/classification.json) Note Classification labels may not appear when using this model for inference 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::position="<30, 30>" sink_1::dimensions="<640, 360>" ! 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/googlenet_quantized.tflite ! queue ! \ qtimlpostprocess settings="{\"confidence\": 51.0}" results=5 module=mobilenet-softmax labels=/etc/labels/classification.json \ ! video/x-raw,format=BGRA,width=640, height=360 ! queue ! mixer. Copy to clipboard ## Inception-v3 InceptionNetV3 is a machine learning model that can classify images from the Imagenet dataset. It can also be used to build more complex models for specific use cases. This model is post-training quantized to int8 using samples from Google’s open images dataset. The AI Hub model is based on [this implementation of Inception-v3](https://github.com/pytorch/vision/blob/main/torchvision/models/inception.py). - Model: [Inception-v3](https://aihub.qualcomm.com/iot/models/inception_v3) - Label: [classification.json](https://github.com/quic/sample-apps-for-qualcomm-linux/blob/main/qualcomm-linux/artifacts/json_labels/classification.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::position="<30, 30>" sink_1::dimensions="<640, 360>" ! 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/inception_v3_quantized.tflite ! queue ! \ qtimlpostprocess settings="{\"confidence\": 51.0}" results=5 module=mobilenet-softmax labels=/etc/labels/classification.json \ ! video/x-raw,format=BGRA,width=640, height=360 ! queue ! mixer. Copy to clipboard ## ResNet18 ResNet18 is a machine learning model that can classify images from the Imagenet dataset. It can also be used to build more complex models for specific use cases. The AI Hub model is based on [this implementation of ResNet18](https://github.com/pytorch/vision/blob/main/torchvision/models/resnet.py). - Model: [ResNet18](https://aihub.qualcomm.com/iot/models/resnet18) - Label: [classification.json](https://github.com/quic/sample-apps-for-qualcomm-linux/blob/main/qualcomm-linux/artifacts/json_labels/classification.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::position="<30, 30>" sink_1::dimensions="<640, 360>" ! 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/resnet18_quantized.tflite ! queue ! \ qtimlpostprocess settings="{\"confidence\": 30.0}" results=5 module=mobilenet-softmax labels=/etc/labels/classification.json ! video/x-raw,format=BGRA,width=640, height=360 ! queue ! mixer. Copy to clipboard ## ResNet101 ResNet101 is a machine learning model that can classify images from the Imagenet dataset. It can also be used to build more complex models for specific use cases. The AI Hub model is based on [this implementation of ResNet101](https://github.com/pytorch/vision/blob/main/torchvision/models/resnet.py). - Model: [ResNet101](https://aihub.qualcomm.com/iot/models/resnet101) - Label: [classification.json](https://github.com/quic/sample-apps-for-qualcomm-linux/blob/main/qualcomm-linux/artifacts/json_labels/classification.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::position="<30, 30>" sink_1::dimensions="<640, 360>" ! 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/resnet101_quantized.tflite ! queue ! \ qtimlpostprocess settings="{\"confidence\": 51.0}" results=5 module=mobilenet-softmax labels=/etc/labels/classification.json ! \ video/x-raw,format=BGRA,width=640, height=360 ! queue ! mixer. Copy to clipboard ## ResNeXt50 ResNeXt50 is a machine learning model that can classify images from the Imagenet dataset. It can also be used to build more complex models for specific use cases. The AI Hub model is based on [this implementation of ResNeXt50](https://github.com/pytorch/vision/blob/main/torchvision/models/resnet.py). - Model: [ResNeXt50](https://aihub.qualcomm.com/iot/models/resnext50) - Label: [classification.json](https://github.com/quic/sample-apps-for-qualcomm-linux/blob/main/qualcomm-linux/artifacts/json_labels/classification.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::position="<30, 30>" sink_1::dimensions="<640, 360>" ! 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/resnext50_quantized.tflite ! queue ! \ qtimlpostprocess settings="{\"confidence\": 35.0}" results=5 module=mobilenet-softmax labels=/etc/labels/classification.json ! video/x-raw,format=BGRA,width=640, height=360 ! queue ! mixer. Copy to clipboard ## ResNeXt101 ResNeXt101 is a machine learning model that can classify images from the Imagenet dataset. It can also be used to build more complex models for specific use cases. The AI Hub model is based on [this implementation of ResNeXt101](https://github.com/pytorch/vision/blob/main/torchvision/models/resnet.py). - Model: [ResNeXt101](https://aihub.qualcomm.com/iot/models/resnext101) - Label: [classification.json](https://github.com/quic/sample-apps-for-qualcomm-linux/blob/main/qualcomm-linux/artifacts/json_labels/classification.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::position="<30, 30>" sink_1::dimensions="<640, 360>" ! 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/resnext101_quantized.tflite ! queue ! \ qtimlpostprocess settings="{\"confidence\": 35.0}" results=5 module=mobilenet-softmax labels=/etc/labels/classification.json ! \ video/x-raw,format=BGRA,width=640, height=360 ! queue ! mixer. Copy to clipboard ## Shufflenet-v2 ShufflenetV2 is a machine learning model that can classify images from the Imagenet dataset. It can also be used to build more complex models for specific use cases. The AI Hub model is based on [this implementation of Shufflenet-v2](https://github.com/pytorch/vision/blob/main/torchvision/models/shufflenetv2.py). - Model: [Shufflenet-v2](https://aihub.qualcomm.com/iot/models/shufflenet_v2) - Label: [classification.json](https://github.com/quic/sample-apps-for-qualcomm-linux/blob/main/qualcomm-linux/artifacts/json_labels/classification.json) Note Classification labels may not appear when using this model for inference 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::position="<30, 30>" sink_1::dimensions="<640, 360>" ! 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/shufflenet_v2_quantized.tflite ! queue ! \ qtimlpostprocess settings="{\"confidence\": 35.0}" results=5 module=mobilenet-softmax labels=/etc/labels/classification.json ! \ video/x-raw,format=BGRA,width=640, height=360 ! queue ! mixer. Copy to clipboard ## SqueezeNet-1\_1 SqueezeNet is a machine learning model that can classify images from the Imagenet dataset. It can also be used to build more complex models for specific use cases. The AI Hub model is based on [this implementation of SqueezeNet-1_1](https://github.com/pytorch/vision/blob/main/torchvision/models/squeezenet.py). - Model: [SqueezeNet-1_1](https://aihub.qualcomm.com/iot/models/squeezenet1_1) - Label: [classification.json](https://github.com/quic/sample-apps-for-qualcomm-linux/blob/main/qualcomm-linux/artifacts/json_labels/classification.json) Note Classification labels may not appear when using this model for inference 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::position="<30, 30>" sink_1::dimensions="<640, 360>" ! 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/squeezenet1_1_quantized.tflite ! queue ! \ qtimlpostprocess settings="{\"confidence\": 25.0}" results=5 module=mobilenet-softmax labels=/etc/labels/classification.json ! \ video/x-raw,format=BGRA,width=640, height=360 ! queue ! mixer. Copy to clipboard ## WideResNet50 WideResNet50 is a machine learning model that can classify images from the Imagenet dataset. It can also be used to build more complex models for specific use cases. The AI Hub model is based on [this implementation of WideResNet50](https://github.com/pytorch/vision/blob/main/torchvision/models/resnet.py). - Model: [WideResNet50](https://aihub.qualcomm.com/iot/models/wideresnet50) - Label: [classification.json](https://github.com/quic/sample-apps-for-qualcomm-linux/blob/main/qualcomm-linux/artifacts/json_labels/classification.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::position="<30, 30>" sink_1::dimensions="<640, 360>" ! 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/wideresnet50_quantized.tflite ! queue ! \ qtimlpostprocess settings="{\"confidence\": 35.0}" results=5 module=mobilenet-softmax labels=/etc/labels/classification.json ! \ video/x-raw,format=BGRA,width=640,height=360 ! queue ! mixer. Copy to clipboard Last Published: Apr 02, 2026 [Previous Topic Use AI Hub models with the GStreamer API](https://docs.qualcomm.com/bundle/publicresource/80-70029-15B/topics/use-ai-hub-models-with-gstreamer.md) [Next Topic Detect objects](https://docs.qualcomm.com/bundle/publicresource/80-70029-15B/topics/object-detection.md)