๐Ÿ’พOutputs

One can download the annotated image into various formats. Following are the examples of annotated image of an orange.

The configuration can be downloaded using built in configuration or using YOLO format.

{
   "orange.png":{
      "configuration":[
         {
            "image-name":"orange.png",
            "regions":[
               {
                  "region-id":"47643630436867834",
                  "image-src":"http://127.0.0.1:5000/uploads/orange.png",
                  "class":"Orange",
                  "comment":"",
                  "tags":"",
                  "points":[
                     [
                        0.4685613390092879,
                        0.7693498452012384
                     ],
                     [
                        0.6781491873065015,
                        0.6640866873065016
                     ],
                     [
                        0.723921246130031,
                        0.5092879256965944
                     ],
                     [
                        0.7480118034055728,
                        0.34055727554179566
                     ],
                     [
                        0.5841960139318886,
                        0.14705882352941177
                     ],
                     [
                        0.41917569659442727,
                        0.13312693498452013
                     ],
                     [
                        0.30113196594427244,
                        0.22755417956656346
                     ],
                     [
                        0.21079237616099072,
                        0.4411764705882353
                     ],
                     [
                        0.26620065789473685,
                        0.6764705882352942
                     ],
                     [
                        0.4011077786377709,
                        0.7879256965944272
                     ]
                  ]
               },
               {
                  "region-id":"5981359766055432",
                  "image-src":"http://127.0.0.1:5000/uploads/orange.png",
                  "class":"Apple",
                  "comment":"",
                  "tags":"",
                  "x":[
                     0.1770655959752322
                  ],
                  "y":[
                     0.11764705882352941
                  ],
                  "w":[
                     0.5854005417956657
                  ],
                  "h":[
                     0.6981424148606811
                  ]
               }
            ],
            "color-map":{
               "Orange":[
                  244,
                  67,
                  54
               ],
               "Apple":[
                  33,
                  150,
                  243
               ]
            }
         }
      ]
   }
}

YOLO Format

YOLO format is also supported by A.Lab. Below is an example of annotated ripe and unripe tomatoes. In this example, 0 represents ripe tomatoes and 1 represents unripe ones.

Annotating it in A.Lab.

The label of the above image are as follows:

0 0.213673 0.474717 0.310212 0.498856
0 0.554777 0.540507 0.306350 0.433638
1 0.378432 0.681239 0.223970 0.268879

Applying the generated labels we get following results.

Normalization process of YOLO annotations

Example Conversion

To convert non-normalized bounding box coordinates (xmax, ymax, xmin, ymin) to YOLO format (xcenter, ycenter, width, height):

# Assuming row contains your bounding box coordinates
row = {'xmax': 400, 'xmin': 200, 'ymax': 300, 'ymin': 100}
class_id = 0  # Example class id (replace with actual class id)

# Image dimensions
WIDTH = 640  # annotated image width
HEIGHT = 640  # annotated image height

# Calculate width and height of the bounding box
width = row['xmax'] - row['xmin']
height = row['ymax'] - row['ymin']

# Calculate the center of the bounding box
x_center = row['xmin'] + (width / 2)
y_center = row['ymin'] + (height / 2)

# Normalize the coordinates
normalized_x_center = x_center / WIDTH
normalized_y_center = y_center / HEIGHT
normalized_width = width / WIDTH
normalized_height = height / HEIGHT

# Create the annotation string in YOLO format
content = f"{class_id} {normalized_x_center} {normalized_y_center} {normalized_width} {normalized_height}"
print(content)

The above conversion will give us YOLO format string.

0 0.46875 0.3125 0.3125 0.3125

Last updated