域、屬性與關(guān)系三類標注構(gòu)建圖像場景圖)
Label Studio Visual Genome 模板用區(qū)域、屬性與關(guān)系三類標注構(gòu)建圖像場景圖【免費下載鏈接】label-studioLabel Studio is a multi-type data labeling and annotation tool with standardized output format項目地址: https://gitcode.com/GitHub_Trending/la/label-studio本指南講解 Label Studio 內(nèi)置的 Visual Genome 標注模板其核心思路是把結(jié)構(gòu)化圖像概念與自然語言描述連接起來在一張圖片上同時標注區(qū)域Regions、屬性Attributes與關(guān)系Relationships三類帶描述的矩形框從而產(chǎn)出適合場景理解、視覺關(guān)系檢測、視覺問答與多模態(tài) AI 訓(xùn)練的結(jié)構(gòu)化標注數(shù)據(jù)。讀完本文你將掌握該模板的完整 XML 配置、JSON 數(shù)據(jù)格式、RectangleLabels 標簽的關(guān)鍵參數(shù)以及它在當前倉庫中的源碼級實現(xiàn)位置。模板要解決什么問題Visual Genome 是一個以場景圖為目標的圖像理解范式不只回答圖片里有什么物體還要回答物體長什么樣屬性物體之間有什么關(guān)系空間位置、從屬、動作等。Label Studio 在 Visual Genome 模板 中把這一范式拆解為三個并行的標注維度Regions區(qū)域框出圖片中需要關(guān)注的物體或片段并用自然語言描述它例如panda bear holding something in its pawAttributes屬性框出承載屬性信息的局部區(qū)域描述其外觀特征例如nose is blackface is roundRelationships關(guān)系框出參與關(guān)系的兩個對象描述它們之間的語義關(guān)系例如tree BEHIND bearmouth OF panda。在倉庫的模板元數(shù)據(jù)中visual-genome/config.yml該模板被歸類為 Computer Vision 下的社區(qū)模板標注的行業(yè)應(yīng)用覆蓋 scene understanding場景理解、visual reasoning視覺推理、visual relationship detection視覺關(guān)系檢測、scene graph generation場景圖生成、image captioning圖像描述與 visual question answering視覺問答等方向。這為讀者理解為什么一個模板要同時畫三類框提供了背景產(chǎn)出的正是訓(xùn)練視覺關(guān)系檢測器、場景圖生成器或多模態(tài)模型的標注語料。Labeling Configuration完整配置與逐段解讀模板的標注配置是一段可直接粘貼到項目中的 XML完整內(nèi)容如下與倉庫中 visual-genome/config.yml 的config字段一致View View styledisplay: flex; flex-wrap: wrap; View classNamelabel-column Header valueRegions/ RectangleLabels nameregions toNameimage value$regions/ /View View classNamelabel-column Header valueAttributes/ RectangleLabels nameattributes toNameimage value$attributes/ /View View classNamelabel-column Header valueRelationships/ RectangleLabels namerelationships toNameimage value$relationships/ /View /View Image nameimage value$image/ Style .label-column .lsf-labels { display: flex; flex-direction: column; align-items: flex-start; } /Style /View三列并排的標注面板最外層View內(nèi)嵌了一個設(shè)置了display: flex; flex-wrap: wrap;的View其下再分三個帶classNamelabel-column的子View分別承載 Regions、Attributes、Relationships 三組標簽面板。每個面板先通過Header value.../渲染分組標題再放置一個RectangleLabels標簽。這種一圖三列、三套矩形框的布局讓標注員在同一個標注界面上即可分門別類地完成三類描述性標注而不是在多個項目之間切換。三個 RectangleLabels 的命名與數(shù)據(jù)綁定三個RectangleLabels標簽的配置要點標簽名nametoNamevalue用途Regionsregionsimage$regions標注物體/片段區(qū)域及其自然語言描述Attributesattributesimage$attributes標注局部區(qū)域及其外觀屬性描述Relationshipsrelationshipsimage$relationships標注對象關(guān)系及其語義描述這里的關(guān)鍵是value$regions這類動態(tài)標簽值綁定RectangleLabels通過value屬性引用任務(wù)數(shù)據(jù)JSON中對應(yīng)鍵的數(shù)組數(shù)組中的每個{ value: ... }條目會自動展開為一枚可選的標簽按鈕。這樣標簽集合不是寫死在配置里而是隨任務(wù)數(shù)據(jù)動態(tài)生成一個項目即可覆蓋任意數(shù)量的描述性標簽。這是 Label Studio 模板體系中動態(tài)標簽dynamic labels的典型用法倉庫中 gallery_dynamic_labels.ejs 也收錄了該模板的預(yù)覽入口。樣式塊末尾的Style塊針對.label-column .lsf-labels施加樣式把標簽列表改為縱向排列flex-direction: column并左對齊align-items: flex-start。因為value動態(tài)生成的標簽往往較長例如一整句描述縱向堆疊比橫向換行更易讀、更不易誤點相鄰標簽。RectangleLabels 標簽的參數(shù)體系RectangleLabels是 Label Studio 編輯器中用于帶標簽矩形框的控件標簽。在源碼 RectangleLabels.jsx 的注釋中官方給出的完整參數(shù)如下參數(shù)默認值說明name必填元素名稱同一配置內(nèi)必須唯一toName必填指向要標注的圖像標簽名本模板中為imagechoicesingle單選或多選single/multiplemaxUsages—每個標簽在單個任務(wù)中最多可被使用的次數(shù)showInlinetrue是否在同一行內(nèi)展示標簽opacity0.6矩形填充不透明度fillColor—矩形填充色十六進制strokeColor—描邊顏色十六進制strokeWidth1描邊寬度canRotatetrue是否顯示旋轉(zhuǎn)控制柄注意旋轉(zhuǎn)結(jié)果中的錨點與標注錨點不同snapnone是否將矩形吸附到圖像像素pixel/none此外從 schema/tags.json 中的RectangleLabels條目可知該標簽適用于 Image 數(shù)據(jù)類型標注結(jié)果記錄的是包圍盒左上角坐標。模板中未顯式設(shè)置choice等參數(shù)因此均使用默認值單選、不透明度 0.6 等如需讓一個區(qū)域同時擁有多個描述標簽可顯式添加choicemultiple。Example data任務(wù)數(shù)據(jù)的 JSON 結(jié)構(gòu)與上面配置配套的示例任務(wù)數(shù)據(jù)如下{ data: { image: https://htx-pub.s3.amazonaws.com/templates/visual-genome/panda.jpeg, regions: [ { value: panda bear holding something in its paw }, { value: trees behind the panda out of focus }, { value: piece of bamboo in pandas paw }, { value: bamboo next to panda }, { value: the panda is cute } ], attributes: [ { value: markings is black }, { value: nose is black }, { value: face is round }, { value: wood is round } ], relationships: [ { value: hole ON log }, { value: tree BEHIND bear }, { value: mouth OF panda } ] }}結(jié)構(gòu)解讀data.image圖片 URL對應(yīng)Image value$image/由任務(wù)數(shù)據(jù)驅(qū)動圖片加載data.regions/data.attributes/data.relationships三個字符串數(shù)組元素均為{ value: 自然語言描述 }分別對應(yīng)三個RectangleLabels的value$regions/value$attributes/value$relationships動態(tài)標簽源關(guān)系描述采用對象A 介詞 對象B的約定寫法如tree BEHIND bear、mouth OF panda便于后續(xù)解析為(subject, predicate, object)三元組直接對接場景圖標注的常見輸出格式。如果模板缺少某類數(shù)據(jù)例如只導(dǎo)入 regions 而缺 attributes對應(yīng)的標簽列會因動態(tài)標簽源為空而不渲染可用標簽因此在批量導(dǎo)入前應(yīng)確保三類鍵在任務(wù)數(shù)據(jù)中一致存在。該示例數(shù)據(jù)同樣保存在模板倉庫文件 visual-genome/config.yml 的注釋塊中可作為導(dǎo)入測試數(shù)據(jù)的直接來源。配置如何被校驗底層校驗鏈路當你在項目中保存這段 XML 時后端會對配置做多層校驗入口在 label_config.py 的validate_label_configXML 與 JSON Schema 校驗先解析 XML 為 JSON 結(jié)構(gòu)并對照標簽 schema 校驗parse_config_to_jsonjsonschema.validate標簽名、必填屬性等非法寫法會在此被攔截name 唯一性校驗通過正則提取所有name...并檢查重復(fù)本模板中regions、attributes、relationships、image四個 name 各不相同正是為了通過該項檢查toName 引用校驗提取所有toName...確認它們指向已存在的 name——本模板三個RectangleLabels的toNameimage均能命中Image nameimage/標簽屬性深度校驗通過LabelInterface對標簽屬性做進一步 SDK 級校驗。也就是說模板中每個標簽的name/toName都不是隨便起的toName必須精確匹配Image nameimage/否則保存配置時會被校驗器拒絕。這也是復(fù)用本模板做改動時最容易踩的坑——新增標簽列時務(wù)必保持toName指向同一個圖像標簽。在 Label Studio 中使用該模板基于以上配置落地使用的步驟為創(chuàng)建項目在 Label Studio 中新建項目將上文 Labeling Configuration 的 XML 粘貼到Labeling Setup編輯框粘貼后界面會自動渲染出 Regions / Attributes / Relationships 三列標簽面板與圖像區(qū)配置校驗失敗時頁面會直接給出錯誤提示。準備任務(wù)數(shù)據(jù)按 Example data 的 JSON 結(jié)構(gòu)構(gòu)造任務(wù)——image指向可訪問的圖片 URL 或已配置存儲中的圖片路徑regions/attributes/relationships提供三類描述標簽。若使用本地文件存儲或云存儲S3、GCS 等image字段應(yīng)替換為對應(yīng)的數(shù)據(jù)引用格式。導(dǎo)入與標注導(dǎo)入任務(wù)后在圖像上分別用三列標簽畫矩形框先點選某一列的標簽如 Regions 下的panda bear holding something in its paw再在圖中拖出包圍該描述對象的矩形隨后在 Attributes、Relationships 列重復(fù)同樣操作。導(dǎo)出結(jié)果標注完成后導(dǎo)出時三類矩形框區(qū)域rectanglelabels類型將連同各自的標簽文本寫入標注結(jié)果可直接轉(zhuǎn)換為場景圖所需的區(qū)域-屬性-關(guān)系結(jié)構(gòu)。模板的原始配置與示例數(shù)據(jù)也已同步維護在 annotation_templates 目錄中讀者可以對照閱讀或作為自定義改造的基線。改造方向包括為關(guān)系標注改用Relations/Relation標簽顯式連接兩個區(qū)域、為屬性標注疊加Choices做屬性分類、或者把RectangleLabels換成PolygonLabels以支持更精細的分割式場景圖標注。小結(jié)Visual Genome 模板是 Label Studio 中少見的一圖三列多標簽源組合示例它利用value$xxx動態(tài)標簽綁定把圖片的區(qū)域描述、屬性描述與關(guān)系描述組織進同一個標注界面既保持了標注任務(wù)的清晰分工又借助動態(tài)標簽避免了為每條描述硬編碼Label。結(jié)合 RectangleLabels.jsx 的參數(shù)說明與 label_config.py 的校驗邏輯你既能開箱即用地跑通該模板也能依據(jù)源碼自由擴展出適合自己數(shù)據(jù)形態(tài)的場景圖標注方案。【免費下載鏈接】label-studioLabel Studio is a multi-type data labeling and annotation tool with standardized output format項目地址: https://gitcode.com/GitHub_Trending/la/label-studio創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考