🪢 安全繩使用偵測 — 設計簡報

目的:判斷高處作業時 person 有沒有正確使用安全繩(lanyard / harness anchor)

TL;DR — 在現有 cvat2 project 5 的 person label 加 1 個 attribute safety_rope_use(select [unknown/correct/wrong])。raicvat_p17(中油高處作業)為主力資料源,LLM 預標 + 人工抽查。訓練先用擴大 person crop padding 再評估是否升級到 RoI Align。

1️⃣ 任務定義

項目說明
判斷單位每個 person(不是整張圖)
輸出三態 select:correct 正確使用|wrong 錯誤使用(含沒戴/拿手上/掛自己身上等)|unknown 非高處作業 / 看不清
使用場景工地高處作業 / 化學廠塔頂維修 / 中油高架作業

2️⃣ 視覺特殊性 — 為何要擴大區域

安全繩會從 person 身上 延伸到結構物(horizontal lifeline、scaffold、anchor point),標準 person bbox 切不到 anchor 端。

原 person bbox
只看到 person + harness
⚠️
看不到 rope 另一端錨點
擴大 bbox 左右 +100%
看到 rope + lifeline
能判斷 correct vs wrong

3️⃣ 兩種架構方案

A. 擴大 person crop(先試)

CROP_PAD 從 0.15 改成 1.0(左右 +100%)→ 切 crop → resize 384×192 → 分類器。

建議路線:先用 A 跑通全流程,看 binary 結果是否夠用;不夠再升級 B。

4️⃣ Cvat 端組織

不開新 project,直接加 attribute

person bbox 已在 project 5(133k 人),新增 1 個 attribute 即可:

person:
  + safety_rope_use:
      type: select
      values: [unknown, correct, wrong]
      default: unknown
sourcetask處理方式
raicvat_p17(中油)1650/51/52⭐ 主力標註 ~10k person
raicvat_p2 (化學廠)1629–1635部分高處作業 task 補充
其他 6 個 source全部 unknown(mask=0 不參與 loss)

5️⃣ 標註流程

Step 1
schema PATCH
Step 2
LLM 預標
Step 3
人工 spot check
Step 4
訓練

Step 2 LLM 預標 prompt(範例)

對下列 person crop 判斷:高處作業中此人是否正確使用安全繩?
- correct: 繩子掛勾在結構/lifeline 上,固定點明確
- wrong: 沒戴繩、繩拿在手上、繩掛在自己身上、沒掛勾
- unknown: 非高處作業 / 鏡頭遠看不清 / 沒入鏡

只回單字: correct / wrong / unknown
~$3
Gemini Flash 預標 10k person 成本
~1 hr
LLM 跑完時間
~1-2 hr
人工 spot check 時間
~30 min
model train 時間

6️⃣ 訓練架構(方案 A 起步)

在現有 v20260501 (21 attr) 基礎加第 22 個 attribute:

ATTRS = [...20 attr..., "harness", "fall", "safety_rope_use_correct"]
# binary head: 1 (yes) = correct使用; 0 (no) = wrong/沒
# mask=1 限 raicvat_p17/p2 高處作業 person; 其他 mask=0

# 模型: 同 train_p9_attr_v6.py (MobileNetV3-L + 22 head BCE)
# 唯一差異: data loader 把 CROP_PAD 從 0.15 → 1.0(這個 attr 專用)
若同一 model 不同 CROP_PAD 不可行,做法二:單獨訓 safety_rope binary classifier,部署為 ppe_service stage 3。

7️⃣ 推薦時程

步驟內容預估時間
1cvat2 schema PATCH 加 safety_rope_use5 min
2從 raicvat_p17 抽 person crop(既有 manifest_v8)10 min
3LLM (Gemini Flash) 預標 ~10k person1 hr
4review tool 加 safety_rope_use 顯示15 min
5人工 spot check(特別看 wrong 樣本)1-2 hr
6re-export manifest_v9 + train v20260502 (22 attr) — 方案 A1 hr
7評估 → 不夠就升級方案 B (RoI Align)2-4 hr

8️⃣ 風險與待釐清

9️⃣ 下一步動作

  1. 跟 PM 確認 schema 三態定義(correct/wrong/unknown)是否符合業主需求
  2. schema PATCH(1 min 即可)
  3. 對 raicvat_p17 跑 LLM 預標試 100 張看品質
  4. 品質 OK 就 sweep 全 raicvat_p17,不 OK 再調 prompt

生成時間 2026-04-27|v20260501 model reportlabel guide