Skip to content

based on wkentaro/labelme , label classification & segmentation for diabetic_retinopathy

License

Notifications You must be signed in to change notification settings

BUPT/labelme_dr

Repository files navigation

基于Labelme开发的眼底影像标注系统 开发者:chaiwenjun000、Suzakue

该系统的主要功能:

  1. 为眼底影像选取病变等级。目前支持的有:糖尿病视网膜病变(5个级别)、黄斑水肿病变(3个级别)
  2. 在眼底影像上勾画并发症区域,并选择并发症标签。目前支持的并发症有:硬性渗出、软性渗出、微血管瘤、视网膜出血
  3. 不同的并发症区域显示为不同的线条颜色
  4. 支持模型预标注:先将图片通过深度学习模型得到结果,在这个结果的基础上进行修改
  5. 云端存储:支持将标注的图片、标注的信息以及生成的json文件存储到云端mysql数据库

使用方法:

  1. 在labelme文件夹下新建config.json文件,内容包括:

    1)"pre_label_ip": 申请模型预标注的ip地址(将眼底图像发送到该地址,服务器运行模型后会返回预标注json)

    2)"get_img_ip": 申请裁剪后图片的ip地址(模型预处理时会对图片进行裁剪,我们需要展示裁剪后的图片,否则病症区域的坐标无法与眼底图片一一对应)

    3)"token": 5566, 口令字段(通过该字段与服务器进行交互)

    4)"cloud_save_ip": 申请云端存储的ip地址(通过该地址将标注后生成的json文件存储到云端)

    5)"database_ip": 云端mysql数据库的ip地址

    6)"db_name": 云端数据库的名字

    7)"username": 数据库登录名

    8)"password": 数据库登陆密码

  2. 若要修改病变级别标签,请修改labelme/flags.txt;若要修改并发症标签,请修改labelme/labels.txt。但对于新增加的字段不支持中英文转化功能。(为贴合模型预处理的结果,我们把json文件设计为英文标签,页面仍然显示中文标签。若新加标签,json文件内将输出该标签的中文形式)

  3. 在labelme文件夹下,运行python main.py命令

以下为原版labelme标注系统的说明:

labelme: Image Polygonal Annotation with Python

PyPI Version Python Versions Travis Build Status Docker Build Status

Labelme is a graphical image annotation tool inspired by http://labelme.csail.mit.edu.
It is written in Python and uses Qt for its graphical interface.

Fig 1. Annotation example of instance segmentation.


Fig 2. VOC dataset example of instance segmentation.


Fig 3. Other examples (semantic segmentation, bbox detection, and classification).

Features

Requirements

Installation

There are options:

Anaconda

You need install Anaconda, then run below:

# python2
conda create --name=labelme python=2.7
source activate labelme
# conda install -c conda-forge pyside2
conda install pyqt
pip install labelme
# if you'd like to use the latest version. run below:
# pip install git+https://github.com/wkentaro/labelme.git

# 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

Docker

You need install docker, then run below:

wget https://raw.githubusercontent.com/wkentaro/labelme/master/labelme/cli/on_docker.py -O labelme_on_docker
chmod u+x labelme_on_docker

# Maybe you need http://sourabhbajaj.com/blog/2017/02/07/gui-applications-docker-mac/ on macOS
./labelme_on_docker examples/tutorial/apc2016_obj3.jpg -O examples/tutorial/apc2016_obj3.json
./labelme_on_docker examples/semantic_segmentation/data_annotated

Ubuntu

# 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

macOS

# macOS Sierra
brew install pyqt  # maybe pyqt5
pip install labelme  # both python2/3 should work

# or install standalone executable / app
brew install wkentaro/labelme/labelme
brew cask install wkentaro/labelme/labelme

Windows

Firstly, follow instruction in Anaconda.

# Pillow 5 causes dll load error on Windows.
# https://github.com/wkentaro/labelme/pull/174
conda install pillow=4.0.0

Usage

Run labelme --help for detail.
The annotations are saved as a JSON file.

labelme  # just open gui

# tutorial (single image example)
cd examples/tutorial
labelme apc2016_obj3.jpg  # specify image file
labelme apc2016_obj3.jpg -O apc2016_obj3.json  # close window after the save
labelme apc2016_obj3.jpg --nodata  # not include image data but relative image path in JSON file
labelme apc2016_obj3.jpg \
  --labels highland_6539_self_stick_notes,mead_index_cards,kong_air_dog_squeakair_tennis_ball  # specify label list

# semantic segmentation example
cd examples/semantic_segmentation
labelme data_annotated/  # Open directory to annotate all images in it
labelme data_annotated/ --labels labels.txt  # specify label list with a file

For more advanced usage, please refer to the examples:

FAQ

Screencast

Testing

pip install hacking pytest pytest-qt
flake8 .
pytest -v tests

Developing

git clone https://github.com/wkentaro/labelme.git
cd labelme

# Install anaconda3 and labelme
curl -L https://github.com/wkentaro/dotfiles/raw/master/local/bin/install_anaconda3.sh | bash -s .
source .anaconda3/bin/activate
pip install -e .

How to build standalone executable

Below shows how to build the standalone executable on macOS, Linux and Windows.
Also, there are pre-built executables in the release section.

# Setup conda
conda create --name labelme python==3.6.0
conda activate labelme

# Build the standalone executable
conda install pyqt
pip install .
pip install pyinstaller
pyinstaller labelme.spec
dist/labelme --version

Acknowledgement

This repo is the fork of mpitid/pylabelme, whose development has already stopped.

About

based on wkentaro/labelme , label classification & segmentation for diabetic_retinopathy

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published