Issues running YOLOv8n with QAIRT SDK 2.49 on Radxa Dragon Q6A (QCS6490)

TL;DR: Stock YOLOv8n quantized with QAIRT SDK [v2.49] on QCS6490 → outputs collapse to zeros or nonsense boxes/scores. Tried splitting Boxes/Scores and FP16 conversion, still hitting validation errors. Looking for official/working guidance on YOLO deployment with QAIRT.

Hello,

I’m working with a Radxa Dragon Q6A (QCS6490) and trying to deploy YOLOv5/YOLOv8 models using the pure QAIRT SDK [v2.49] (not AI Hub). My goal was to get YOLOv8n running for object detection, but I’ve run into persistent problems.

Here’s the workflow I followed:

  1. Converted yolov8n.pt → yolov8n.onnx.
  2. Converted yolov8n.onnx → yolov8n.dlc using qairt-converter.
  3. Prepared a calibration set: letterboxed/scaled 640×640 images, normalized to [0,1] FP32 CHW raw format.
  4. Ran qairt-quantizer for UINT8 quantization → yolov8n_quantized.dlc.
  5. Prepared a test RGB CHW image for inference.
  6. Ran inference with qnn-net-run.
  7. Got output0.raw with mostly zeros and total zeros starting at offset 0x20D00.

I suspect I may be mishandling raw input formats, but even when I deploy the BIN context to the board or test DLC on my PC, the results are the same.

I also found forum threads suggesting that YOLO’s detection head (Boxes range [1,640], Scores range [0,1]) collapses when quantized with a shared scale. The recommendation is to split the output layer into separate Boxes and Scores tensors so they can be quantized independently. I tried this, but the results are still unusable (boxes out of image bounds, scores collapsing to zeros, wrong categories).

Questions:

  • What is the correct way to prepare input images for QAIRT quantizer and qnn-net-run (raw format, normalization, datatype)?
  • Is splitting YOLO outputs into Boxes and Scores officially supported or required for Qualcomm NPUs?
  • Does QAIRT SDK 2.49 support FP16 inference directly (without quantization), and if so, what is the recommended workflow?
  • Are there known limitations or best practices for deploying YOLOv5/YOLOv8 models with QAIRT on QCS6490?

Thanks in advance for any guidance. I’d appreciate exact instructions or examples of a working YOLO pipeline with QAIRT SDK.