# Phân loại hình ảnh

Trước khi chạy pipeline cho một mô hình, hãy tuân thủ các [Điều kiện tiên quyết](https://docs.qualcomm.com/doc/80-70018-15BV/topic/ai-hub-qualcomm-im-sdk.html#prerequisites) bắt buộc.

Chạy lệnh sau trong shell SSH trước khi chạy lệnh phân loại.

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

## GoogLeNetQuantized

GoogLeNet là một mô hình học máy có thể phân loại hình ảnh từ tập dữ liệu Imagenet. Mô hình này cũng có thể được dùng để xây dựng mô hình phức tạp hơn cho các trường hợp sử dụng cụ thể.

Mô hình AI Hub dựa trên [cách triển khai GoogLeNetQuantized này](https://github.com/pytorch/vision/blob/main/torchvision/models/googlenet.py).

- Mô hình: [googlenet_quantized.tflite](https://aihub.qualcomm.com/iot/models/googlenet_quantized)
- Nhãn: [imagenet_labels.txt](https://github.com/quic/ai-hub-models/blob/main/qai_hub_models/labels/imagenet_labels.txt)

Ghi chú

Có thể không cần nhãn phân loại khi dùng mô hình này để suy luận

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 là một mô hình học máy có thể phân loại hình ảnh từ tập dữ liệu Imagenet. Mô hình này cũng có thể được dùng để xây dựng mô hình phức tạp hơn cho các trường hợp sử dụng cụ thể.

Mô hình này được lượng tử hóa sau khi huấn luyện thành int8 bằng cách sử dụng các mẫu từ dataset hình ảnh mở của Google.

Mô hình AI Hub dựa trên [cách triển khai Inception-v3-Quantized này](https://github.com/pytorch/vision/blob/main/torchvision/models/inception.py).

- Mô hình: [inception_v3_quantized.tflite](https://aihub.qualcomm.com/iot/models/inception_v3_quantized)
- Nhãn: [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 là một mô hình học máy có thể phân loại hình ảnh từ tập dữ liệu Imagenet. Mô hình này cũng có thể được dùng để xây dựng mô hình phức tạp hơn cho các trường hợp sử dụng cụ thể.

Mô hình AI Hub dựa trên [cách triển khai MobileNet-v2-Quantized này](https://github.com/tonylins/pytorch-mobilenet-v2/tree/master).

- Mô hình: [mobilenet_v2_quantized.tflite](https://aihub.qualcomm.com/iot/models/mobilenet_v2_quantized)
- Nhãn: [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 là một mô hình học máy có thể phân loại hình ảnh từ tập dữ liệu Imagenet. Mô hình này cũng có thể được dùng để xây dựng mô hình phức tạp hơn cho các trường hợp sử dụng cụ thể.

Mô hình AI Hub dựa trên [cách triển khai MobileNet-v3-Large-Quantized này](https://github.com/pytorch/vision/blob/main/torchvision/models/mobilenetv3.py).

- Mô hình: [mobilenet_v3_large_quantized.tflite](https://aihub.qualcomm.com/iot/models/mobilenet_v3_large_quantized)
- Nhãn: [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 là một mô hình học máy có thể phân loại hình ảnh từ tập dữ liệu Imagenet. Mô hình này cũng có thể được dùng để xây dựng mô hình phức tạp hơn cho các trường hợp sử dụng cụ thể.

Mô hình AI Hub dựa trên [cách triển khai ResNet18Quantized này](https://github.com/pytorch/vision/blob/main/torchvision/models/resnet.py).

- Mô hình: [resnet18_quantized.tflite](https://aihub.qualcomm.com/iot/models/resnet18_quantized)
- Nhãn: [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 là một mô hình học máy có thể phân loại hình ảnh từ tập dữ liệu Imagenet. Mô hình này cũng có thể được dùng để xây dựng mô hình phức tạp hơn cho các trường hợp sử dụng cụ thể.

Mô hình AI Hub dựa trên [cách triển khai ResNet101Quantized này](https://github.com/pytorch/vision/blob/main/torchvision/models/resnet.py).

- Mô hình: [resnet101_quantized.tflite](https://aihub.qualcomm.com/iot/models/resnet101_quantized)
- Nhãn: [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 là một mô hình học máy có thể phân loại hình ảnh từ tập dữ liệu Imagenet. Mô hình này cũng có thể được dùng để xây dựng mô hình phức tạp hơn cho các trường hợp sử dụng cụ thể.

Mô hình AI Hub dựa trên [cách triển khai ResNeXt50Quantized này](https://github.com/pytorch/vision/blob/main/torchvision/models/resnet.py).

- Mô hình: [resnext50_quantized.tflite](https://aihub.qualcomm.com/iot/models/resnext50_quantized)
- Nhãn: [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 là một mô hình học máy có thể phân loại hình ảnh từ tập dữ liệu Imagenet. Mô hình này cũng có thể được dùng để xây dựng mô hình phức tạp hơn cho các trường hợp sử dụng cụ thể.

Mô hình AI Hub dựa trên [cách triển khai ResNeXt101Quantized này](https://github.com/pytorch/vision/blob/main/torchvision/models/resnet.py).

- Mô hình: [resnext101_quantized.tflite](https://aihub.qualcomm.com/iot/models/resnext101_quantized)
- Nhãn: [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 là một mô hình học máy có thể phân loại hình ảnh từ tập dữ liệu Imagenet. Mô hình này cũng có thể được dùng để xây dựng mô hình phức tạp hơn cho các trường hợp sử dụng cụ thể.

Mô hình AI Hub dựa trên [cách triển khai Shufflenet-v2Quantized này](https://github.com/pytorch/vision/blob/main/torchvision/models/shufflenetv2.py).

- Mô hình: [shufflenet_v2_quantized.tflite](https://aihub.qualcomm.com/iot/models/shufflenet_v2_quantized)
- Nhãn: [imagenet_labels.txt](https://github.com/quic/ai-hub-models/blob/main/qai_hub_models/labels/imagenet_labels.txt)

Ghi chú

Có thể không cần nhãn phân loại khi dùng mô hình này để suy luận

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 là một mô hình học máy có thể phân loại hình ảnh từ tập dữ liệu Imagenet. Mô hình này cũng có thể được dùng để xây dựng mô hình phức tạp hơn cho các trường hợp sử dụng cụ thể.

Mô hình AI Hub dựa trên [cách triển khai SqueezeNet-1_1Quantized này](https://github.com/pytorch/vision/blob/main/torchvision/models/squeezenet.py).

- Mô hình: [squeezenet1_1_quantized.tflite](https://aihub.qualcomm.com/iot/models/squeezenet1_1_quantized)
- Nhãn: [imagenet_labels.txt](https://github.com/quic/ai-hub-models/blob/main/qai_hub_models/labels/imagenet_labels.txt)

Ghi chú

Có thể không cần nhãn phân loại khi dùng mô hình này để suy luận

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 là một mô hình học máy có thể phân loại hình ảnh từ tập dữ liệu Imagenet. Mô hình này cũng có thể được dùng để xây dựng mô hình phức tạp hơn cho các trường hợp sử dụng cụ thể.

Mô hình AI Hub dựa trên [cách triển khai WideResNet50-Quantized này](https://github.com/pytorch/vision/blob/main/torchvision/models/resnet.py).

- Mô hình: [wideresnet50_quantized.tflite](https://aihub.qualcomm.com/iot/models/wideresnet50_quantized)
- Nhãn: [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 22, 2025

[Previous Topic
Dùng các mô hình và nhãn trên AI Hub với GStreamer API](https://docs.qualcomm.com/bundle/publicresource/80-70018-15BV/topics/ai-hub-qualcomm-im-sdk.md) [Next Topic
Phát hiện đối tượng](https://docs.qualcomm.com/bundle/publicresource/80-70018-15BV/topics/object-detection.md)