官方原話:EISeg(Efficient Interactive Segmentation)是基于飛槳開發的一個高效智能的互動式分割標注軟體,涵蓋了高精度和輕量級等不同方向的高質量互動式分割模型,方便開發者快速實作語意及實體標簽的標注,降低標注成本, 另外,將EISeg獲取到的標注應用到PaddleSeg提供的其他分割模型進行訓練,便可得到定制化場景的高精度模型,打通分割任務從資料標注到模型訓練及預測的全流程,
飛槳(PaddlePaddle)是百度開源的深度學習框架,社區也比較活躍,關鍵是中文方便交流,哈哈哈,
EISeg工具是在PaddlePaddle/PaddleSeg倉庫下contrib/EISeg里,倉庫地址如下:
https://github.com/PaddlePaddle/PaddleSeg
EISeg工具也是最近Paddle團隊才開源(大概是在2021.08.24)的一個實用工具,現在還在不斷迭代優化中:

文章目錄
- 環境配置與安裝
- 創建conda虛擬環境(建議)
- 安裝EISeg
- 簡單使用
- 模型預訓練權重下載
- 載入模型權重
- 添加類別標簽
- 匯出類別標簽
- 匯入類別標簽
- 標注圖片
- 生成的標注資訊
- 更改標注資料格式
- 其他
- 常用快捷鍵
環境配置與安裝
創建conda虛擬環境(建議)
為了不影響其他python環境,建議新建一個環境,(不想新建可以跳過)
這里以創建一個名為eiseg_env,python版本為3.8的環境為例:
conda create -n eiseg_env python=3.8
創建完成后,進入新環境:
conda activate eiseg_env
安裝EISeg
在官方的Reame里有寫需要安裝PaddlePaddle,所以先安裝下PaddlePaddle包,
安裝PaddlePaddle(這里默認是安裝的CPU版的,如果要安裝GPU版,看官方檔案):
pip install paddlepaddle
然后再安裝EISeg(這里以pip安裝方式為例,你也可以按照官方的教程使用原始碼安裝):
pip install eiseg
安裝成功后直接在終端輸入eiseg即可啟動:
eiseg

簡單使用
模型預訓練權重下載
EISeg開放了在COCO+LVIS和大規模人像資料上訓練的標注模型,并且分別提供了高精度和輕量化兩種選擇(后面官方可能會開放更多可用模型,建議大家自己去官網看下檔案),這里以下載針對通用場景的高精度模型為例hrnet18_ocr64_cocolvis,點擊對應權重下載地址進行下載,
| 模型型別 | 適用場景 | 模型結構 | 下載地址 |
|---|---|---|---|
| 高精度模型 | 適用于通用場景的影像標注, | HRNet18_OCR64 | hrnet18_ocr64_cocolvis |
| 輕量化模型 | 適用于通用場景的影像標注, | HRNet18s_OCR48 | hrnet18s_ocr48_cocolvis |
| 高精度模型 | 適用于人像標注場景, | HRNet18_OCR64 | hrnet18_ocr64_human |
| 輕量化模型 | 適用于人像標注場景, | HRNet18s_OCR48 | hrnet18s_ocr48_human |
載入模型權重
啟動EISeg后,在右上角選擇模型型別,剛剛下載的是高精度的模型,所以就選擇高精度模型,

然后點擊加載網路權重,選擇剛剛下載好的權重檔案就可以了,

添加類別標簽
在工具右側點擊添加標簽按鈕,添加自己分割任務中的目標類別,

每添加一個標簽都可以自己隨便選擇一個喜歡的顏色(每個類別用不同的顏色區分):

匯出類別標簽
然后建議匯出標簽資訊(比如保存到label.txt檔案中),方便下次使用:

簡單分析下保存的標簽內容,每行代表一個類別的資訊,這些資訊使用空格進行分隔,比如下面的第一行,1代表類別索引,dog代表類別名稱,239 41 41代表這個類別在標注時使用的顏色(RGB三個值),根據這些資訊其實我們一開始就可以自己先構建出這個標簽檔案,然后直接加載這個標簽就行了,
1 dog 239 41 41
2 cat 245 128 6
匯入類別標簽
同樣點擊標注->加載標簽串列,選擇上面剛剛講到的標簽檔案即可,
標注圖片
點擊左上角檔案,然后可以選擇單張圖片進行標注,或者點擊打開檔案夾對里面的圖片一張張進行標注,

接著先在右側的標簽欄中選擇要標注的目標類別,然后在影像的目標中用滑鼠左鍵點一下增加一個正樣本(圖中會出現一個綠色的星號),然后模型會自動幫我們去摳出它認為的目標,

很明顯,模型將人類的胳膊也當成了dog的一部分這是不對的,那么我們可以在胳膊的位置處點擊滑鼠右鍵,增加一個負樣本點(圖中會出現一個紅色的星號),然后網路會把標注有負樣本的區域給去掉,此時標注的基本就是正確的了,

標注完成后點擊空格,會生成該目標的多邊形邊界(注意里面還包含了目標的bbox資訊,即目標檢測任務的資訊),我們可以在該邊界上新增(滑鼠在邊緣上左鍵雙擊)或者洗掉點(滑鼠在邊緣點上左鍵雙擊),并且拖動這些點的位置進行微調,標注完一張圖片后點擊保存按鈕,然后會在當前檔案夾下生成一個label檔案夾(檔案的輸出位置可以在檔案->改變標簽保存路徑更改保存目錄),

生成的標注資訊
打開目標標注資訊的目錄,可以看到針對每張圖片會默認會生成3張圖片和一個coco.json檔案(這個檔案是所有圖片共用的,和COCO的json的檔案一樣),
- 其中
1.png是之前在PASCAL VOC資料中介紹的語意分割mask標簽檔案(注意,這個檔案并沒有加上調色板資訊)可參考我之前寫的文章, 1_pseudo.png是一個彩色mask標簽檔案(其實只要1.png就夠了),方便可視化,1_foreground.png就是把前景摳出來了,也是方便可視化,感覺沒啥用,coco.json是MS COCO的資料格式,具體參考我之前講的MS COCO資料集文章,注意里面還包含了目標的bbox資訊,即目標檢測任務的資訊(說明目標檢測任務也能用),

更改標注資料格式
這里默認使用的是MS COCO的資料格式,你也可以設定成JSON保存格式,就和labelme標注工具一樣,每張圖片生成一個json檔案,在工具左上角功能中進行設定,

其他
后續再補
常用快捷鍵
這里接直接復制官方檔案中的快捷鍵:
| 部分按鍵/快捷鍵 | 功能 |
|---|---|
| 滑鼠左鍵 | 增加正樣本點 |
| 滑鼠右鍵 | 增加負樣本點 |
| 滑鼠中鍵 | 平移影像 |
| Ctrl+滑鼠中鍵(滾輪) | 縮放影像 |
| S | 切換上一張圖 |
| F | 切換下一張圖 |
| Space(空格) | 完成標注/切換狀態 |
| Ctrl+Z | 撤銷 |
| Ctrl+Shift+Z | 清除 |
| Ctrl+Y | 重做 |
| Ctrl+A | 打開影像 |
| Shift+A | 打開檔案夾 |
| E | 打開快捷鍵表 |
| Backspace(退格) | 洗掉多邊形 |
| 滑鼠雙擊(點) | 洗掉點 |
| 滑鼠雙擊(邊) | 添加點 |
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/298458.html
標籤:其他
