All Projects → Slava → Label Tool

Slava / Label Tool

Licence: mit
Web application for image labeling and segmentation

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Label Tool

Rectlabel Support
RectLabel - An image annotation tool to label images for bounding box object detection and segmentation.
Stars: ✭ 338 (+50.22%)
Mutual labels:  segmentation, image-annotation
Com.unity.perception
Perception toolkit for sim2real training and validation
Stars: ✭ 208 (-7.56%)
Mutual labels:  segmentation
Seismic Deeplearning
Deep Learning for Seismic Imaging and Interpretation
Stars: ✭ 198 (-12%)
Mutual labels:  segmentation
Portraitnet
Code for the paper "PortraitNet: Real-time portrait segmentation network for mobile device" @ CAD&Graphics2019
Stars: ✭ 207 (-8%)
Mutual labels:  segmentation
Sparse Structured Attention
Sparse and structured neural attention mechanisms
Stars: ✭ 198 (-12%)
Mutual labels:  segmentation
Trixi
Manage your machine learning experiments with trixi - modular, reproducible, high fashion. An experiment infrastructure optimized for PyTorch, but flexible enough to work for your framework and your tastes.
Stars: ✭ 211 (-6.22%)
Mutual labels:  segmentation
Zf unet 224 pretrained model
Modification of convolutional neural net "UNET" for image segmentation in Keras framework
Stars: ✭ 195 (-13.33%)
Mutual labels:  segmentation
Deepsegment
A sentence segmenter that actually works!
Stars: ✭ 211 (-6.22%)
Mutual labels:  segmentation
Ttnet Real Time Analysis System For Table Tennis Pytorch
Unofficial implementation of "TTNet: Real-time temporal and spatial video analysis of table tennis" (CVPR 2020)
Stars: ✭ 211 (-6.22%)
Mutual labels:  segmentation
Awesome Data Annotation
A list of tools for annotating data, managing annotations, etc.
Stars: ✭ 204 (-9.33%)
Mutual labels:  image-annotation
Semantic Segmentation Suite
Semantic Segmentation Suite in TensorFlow. Implement, train, and test new Semantic Segmentation models easily!
Stars: ✭ 2,395 (+964.44%)
Mutual labels:  segmentation
Mman
( ECCV2018 ) Macro-Micro Adversarial Network for Human Parsing
Stars: ✭ 200 (-11.11%)
Mutual labels:  segmentation
Fcn
Chainer Implementation of Fully Convolutional Networks. (Training code to reproduce the original result is available.)
Stars: ✭ 211 (-6.22%)
Mutual labels:  segmentation
Keras Unet
Helper package with multiple U-Net implementations in Keras as well as useful utility tools helpful when working with image semantic segmentation tasks. This library and underlying tools come from multiple projects I performed working on semantic segmentation tasks
Stars: ✭ 196 (-12.89%)
Mutual labels:  segmentation
Fast portrait segmentation
Fast (aimed to "real time") Portrait Segmentation on mobile phone
Stars: ✭ 215 (-4.44%)
Mutual labels:  segmentation
Multi Task Learning Pytorch
PyTorch implementation of multi-task learning architectures, incl. MTI-Net (ECCV2020).
Stars: ✭ 190 (-15.56%)
Mutual labels:  segmentation
Ags
Learning Unsupervised Video Object Segmentation through Visual Attention (CVPR19, PAMI20)
Stars: ✭ 202 (-10.22%)
Mutual labels:  segmentation
Sudachipy
Python version of Sudachi, a Japanese tokenizer.
Stars: ✭ 207 (-8%)
Mutual labels:  segmentation
Pytorch Unet
Tunable U-Net implementation in PyTorch
Stars: ✭ 224 (-0.44%)
Mutual labels:  segmentation
Pyimsegm
Image segmentation - general superpixel segmentation & center detection & region growing
Stars: ✭ 213 (-5.33%)
Mutual labels:  image-annotation

Image Labeling Tool

This web app allows you to label images, draw bounding boxes, shapes, collect information in forms with dropdowns, checkboxes and inputs.

The labeling UI provides a lot of features for drawing polygon shapes, editing them with assisted tracing with auto-tracing based on edges or an external ML model.

Use it when you need to segment and label multiple images, either yourself or by a group. This tool makes it easy to gather and later export the data in a format compatible with LabelMe. You can use this tool as an alternative to self-hosted tools like LabelMe, js-segment-annotator, etc or hosted services like LabelBox.

Labeling Demo

Demo of the labeling interface with all data served statically (no persistence, reverts on refresh).

Screenshots

Bounding box labeling:

Segmentation with polygons:

Automatic tracing:

Assisted segmentation with Tensor Flow Serving:

Project configuration and custom labeling UI:

Development

Install npm packages for client, server and the top-level folder:

yarn install
cd server && yarn install && cd ..
cd client && yarn install && cd ..

The server will run migrations on the first run if the database file doesn't exist already.

Run in the development mode:

env PORT=3000 API_PORT=3001 yarn start

Build For Production

Build the client app:

cd client && yarn run build && cd ..

Now you can run the server app in prod mode serving the client build:

env PORT=80 NODE_ENV=production node server/src/index.js

Config

The following environment variables can be tweaked:

  • PORT - the part the app is served on (dev, prod)
  • API_PORT - to differentiate the port for the API to run on (should be only used in dev)
  • UPLOADS_PATH - absolute path where the app stores uploaded images, defaults to server's folder 'uploads'
  • DATABASE_FILE_PATH - absolute path of the file where the app stores the SQLite data. Defaults to database.sqlite in the server folder
  • ADMIN_PASSWORD - sets a simple password on all non-labeler actions (stored in a hased form).

Run in Docker

The default Dockerfile points to /uploads and /db/db.sqlite for persisted data, make sure to prepare those in advance to be mounted over. Here is an example mounting a local host directory:

mkdir ~/containersmnt/
mkdir ~/containersmnt/db/
mkdir ~/containersmnt/uploads/

Now build the container:

docker build -t imslavko/image-labeling-tool .

Run attaching the mounts:

docker run -p 5000:3000 -u $(id -u):$(id -g) -v ~/containersmnt/uploads:/uploads -v ~/containersmnt/db:/db -d imslavko/image-labeling-tool

Access the site at localhost:5000.

Run with docker-compose

  • Checkout the docker-compose.yml for detailed configuration.
  • Need to set & export environment variable CURRENT_UID before running.
# if it needs to build the docker image,
CURRENT_UID=$(id -u):$(id -g) docker-compose up -d --build

# if it only needs to run,
CURRENT_UID=$(id -u):$(id -g) docker-compose up -d

Project Support and Development

This project has been developed as part of my internship at the NCSOFT Vision AI Lab in the beginning of 2019.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].