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

Convert annotation formats

How To Convert Tensorflow Object Detection CSV to YOLOv7 PyTorch TXT

In this guide, we show you how to convert data between the Tensorflow CSV and YOLOv7 formats for free. You can use your converted data to train YOLOv9 models and other models that support the YOLOv7 format.

Tensorflow Object Detection CSV

The intermediate human-readable format prior to creating a TFRecord.

Below, learn the structure of Tensorflow Object Detection CSV.

tensorflow.csv
filename,width,height,class,xmin,ymin,xmax,ymax
000001.jpg,500,375,helmet,111,144,134,174
000001.jpg,500,375,helmet,178,84,230,143
000007.jpg,500,466,helmet,115,139,180,230
000007.jpg,500,466,helmet,174,156,201,219
000007.jpg,500,466,helmet,197,177,231,227
000007.jpg,500,466,helmet,247,124,294,203
000007.jpg,500,466,helmet,280,127,337,208
000007.jpg,500,466,helmet,336,148,387,223
000007.jpg,500,466,helmet,375,152,410,219

YOLOv7 PyTorch TXT

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

Below, learn the structure of YOLOv7 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']

Step 1: Create a free Roboflow public workspace

Roboflow is a universal conversion tool for computer vision annotation formats. The Public plan is the best way for those exploring personal projects, class assignments, and other experiments to try Roboflow. To convert your dataset, start by creating a free workspace on the Public plan.

Step 2: Upload your data into Roboflow

Once your account has been created, click Create New Project.

Roboflow's create project form, with Object Detection selected as the project type

Upload your data to Roboflow by dragging and dropping your Tensorflow Object Detection CSV images and annotations into the upload space.

Roboflow's upload page, with a drag-and-drop area for images, annotations, videos and PDFs

Step 3: Generate Dataset Version

Next, click "Generate New Version" to generate a new version of your dataset:

Roboflow's Generate a Dataset Version page, showing the source images and train/test split for a new version

You can then apply any preprocessing or augmentation steps to your dataset:

The augmentation step of a new dataset version, with 90° Rotate and Brightness added

Step 4: Export Dataset Version

After generating, you will be prompted to Export your dataset. You can choose to receive your dataset as a .zip file or a curl download link. Choose YOLOv7 PyTorch TXT when asked in what format you want to export your data. You will see a dropdown with various options like this:

Roboflow's Download dialog, with the export format list open and COCO highlighted

Congratulations, you have successfully converted your dataset from Tensorflow Object Detection CSV format to YOLOv7 PyTorch TXT format!

Video Tutorial

Convert Computer Vision Annotation Formats Tutorial

Want to dive deeper into converting annotation formats with Roboflow? In the tutorial below, we explore how to convert your data in the Roboflow dashboard. We also discuss rejecting annotations and train-test-validation splits.

Frequently Asked Questions

Yes! It is free to convert Tensorflow Object Detection CSV data into the YOLOv7 PyTorch TXT format on the Roboflow platform.

If you have between a few and a few thousand images, converting data between these formats will be quick. But, the time it takes to convert between data formats increases with the more images you have.

Show guide

Convert other formats to YOLOv7 PyTorch TXT

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
Create Roboflow Workspace