器件型号: TDA4VH-Q1
Thread 中讨论的其他器件: TDA4VH
尊敬的 TI 团队:
我正在尝试使用 TIDL 导入工具将自定义 Ultralytics YOLOv3(14 类)模型移植到 TDA4VH。 ONNX 模型可在 PC (PYTHON + ONNXRuntime) 上正确执行检测。 `、在 TIDL 导入和 PC 仿真之后、最终的 TIDL 输出包含无效的 Δ i x、y、w、h`值、并且所有 25,200 个锚点的客观和类分数都为零、因此不会出现检测。
我想确认是否缺少 YOLOv3 的 TIDL 导入流程中所需的任何步骤。
1、型号与出口
型号:YOLOv3、在自定义 14 类数据集中使用 Ultralytics 进行训练
导出:`best.onnx`(opset = 11)
输入尺寸:640×640
2. TIDL 导入配置
modelType = 2 # onnx
inputNetFile =“../../test/testvecs/models/public/onnx/best_simplified.onnx
outputNetFile =“../../test/testvecs/config/tidl_models/ObjectDetectionYolov3_14class/yolo_ti_full_fmt1405.bin
outputParamsFile =“../../test/testvecs/config/tidl_models/ObjectDetectionYolov3_14class/yolo_ti_full_fmt1405_
numParamBits = 8
numFeatureBits = 8
分位数 Style = 2
inDataNorm = 1
inMean = 0 0 0
无刻度 = 0.003921568627 0.003921568627 0.003921568627
inDataFormat = 1
InWidth = 640
InHeight = 640
inNumChannels = 3
postProcType = 0
#校准
inData =“../../test/testvecs/config/input_images_object_detection_yolov3_14_class.txt
debugTraceLevel = 1
导入成功完成。
3. PC 仿真配置
inFileFormat = 0
postProcType = 2
numFrames = 1
netBinFile =“testvecs/config/tidl_models/ObjectDetectionYolov3_14class/Yolo_ti_full_fmt1405.bin"</s>“
ioConfigFile =“testvecs/config/tidl_models/ObjectDetectionYolov3_14class/Yolo_ti_full_fmt1405_1.bin"</s>“
inData =“testvecs/config/object_detection_test_data_yolov3_14_class/img_0001.jpg"</s>“
outData =“testvecs/output/yolov3_single_detection_14_class.bin"</s>“
debugTraceLevel = 1
writeTraceLevel = 1
writeOutput = 2
postProcDataId = 0
单帧 PC 仿真输出如所示生成
`yolov3_single_detection_14_class.bin`(float32、size≈1.9MB→25200×19 张量)。
4、从 PC 仿真转储中观察
使用以下公式将整形为`μ H (25200、19)`μ H 后:
RAW = np.fromfile(bin_path、dtype=np.float32).re整 形 (25200、19)
我观察到:
列 0–3 (x、y、w、h)
不包含轻率值。
第 4 栏(客观)
所有锚定始终为 0.0
第 5–18 列(等级分数)
所有 14 个类始终为 0.0
没有锚点具有任何类激活
结论
即使 x/y/w/h 值完好无损、PC 仿真浮点输出也会丢失所有对象性和类信息。 因此、最终的 TIDL 输出无法解码为任何检测。
这种行为也可以在 INT8 目标转储中看到。
ONNX 模型(在 TIDL 导入之前)不存在此问题。
5.问题
1.使用 TIDL 导入工具转换 Ultralytics YOLOv3 模型是否需要执行其他步骤?
我们是否需要使用 metaArchType 和 YOLO 元体系结构原型(锚,掩码,跨步等),即使在外部处理后处理时也是如此?
2、在`. SVG`中的最终张量`[1,1,1,1,1,1,125200,19]`是否真正达到了预期的 YOLO 输出?
或者、这是否仍然是需要 TIDL 内部解码的中间功能?
3.当导入没有特定于 YOLO 的 META-ARCH 配置的 Ultralytics YOLOv3 ONNX 模型时,是否存在已知问题?
我已附上:
模型转换日志(“import_yolov3_14_class_with_post.log")“)
`Yolo_ti_full_fmt1405.bin`、`Yolo_ti_full_fmt1405_*.bin`μ s
`.svg`和`.layer_info.txt`
PC 仿真输出(“yolov3_single_detection_14_class.bin")“)
如果我在 TIDL 中缺少任何必需的特定于 YOLO 的配置、以便客观原因和类别分数正确传播、请告知我。
请告诉我是否需要我的信息
此致、
Rupali