CVAT Task 命名規則 v2 · ISMS 鏡頭主軸(乾淨版)

產出 2026-08-25(v2.6 · 廠商表:甲山林與陞訊合併為 SHENGHSUN(使用者 2026-08-25 裁定兩者為同一間公司)。projects.db id 20 的 code 由中文「陞訊」改為 SHENGHSUN;id 19「甲山林」保留為別名列(stage=alias)不刪除,其歷史 code「甲山林」不再是合法代號。廠商表 20 → 19 筆,中文 code 自此歸零。CVAT 上 49 個 甲山林_ task 已由 data 全數改名 SHENGHSUN_(0 失敗 0 撞名 0 殘留),全站 522 個 SHENGHSUN_ task / 35,141 幀自此對得上白名單 —— 在此之前 SHENGHSUN 從未登錄,任何以 projects.code 當白名單的稽核工具都會把它們判成無法對應。同時明文化白名單口徑「只取 stage != alias 的列」,並修正 ai_summary 與廠商欄位規則裡停留在 13 筆的過時數字。格式 / 解析 regex 不變。)· 機器版:spec.json
🤖 AI 摘要 1 命名格式 2 鏡頭名稱 3 ISMS join 4 廠商代號 5 subset 🔒 6 封閉性 / 變更控制 7 過渡 8 範例

🤖 給 AI / Claude agent 的摘要

若你是 agent,請只讀本區塊,或改讀完整機器版 spec.json —— 不要逐段爬整頁。
完整機器可讀版(結構化 JSON):
· 線上:https://cvat-reports.pages.dev/naming_spec_v2/spec.json
· 本機(Claude Code 直接讀,免連網):C:\reports_maker\_naming_spec_v2_data.json

命名格式

<廠商>_[<ISMS鏡頭名稱>]_<YYYYMMDD>_<NNN>

解析 regex(右錨點 + 括號分隔)

^(?P<vendor>[A-Z]+(?:-AI)?)_\[(?P<cam>.*?)\]_(?P<date>\d{8}|UNKNOWN)_(?P<seq>\d{3})$

必讀規則(完整版見 spec.json)

  1. 格式:<廠商>_[<ISMS鏡頭名稱>]_<YYYYMMDD>_<NNN>,例 JUJIA_[jujia_A1]_20260601_001。所有新建 CVAT task 一律套用。
  2. 鏡頭名稱用方括號 [] 框住,內容直接取 ISMS cameraCode 原樣(允許底線 / 連字號 / 中文;唯一禁止字元:右括號 ])。不再切『場域 + CHxx』兩欄,廢除每廠商場域/鏡頭對照表。
  3. 解析(右錨點 + 括號分隔,Python re 命名群組):^(?P<vendor>[A-Z]+(?:-AI)?)_\[(?P<cam>.*?)\]_(?P<date>\d{8}|UNKNOWN)_(?P<seq>\d{3})$。JS 端把 ?P< 換成 ?< 即可。日期 8 碼、編號 3 碼從右邊錨定,括號內鏡頭名稱可任意內容。
  4. 廠商:全大寫英文代號,權威來源 = projects.db 的 code 欄「stage != alias」的列(19 筆)+ 合法特例 PUBLIC / UNKNOWN。此表仍為強制規則。中文 code 已全數消滅(v2.6 起)—— 甲山林/陞訊都改用 SHENGHSUN。
  5. -AI 後綴(v2.2 起):<廠商代號>-AI = 該廠商場域的 AI 生成資料,例 FOX-AI_[TC-1-102]_20260529_001。括號內仍放真實 ISMS cameraCode(生成資料模擬的鏡頭場景)。與 [AIGEN] 區分:綁定特定廠商鏡頭場域 → 廠商-AI + 真實 cameraCode;無對應廠商鏡頭的泛用合成資料 → 廠商原樣 + [AIGEN]。
  6. 鏡頭名稱直接抄 ISMS cameraCode(穩定機器 ID),不要用可被改的中文顯示名 —— 否則 ISMS 改名一次 task 身分就對不上。
  7. 場域 / 位置 / model 等 metadata 不再寫進 task 名 → 報表階段以 task → ISMS(cameraCode 對應)join 取回(cams_v1 的 isms_to_cvat_key 已是此模式)。
  8. 非 ISMS 來源(無鏡頭實體)括號內填來源 tag:[UNKNOWN](真不明)/ [<dataset>](vendor=PUBLIC 的開源集)/ [AIGEN](AI 合成)/ [pool-<source>](訓練池)/ CPC 影片用工安類別 [HEIGHT]、[CONFINED]。
  9. 日期:YYYYMMDD,拍攝/生成日優先,無 metadata 退回上傳日;真不明才填 UNKNOWN。
  10. 編號:3 位零填補,同三元組(廠商 + 鏡頭名稱 + 日期)從 001 遞增。
  11. Train/Val/Test:不進 task 名 → 走 CVAT subset 欄位;刻意拆 3 個獨立 task → 用編號 001/002/003 區分。
  12. subset 合法取值(v2.4 起封閉列舉,四種,大小寫敏感):Train / Validation / Test / Rejected。Rejected = 判定不可用的廢批(留作證據、絕不進訓練集),例 GEN003 興農 152-1 脫裝備驗證批良率 1/10、9/10 有幻覺人物 → task 13994/13995 設 Rejected。廢因寫 CVAT bug_tracker。
  13. 訓練切分程式必須用白名單(subset in ('Train','Validation','Test')),不可用黑名單(subset != 'Test' 之類)—— 黑名單會把 Rejected 的廢批撈進訓練集。空字串 / Unlabeled / 小寫變體都不是合法取值,一律當『未指定』,不得視為可訓練。
  14. 不確定真實廠商 → 填 UNKNOWN,不要造詞(如 INTERNAL)—— 造詞讓未來 trace 死路、汙染統計。
  15. 舊 5 段格式(<廠商>_<場域>_<CHxx>_<日期>_<編號>)規範見 naming_spec/,過渡期並存;既存 task 改名後續施做,解析器過渡期含 [ 走新 regex、否則走舊 regex;全面遷移後舊規範移除。
  16. 【格式封閉】(v2.5,使用者裁決)名稱只有 4 段:<廠商>_[<ISMS cameraCode>]_<YYYYMMDD>_<NNN>。regex 以 $ 錨定在 3 位序號之後,序號之後不得有任何欄位。沒有第 5 段、沒有選用尾欄、沒有狀態後綴。放不進這 4 段的 metadata 就是放不進去 —— 放 CVAT bug_tracker 或該部門自己的台帳,不要塞進名稱。
  17. 【變更控制】(v2.5,使用者裁決)規範本身要改,一律先問使用者。任何部門不得自行新增欄位、改 regex、加後綴,或另開本地規則副本。要改就改 _naming_spec_v2_data.json 後重 build + deploy,本檔是唯一真相來源;反推 regex、照記憶回答、或在別處另立一份規則都是錯的作法。
  18. 【個案裁決 1】生成批次代號(GEN001 / FTGEN02 這類)不進 task 名。批次代號放 CVAT bug_tracker 或 train 自己的台帳。不合規實例:SHENGHSUN-AI_[CH06]_20260806_GEN001(把 GEN001 塞在序號欄)。
  19. 【個案裁決 2】AI 生成資料一律用 v2.2 已定義的 <廠商代號>-AI(如 FOX-AI、SINON-AI),不得另造 -SYNTH 或其他後綴;無對應廠商鏡頭的泛用合成資料才用 [AIGEN] tag。

合法範例

⚠ 命名規範以本檔為準。廠商代號權威來源仍是 projects.db;場域/鏡頭不再寫進 task 名,改由報表階段 ISMS join 取回。不要憑記憶裡的舊 5 段內容回答。格式是封閉的(4 段,序號後不得有任何欄位),規範本身的變更一律先問使用者 —— 任何部門不得自行加欄位 / 改 regex / 加後綴 / 另開本地規則副本(見治理節)。

📌 本頁是新規範(v2)· 與舊規範完全分開

新規範,所有新建 CVAT task 一律套用。舊 5 段格式 <廠商>_<場域>_<鏡頭>_<日期>_<編號> 規範見 naming_spec/(過渡期並存,待既存 task 全面遷移後移除)。
取代:https://cvat-reports.pages.dev/naming_spec/ (舊 5 段格式)

1. Task 命名格式

<廠商>_[<ISMS鏡頭名稱>]_<YYYYMMDD>_<NNN>

解析 regex

^(?P<vendor>[A-Z]+(?:-AI)?)_\[(?P<cam>.*?)\]_(?P<date>\d{8}|UNKNOWN)_(?P<seq>\d{3})$

適用範圍:所有新建 CVAT task 一律套用本 4 段格式。下游 cvat-reports / reports_maker fetch 階段以上方右錨點 + 括號分隔 regex 解欄位。過渡期須同時相容舊 5 段格式(task 名含 '[' → 新 regex,否則 → 舊 <VENDOR>_<SITE>_<CHxx>_<DATE>_<NNN> regex)。

🔒 格式封閉

格式是封閉的(v2.5,使用者裁決):名稱就是這 4 段,不多不少。regex 以 $ 錨定在 3 位序號之後,因此序號之後不得有任何欄位 —— 沒有選用尾欄、沒有批次代號欄、沒有狀態後綴。要加欄位必須先問使用者並改本規範,見第 6 節。
欄位規則範例
廠商全大寫英文代號(權威來源 projects.db 的 code 欄,取 stage != alias 的列,19 筆);合法特例 PUBLIC / UNKNOWN。可加 -AI 後綴 = 該廠商場域的 AI 生成資料(v2.2 起,括號內仍放真實 cameraCode)JUJIA / SINON / FOX-AI
鏡頭名稱方括號 [] 框住;內容 = ISMS cameraCode 原樣(允許底線/連字號/中文,禁止字元 ])。無 ISMS 來源 → 填來源 tag(見下節)[jujia_A1] / [吳濁流] / [TC-1-102]
日期YYYYMMDD(拍攝/生成日優先,無 metadata 退回上傳日;真不明才 UNKNOWN)20260601
編號3 位零填補;同三元組(廠商 + 鏡頭名稱 + 日期)遞增 001 起001 / 002

Train / Val / Test 拆分

2. 鏡頭名稱欄(方括號)

新格式的核心。鏡頭名稱直接取 ISMS cameraCode 原樣、用方括號框住,因此不需要任何每廠商的場域/鏡頭對照表。

無 ISMS 來源 → 來源 tag

Tag使用時機範例
[<dataset>]開源資料集,廠商欄 = PUBLIC,括號放資料集名PUBLIC_[FASDD]_UNKNOWN_001
[AIGEN]AI 生成 / 合成資料且無對應廠商鏡頭(跨 project 通用)。若是模擬特定廠商場域鏡頭的 AI 生成資料 → 不用此 tag,改在廠商代號加 -AI 後綴、括號放真實 cameraCode(見廠商節)RAIVISION_[AIGEN]_20260601_001
[pool-<source>]訓練資料池(多廠商混合;結構解法仍待設計)UNKNOWN_[pool-cppe5]_20260601_001
[HEIGHT] / [CONFINED]中油 CPC 影片,無 ISMS 鏡頭實體,用工安類別代之CPC_[HEIGHT]_20260601_001
[UNKNOWN]以上皆不適用且鏡頭/來源真的不明(不要造詞)SINON_[UNKNOWN]_20260601_001

3. 場域 / 位置改由 ISMS join 取回

舊格式把『場域 + 鏡頭 CH』寫進 task 名,因此要維護每廠商的對照表。新格式只在 task 名保留『廠商 + ISMS 鏡頭 ID』當外鍵,其餘 metadata 在 ISMS。

4. 廠商代號(仍為強制規則)

權威來源:C:\Users\User\.claude\data\projects.db table projects(欄位 id, name, code, type, stage) 2026-08-25 · 19 筆

中文代號Type
喬福泡棉CHIAOFUclient
喬福醫療器材CHIAOFUMEDclient
建堡營造CHIENPOclient
中油CPCclient
火化場CREMATORYclient
弗克司FOXclient
思維GREENIDEASclient
華周工業HCIclient
宏全HONCHUANclient
翔大HSIANGTAclient
新東陽HSINTUNGYANGclient
愛烙達IRODAclient
寶佳JUJIAclient
Rai VisionRAIVISIONinternal
清潔隊SANITATIONclient
西門子SIEMENSclient
興農SINONclient
天銳國際SKYSHARPclient
陞訊數據科技股份有限公司(原「甲山林」)SHENGHSUNclient

特例(不進 DB)

中文代號用法
公開資料PUBLIC開源 / open dataset;非付費廠商,不入 projects 表
未知UNKNOWN廠商欄資訊不明時填,非廠商實體

別名

別名對應廠商用法
jujia寶佳 JUJIAISMS / iSeek 系統內鏡頭名用小寫 jujia(如 jujia_A1);廠商欄一律寫大寫 JUJIA,括號內鏡頭名保留 ISMS 原樣
甲山林陞訊數據科技股份有限公司 SHENGHSUN2026-08-25 使用者裁定:甲山林與陞訊數據科技是同一間公司,一律用 SHENGHSUN。CVAT 上 49 個 甲山林_ 開頭的 task 已全數改名(橫跨 p1/p2/p10/p11/p12,0 失敗 0 撞名 0 殘留)。projects.db id 19「甲山林」保留為別名列(stage=alias)供日後查詞,其 code 欄的歷史值「甲山林」不是合法代號。同一裁定下 id 20 的 code 由中文「陞訊」改為 SHENGHSUN —— 中文「陞訊」同樣不再是合法代號,且從未有 task 用過。

使用規則

5. subset 欄位(合法取值封閉列舉)

資料集切分與廢批狀態都不進 task 名,走 CVAT 既有的 subset 欄位。v2.4 起本節明文列舉 subset 的合法取值,且為封閉集合 —— 不在表內的值一律視為未指定,不得當成可訓練資料。取值大小寫敏感,一律照表中字面。

取值使用時機進訓練集
Train訓練集可訓練
Validation驗證集(寫全字 Validation,不要寫 Val)可訓練
Test測試集可訓練
Rejected廢批 / 判定不可用的批次:要留作證據、可查可稽核,但絕不能進訓練集。廢因寫在 CVAT bug_tracker free text不可訓練

⚠ Rejected(廢批)

Rejected 是 v2.4 新增(使用者 2026-08-19 裁決)。實例:GEN003 興農 152-1 脫裝備驗證批,train 判定不可用 —— 良率 1/10,9/10 出現原圖沒有的幻覺人物;raicvat5090 p12 的 task 13994(SINON-AI_[152-1]_20260818_001)與 13995(SINON-AI_[152-1]_20260818_002)現為 subset=Rejected。task 名維持完全合規、不加任何狀態後綴:狀態是 CVAT 欄位,不是命名欄位。

使用規則

現況的非合法取值(不在封閉集合內)

以下是 raicvat5090 p12 現況存在、但不屬於合法取值的 subset 值(清點日 2026-08-19:Test 1563 / Train 1540 / Validation 909 / 空 222 / 小寫變體各 8 / Rejected 2 / Unlabeled 1)。本節只定義它們該怎麼解讀與收斂,既存 task 的實際清理由 data 排程,本規範不追溯強制。

現況值語意處置
(空字串)未指定切分。CVAT 建 task 沒填 subset 時的預設狀態視為未指定 → 不可訓練。要進訓練集前必須先指派 Train / Validation / Test
UnlabeledCVAT 內建的預設 subset 名,不是本規範的語意值等同未指定 → 不可訓練。新建 task 不要沿用;既存者收斂為空字串或指派正式取值
小寫變體(train / validation / test …)大小寫寫錯的合法值不合規但語意明確 → 正規化為表定大小寫。程式比對不要自行 lower(),以免掩蓋問題

6. 格式封閉性與規範變更控制

本節由使用者 2026-08-19 裁決加入。前面幾節講「名稱怎麼寫」,本節講「規範本身怎麼改」—— 這兩件過去只有前者寫下來,導致有部門在缺乏權威依據時自行反推規則、自造欄位。

一、格式是封閉的

二、規範本身的變更需經使用者同意

個案裁決

日期議題裁決
2026-08-19生成批次代號(GEN001 / FTGEN02 這類)不進 task 名稱。
train 圖片生成管線(服務 8180)的文件要求「產出上 CVAT 時 task 名帶批次代號以維持來源可追溯」,但這與封閉格式衝突。批次代號改放 CVAT bug_tracker 或 train 自己的台帳;可追溯性由該台帳負責,不由 task 名負責。不合規實例:SHENGHSUN-AI_[CH06]_20260806_GEN001(把 GEN001 塞在序號欄;另註 SHENGHSUN 亦不在 projects.db 廠商表內)。
2026-08-19AI 生成資料的表示法一律用 v2.2 已定義的 <廠商代號>-AI,不得另造 -SYNTH 之類後綴。
綁定特定廠商鏡頭場域的 AI 生成資料 → <廠商代號>-AI + 真實 cameraCode(如 FOX-AI_[TC-1-102]_20260529_001、SINON-AI_[152-1]_20260818_001)。無對應廠商鏡頭的泛用合成資料 → 廠商原樣 + [AIGEN] tag。規範早已涵蓋此情境,新造後綴屬於未經同意的自行擴充。

為什麼有這一節

背景:2026-08-18 data/cvat-ops 在未讀權威來源的情況下,從下游 analyze.py 的 regex 反推規則、另開本地規則檔,並自造 -SYNTH 廠商後綴、批次代號欄、_REJECT 狀態欄三個不存在的欄位,事後全數撤回。撤回是對的;本節的用意是讓下一次不必靠事後撤回 —— 先問。

7. 新舊格式過渡

8. 完整範例

JUJIA_[jujia_A1]_20260601_001      # 寶佳 · ISMS 鏡頭 jujia_A1 · 2026-06-01 · 第1筆
SINON_[151-11]_20260601_001        # 興農 · ISMS 鏡頭 151-11
GREENIDEAS_[吳濁流]_20260601_001      # 思維 · ISMS 中文鏡頭名直接入括號
FOX_[TC-1-102]_20260601_001        # 弗克司 · ISMS cameraCode TC-1-102
FOX-AI_[TC-1-102]_20260529_001     # 弗克司場域 AI 生成資料 · -AI 後綴 · 括號仍放真實 cameraCode(raicvat5090 PPE task 實例)
SKYSHARP_[民雄後門禁]_20260521_001      # 天銳國際 · ISMS 中文鏡頭名 民雄後門禁
CPC_[HEIGHT]_20260601_001          # 中油 · 無 ISMS 鏡頭 · 工安類別 tag 高處
PUBLIC_[FASDD]_UNKNOWN_001         # 開源資料集 FASDD · 日期不明
RAIVISION_[AIGEN]_20260601_001     # 自家合成資料