安全背繩 · 通宵研究報告 · 2026-08-06 → 08-07
十二個實驗跑了一整夜,五個方向被排除、四個被證實、一個有條件成立。 最有效的改動不是換模型也不是加資料,而是修正一個五月訂下、之後沒人重掃過的推論參數—— 它同時限制了訓練與推論,這正是過去三個月不管怎麼調資料都卡在原地的原因。
核心發現
安全背繩是兩段式流程:人員偵測框出人 → 把框放大一圈裁下來 → 分類器判斷有沒有掛勾。 中間那個「放大一圈」的比例(側向/上方/下方)是 2026 年 5 月調的, 之後訓練資料換過好幾輪,這組參數卻沒有人重新掃過。
| 外擴參數 | 側向 | 上方 | 下方 | 誤報 |
|---|---|---|---|---|
| 沿用中(5 月訂) | 1.0 | 0.2 | 1.5 | 157 |
| 本次掃出的最佳 | 0.6 | 0.5 | 2.0 | 147 |
這個結果有物理意義:側向放太大會把旁邊的人與背景一起吃進來(安全繩是垂直方向的物件), 而上方放太小會裁掉肩帶與掛勾位置——掛勾正是判定的關鍵。
關鍵在於後續:光改推論參數只降 6.4% 誤報,但用同一組參數重新訓練,效益放大到 44%。 因為錯誤的框法同時汙染了訓練樣本與推論輸入,模型過去是在「被裁掉關鍵資訊的畫面」上學習。
建議方案
| 配置 | 模型數 | 交付 AP | P@R0.86 | 誤報 |
|---|
三模型 ensemble 的誤報 101 只比單模型的 106 少 5 個, 但推論成本是三倍。以場域即時串流的情境,單模型是明顯較好的選擇—— 它同時比現役的雙模型少一半計算量、少 44% 誤報。
ckpt /home/ubuntu/runs_new/safety_rope_single_full_bestroi/best.pt 外擴 側向 0.6 · 上方 0.5 · 下方 2.0 ← 與訓練一致,務必同步修改 輸入 1280×720 · DINOv3-S RoIAlign 訓練 manifest_v20260806.csv(17,433 筆)· batch 8 · lr 1e-4 · 早停 ep10
上版必做:ppe-demo 的 handler 要同步改外擴常數, 否則訓練與推論參數不一致,改善會全部消失。
穩健性
改善集中在原本表現最差的鏡頭,且沒有任何一隻退步超過 0.01。這不是統計波動。
| 鏡頭 | 測試 | 正樣本 | 現役 AP | 新單模 | 新三模 | 變化 |
|---|
完整實驗矩陣
失敗的實驗同樣有價值——它們把搜尋空間縮小,讓剩下的方向更明確。
| 實驗 | 方向 | 類型 | 結論 | 實測 |
|---|
時序輸入
既有規則寫明「安全背繩是動態作業,單張畫面人類也判不準,要拉時序前後幀」—— 但現行模型是單張推論。這次做了嚴格對照(同資料、同外擴,唯一差別是模型看不看得到時間軸):
| 訓練資料量 | 單幀 AP | 時序三幀 AP | 結論 |
|---|---|---|---|
| 寶佳 7,275 筆 | 0.626 | 0.793 | 時序大勝 +0.167 |
| 全部 17,433 筆 | 0.887–0.932 | 0.847 | 單幀勝,時序訓練成本還高 3 倍 |
交叉點很合理:時序的價值在於用時間軸補足單張資訊的不足; 當單張樣本夠多,模型已能從大量場景學到判別特徵,多幀反而讓相同 GPU 時間內看過的獨立場景變少。
這對那 26 隻資料稀缺的鏡頭仍有意義。 它們正是「單張樣本不足」的情境,時序專用版是可考慮的路線——但不是主線方案, 而且要注意時序版跑滿 10 輪仍未收斂,這個比較對它略不利。
排除清單
這些不必再試,含本次與先前的實證:
| 方向 | 證據 |
|---|
端到端
上面所有數字都是「人已被正確框出」的前提下量的。實際上線是兩段式, 第一段漏掉的人根本不會進入第二段。把人員偵測接回去重跑:
| 配置 | 端到端召回 | 端到端精確 | TP | FN | 其中偵測漏 |
|---|
分類器的改善確實轉化到端到端(召回 0.454 → 0.541,+8.8pp), 但天花板在偵測器:399 個正樣本裡有 144 個(36%)根本沒被偵測到, 兩個配置在這部分完全相同。即使分類器做到完美,端到端召回上限也只有 63.9%。
| 鏡頭 | 正樣本 | 現役 | 新版 | 變化 | 偵測漏掉 | 判定 |
|---|
jujia_C12 是最極端的例子:分類器 AP 0.9975 幾乎完美, 端到端召回卻是 0.000——因為那隻鏡頭的人被偵測器漏掉 100%。 這說明只看分類器數字會嚴重誤導交付判斷。對外報告時兩個數字必須分開講。
後續