# Classify images

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

## 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: May 14, 2026

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