# Classify images

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 in the SSH shell before running the classification commands.

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

## GoogLeNetQuantized

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 GoogLeNetQuantized](https://github.com/pytorch/vision/blob/main/torchvision/models/googlenet.py).

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

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 ! \
    qtimlvclassification threshold=51.0 results=5 module=mobilenet labels=/etc/labels/imagenet_labels.txt \
    extra-operation=softmax constants="Mobilenet,q-offsets=<53.0>,q-scales=<0.08174873143434525>;" ! video/x-raw,format=BGRA,width=640, height=360 ! queue ! mixer.
    Copy to clipboard

## Inception-V3-Quantized

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-Quantized](https://github.com/pytorch/vision/blob/main/torchvision/models/inception.py).

- Model: [inception_v3_quantized.tflite](https://aihub.qualcomm.com/iot/models/inception_v3_quantized)
- Label: [imagenet_labels.txt](https://github.com/quic/ai-hub-models/blob/main/qai_hub_models/labels/imagenet_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::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 ! \
    qtimlvclassification threshold=51.0 results=5 module=mobilenet labels=/etc/labels/imagenet_labels.txt \
    extra-operation=softmax constants="Inception,q-offsets=<33.0>,q-scales=<0.18740029633045197>;" ! video/x-raw,format=BGRA,width=640, height=360 ! queue ! mixer.
    Copy to clipboard

## MobileNet-v2-Quantized

MobileNetV2 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 MobileNet-v2-Quantized](https://github.com/tonylins/pytorch-mobilenet-v2/tree/master).

- Model: [mobilenet_v2_quantized.tflite](https://aihub.qualcomm.com/iot/models/mobilenet_v2_quantized)
- Label: [imagenet_labels.txt](https://github.com/quic/ai-hub-models/blob/main/qai_hub_models/labels/imagenet_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::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/mobilenet_v2_quantized.tflite ! queue ! \
    qtimlvclassification threshold=51.0 results=5 module=mobilenet labels=/etc/labels/imagenet_labels.txt \
    extra-operation=softmax constants="Mobilenet,q-offsets=<69.0>,q-scales=<0.2386164367198944>;" ! video/x-raw,format=BGRA,width=640, height=360 ! queue ! mixer.
    Copy to clipboard

## MobileNet-v3-Large-Quantized

MobileNet-v3-Large 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 MobileNet-v3-Large-Quantized](https://github.com/pytorch/vision/blob/main/torchvision/models/mobilenetv3.py).

- Model: [mobilenet_v3_large_quantized.tflite](https://aihub.qualcomm.com/iot/models/mobilenet_v3_large_quantized)
- Label: [imagenet_labels.txt](https://github.com/quic/ai-hub-models/blob/main/qai_hub_models/labels/imagenet_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::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/mobilenet_v3_large_quantized.tflite ! queue ! \
    qtimlvclassification threshold=51.0 results=5 module=mobilenet labels=/etc/labels/imagenet_labels.txt \
    extra-operation=softmax constants="Mobilenet,q-offsets=<99.0>,q-scales=<0.18705224990844727>;" ! video/x-raw,format=BGRA,width=640, height=360 ! queue ! mixer.
    Copy to clipboard

## ResNet18-Quantized

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 ResNet18Quantized](https://github.com/pytorch/vision/blob/main/torchvision/models/resnet.py).

- Model: [resnet18_quantized.tflite](https://aihub.qualcomm.com/iot/models/resnet18_quantized)
- Label: [imagenet_labels.txt](https://github.com/quic/ai-hub-models/blob/main/qai_hub_models/labels/imagenet_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::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 ! \
    qtimlvclassification threshold=30.0 results=5 module=mobilenet labels=/etc/labels/imagenet_labels.txt \
    extra-operation=softmax constants="Resnetnet,q-offsets=<68.0>,q-scales=<0.14944985508918762>;" ! video/x-raw,format=BGRA,width=640, height=360 ! queue ! mixer.
    Copy to clipboard

## ResNet101-Quantized

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 ResNet101Quantized](https://github.com/pytorch/vision/blob/main/torchvision/models/resnet.py).

- Model: [resnet101_quantized.tflite](https://aihub.qualcomm.com/iot/models/resnet101_quantized)
- Label: [imagenet_labels.txt](https://github.com/quic/ai-hub-models/blob/main/qai_hub_models/labels/imagenet_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::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 ! \
    qtimlvclassification threshold=51.0 results=5 module=mobilenet labels=/etc/labels/imagenet_labels.txt \
    extra-operation=softmax constants="Resnet,q-offsets=<46.0>,q-scales=<0.2186901867389679 >;" ! video/x-raw,format=BGRA,width=640, height=360 ! queue ! mixer.
    Copy to clipboard

## ResNeXt50-Quantized

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 ResNeXt50Quantized](https://github.com/pytorch/vision/blob/main/torchvision/models/resnet.py).

- Model: [resnext50_quantized.tflite](https://aihub.qualcomm.com/iot/models/resnext50_quantized)
- Label: [imagenet_labels.txt](https://github.com/quic/ai-hub-models/blob/main/qai_hub_models/labels/imagenet_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::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 ! \
    qtimlvclassification threshold=35.0 results=5 module=mobilenet labels=/etc/labels/imagenet_labels.txt \
    extra-operation=softmax constants="Resnetnet,q-offsets=<30.0>,q-scales=<0.06314703077077866>;" ! video/x-raw,format=BGRA,width=640, height=360 ! queue ! mixer.
    Copy to clipboard

## ResNeXt101-Quantized

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 ResNeXt101Quantized](https://github.com/pytorch/vision/blob/main/torchvision/models/resnet.py).

- Model: [resnext101_quantized.tflite](https://aihub.qualcomm.com/iot/models/resnext101_quantized)
- Label: [imagenet_labels.txt](https://github.com/quic/ai-hub-models/blob/main/qai_hub_models/labels/imagenet_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::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 ! \
    qtimlvclassification threshold=35.0 results=5 module=mobilenet labels=/etc/labels/imagenet_labels.txt \
    extra-operation=softmax constants="Resnetnet,q-offsets=<37.0>,q-scales=<0.1848793774843216>;" ! video/x-raw,format=BGRA,width=640, height=360 ! queue ! mixer.
    Copy to clipboard

## Shufflenet-v2-Quantized

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-v2Quantized](https://github.com/pytorch/vision/blob/main/torchvision/models/shufflenetv2.py).

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

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 ! \
    qtimlvclassification threshold=35.0 results=5 module=mobilenet labels=/etc/labels/imagenet_labels.txt \
    extra-operation=softmax constants="Resnetnet,q-offsets=<69.0>,q-scales=<0.14428946375846863>;" ! video/x-raw,format=BGRA,width=640, height=360 ! queue ! mixer.
    Copy to clipboard

## SqueezeNet-1\_1-Quantized

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_1Quantized](https://github.com/pytorch/vision/blob/main/torchvision/models/squeezenet.py).

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

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 ! \
    qtimlvclassification threshold=25.0 results=5 module=mobilenet labels=/etc/labels/imagenet_labels.txt \
    extra-operation=softmax constants="Resnetnet,q-offsets=<0.0>,q-scales=<0.16435524821281433>;" ! video/x-raw,format=BGRA,width=640, height=360 ! queue ! mixer.
    Copy to clipboard

## WideResNet50-Quantized

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-Quantized](https://github.com/pytorch/vision/blob/main/torchvision/models/resnet.py).

- Model: [wideresnet50_quantized.tflite](https://aihub.qualcomm.com/iot/models/wideresnet50_quantized)
- Label: [imagenet_labels.txt](https://github.com/quic/ai-hub-models/blob/main/qai_hub_models/labels/imagenet_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::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 ! \
    qtimlvclassification threshold=35.0 results=5 module=mobilenet labels=/etc/labels/imagenet_labels.txt \
    extra-operation=softmax constants="Resnet,q-offsets=<44.0>,q-scales=<0.1439792960882187>;" ! video/x-raw,format=BGRA,width=640,height=360 ! queue ! mixer.
    Copy to clipboard

Last Published: Oct 13, 2025

[Previous Topic
Use AI Hub models and labels with the GStreamer API](https://docs.qualcomm.com/bundle/publicresource/80-70018-15B/topics/ai-hub-qualcomm-im-sdk.md) [Next Topic
Detect objects](https://docs.qualcomm.com/bundle/publicresource/80-70018-15B/topics/object-detection.md)