RectLabel

An image annotation tool to label images for bounding box object detection and segmentation.

Customize the label dialog to combine with attributes

Open folder

Open a folder which includes images.

Click the right arrow or left arrow button to change the image.

To adjust the contrast of the image, click the contrast button on the upper right corner.

Create box

Drag on the image to draw a box.

When you finished dragging, the label dialog would open.

The label would be added to the label table on the right.

Drag the center of the box to move the box.

Drag one of the four corner points to transform the box.

To change the color of the box, click the color picker on the upper right corner.

Create polygon and cubic bezier

Click to add points.

Press enter key to finish drawing.

Press escape key to cancel drawing.

The number of points has to be greater equal than 3.

When you right click on the point, edit menu would open.

"Add a point forward" and "Add a point backward" to add a point.

"Delete this point" to delete the point.

"Point size up" and "Point size down" to change the size of points.

When you right click on the polygon, edit menu would open.

"To cubic bezier" and "To polygon" toggle the polygon type.

Move

Drag the box or the image to move its position.

For the image, mouse wheel can be used, too.

When you click on the box or the label, four corner points would open.

Drag one of the four corner points to transform the box.

When you right click on the box or the label, edit menu would open.

"Focus" to quick zoom to the existing box.

"Edit" opens the label dialog, "Duplicate" to duplicate the box, and "Delete" to delete the box.

When you double click on the box or the label, the label dialog would open.

To change the layer order of the box, drag the label in the label table upward or downward.

Rotate

Drag up or down to rotate the box.

Zoom in, Zoom out

Click a position to zoom in or zoom out.

Zoom fit

Clear zoom.

Trackpad

Slide two fingers up or down to scroll the image.

Double-tap with two fingers to zoom in and out.

Pinch with two fingers to zoom in or out.

Swipe left or right with three fingers to show the previous or next image.

To use Swipe, you have to change the System Preferences on your mac.

For "Swipe between pages", select "Swipe with two or three fingers" or "Swipe with three fingers".

For "Swipe between full-screen apps", select "Swipe left or right with four fingers".

Save

We create "annotations" folder in the folder you opened.

The label file is saved as "image_file_name.xml".

Settings

Settings for objects, attributes, hotkeys, and labeling fast

Objects

When you want to label "sneakers",

which uses 3 attributes "color", "brand", and "side".

Settings for objects, attributes, hotkeys, and labeling fast

Attributes

The label "sneakers-yellow-converse-right" is a combination of the object and attributes.

"-" is used as a separator so that "-" in the attribute name would be converted to "_".

To change the name on the items table, click or press the enter key on the selected item.

Settings for objects, attributes, hotkeys, and labeling fast

Hotkeys

Customize the hotkeys to make your labeling work faster.

Here is the default hotkeys.

Open folder ⌘O
Next image
Prev image
Jump to Image Index ⌘J
Save ⌘S
Load Prev Image's Labels ⌘I
Set Image Index to load Labels ⇧⌘I
Create box ⌘N
Create polygon ⌘P
Create cubic bezier ⇧⌘B
Move ⌘M
Rotate ⌘R
Zoom in ⇧⌘↑
Zoom out ⇧⌘↓
Zoom fit ⌘0
Settings ⇧⌘T
Focus box ⌘G
Duplicate box ⌘D
Delete box
Delete image ⌘⌫
Hide other boxes ⌘B
Skip label dialog when create ⌘K
Next label ⌘→
Prev label ⌘←
Clear label history ⇧⌘0
Search images ⌘F
Clear search images ⇧⌘O
Layer up ⌘↑
Layer down ⌘↓

Load labels of other images

Press the shortcut key "command + I" to load the previous image's labels.

If you want to load the 1st image's labels on the 3rd image, press the shortcut key "shift + command + I" on the 1st image and press the shortcut key "command + I" on the 3rd image.

Settings for objects, attributes, hotkeys, and labeling fast

Search images

When you open the folder, before you start searching, you have to "indexing" once.

After you modified label names, to reflect them to the search result, you have to "indexing" again.

With the empty search text, you can search images not labeled yet.

To clear the search result, use "Clear search images".

If the number of search result is zero, we do nothing.

Settings for objects, attributes, hotkeys, and labeling fast

Label fast

"Auto Save" to skip the confirm dialog when you change the image.

"Skip Label Dialog When Create" to skip the label dialog when you create a box.

"Use 1-click buttons" shows 1-click buttons on the label dialog using the label history.

"Close dialog when select a object" to skip clicking the OK button.

"Maintain zoom when change the image" to maintain zoom when you change the image.

Settings for objects, attributes, hotkeys, and labeling fast

Others

"Allow outside the image" to move the box outside the image.

"Fix the image position" not to move the image position with dragging and mouse wheel.

"Use truncated, occluded and difficult" shows those parameters on the label dialog.

"Use aspect ratio when draw boxes" shows the aspect ratio on the objects tab.

"Hide arrow buttons" to hide arrow buttons on the image.

"Hide label name on the image" to hide the current label of the label history on the image.

"Annotator" is saved in the xml file.

Export and Import the Settings File

From File menu, you can export the current settings file and import to another computer.

Convert JSON files to XML files

From File menu, you can convert the JSON files to XML files in the folder.

Format

The label file is saved in the PASCAL VOC format.

The top-left pixel in the image has coordinates (1, 1).

The VOC2007 Development Kit

Here is an example of the PASCAL VOC format.

<annotation>
    <folder>_image_fashion</folder>
    <filename>brooke-cagle-39574.jpg</filename>
    <size>
        <width>1200</width>
        <height>800</height>
        <depth>3</depth>
    </size>
    <segmented>0</segmented>
    <object>
        <name>head</name>
        <pose>Unspecified</pose>
        <truncated>0</truncated>
        <difficult>0</difficult>
        <bndbox>
            <xmin>549</xmin>
            <ymin>251</ymin>
            <xmax>625</xmax>
            <ymax>335</ymax>
        </bndbox>
    </object>
    <object>
        <name>earing</name>
        <pose>Unspecified</pose>
        <truncated>0</truncated>
        <difficult>0</difficult>
        <polygon>
            <x1>388</x1>
            <y1>411</y1>
            <x2>447</x2>
            <y2>404</y2>
            <x3>443</x3>
            <y3>374</y3>
            <x4>384</x4>
            <y4>381</y4>
        </polygon>
    </object>
    <object>
        <name>sunglasses</name>
        <pose>Unspecified</pose>
        <truncated>0</truncated>
        <difficult>0</difficult>
        <cubic_bezier>
            <x1>801</x1>
            <y1>378</y1>
            <x1_c1>808</x1_c1>
            <y1_c1>357</y1_c1>
            <x1_c2>793</x1_c2>
            <y1_c2>398</y1_c2>
            <x2>835</x2>
            <y2>378</y2>
            <x2_c1>844</x2_c1>
            <y2_c1>398</y2_c1>
            <x2_c2>825</x2_c2>
            <y2_c2>357</y2_c2>
            <x3>838</x3>
            <y3>461</y3>
            <x3_c1>830</x3_c1>
            <y3_c1>481</y3_c1>
            <x3_c2>845</x3_c2>
            <y3_c2>440</y3_c2>
            <x4>805</x4>
            <y4>459</y4>
            <x4_c1>795</x4_c1>
            <y4_c1>438</y4_c1>
            <x4_c2>814</x4_c2>
            <y4_c2>479</y4_c2>
        </cubic_bezier>
    </object>
</annotation>

Found some problems?

Post the problem to our Github issues page

Have questions?

Send an email to support@rectlabel.com

Thank you.