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.
Copy {
"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
]
}
}
]
}
}
Annotating it in A.Lab.
Copy 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
To convert non-normalized bounding box coordinates (xmax, ymax, xmin, ymin) to YOLO format (xcenter, ycenter, width, height):
Copy # 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.
Copy 0 0.46875 0.3125 0.3125 0.3125