<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          標(biāo)注神器 | Label-Studio X SAM 半自動(dòng)化標(biāo)注

          共 7091字,需瀏覽 15分鐘

           ·

          2024-07-12 09:30

          點(diǎn)擊上方小白學(xué)視覺”,選擇加"星標(biāo)"或“置頂

          重磅干貨,第一時(shí)間送達(dá)

          來源 | 小白學(xué)視覺

          本文將介紹結(jié)合 Label-Studio 和 SAM (Segment Anything) 半自動(dòng)化標(biāo)注方案,Point2Lablel:用戶只需要在物體的區(qū)域內(nèi)點(diǎn)一個(gè)點(diǎn)就能得到物體的掩碼和邊界框標(biāo)注,Bbox2Label:用戶只需要標(biāo)注物體的邊界框就能生成物體的掩碼,社區(qū)的用戶可以借鑒此方法,提高數(shù)據(jù)標(biāo)注的效率。




          • SAM (Segment Anything) 是 Meta AI 推出的分割一切的模型。
          • Label Studio 是一款優(yōu)秀的標(biāo)注軟件,覆蓋圖像分類、目標(biāo)檢測、分割等領(lǐng)域數(shù)據(jù)集標(biāo)注的功能。

          本文將使用喵喵數(shù)據(jù)集的圖片,進(jìn)行半自動(dòng)化標(biāo)注。

          環(huán)境配置

          首先需要?jiǎng)?chuàng)建一個(gè)虛擬環(huán)境,然后安裝 PyTorch 和 SAM。創(chuàng)建虛擬環(huán)境:

          conda create -n rtmdet-sam python=3.9 -y
          conda activate rtmdet-sam

          克隆 OpenMMLab PlayGround

          git clone https://github.com/open-mmlab/playground

          安裝 PyTorch

          # Linux and Windows CUDA 11.3
          pip install torch==1.10.1+cu113 torchvision==0.11.2+cu113 torchaudio==0.10.1 -f https://download.pytorch.org/whl/cu113/torch_stable.html


          #
           Linux and Windows CPU only
          pip install torch==1.10.1+cpu torchvision==0.11.2+cpu torchaudio==0.10.1 -f https://download.pytorch.org/whl/cpu/torch_stable.html

          #
           OSX
          pip install torch==1.10.1 torchvision==0.11.2 torchaudio==0.10.1

          安裝 SAM 并下載預(yù)訓(xùn)練模型

          cd path/to/playground/label_anything
          pip install opencv-python pycocotools matplotlib onnxruntime onnx
          pip install git+https://github.com/facebookresearch/segment-anything.git
          wget https://dl.fbaipublicfiles.com/segment_anything/sam_vit_b_01ec64.pth

          #
           如果想要分割的效果好請(qǐng)使用 sam_vit_h_4b8939.pth 權(quán)重
          # wget https://dl.fbaipublicfiles.com/segment_anything/sam_vit_l_0b3195.pth
          # wget https://dl.fbaipublicfiles.com/segment_anything/sam_vit_h_4b8939.pth

          安裝 Label-Studio 和 label-studio-ml-backend

          # sudo apt install libpq-dev python3-dev # Note:如果使用 Label Studio 1.7.2 版本需要安裝 `libpq-dev` 和 `python3-dev` 依賴。

          #
           安裝 label-studio 需要一段時(shí)間,如果找不到版本請(qǐng)使用官方源
          pip install label-studio==1.7.3
          pip install label-studio-ml==1.0.9

          啟動(dòng)服務(wù)

          ?label_anything 需要啟用SAM后端推理后再啟動(dòng)網(wǎng)頁服務(wù)才可配置模型(一共需要兩步啟動(dòng))

          1.啟動(dòng) SAM 后端推理服務(wù):

          cd path/to/playground/label_anything

          label-studio-ml start sam --port 8003 --with \
          sam_config=vit_b \
          sam_checkpoint_file=./sam_vit_b_01ec64.pth \
          out_mask=True \
          out_bbox=True \
          device=cuda:0 \
          # device=cuda:0 為使用 GPU 推理,如果使用 cpu 推理,將 cuda:0 替換為 cpu
          # out_poly=True 返回外接多邊形的標(biāo)注

          image

          此時(shí),SAM 后端推理服務(wù)已經(jīng)啟動(dòng),后續(xù)在 Label-Studio Web 系統(tǒng)中配置 http://localhost:8003 后端推理服務(wù)即可。以上的終端窗口需要保持打開狀態(tài)。

          2.現(xiàn)在啟動(dòng) Label-Studio 網(wǎng)頁服務(wù):

          ?(如不使用vit-h的SAM后端請(qǐng)?zhí)^此步)使用的推理后端是SAM的 vit-h, 由于模型加載時(shí)間長,導(dǎo)致連接后端超時(shí),需要設(shè)置以下環(huán)境變量。

          具體可根據(jù)下載的SAM的權(quán)值名稱判斷,比如sam_vit_h_4b8939.pth 為 vit-h,sam_vit_b_01ec64.pth為 vit-b。

          # Linux需要使用以下指令
          export ML_TIMEOUT_SETUP=40
          # Windows要使用以下指令
          set ML_TIMEOUT_SETUP=40

          啟動(dòng) Label-Studio 網(wǎng)頁服務(wù):

          label-studio start

          打開瀏覽器訪問 http://localhost:8080/ 即可看到 Label-Studio 的界面。

          我們注冊(cè)一個(gè)用戶,然后創(chuàng)建一個(gè) OpenMMLabPlayGround 項(xiàng)目。

          我們通過下面的方式下載好示例的喵喵圖片,點(diǎn)擊 Data Import 導(dǎo)入需要標(biāo)注的貓圖片,點(diǎn)擊 Save 創(chuàng)建 Project。

          cd path/to/playground/label_anything
          mkdir data && cd data

          wget https://download.openmmlab.com/mmyolo/data/cat_dataset.zip && unzip cat_dataset.zip

          在 Settings/Labeling Interface 中配置 Label-Studio 關(guān)鍵點(diǎn)和 Mask 標(biāo)注。

          <View>
            <Image name="image" value="$image" zoom="true"/>
            <KeyPointLabels name="KeyPointLabels" toName="image">
              <Label value="cat" smart="true" background="#e51515" showInline="true"/>
              <Label value="person" smart="true" background="#412cdd" showInline="true"/>
            </KeyPointLabels>
            <RectangleLabels name="RectangleLabels" toName="image">
             <Label value="cat" background="#FF0000"/>
             <Label value="person" background="#0d14d3"/>
            </RectangleLabels>
            <PolygonLabels name="PolygonLabels" toName="image">
             <Label value="cat" background="#FF0000"/>
             <Label value="person" background="#0d14d3"/>
            </PolygonLabels>
            <BrushLabels name="BrushLabels" toName="image">
             <Label value="cat" background="#FF0000"/>
             <Label value="person" background="#0d14d3"/>
            </BrushLabels>
          </View>

          在上述 XML 中我們對(duì)標(biāo)注進(jìn)行了配置,其中 KeyPointLabels 為關(guān)鍵點(diǎn)標(biāo)注,BrushLabels 為 Mask 標(biāo)注,PolygonLabels 為外接多邊形標(biāo)注,RectangleLabels 為矩形標(biāo)注。

          本實(shí)例使用 cat 和 person 兩個(gè)類別,如果社區(qū)用戶想增加更多的類別需要分別在 KeyPointLabelsBrushLabelsPolygonLabelsRectangleLabels 中添加對(duì)應(yīng)的類別。

          然后將上述 XML 復(fù)制添加到 Label-Studio,然后點(diǎn)擊 Save。

          image

          然后在設(shè)置中點(diǎn)擊 Add Model 添加 OpenMMLabPlayGround 后端推理服務(wù),設(shè)置好 SAM 后端推理服務(wù)的 URL,并打開 Use for interactive preannotations 并點(diǎn)擊 Validate and Save

          ?如果你在這一步無法順利執(zhí)行,可能由于模型加載時(shí)間長,導(dǎo)致連接后端超時(shí),請(qǐng)重新執(zhí)行第二步中已經(jīng)跳過的部分,重啟SAM后端推理服務(wù)。

          image

          看到如下 Connected 就說明后端推理服務(wù)添加成功。

          image

          開始半自動(dòng)化標(biāo)注

          點(diǎn)擊 Label 開始標(biāo)注

          image

          需要打開 Auto-Annotation 的開關(guān),并建議勾選 Auto accept annotation suggestions,并點(diǎn)擊右側(cè) Smart 工具,切換到 Point 后,選擇下方需要標(biāo)注的物體標(biāo)簽,這里選擇 cat。如果是 BBox 作為提示詞請(qǐng)將 Smart 工具切換到 Rectangle。

          image

          Point2Label:由下面的 gif 的動(dòng)圖可以看出,只需要在物體上點(diǎn)一個(gè)點(diǎn),SAM 算法就能將整個(gè)物體分割和檢測出來。

          SAM8

          Bbox2Label: 由下面的 gif 的動(dòng)圖可以看出,只需要標(biāo)注一個(gè)邊界框,SAM 算法就能將整個(gè)物體分割和檢測出來。

          SAM10

          我們 submit 完畢所有圖片后,點(diǎn)擊 exprot 導(dǎo)出 COCO 格式的數(shù)據(jù)集,就能把標(biāo)注好的數(shù)據(jù)集的壓縮包導(dǎo)出來了。注意:此處導(dǎo)出的只有邊界框的標(biāo)注,如果想要導(dǎo)出實(shí)例分割的標(biāo)注,需要在啟動(dòng) SAM 后端服務(wù)時(shí)設(shè)置 out_poly=True

          image

          用 vscode 打開解壓后的文件夾,可以看到標(biāo)注好的數(shù)據(jù)集,包含了圖片和 json 格式的標(biāo)注文件。

          到此半自動(dòng)化標(biāo)注就完成了, 通過 Label-Studio 的半自動(dòng)化標(biāo)注功能,可以讓用戶在標(biāo)注過程中,通過點(diǎn)擊一下鼠標(biāo),就可以完成目標(biāo)的分割和檢測,大大提高了標(biāo)注效率。

          來源:

          [1] https://github.com/open-mmlab/playground/blob/main/label_anything/readme_zh.md

          [2] 部分代碼借鑒自 label-studio-ml-backend ID 為 253 的 Pull Request,感謝作者的貢獻(xiàn)。

          本文僅做學(xué)術(shù)分享,如有侵權(quán),請(qǐng)聯(lián)系刪文。

             
          下載1:OpenCV-Contrib擴(kuò)展模塊中文版教程
          在「小白學(xué)視覺」公眾號(hào)后臺(tái)回復(fù):擴(kuò)展模塊中文教程即可下載全網(wǎng)第一份OpenCV擴(kuò)展模塊教程中文版,涵蓋擴(kuò)展模塊安裝、SFM算法、立體視覺、目標(biāo)跟蹤、生物視覺、超分辨率處理等二十多章內(nèi)容。

          下載2:Python視覺實(shí)戰(zhàn)項(xiàng)目52講
          小白學(xué)視覺公眾號(hào)后臺(tái)回復(fù):Python視覺實(shí)戰(zhàn)項(xiàng)目即可下載包括圖像分割、口罩檢測、車道線檢測、車輛計(jì)數(shù)、添加眼線、車牌識(shí)別、字符識(shí)別、情緒檢測、文本內(nèi)容提取、面部識(shí)別等31個(gè)視覺實(shí)戰(zhàn)項(xiàng)目,助力快速學(xué)校計(jì)算機(jī)視覺。

          下載3:OpenCV實(shí)戰(zhàn)項(xiàng)目20講
          小白學(xué)視覺公眾號(hào)后臺(tái)回復(fù):OpenCV實(shí)戰(zhàn)項(xiàng)目20講即可下載含有20個(gè)基于OpenCV實(shí)現(xiàn)20個(gè)實(shí)戰(zhàn)項(xiàng)目,實(shí)現(xiàn)OpenCV學(xué)習(xí)進(jìn)階。

          交流群


          歡迎加入公眾號(hào)讀者群一起和同行交流,目前有SLAM、三維視覺、傳感器自動(dòng)駕駛、計(jì)算攝影、檢測、分割、識(shí)別、醫(yī)學(xué)影像、GAN算法競賽等微信群(以后會(huì)逐漸細(xì)分),請(qǐng)掃描下面微信號(hào)加群,備注:”昵稱+學(xué)校/公司+研究方向“,例如:”張三 + 上海交大 + 視覺SLAM“。請(qǐng)按照格式備注,否則不予通過。添加成功后會(huì)根據(jù)研究方向邀請(qǐng)進(jìn)入相關(guān)微信群。請(qǐng)勿在群內(nèi)發(fā)送廣告,否則會(huì)請(qǐng)出群,謝謝理解~


          瀏覽 268
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  欧美性猛交XXXX免费看久久久 | 99热在线99 | 强伦轩人妻一区二区三区70后 | 超逼视频在线观看 | 午夜免费福利视频 |