Git Product home page Git Product logo

semi_labelme's Introduction

Semi-automated Labelme

DOI

Description

Labelme is an image annotation tool for machine learning and deep learning inspired by [1, 2]. This tool has great impact in the development of object detection and segmentation with deep learning. Thanks to Wada's contribution [3], Labelme is developed and many researchers enjoy great benefits from it.

This repository is an extension of Wada's work [3], we extend Labelme with Deep learning, consequently, we can speed up annotating images with the assistance of deep learning. In this repo, we use mmdetection [4], a famous detection toolbox, to achieve semi-automated annotating images so that users can use the detector to provide annotated images without manual annotations.

Installation

  • Python environment and we recommand Python 3.7.

     conda create -n semi_labelme python=3.7 -y
     conda activate semi_labelme
    
  • Install Pytorch and torchvision. Following the official instructions, e.g.,

    conda install pytorch torchvision -c pytorch
  • Install mmcv and mmdetection and we would recommend you install it with MIM.

    pip install openmim
    mim install mmdet
    
  • Install semi_labelme

    # Under this repo
    pip install -e .
    
  • Launch semi_labelme in the terminal

    semi_labelme
    

    Once the GUI of semi_labelme is launched, you have successfully installed this tool!

Tutorials

It is easy to use semi_labelme which is the same as Labelme (please see Labelme tutorials). But in semi_labelme, you can just click on the 'Detect' button, then, the annotations are finished! Before you use the detection function, you need to set up the config file which is in semi_labelme/config/default_config.yaml and prepare your deep learning pretrained model and its corresponding config file in ./work_dirs.

  • Config Settings

    1. You need to prepare a config_file to decide which detector you are going to use and its corresponding pre-trained model. please see model zoo in mmdetection.
    2. Modify the config file in semi_labelme/config/default_config.yaml.
  • Here we prepare an example for detecting manipulator UR10 which in ./work_dirs.

  • Detect and annotate. Take these two picture for example, you just need to click the Detect button.
    avatar avatar

    You can see the UR10 are annotated.

  • Annotate all the images

    1. you can also use batch_annotation.py to annotate all the images and use the tool to check to the annotation later.
  • For more tutorials, please see Labelme tutorials.

Citation

If you use this tool in your research, plsea cite this repository.

@software{wang_semi_labelme,
author = {Wang, Shenglin and Zhang, Jingqiong and Wang, Peng and Mihaylova, Lyudmila},
doi = {10.5281/zenodo.6393953},
license = {GPL-3},
title = {Semi-Automated Labelme, A Deep Learning Based Annotation Tool},
url = {https://github.com/wongsinglam/Semi_Labelme}
}

Acknowledgements

[1] http://labelme.csail.mit.edu

[2] https://github.com/mpitid/pylabelme

[3] Wada, K. Labelme: Image Polygonal Annotation with Python [Computer software]. https://doi.org/10.5281/zenodo.5711226

[4] MMDetection Contributors. (2018). OpenMMLab Detection Toolbox and Benchmark [Computer software]. https://github.com/open-mmlab/mmdetection

semi_labelme's People

Contributors

wongsinglam avatar

Stargazers

 avatar

Watchers

 avatar  avatar

semi_labelme's Issues

Error running SemiLabelme, the last command

(semi_labelme) workstation@workstation-HP-Z4-G4-Workstation:~/Semi_Labelme$ semi_labelme
QObject::moveToThread: Current thread (0x20ace30) is not the object's thread (0x679f690).
Cannot move to target thread (0x20ace30)

qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "/home/workstation/anaconda3/envs/semi_labelme/lib/python3.7/site-packages/cv2/qt/plugins" even though it was found.
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.

Available platform plugins are: xcb, eglfs, linuxfb, minimal, minimalegl, offscreen, vnc, wayland-egl, wayland, wayland-xcomposite-egl, wayland-xcomposite-glx, webgl.

Aborted (core dumped)

have tried reinstalling qt also, please let me know how to remove this error

Error running semi_labelme

I am getting the following error when I try run "semi_labelme". The installation when smoothly, but I can´t run the app.

(semi_labelme) C:\Semi_Labelme-master>semi_labelme
C:\Users\tmorais\Anaconda3\envs\semi_labelme\lib\site-packages\mmcv\__init__.py:21: UserWarning: On January 1, 2023, MMCV will release v2.0.0, in which it will remove components related to the training process and add a data transformation module. In addition, it will rename the package names mmcv to mmcv-lite and mmcv-full to mmcv. See https://github.com/open-mmlab/mmcv/blob/master/docs/en/compatibility.md for more details.
  'On January 1, 2023, MMCV will release v2.0.0, in which it will remove '
Traceback (most recent call last):
  File "C:\Users\tmorais\Anaconda3\envs\semi_labelme\Scripts\semi_labelme-script.py", line 33, in <module>
    sys.exit(load_entry_point('semi-labelme', 'console_scripts', 'semi_labelme')())
  File "C:\Users\tmorais\Anaconda3\envs\semi_labelme\Scripts\semi_labelme-script.py", line 25, in importlib_load_entry_point
    return next(matches).load()
  File "C:\Users\tmorais\Anaconda3\envs\semi_labelme\lib\site-packages\importlib_metadata\__init__.py", line 208, in load
    module = import_module(match.group('module'))
  File "C:\Users\tmorais\Anaconda3\envs\semi_labelme\lib\importlib\__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1006, in _gcd_import
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 728, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "c:\semi_labelme-master\semi_labelme\__main__.py", line 14, in <module>
    from semi_labelme.app import MainWindow
  File "c:\semi_labelme-master\semi_labelme\app.py", line 37, in <module>
    from mmdet.apis import init_detector, inference_detector
  File "C:\Users\tmorais\Anaconda3\envs\semi_labelme\lib\site-packages\mmdet\apis\__init__.py", line 2, in <module>
    from .inference import (async_inference_detector, inference_detector,
  File "C:\Users\tmorais\Anaconda3\envs\semi_labelme\lib\site-packages\mmdet\apis\inference.py", line 8, in <module>
    from mmcv.ops import RoIPool
  File "C:\Users\tmorais\Anaconda3\envs\semi_labelme\lib\site-packages\mmcv\ops\__init__.py", line 3, in <module>
    from .active_rotated_filter import active_rotated_filter
  File "C:\Users\tmorais\Anaconda3\envs\semi_labelme\lib\site-packages\mmcv\ops\active_rotated_filter.py", line 12, in <module>
    ['active_rotated_filter_forward', 'active_rotated_filter_backward'])
  File "C:\Users\tmorais\Anaconda3\envs\semi_labelme\lib\site-packages\mmcv\utils\ext_loader.py", line 13, in load_ext
    ext = importlib.import_module('mmcv.' + name)
  File "C:\Users\tmorais\Anaconda3\envs\semi_labelme\lib\importlib\__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
ImportError: DLL load failed: The specified procedure could not be found.

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.