目錄
- 前言
- 一、labelme是什么?
- 二、快速安裝使用
- 2.1 windows安裝
- 2.2 linux安裝
- 2.3 macos安裝
- 三、界面說明
- 四、為圖像創(chuàng)建類標(biāo)簽
- 4.1 參數(shù)介紹
- 4.2 文件夾所有文件創(chuàng)建分類標(biāo)簽
- 4.3 為文件夾所有文件創(chuàng)建分割標(biāo)簽
- 五、大概步驟
- 六、 其他問題
- 6.1 如何快速查看分割的json文件
- 6.2 json 轉(zhuǎn) png
前言
labelme是一個非常好用的免費(fèi)的標(biāo)注軟件,博主看了很多其他的博客,有的直接是翻譯稿,有的不全面。對于新手入門還是有點(diǎn)困難。因此,本文的主要是詳細(xì)介紹labelme該如何使用。
一、labelme是什么?
labelme是圖形圖像注釋工具,它是用Python編寫的,并將Qt用于其圖形界面。說直白點(diǎn),它是有界面的, 像軟件一樣,可以交互,但是它又是由命令行啟動的,比軟件的使用稍微麻煩點(diǎn)。其界面如下圖:
它的功能很多,包括:
- 對圖像進(jìn)行多邊形,矩形,圓形,多段線,線段,點(diǎn)形式的標(biāo)注(可用于目標(biāo)檢-測,圖像分割等任務(wù))。
- 對圖像進(jìn)行進(jìn)行 flag 形式的標(biāo)注(可用于圖像分類 和 清理 任務(wù))。
- 視頻標(biāo)注
- 生成 VOC 格式的數(shù)據(jù)集(for semantic / instance segmentation)
- 生成 COCO 格式的數(shù)據(jù)集(for instance segmentation)
二、快速安裝使用
安裝教程都是參考的labelme github。
2.1 windows安裝
官網(wǎng)步驟如下:
# python3
conda create --name=labelme python=3.6
source activate labelme
# conda install -c conda-forge pyside2
# conda install pyqt
# pip install pyqt5 # pyqt5 can be installed via pip on python3
pip install labelme
# or you can install everything by conda command
# conda install labelme -c conda-forge
1.為labelme創(chuàng)建一個conda環(huán)境,命名為lableme
2.激活該環(huán)境
windows用命令activate labelme 或者 conda activate labelme
很少用windows, 說的不對請指正。
其實(shí)在這一步中,我遇到了一個問題
C:\Windows\system32> conda activate labelme
CommandNotFoundError: Your shell has not been properly configured to use 'conda activate'.
To initialize your shell, run
$ conda init SHELL_NAME>
Currently supported shells are:
- bash
- fish
- tcsh
- xonsh
- zsh
- powershell
See 'conda init --help' for more information and options.
IMPORTANT: You may need to close and restart your shell after running 'conda init'.
初始化conda啥的,不是很懂,最后通過博客解決
我用的第一種方法
- 我的在D盤,所以先切換到D盤
- 命令行輸入 conda.bat activate anaconda\envs\labelme(注意和原博客不一樣)
3 安裝pyqt
前言里講過labelme是基于Qt的,所以必須安裝
conda/pip install pyqt
4 pip install labelme
2.2 linux安裝
# Ubuntu 14.04 / Ubuntu 16.04
# Python2
# sudo apt-get install python-qt4 # PyQt4
sudo apt-get install python-pyqt5 # PyQt5
sudo pip install labelme
# Python3
sudo apt-get install python3-pyqt5 # PyQt5
sudo pip3 install labelme
# or install standalone executable from:
# https://github.com/wkentaro/labelme/releases
注意:使用如上安裝前,同winsows一樣,需要先創(chuàng)建labelme的conda環(huán)境。
2.3 macos安裝
# macOS Sierra
brew install pyqt # maybe pyqt5 我用的pip安裝
pip install labelme # both python2/3 should work
# or install standalone executable/app from:
# https://github.com/wkentaro/labelme/releases
說明:這三種系統(tǒng)我都成功安裝過,放心吧~
安裝成功的啞子
有如下這些包
下次使用,命令行輸入labelme就可以打開軟件啦。嚴(yán)謹(jǐn)?shù)膩碚f,它是一個用pyqt5編寫的GUI界面。
三、界面說明
圖上看到,這個界面是非常簡潔的。
接下來具體講講如何使用。醫(yī)學(xué)圖像分析,我主要是研究分類和分割,所以重點(diǎn)講解如何標(biāo)注分類標(biāo)簽和分割標(biāo)簽。
四、為圖像創(chuàng)建類標(biāo)簽
4.1 參數(shù)介紹
使用labelme --help會出來labelme的使用方法,它包括如下參數(shù)
我們解釋幾個重要的參數(shù)設(shè)置
- –output:標(biāo)注文件存放位置。如果給的參數(shù)是以.json結(jié)尾,則會向該文件寫入一個標(biāo)簽。也就意味著如果使用.json指定位置,則只能對一個圖像進(jìn)行注釋。如果位置不是以.json結(jié)尾,程序?qū)⒓俣ㄋ且粋€目錄。注釋將以與在其上進(jìn)行注釋的圖像相對應(yīng)的名稱存儲在此目錄中。
- –Flags: 為圖像創(chuàng)建分類標(biāo)簽,多分類用逗號隔開。
- –nosortlabels: 是否對標(biāo)簽進(jìn)行排序
舉例:
命令行輸入 labelme image1.png --output image1.json --flags 0,1
其中,image1.png是圖像的地址,而不是名字。注意區(qū)別,因為我現(xiàn)在的路徑在圖像存放的當(dāng)前文件夾,所以輸入名字就可以直接找到該圖像。如果你當(dāng)前路徑不在圖像存放的文件夾,你需要給出圖像的完整路徑,如F:\labelmeImage\image1.png
–output image1.json 就是把打標(biāo)簽的結(jié)果存放在image1.json這個文件里。因為我是對單一圖像打標(biāo)簽,所以是以.json結(jié)尾。如果是對一個文件夾進(jìn)行打標(biāo)簽,那這里就不要以.json結(jié)尾,直接輸入你想存放的文件夾就行。
–flags: 描述你分類的標(biāo)簽是什么,0,1表示分兩類。也可以寫成多類,0,1,2,3,4.也可以用其他字符,如 negative,positive, 或者cat, dog。等等~
4.2 文件夾所有文件創(chuàng)建分類標(biāo)簽
命令行輸入labeme 并且給定分類標(biāo)簽。
打開圖上右邊界面后,導(dǎo)入文件夾,就可以點(diǎn)圖像,對它進(jìn)行標(biāo)注。標(biāo)注完一個,需要對其進(jìn)行保存,才能打第二個圖像的標(biāo)簽。這里沒有給定輸出位置,就會默認(rèn)保存在圖像這個文件夾,并且名字和圖像的名字一樣,并以.json結(jié)尾。
4.3 為文件夾所有文件創(chuàng)建分割標(biāo)簽
創(chuàng)建分割標(biāo)簽主要用到多邊形工具, 把需要的區(qū)域框出來就好了。
實(shí)驗數(shù)據(jù)來自labelme github: labelme/tree/master/examples/semantic_segmentation
五、大概步驟
1.運(yùn)行l(wèi)abelme后,打開文件夾
2.使用多邊形工具勾勒目標(biāo)
3.勾勒完成后創(chuàng)建標(biāo)簽
4.微調(diào)邊框。點(diǎn)擊編輯多邊形,有很多操作。如圖上所示
5.最后存儲
以上是簡單的演示,官方做的實(shí)驗如下:
首先下載semantic_segmentation 這個文件夾。
注意:以下實(shí)驗都是在該文件夾下打開的終端
標(biāo)注文件
labelme data_annotated --labels labels.txt --nodata --validatelabel exact --config ‘{shift_auto_shape_color: -2}'
作者已經(jīng)標(biāo)注好了,我們就打開看看。
標(biāo)簽格式轉(zhuǎn)換
由于標(biāo)注好的文件是json格式,我們將其轉(zhuǎn)化成圖片格式或者其他格式。使用作者給的代碼labelme2voc.py。主要轉(zhuǎn)化的格式有: 類名字文件,原始圖像的jpeg格式,分割圖像的npy格式,png格式, 以及將分割圖像疊在原始圖像上的jpg格式。
作者給的命令: ./labelme2voc.py data_annotated data_dataset_voc --labels labels.txt
但是運(yùn)行時會有報錯,修改成如下運(yùn)行:
python labelme2voc.py data_annotated data_dataset_voc --labels labels.txt
針對報錯:如果命令行不好修改代碼,建議直接修改這個Python文件里面的參數(shù)配置,再運(yùn)行都可以。
六、 其他問題
6.1 如何快速查看分割的json文件
labelme_draw_json 2011_000003.json
6.2 json 轉(zhuǎn) png
labelme_json_to_dataset apc2016_obj3.json -o apc2016_obj3_json
apc2016_obj3.json: 待轉(zhuǎn)化的json文件,
apc2016_obj3_json: 轉(zhuǎn)化后文件保存地址
一共會生成4個文件:
img.png: Image file.
label.png: uint8 label file.
label_viz.png: Visualization of label.png.
label_names.txt: Label names for values in label.png.
這和第4小節(jié)講的格式轉(zhuǎn)化差不多,4小節(jié)的python文件是可以根據(jù)自己需要隨便改設(shè)置的,而這個內(nèi)置方法是不允許改動的。
到此這篇關(guān)于Python深度學(xué)習(xí)之圖像標(biāo)簽標(biāo)注軟件labelme詳解的文章就介紹到這了,更多相關(guān)Python圖像標(biāo)簽標(biāo)注軟件labelme內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:- python使用matplotlib顯示圖像失真的解決方案
- Python深度學(xué)習(xí)之使用Albumentations對圖像做增強(qiáng)
- Python深度學(xué)習(xí)albumentations數(shù)據(jù)增強(qiáng)庫