佳木斯湛栽影视文化发展公司

主頁(yè) > 知識(shí)庫(kù) > Python深度學(xué)習(xí)之圖像標(biāo)簽標(biāo)注軟件labelme詳解

Python深度學(xué)習(xí)之圖像標(biāo)簽標(biāo)注軟件labelme詳解

熱門標(biāo)簽:硅谷的囚徒呼叫中心 百度AI接口 呼叫中心市場(chǎng)需求 Win7旗艦版 企業(yè)做大做強(qiáng) 電話運(yùn)營(yíng)中心 語(yǔ)音系統(tǒng) 客戶服務(wù)

前言

labelme是一個(gè)非常好用的免費(fèi)的標(biāo)注軟件,博主看了很多其他的博客,有的直接是翻譯稿,有的不全面。對(duì)于新手入門還是有點(diǎn)困難。因此,本文的主要是詳細(xì)介紹labelme該如何使用。

一、labelme是什么?

labelme是圖形圖像注釋工具,它是用Python編寫的,并將Qt用于其圖形界面。說直白點(diǎn),它是有界面的, 像軟件一樣,可以交互,但是它又是由命令行啟動(dòng)的,比軟件的使用稍微麻煩點(diǎn)。其界面如下圖:

它的功能很多,包括:

  • 對(duì)圖像進(jìn)行多邊形,矩形,圓形,多段線,線段,點(diǎn)形式的標(biāo)注(可用于目標(biāo)檢-測(cè),圖像分割等任務(wù))。
  • 對(duì)圖像進(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)建一個(gè)conda環(huán)境,命名為lableme

2.激活該環(huán)境

windows用命令activate labelme 或者 conda activate labelme

很少用windows, 說的不對(duì)請(qǐng)指正。

其實(shí)在這一步中,我遇到了一個(gè)問題

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啥的,不是很懂,最后通過博客解決

我用的第一種方法

  • 首先查看conda env 的地址

  • 我的在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,它是一個(gè)用pyqt5編寫的GUI界面。

三、界面說明

圖上看到,這個(gè)界面是非常簡(jiǎn)潔的。

接下來具體講講如何使用。醫(yī)學(xué)圖像分析,我主要是研究分類和分割,所以重點(diǎn)講解如何標(biāo)注分類標(biāo)簽和分割標(biāo)簽。

四、為圖像創(chuàng)建類標(biāo)簽

4.1 參數(shù)介紹

使用labelme --help會(huì)出來labelme的使用方法,它包括如下參數(shù)

我們解釋幾個(gè)重要的參數(shù)設(shè)置

  • –output:標(biāo)注文件存放位置。如果給的參數(shù)是以.json結(jié)尾,則會(huì)向該文件寫入一個(gè)標(biāo)簽。也就意味著如果使用.json指定位置,則只能對(duì)一個(gè)圖像進(jìn)行注釋。如果位置不是以.json結(jié)尾,程序?qū)⒓俣ㄋ且粋€(gè)目錄。注釋將以與在其上進(jìn)行注釋的圖像相對(duì)應(yīng)的名稱存儲(chǔ)在此目錄中。
  • –Flags: 為圖像創(chuàng)建分類標(biāo)簽,多分類用逗號(hào)隔開。
  • –nosortlabels: 是否對(duì)標(biāo)簽進(jìn)行排序

舉例:

命令行輸入 labelme image1.png --output image1.json --flags 0,1

其中,image1.png是圖像的地址,而不是名字。注意區(qū)別,因?yàn)槲椰F(xiàn)在的路徑在圖像存放的當(dāng)前文件夾,所以輸入名字就可以直接找到該圖像。如果你當(dāng)前路徑不在圖像存放的文件夾,你需要給出圖像的完整路徑,如F:\labelmeImage\image1.png
–output image1.json 就是把打標(biāo)簽的結(jié)果存放在image1.json這個(gè)文件里。因?yàn)槲沂菍?duì)單一圖像打標(biāo)簽,所以是以.json結(jié)尾。如果是對(duì)一個(gè)文件夾進(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)圖像,對(duì)它進(jìn)行標(biāo)注。標(biāo)注完一個(gè),需要對(duì)其進(jìn)行保存,才能打第二個(gè)圖像的標(biāo)簽。這里沒有給定輸出位置,就會(huì)默認(rèn)保存在圖像這個(gè)文件夾,并且名字和圖像的名字一樣,并以.json結(jié)尾。

4.3 為文件夾所有文件創(chuàng)建分割標(biāo)簽

創(chuàng)建分割標(biāo)簽主要用到多邊形工具, 把需要的區(qū)域框出來就好了。
實(shí)驗(yàn)數(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.最后存儲(chǔ)

以上是簡(jiǎn)單的演示,官方做的實(shí)驗(yàn)如下:

首先下載semantic_segmentation 這個(gè)文件夾。

注意:以下實(shí)驗(yàn)都是在該文件夾下打開的終端

標(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)行時(shí)會(huì)有報(bào)錯(cuò),修改成如下運(yùn)行:

python labelme2voc.py data_annotated data_dataset_voc --labels labels.txt

針對(duì)報(bào)錯(cuò):如果命令行不好修改代碼,建議直接修改這個(gè)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)化后文件保存地址

一共會(huì)生成4個(gè)文件:

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è)置的,而這個(gè)內(nèi)置方法是不允許改動(dòng)的。

到此這篇關(guān)于Python深度學(xué)習(xí)之圖像標(biāo)簽標(biāo)注軟件labelme詳解的文章就介紹到這了,更多相關(guān)Python圖像標(biāo)簽標(biāo)注軟件labelme內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • python使用matplotlib顯示圖像失真的解決方案
  • Python深度學(xué)習(xí)之使用Albumentations對(duì)圖像做增強(qiáng)
  • Python深度學(xué)習(xí)albumentations數(shù)據(jù)增強(qiáng)庫(kù)

標(biāo)簽:安康 長(zhǎng)沙 海南 崇左 山西 濟(jì)南 山西 喀什

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Python深度學(xué)習(xí)之圖像標(biāo)簽標(biāo)注軟件labelme詳解》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    平利县| 土默特右旗| 隆尧县| 醴陵市| 丹东市| 双牌县| 拜泉县| 陇西县| 寿宁县| 隆尧县| 常宁市| 玉溪市| 静宁县| 张家港市| 大田县| 济源市| 静安区| 平原县| 阿图什市| 仁寿县| 滦平县| 常德市| 横峰县| 县级市| 天祝| 孟村| 平塘县| 大石桥市| 平泉县| 沙洋县| 民和| 荣成市| 兴业县| 达日县| 广州市| 榆社县| 清远市| 许昌县| 临夏市| 綦江县| 冀州市|