Giter Site home page Giter Site logo

openlabeling's Introduction

OpenLabeling: open-source image and video labeler

GitHub stars

Image labeling in multiple annotation formats:

Latest Features

  • Jun 2019: Deep Learning Object Detection Model
  • May 2019: [ECCV2018] Distractor-aware Siamese Networks for Visual Object Tracking
  • Jan 2019: easy and quick bounding-boxe's resizing!
  • Jan 2019: video object tracking with OpenCV trackers!
  • TODO: Label photos via Google drive to allow "team online labeling". New Features Discussion

Table of contents

Quick start

To start using the YOLO Bounding Box Tool you need to download the latest release or clone the repo:

git clone --recurse-submodules [email protected]:Cartucho/OpenLabeling.git

Prerequisites

You need to install:

  • Python
  • OpenCV version >= 3.0
    1. python -mpip install -U pip
    2. python -mpip install -U opencv-python
    3. python -mpip install -U opencv-contrib-python
  • numpy, tqdm and lxml:
    1. python -mpip install -U numpy
    2. python -mpip install -U tqdm
    3. python -mpip install -U lxml

Alternatively, you can install everything at once by simply running:

python -mpip install -U pip
python -mpip install -U -r requirements.txt
  • PyTorch Visit the link for a configurator for your setup.

Run project

Step by step:

  1. Open the main/ directory

  2. Insert the input images and videos in the folder input/

  3. Insert the classes in the file class_list.txt (one class name per line)

  4. Run the code:

  5. You can find the annotations in the folder output/

    python main.py [-h] [-i] [-o] [-t] [--tracker TRACKER_TYPE] [-n N_FRAMES]
    
    optional arguments:
     -h, --help                Show this help message and exit
     -i, --input               Path to images and videos input folder | Default: input/
     -o, --output              Path to output folder (if using the PASCAL VOC format it's important to set this path correctly) | Default: output/
     -t, --thickness           Bounding box and cross line thickness (int) | Default: -t 1
     --tracker tracker_type    tracker_type being used: ['CSRT', 'KCF','MOSSE', 'MIL', 'BOOSTING', 'MEDIANFLOW', 'TLD', 'GOTURN', 'DASIAMRPN']
     -n N_FRAMES               number of frames to track object for
    

To use DASIAMRPN Tracker:

  1. Install the DaSiamRPN submodule and download the model (VOT) from google drive
  2. copy it into 'DaSiamRPN/code/'
  3. set default tracker in main.py or run it with --tracker DASIAMRPN

How to use the deep learning feature

Download the pre-trained model by clicking this link http://download.tensorflow.org/models/object_detection/ssdlite_mobilenet_v2_coco_2018_05_09.tar.gz and put it into object_detection/models. Create the models folder if necessary. Make sure to extract the model.

Note: Default model used in main_auto.py is ssdlite_mobilenet_v2_coco_2018_05_09. We can set graph_model_path in file main_auto.py to change the pretrain model

  • Using main_auto.py to automatically label data first

    TODO: explain how the user can

GUI usage

Keyboard, press:

Key Description
a/d previous/next image
s/w previous/next class
e edges
h help
q quit

Video:

Key Description
p predict the next frames' labels

Mouse:

  • Use two separate left clicks to do each bounding box
  • Right-click -> quick delete!
  • Use the middle mouse to zoom in and out
  • Use double click to select a bounding box

Authors

  • João Cartucho - Please give me your feedback: [email protected]

    Feel free to contribute

    GitHub contributors

openlabeling's People

Contributors

alexeygy avatar cartucho avatar fogx avatar jamietownsend avatar jatinmandav avatar jennac3 avatar mattkleinsmith avatar mewiss avatar omrirz avatar seanthegreat7 avatar thecamilovisk avatar vuthede avatar willjstone avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.