一 LabelMe簡介python
labelme是麻省理工(MIT)的計算機科學和人工智能實驗室(CSAIL)研發的圖像標註工具,人們可使用該工具建立定製化標註任務或執行圖像標註,項目源代碼已經開源。git
項目開源地址:https://github.com/CSAILVision/LabelMeAnnotationToolgithub
labelMe項目地址:http://labelme.csail.mit.edu/Release3.0/windows
MIT的labelme源代碼能夠安裝到服務器上使用,是一個在線的Javascript圖像標註工具,可在任意地方使用,不須要在電腦中安裝大型數據集。服務器
本文主要介紹一個python版本的labelme,這個labelme項目是利用QT Designer進行圖形界面的開發,生成ui文件,使用工具轉換爲py文件,而後再添加python編寫的邏輯實現,最終呈如今你們面前的都是py文件。這個python版本也是開源的。app
Python版本labelme地址:https://github.com/wkentaro/labelme工具
二 LabelMe的安裝開發工具
個人安裝環境是Windows 10,labelme的安裝須要不少依賴的環境和程序,主要的環境是anaconda,還須要的是python和pyqt,具體安裝過程以下ui
下載後默認安裝,一直點擊下一步,直到完成安裝。人工智能
2. 安裝依賴程序和labelme。anaconda安裝成功後,在開始菜單中,會有多個anaconda工具,其中就有Anaconda Prompt,運行它,就像windows中的cmd命令行同樣。執行如下命令,完成相應的程序安裝。
安裝python環境
conda create –name=labelme python=3.6(對應本身的python版本)
安裝pyqt
conda install pyqt(會安裝最新的pyqt5)
安裝labelme
pip install labelme
運行labelme。
仍是在Anaconda Prompt中輸入labelme,即運行labelme,圖形化的labelme界面就會打開。
三 LabelMe的py代碼在pycharm中運行
Python集成開發工具Pycharm的安裝及使用,你們能夠自行百度,比較簡單,再也不介紹。首先將https://github.com/wkentaro/labelme中的源代碼下載到本地,在pytharm中打開labelme項目,要讓labelme運行起來,最重要就是設置labelme的運行環境,也就是設置好labelme運行時用到的那些依賴。在上一步的labelme的安裝中,已經將labelme的依賴都安裝完成了,咱們只須要在pycharm中設置便可。
在pycharm的File菜單選擇settings…,打開軟件配置窗口,左側的Project Interpreter(項目解釋器),在右側要選擇合適的python環境,這裏使用在上一步中安裝的python程序,這個python程序是默認安裝的,地址是C:\Users\dell\AppData\Local\conda\conda\envs\labelme\python.exe,這個python環境包含的了不少安裝包,都是labelme運行依賴的一些程序。設置完成後,點擊確認。
打開labelme根目錄下的main.py文件,而後點擊右鍵,選擇Run ’main’,或者在菜單Run選擇Run ’main’,這樣就能夠正常運行labelme項目了。
四 LabelMe的漢化
Labelme在pycharm中運行後,咱們就能夠對labelme進行二次開發了。比較簡單的一個開發就是漢化,labelme界面都是英文,想把它裏面的菜單、提示信息等改成中文,就能夠根據項目結構,修改相應的py文件便可。
在main.py的導入模塊中,有from labelme.app import MainWindow,能夠知道labelme的窗口主要在app模塊中設置,打開與main.py同目錄的app.py,能夠看到不少菜單名稱以及提示信息,根據運行窗口中菜單名稱和提示信息,在app.py程序中查找,而後進行有針對的修改,就能夠了。
五 LabelMe轉換爲exe文件
爲了方便使用labelme程序,能夠將py程序轉換爲exe程序,在windows環境中無需安裝python,就能夠運行labelme。轉換工具使用的是pyinstaller,比較早的pyinstaller介紹文章說它不支持python3,如今已經支持python3了。
1 安裝pyinstaller
首先安裝pywin32
pip install pywin32
而後安裝pyinstaller
pip install pyinstaller
2 使用pyinstaller
比較簡單的轉換操做
pyinstaller -F E:/ python_workspace/labelme/main.py
會在當前目錄生成dist文件夾,build文件夾和spec文件
dist目錄(目錄裏面有可執行文件)
build目錄(生成exe的中間文件)
spec文件(要轉換文件的同一目錄下,用於生成exe文件,能夠修改來自定義生成exe的屬性)
其中-F是參數,表示要生成一個exe文件,文件在dist目錄中。
還有一些其餘的參數使用,能夠利用pyinstaller -h命令查看,好比-w生成窗口界面程序,-c生成控制檯程序,--distpath制定生成exe文件的路徑,--log-level指定輸出的日誌信息等等。
六 總結
Labelme是一個開源圖像標註工具,對它進行使用及二次開發涉及到比較多的知識,經過研究labelme能夠了解不少新知識,除了文中介紹的一些知識外,還有圖形開發工具QT Designer,是一種能夠集成到pycharm中的圖形開發工具,生成ui文件,能夠轉換爲py文件,和pycharm結合,能夠進行圖形界面開發,python版的labelme就是使用QT開發界面。在研究的過程當中,也碰到一些問題,好比轉化爲exe文件時,有路徑不正確的問題,須要根據提示信息修改程序的路徑;圖片不能顯示的問題,須要將圖片轉換爲base64形式保存,這些是pyinstaller須要完善的。
參考資料
1 http://www.myzaker.com/article/598012931bc8e0ab2a000022/,MIT 開放圖像標註工具 LabelMe 源代碼:助力機器視覺的發展
2 https://blog.csdn.net/shwan_ma/article/details/77823281,圖像語義分割,Label data的標註--Labelme(python)
3 http://www.javashuo.com/article/p-enfzwzbb-c.html,pyinstaller使用-python項目轉換成exe可執行文件