Python深度學習之圖像標簽標注軟件labelme詳解
labelme是一個非常好用的免費的標注軟件,博主看了很多其他的博客,有的直接是翻譯稿,有的不全面。對于新手入門還是有點困難。因此,本文的主要是詳細介紹labelme該如何使用。
一、labelme是什么?labelme是圖形圖像注釋工具,它是用Python編寫的,并將Qt用于其圖形界面。說直白點,它是有界面的, 像軟件一樣,可以交互,但是它又是由命令行啟動的,比軟件的使用稍微麻煩點。其界面如下圖:
它的功能很多,包括:
對圖像進行多邊形,矩形,圓形,多段線,線段,點形式的標注(可用于目標檢-測,圖像分割等任務)。 對圖像進行進行 flag 形式的標注(可用于圖像分類 和 清理 任務)。 視頻標注 生成 VOC 格式的數據集(for semantic / instance segmentation) 生成 COCO 格式的數據集(for instance segmentation)二、快速安裝使用安裝教程都是參考的labelme github。
2.1 windows安裝官網步驟如下:
# python3conda create --name=labelme python=3.6source activate labelme# conda install -c conda-forge pyside2# conda install pyqt# pip install pyqt5 # pyqt5 can be installed via pip on python3pip install labelme# or you can install everything by conda command# conda install labelme -c conda-forge
1.為labelme創建一個conda環境,命名為lableme
2.激活該環境
windows用命令activate labelme 或者 conda activate labelme
很少用windows, 說的不對請指正。
其實在這一步中,我遇到了一個問題
C:Windowssystem32> 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 的地址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 # PyQt4sudo apt-get install python-pyqt5 # PyQt5sudo pip install labelme# Python3sudo apt-get install python3-pyqt5 # PyQt5sudo pip3 install labelme# or install standalone executable from:# https://github.com/wkentaro/labelme/releases
注意:使用如上安裝前,同winsows一樣,需要先創建labelme的conda環境。
2.3 macos安裝# macOS Sierrabrew 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
說明:這三種系統我都成功安裝過,放心吧~
安裝成功的啞子
有如下這些包
下次使用,命令行輸入labelme就可以打開軟件啦。嚴謹的來說,它是一個用pyqt5編寫的GUI界面。
圖上看到,這個界面是非常簡潔的。
接下來具體講講如何使用。醫學圖像分析,我主要是研究分類和分割,所以重點講解如何標注分類標簽和分割標簽。
四、為圖像創建類標簽4.1 參數介紹使用labelme --help會出來labelme的使用方法,它包括如下參數
我們解釋幾個重要的參數設置
?output:標注文件存放位置。如果給的參數是以.json結尾,則會向該文件寫入一個標簽。也就意味著如果使用.json指定位置,則只能對一個圖像進行注釋。如果位置不是以.json結尾,程序將假定它是一個目錄。注釋將以與在其上進行注釋的圖像相對應的名稱存儲在此目錄中。 ?Flags: 為圖像創建分類標簽,多分類用逗號隔開。 ?nosortlabels: 是否對標簽進行排序舉例:
命令行輸入 labelme image1.png --output image1.json --flags 0,1
其中,image1.png是圖像的地址,而不是名字。注意區別,因為我現在的路徑在圖像存放的當前文件夾,所以輸入名字就可以直接找到該圖像。如果你當前路徑不在圖像存放的文件夾,你需要給出圖像的完整路徑,如F:labelmeImageimage1.png?output image1.json 就是把打標簽的結果存放在image1.json這個文件里。因為我是對單一圖像打標簽,所以是以.json結尾。如果是對一個文件夾進行打標簽,那這里就不要以.json結尾,直接輸入你想存放的文件夾就行。?flags: 描述你分類的標簽是什么,0,1表示分兩類。也可以寫成多類,0,1,2,3,4.也可以用其他字符,如 negative,positive, 或者cat, dog。等等~
4.2 文件夾所有文件創建分類標簽命令行輸入labeme 并且給定分類標簽。打開圖上右邊界面后,導入文件夾,就可以點圖像,對它進行標注。標注完一個,需要對其進行保存,才能打第二個圖像的標簽。這里沒有給定輸出位置,就會默認保存在圖像這個文件夾,并且名字和圖像的名字一樣,并以.json結尾。
4.3 為文件夾所有文件創建分割標簽創建分割標簽主要用到多邊形工具, 把需要的區域框出來就好了。實驗數據來自labelme github: labelme/tree/master/examples/semantic_segmentation
1.運行labelme后,打開文件夾
2.使用多邊形工具勾勒目標
3.勾勒完成后創建標簽
4.微調邊框。點擊編輯多邊形,有很多操作。如圖上所示
5.最后存儲
以上是簡單的演示,官方做的實驗如下:
首先下載semantic_segmentation 這個文件夾。
注意:以下實驗都是在該文件夾下打開的終端
標注文件
labelme data_annotated --labels labels.txt --nodata --validatelabel exact --config ‘{shift_auto_shape_color: -2}’
作者已經標注好了,我們就打開看看。
標簽格式轉換
由于標注好的文件是json格式,我們將其轉化成圖片格式或者其他格式。使用作者給的代碼labelme2voc.py。主要轉化的格式有: 類名字文件,原始圖像的jpeg格式,分割圖像的npy格式,png格式, 以及將分割圖像疊在原始圖像上的jpg格式。
作者給的命令: ./labelme2voc.py data_annotated data_dataset_voc --labels labels.txt
但是運行時會有報錯,修改成如下運行:
python labelme2voc.py data_annotated data_dataset_voc --labels labels.txt
針對報錯:如果命令行不好修改代碼,建議直接修改這個Python文件里面的參數配置,再運行都可以。
六、 其他問題6.1 如何快速查看分割的json文件labelme_draw_json 2011_000003.json
labelme_json_to_dataset apc2016_obj3.json -o apc2016_obj3_json
apc2016_obj3.json: 待轉化的json文件,
apc2016_obj3_json: 轉化后文件保存地址
一共會生成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小節講的格式轉化差不多,4小節的python文件是可以根據自己需要隨便改設置的,而這個內置方法是不允許改動的。
到此這篇關于Python深度學習之圖像標簽標注軟件labelme詳解的文章就介紹到這了,更多相關Python圖像標簽標注軟件labelme內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!
相關文章: