目錄
- 前言
- 一、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是一個非常好用的免費的標(biāo)注軟件,博主看了很多其他的博客,有的直接是翻譯稿,有的不全面。對于新手入門還是有點困難。因此,本文的主要是詳細(xì)介紹labelme該如何使用。
一、labelme是什么?
labelme是圖形圖像注釋工具,它是用Python編寫的,并將Qt用于其圖形界面。說直白點,它是有界面的, 像軟件一樣,可以交互,但是它又是由命令行啟動的,比軟件的使用稍微麻煩點。其界面如下圖:
![](/d/20211017/d56a49fcb41f0b4199e6c5fe4d429c17.gif)
它的功能很多,包括:
- 對圖像進(jì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
![](/d/20211017/f2853617fe0d77ea8a8c65aacb3632eb.gif)
2.激活該環(huán)境
![](/d/20211017/6cfe00bd12f70abdbda6ad617755ee08.gif)
windows用命令activate labelme 或者 conda activate labelme
很少用windows, 說的不對請指正。
其實在這一步中,我遇到了一個問題
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/20211017/6d5a7196482d12e6aadc83907fe4d972.gif)
- 我的在D盤,所以先切換到D盤
- 命令行輸入 conda.bat activate anaconda\envs\labelme(注意和原博客不一樣)
![](/d/20211017/8953c7f13a375e6e6770cb2304f290f6.gif)
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)我都成功安裝過,放心吧~
安裝成功的啞子
有如下這些包
![](/d/20211017/f27a063206d6f237ecb3c4df9f953d3c.gif)
下次使用,命令行輸入labelme就可以打開軟件啦。嚴(yán)謹(jǐn)?shù)膩碚f,它是一個用pyqt5編寫的GUI界面。
![](/d/20211017/cc6003641e0c0c6b019c8e1ae576db2d.gif)
三、界面說明
![](/d/20211017/db583461831007f3d30f65849ed69d7f.gif)
圖上看到,這個界面是非常簡潔的。
接下來具體講講如何使用。醫(yī)學(xué)圖像分析,我主要是研究分類和分割,所以重點講解如何標(biāo)注分類標(biāo)簽和分割標(biāo)簽。
四、為圖像創(chuàng)建類標(biāo)簽
4.1 參數(shù)介紹
使用labelme --help會出來labelme的使用方法,它包括如下參數(shù)
![](/d/20211017/d8369a744f1440741b486109cc3be4e8.gif)
我們解釋幾個重要的參數(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
![](/d/20211017/d82f5e30db230da90da8e9cf589d7f2a.gif)
其中,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)簽
![](/d/20211017/07029f6fe2bc9d5c4f7269ec0740cecd.gif)
命令行輸入labeme 并且給定分類標(biāo)簽。
打開圖上右邊界面后,導(dǎo)入文件夾,就可以點圖像,對它進(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ù)據(jù)來自labelme github: labelme/tree/master/examples/semantic_segmentation
![](/d/20211017/9701664acdd98bd8b9b4005609d5a3af.gif)
![](/d/20211017/30f380fe1d0755ca532b8e3c3d59be65.gif)
![](/d/20211017/d8757585ceef6193ac542029b5286433.gif)
五、大概步驟
1.運行l(wèi)abelme后,打開文件夾
2.使用多邊形工具勾勒目標(biāo)
3.勾勒完成后創(chuàng)建標(biāo)簽
4.微調(diào)邊框。點擊編輯多邊形,有很多操作。如圖上所示
5.最后存儲
以上是簡單的演示,官方做的實驗如下:
首先下載semantic_segmentation 這個文件夾。
![](/d/20211017/114d9ed695ab9c0d2fd05418a8436108.gif)
注意:以下實驗都是在該文件夾下打開的終端
![](/d/20211017/91db077278af6d199ef00d7a17a1fd0c.gif)
標(biāo)注文件
labelme data_annotated --labels labels.txt --nodata --validatelabel exact --config ‘{shift_auto_shape_color: -2}'
![](/d/20211017/618343ca61d92d8447756a5d993b226c.gif)
作者已經(jīng)標(biāo)注好了,我們就打開看看。
標(biāo)簽格式轉(zhuǎn)換
由于標(biāo)注好的文件是json格式,我們將其轉(zhuǎn)化成圖片格式或者其他格式。使用作者給的代碼labelme2voc.py。主要轉(zhuǎn)化的格式有: 類名字文件,原始圖像的jpeg格式,分割圖像的npy格式,png格式, 以及將分割圖像疊在原始圖像上的jpg格式。
![](/d/20211017/b4e3b9ee842ffddbeb54fba0281ca7ec.gif)
![](/d/20211017/9ff8261d4e6a3722ae12fdab0f5d7212.gif)
作者給的命令: ./labelme2voc.py data_annotated data_dataset_voc --labels labels.txt
但是運行時會有報錯,修改成如下運行:
python labelme2voc.py data_annotated data_dataset_voc --labels labels.txt
針對報錯:如果命令行不好修改代碼,建議直接修改這個Python文件里面的參數(shù)配置,再運行都可以。
六、 其他問題
6.1 如何快速查看分割的json文件
labelme_draw_json 2011_000003.json
![](/d/20211017/47f9bdf8d296e38e5e17a7d0cc652717.gif)
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.
![](/d/20211017/9a14bb1e71db77591d7abd1cba6723b0.gif)
這和第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對圖像做增強
- Python深度學(xué)習(xí)albumentations數(shù)據(jù)增強庫