Prepare Your Object Detection Dataset
Prepare Your Object Detection Dataset Object detection requires images with annotated bounding boxes around objects. This guide covers data requirements and annotation workflows.
Data Requirements
Requirement Recommendation Minimum images 100+ per object class Formats JPG, PNG, WEBP Annotation format YOLO, COCO, or Pascal VOC Image quality Clear, well-lit, representative
Annotation Formats
SeeMe.ai supports multiple annotation formats:
YOLO Format
# One .txt file per image, same filename
# Each line: class_id x_center y_center width height (normalized 0-1)
0 0.5 0.5 0.2 0.3
1 0.25 0.75 0.1 0.15COCO Format
{
"images" : [{ "id" : 1 , "file_name" : "image1.jpg" , "width" : 1920 , "height" : 1080 }],
"annotations" : [
{ "id" : 1 , "image_id" : 1 , "category_id" : 0 , "bbox" : [ 100 , 200 , 150 , 300 ]}
],
"categories" : [{ "id" : 0 , "name" : "car" }]
} Pascal VOC Format
<annotation>
<object>
<name> car</name>
<bndbox>
<xmin> 100</xmin><ymin> 200</ymin>
<xmax> 250</xmax><ymax> 500</ymax>
</bndbox>
</object>
</annotation> Using the Web Platform
Create Dataset Upload Images Annotate
Create Dataset
Navigate to Datasets > New Dataset Select Object Detection as the type Enter name and description Click Create Upload Images
Option A: Upload with existing annotations
ZIP file with images and annotation files Annotations auto-imported Option B: Upload for annotation
Upload images only Annotate using built-in tools Annotate Objects
Open an image in the annotation interface Select the Bounding Box tool Click and drag to draw boxes around objects Select the label for each box Save and move to next image Keyboard shortcuts:
N - Next imageP - Previous imageD - Delete selected box1-9 - Quick label selectionUsing the Python SDK
Create Dataset Import YOLO Import COCO REST API
from seeme import Client
client = Client ()
# Create object detection dataset
dataset = client . create_dataset (
name = "Vehicle Detection" ,
description = "Cars, trucks, and motorcycles" ,
content_type = "object_detection"
) # Import YOLO format dataset
# Structure:
# dataset/
# images/
# img1.jpg
# img2.jpg
# labels/
# img1.txt
# img2.txt
# classes.txt
client . import_yolo_dataset (
dataset_id = dataset . id ,
version_id = version . id ,
images_path = "./dataset/images" ,
labels_path = "./dataset/labels" ,
classes_path = "./dataset/classes.txt"
) # Import COCO format dataset
client . import_coco_dataset (
dataset_id = dataset . id ,
version_id = version . id ,
images_path = "./coco/images" ,
annotations_path = "./coco/annotations.json"
) # Create object detection dataset
curl -X POST "https://api.seeme.ai/api/v1/datasets" \
-H "Authorization: myusername:my-api-key" \
-H "Content-Type: application/json" \
-d '{
"name": "Vehicle Detection",
"description": "Cars, trucks, and motorcycles",
"content_type": "object_detection"
}'
# Create dataset version
curl -X POST "https://api.seeme.ai/api/v1/datasets/{dataset_id}/versions" \
-H "Authorization: myusername:my-api-key" \
-H "Content-Type: application/json" \
-d '{"name": "v1"}'
# Upload image with bounding box annotation
curl -X POST "https://api.seeme.ai/api/v1/versions/{version_id}/items" \
-H "Authorization: myusername:my-api-key" \
-F "file=@./image.jpg" \
-F "split_id={split_id}"
# Add bounding box annotation
curl -X POST "https://api.seeme.ai/api/v1/items/{item_id}/annotations" \
-H "Authorization: myusername:my-api-key" \
-H "Content-Type: application/json" \
-d '{
"label_id": "your-label-id",
"bbox": {
"x": 0.2,
"y": 0.3,
"width": 0.4,
"height": 0.3
}
}' Best Practices
Annotate consistently - Same rules for all annotatorsInclude edge cases - Partially visible, occluded objectsBalance classes - Similar counts per object typeTight boxes - Minimize background in boxesQuality check - Review 10% of annotationsNext Step
2. Annotate Objects →