SIMA 外掛程式 JSON 真值對應表(已凍結)
上次更新:2026-02-17
本檔案規定了模型管線 SIMA 階段中 JSON 欄位的用法,以便對其移除進行控制和測試。
1. 確定範圍和外掛程式矩陣
1.1 涵蓋範圍(模型管線)
simaaiprocesscvu用於:- 預處理階段 (
kernel=preproc) - 量化/Tess 階段 (
kernel=quanttess) - 用於 detess/dequant 的後處理階段包裝器(模型序列中的
kernel=detessdequant,後端元件仍然是simaaiprocesscvu,位於src/nodes/sima/DetessDequant.cpp)。
- 預處理階段 (
simaaiprocessmlasimaaiboxdecode(通用型解碼器)- detess/dequant/tess 酬載階段,位於
tmp/gst/*中:detessdequantdetessellatequantizeslicedequant
1.2 不屬於本範圍內
在此對照表的範圍內,不包含通用 CVU 應用程式外掛程式與自訂圖工具,包括但不 限於:
overlay、genericrender、argmax、nms*、groupkeypoints、distancecalculation、cv_process、cvresize、fastbev*、PyGast-plugins/*、已棄用的外掛程式,以及自訂應用程式/測試架構。
1.3 已處理的原始碼樹
靜態提取涵蓋了兩個請求的樹:
tmp/gst_plugins_source/gst/*tmp/gst/*
檢查後視鏡:
- 兩棵樹都一樣:
genericboxdecode、detessdequant、detessellate、quantize、slicedequant。 - 已分歧:
processcvu、processmla
1.4 外掛程式矩陣
| 外掛程式/階段 | 目前所需的 JSON 鍵(目前的程式碼路徑) | 可推導出的金鑰 | 執行階段屬性(不應為靜態 JSON) | 僅適用於 MLA 格式的鍵 |
|---|---|---|---|---|
simaaiprocesscvu(預處理/量化/後處理包裝器) | 先進行推論:如果有的話,連線會來自 ConfigManager::getBuffers();JSON input_buffers/output_memory_order 僅作為備用方案。 | input_width/input_height 可以來自於圖 200/202 的標題/執行階段;布線陣列可以從 CM 中繼資料中合成。 | 在每個影格中重新協商執行階段的尺寸;框架建置不再重新編寫每個階段的 JSON 連接欄位。 | quant/tess 和後續路徑會間接使用 MLA 張量的形狀欄位。input_depth, slice_*) |
simaaiprocessmla | simaai__params、model_path、batch_size;儘管 outputs[*] 仍然是首選,但當輸出形狀欄位可以推斷出片段大小時,它不再是強制要求。 | 輸出片段的大小可以從 output_*/slice_* + dtype 推導得出。 | input_segment_name 是一種可選的執行階段接線輔助工具;模型路徑可以從封裝中衍生。 | outputs,data_type,output_*,slice_*,量化參數。 |
simaaiboxdecode | 後端設定載入器實際上需要:buffers.output.size、memory.next_cpu、system.out_buf_queue;目前,類別計數的解析取決於實作版本。 | 可以從 input_depth/ slice_depth + num_in_tensor + decode_type 推導出 num_classes(新的來源邏輯)。 | buffers.input[*].name 已從上游重新設定;閾值/前 N 個值通常是執行階段可調整的參數。 | input_*, slice_*, data_type, num_in_tensor |
detessdequant(舊版獨立的 GST 元素) | simaai__params,加上解析器欄位:orig_img_width、orig_img_height、frame_width、frame_height、num_in_tensor、next_cpu、no_of_outbuf、out_sz、input_* |