Code Monkey home page Code Monkey logo

fastannotationmultipleobjects's Introduction

FastAnnotationMultipleObjects

This tool can be used to annotate large number of images (draw bounding boxes and assign label) in PASCAL VOC format very fast. Our tool is at least 2 times faster than LabelImg(https://github.com/tzutalin/labelImg) for images containing multiple objects per image. You can annotate around 1500 images per man day (8 hours). If your data set containg only one objrct per image, use our other tool FastAnnotationSingleObject https://github.com/udaypk/FastAnnotationSingleObject which is can be 10x faster than LabelImg (1000 images per man hour).

  1. Description: AnnotationToolMultipleObjects.exe should be used if your image set has multiple objects per image.
    The tool automates many steps comapred to LableImg and other such tools.
    Number of clicks, assigning a tag and saving xml are all done automatically without any user intervention.
    If your image set has only one object per image, use AnnotationToolSingleObject.exe which is much faster. https://github.com/udaypk/FastAnnotationSingleObject

  2. Prerequisites and requirements:
    a. Install MATLAB 2017a MCRInstaller.exe
    Windows http://ssd.mathworks.com/supportfiles/downloads/R2017a/deployment_files/R2017a/installers/win64/MCR_R2017a_win64_installer.exe
    Linux http://ssd.mathworks.com/supportfiles/downloads/R2017a/deployment_files/R2017a/installers/glnxa64/MCR_R2017a_glnxa64_installer.zip
    MacOS http://ssd.mathworks.com/supportfiles/downloads/R2017a/deployment_files/R2017a/installers/maci64/MCR_R2017a_maci64_installer.dmg.zip

  3. Usage: a. Download AnnotationToolMultipleObjects.exe and AnnotationToolMultipleObjectsConfig.xml fron Executables folder.
    b. It is mandatory to follow Pascal VOC directory structure for stroing the images you want to annotate.
    All images should be in VOC2012\JPEGImages
    All annotation xmls will be generated in VOC2012\Annotations
    c. Update AnnotationToolMultipleObjectsConfig.xml as per your requirement before running AnnotationToolMultipleObjects.exe. See below for details of xml configuration.
    d. Double click on AnnotationToolMultipleObjects.exe to start annotation.
    e. You will see a pop up asking for confirmation of the image folder path and object tag.
    f. On pressing "Proceed" the tool loads first image.
    g. Draw the bounding box on that image. The tool will prompt to select a tag for the bounding box based on tags configured in AnnotationToolMultipleObjectsConfig.xml.
    h. You can draw multiple bounding boxes to annotate all the objects in the image.
    i. After completing annotating all objects in the image press "d" on keyboard. The tool automatically creates an annotation file in Annotations folder and loads next image without any manual intervention.
    j. Proceed annotationg all images.
    k. If you have drawn a wrong bounding box, you can simply press "x" to cancel the previous bounding box and tag.
    l. You can reload current image deleting all previous bounding boxes in the current image by pressing "s".
    m. Press "d" to go to next image.
    n. Press "a" to go back to previous image.

  4. Updating AnnotationToolMultipleObjectsConfig.xml
    Modify the parameters in config tag before starting the exe.

     folderPath::is absolute path to basefolder. 
     Example: If you want to annotate cat images and all your images are located in C:\Data\Corpus\CatsAndDogs\VOC2012\JPEGImages
     <folderPath>C:\Data\Corpus\CatsAndDogs\VOC2012\</folderPath> 
    
     firstImage::Tool starts loading images in alphabetical order. This tag indicates the first image you want to load.
     Example: If you have images Cat001.jpg, Cat002.jpg ...Cat999.jpg
     You have annotated upto Cat245.jpg yesterday, you can modify the firstImage tag to: 
     <firstImage>Cat246.jpg</firstImage> 
     and the tool will load images Cat246.jpg. 
     
     objectName::defines the class tag. This tool allows you to tag multiple classes per folder.
     Example: 
     <objectName>cat</objectName>
     <objectName>dog</objectName>
     
     You can have any number of objectName tags but at least one objectName is mandatory.
    
  5. Usage Example:
    Usage video: "ToDO"
    This tool should be used if your image set contains multiple objects per image.
    Your goal is build an annotated corpus for object classification for cat and dog.
    You have images that contain any number of cat or dogs per image.
    Create a folder CatsAndDogs
    Copy all your images into CatsAndDogs\VOC2012\JPEGImages directory.
    Update the AnnotationToolMultipleObjectsConfig.xml file as shown:
    <folderPath>C:\Data\Corpus\CatsAndDogs\VOC2012\</folderPath>
    <firstImage>Cat001.jpg</firstImage>
    <objectName>cat</objectName>
    <objectName>dog</objectName>
    Run AnnotationToolMultipleObjects.exe.
    Draw bounding boxes in each image.
    All the annotation files will be created in C:\Data\Corpus\CatsAndDogs\VOC2012\Annotations folder

fastannotationmultipleobjects's People

Contributors

udaypk avatar

Stargazers

Ravi P avatar nithin varghese avatar  avatar Brendan Fortuner 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.