Visual Intelligence Summit: Oct 22 in San Francisco Get your ticket

YOLOv5 PyTorch TXT

A modified version of YOLO Darknet annotations that adds a YAML file for model config.

Overview

In June 2020, Glenn Jocher released a followup to his popular YOLOv3 PyTorch Ultralytics repository and dubbed it YOLOv5. The model uses an annotation format similar to YOLO Darknet TXT but with the addition of a YAML file containing model configuration and class values.

If you're looking to train YOLOv5, Roboflow is the easiest way to get your annotations in this format. We can seamlessly convert 30+ different object detection annotation formats to YOLOv5 TXT and we automatically generate your YAML config file for you. Plus we offer many public datasets already pre-converted for this format.

Format Description

Below, learn the structure of YOLOv5 PyTorch TXT.

Each image has one txt file with a single line for each bounding box. The format of each row is

class_id center_x center_y width height

where fields are space delimited, and the coordinates are normalized from zero to one.

Note: To convert to normalized xywh from pixel values, divide x (and width) by the image's width and divide y (and height) by the image's height.

001.txt
1 0.617 0.3594420600858369 0.114 0.17381974248927037
1 0.094 0.38626609442060084 0.156 0.23605150214592274
1 0.295 0.3959227467811159 0.13 0.19527896995708155
1 0.785 0.398068669527897 0.07 0.14377682403433475
1 0.886 0.40879828326180256 0.124 0.18240343347639484
1 0.723 0.398068669527897 0.102 0.1609442060085837
1 0.541 0.35085836909871243 0.094 0.16952789699570817
1 0.428 0.4334763948497854 0.068 0.1072961373390558
1 0.375 0.40236051502145925 0.054 0.1351931330472103
1 0.976 0.3927038626609442 0.044 0.17167381974248927

The `data.yaml` file contains configuration values used by the model to locate images and map class names to class_id's.

data.yaml
train: ../train/images
val: ../valid/images

nc: 3
names: ['head', 'helmet', 'person']

Split and Merge Datasets

With Roboflow supervision, an open source Python package with utilities for completing computer vision tasks, you can merge and split detections in YOLOv5 PyTorch TXT. Read our dedicated guides to learn how to merge and split YOLOv5 PyTorch TXT detections.

Split detections in YOLOv5 PyTorch TXT

Python
import supervision as sv

ds = sv.DetectionDataset.from_yolo(
    images_directory_path=f"dataset/train/images",
    annotations_directory_path=f"dataset/train/labels",
    data_yaml_path=f"dataset/data.yaml"
)

train_ds, test_ds = ds.split(split_ratio=0.7,
                             random_state=42, shuffle=True)
len(train_ds), len(test_ds)
# (700, 300)

Supported Models

Below, see model architectures that require data in the YOLOv5 PyTorch TXT format when training a new model.

  • YOLO-NASObject Detection

    YOLO-NAS is a real-time object detector from Deci AI built with Neural Architecture Search, offering quantization-friendly blocks for edge deployment.

  • YOLOv5Object Detection

    YOLOv5 is Ultralytics' PyTorch-based object detection model with an integrated training pipeline, widely used in production for custom detection tasks.

Start where you are

Speak with an AI expert

Our team will help you start solving business problems on the first call.

  • Solution architecting
  • Live demonstration
  • Pricing and specifications
  • Feasibility assessment

Over 16,000 organizations build with Roboflow.

Rivian
Pella
Chobani
USG Corporation
BNSF Railway
American Woodmark
Outcomes
Patrick Industries
Peer Robotics