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

Trước khi chạy pipeline cho một model, hãy tuân thủ các [Điều kiện tiên quyết](https://docs.qualcomm.com/doc/80-70020-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

## GoogLeNet

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

Model AI Hub dựa trên [việc triển khai GoogLeNet này](https://github.com/pytorch/vision/blob/main/torchvision/models/googlenet.py).

- Model: [GoogLeNet](https://aihub.qualcomm.com/iot/models/googlenet)
- 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 model 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

InceptionNetV3 là một model học máy có thể phân loại hình ảnh từ tập dữ liệu Imagenet. Model này cũng có thể được dùng để xây dựng model phức tạp hơn cho các use case cụ thể.

Model 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.

Model AI Hub dựa trên [việc triển khai Inception-v3 này](https://github.com/pytorch/vision/blob/main/torchvision/models/inception.py).

- Model: [Inception-v3](https://aihub.qualcomm.com/iot/models/inception_v3)
- 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

MobileNetV2 là một model học máy có thể phân loại hình ảnh từ tập dữ liệu Imagenet. Model này cũng có thể được dùng để xây dựng model phức tạp hơn cho các use case cụ thể.

Model AI Hub dựa trên [việc triển khai MobileNet-v2 này](https://github.com/tonylins/pytorch-mobilenet-v2/tree/master).

- Model: [MobileNet-v2](https://aihub.qualcomm.com/iot/models/mobilenet_v2)
- 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

MobileNet-v3-Large là một model học máy có thể phân loại hình ảnh từ tập dữ liệu Imagenet. Model này cũng có thể được dùng để xây dựng model phức tạp hơn cho các use case cụ thể.

Model AI Hub dựa trên [việc triển khai MobileNet-v3-Large này](https://github.com/pytorch/vision/blob/main/torchvision/models/mobilenetv3.py).

- Model: [MobileNet-v3-Large](https://aihub.qualcomm.com/iot/models/mobilenet_v3_large)
- 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

ResNet18 là một model học máy có thể phân loại hình ảnh từ tập dữ liệu Imagenet. Model này cũng có thể được dùng để xây dựng model phức tạp hơn cho các use case cụ thể.

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

- Model: [ResNet18](https://aihub.qualcomm.com/iot/models/resnet18)
- 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

ResNet101 là một model học máy có thể phân loại hình ảnh từ tập dữ liệu Imagenet. Model này cũng có thể được dùng để xây dựng model phức tạp hơn cho các use case cụ thể.

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

- Model: [ResNet101](https://aihub.qualcomm.com/iot/models/resnet101)
- 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

ResNeXt50 là một model học máy có thể phân loại hình ảnh từ tập dữ liệu Imagenet. Model này cũng có thể được dùng để xây dựng model phức tạp hơn cho các use case cụ thể.

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

- Model: [ResNeXt50](https://aihub.qualcomm.com/iot/models/resnext50)
- 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

ResNeXt101 là một model học máy có thể phân loại hình ảnh từ tập dữ liệu Imagenet. Model này cũng có thể được dùng để xây dựng model phức tạp hơn cho các use case cụ thể.

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

- Model: [ResNeXt101](https://aihub.qualcomm.com/iot/models/resnext101)
- 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

ShufflenetV2 là một model học máy có thể phân loại hình ảnh từ tập dữ liệu Imagenet. Model này cũng có thể được dùng để xây dựng model phức tạp hơn cho các use case cụ thể.

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

- Model: [Shufflenet-v2](https://aihub.qualcomm.com/iot/models/shufflenet_v2)
- 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 model 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

SqueezeNet là một model học máy có thể phân loại hình ảnh từ tập dữ liệu Imagenet. Model này cũng có thể được dùng để xây dựng model phức tạp hơn cho các use case cụ thể.

Model AI Hub dựa trên [việc triển khai SqueezeNet-1_1 này](https://github.com/pytorch/vision/blob/main/torchvision/models/squeezenet.py).

- Model: [SqueezeNet-1_1](https://aihub.qualcomm.com/iot/models/squeezenet1_1)
- 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 model 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

WideResNet50 là một model học máy có thể phân loại hình ảnh từ tập dữ liệu Imagenet. Model này cũng có thể được dùng để xây dựng model phức tạp hơn cho các use case cụ thể.

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

- Model: [WideResNet50](https://aihub.qualcomm.com/iot/models/wideresnet50)
- 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: Dec 23, 2025

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