Glenn Jocher: Image Augmentation in YOLO v5 and Beyond
Key Takeaways
Glenn Jocher discusses image augmentation in YOLO v5, including techniques such as rotation, shear, gain scaling, and color space scaling, as well as the use of a mosaic data loader, and how these augmentations improve model performance.
Full Transcript
[Music] i'd love if you could touch a bit upon the augmentations that you're taking advantage of and how those are improving model performance i started off essentially trying to throw everything at the augmentation pipeline i had rotations i had shear i had gain scaling and then of course color space scaling so we had hsb scaling different ratios and lastly i use this mosaic data loader which would take four images randomly place them and then apply all these augmentations at the same time so augmentation is a tricky thing i actually discovered that some of the augmentations that i'd applied even in small amounts were hurting the results on the coco dataset and a lot of the time you don't get the satisfaction of really understanding why you get a certain result in ml so it takes a lot of experimenting a lot of trial and error so i've actually toned back the augmentation techniques now and in the latest repository in yolo v5 we have a high degree of scaling augmentation and we use a mosaic data loader and we do color space augmentation so the augmentations are done a little bit differently in v5 than in the v3 repo that i had and v3 literally upscale the entire image and pass that in as a batch during training so one of the downsides of this is that it uses up a lot of memory if you want to scale up your images very large so in v5 rather than scaling the actual image we keep the image the same size so for example the default training size is 640 pixels so we input 640 images for every single batch and the augmentation the scaling is done within a feed transform that'll increase the size of the image or decrease it but it always crops it at the same 640. um it'll randomly translate it also i forgot that but this is actually it's a bit of an improvement because it means that every image in the batch can be scaled differently from every other image in the batch which increases variation and it also means that you don't need extra memory to train very large images so when you do the very large image you're leaving some training performance on the table when you do smaller images so if you have a batch that decides to fit into memory that's this big and then one of your batches is smaller like this you have a whole lot of gpu memory that's not being used for that smaller batch so this exploits the gpu memory much better one interesting nugget in that is it sounds like you ran a seater's experiments to identify which augmentations would generalize effectively to any domain what work do you think is left to be done in ml in augmentation optimization strategies because we see in our own tests that augmentation is dependent upon the domain so it's really tough to like always use this checklist of augmentations right mosaic generally increases performance i don't know that we find a founding place where it decreases performance if you're building mobile apps rotation sometimes is really useful because the orientation of the phone to the device to the object is going to be quite varied i'm curious to hear if augmentation is something that you believe might be contextual to the problem but you're including it in the training pipeline how do you think the augmentation portion of training will evolve well this is an excellent question and i don't think that there's any easy answers like you said there's some domains like satellite imagery where rotation is incredibly important uh and then there's others for example like a lot of the cocoa dataset for example where like a lot of the images are the way you usually take them with a cell phone and they're just not rotated that much in the short term the medium term and probably the long term i think there's always going to have to be a human hand guiding the augmentation strategy at least a certain extent of course there's fully automated methods like auto augments yeah which efficient debt also uses for some of their large models but again this is the bridge too far for i think most organizations to spend the money in the gpu time these are the two answers essentially there's a brute force method if you can manage it then more power to you but if you can't then uh i don't know there's there's not quite any easy answers today other than relying on your own experience and the experience of those around you yeah that makes a lot of sense [Music]
Original Description
Subscribe for future exclusive interview content: https://bit.ly/rf-yt-sub
Glenn Jocher, the creator of YOLOv5, discusses how he approached adding augmentations to the YOLO v5 training pipeline. He also discusses why he believes human input will be a key component in the future of augmentation.
Learn how to train YOLOv5: https://blog.roboflow.com/how-to-train-yolov5-on-a-custom-dataset/
Improve your computer vision models: https://roboflow.com
Watch on YouTube ↗
(saves to browser)
Sign in to unlock AI tutor explanation · ⚡30
Playlist
Uploads from Roboflow · Roboflow · 30 of 60
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
▶
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
YOLOv3 PyTorch Notebook Tutorial
Roboflow
How to Train YOLOv4 on a Custom Dataset (PyTorch)
Roboflow
How to Train YOLOv5 on a Custom Dataset
Roboflow
How to Use the Roboflow Dataset Health Check
Roboflow
What is Mean Average Precision (mAP)?
Roboflow
How to Use the Roboflow Model Library
Roboflow
How to Train EfficientDet in TensorFlow 2 Object Detection
Roboflow
How to Train YOLO v4 Tiny (Darknet) on a Custom Dataset
Roboflow
Ask the Roboflow Team Anything - Episode 1
Roboflow
Exploring The COCO Dataset
Roboflow
Community Spotlight: Improving Uno with Computer Vision
Roboflow
Mosaic Data Augmentation - Deep Dive
Roboflow
Hands on with the OAK-1
Roboflow
Glenn Jocher: What is New in YOLO v5?
Roboflow
How to Use Amazon Rekognition Custom Labels and Roboflow to Build an Object Detection Model
Roboflow
An Interview with Brandon Gilles, Luxonis Founder and OAK Chief Architect
Roboflow
How to Train a Custom Mobile Object Detection Model (with YOLOv4 Tiny and TensorFlow Lite)
Roboflow
Tackling the Small Object Problem in Object Detection
Roboflow
Fast.ai v2 Released - What's New?
Roboflow
Teaser: Roboflow Train (1-Click Computer Vision AutoML)
Roboflow
How to Train a Custom Resnet34 Image Classification Model
Roboflow
How to Label Images for Object Detection with CVAT
Roboflow
Deploy YOLOv5 to Jetson Xavier NX at 30 FPS
Roboflow
Elisha Odemakinde Hosts Roboflow ML Engineer, Jacob Solawetz
Roboflow
Getting Started with VoTT - Computer Vision Annotation
Roboflow
How to Manage Classes in Object Detection (Rename, Combine, Balance)
Roboflow
How to Train YOLOv4 on a Custom Dataset in Darknet
Roboflow
Is Grayscale a Preprocessing or Augmentation Step in Computer Vision?
Roboflow
Getting Started with Image Data Augmentation
Roboflow
Glenn Jocher: Image Augmentation in YOLO v5 and Beyond
Roboflow
GA Hosts Roboflow - Healthcare and AI
Roboflow
How do self driving cars know when to stop?
Roboflow
What is PASCAL VOC XML?
Roboflow
AutoML Showdown: Google vs Amazon vs Microsoft
Roboflow
How is computer vision changing manufacturing?
Roboflow
The Alphabet in American Sign Language
Roboflow
Luxonis OAK-D: Computer Vision on Device
Roboflow
How to Train a Custom Faster R-CNN Model with Facebook AI's Detectron2 | Use Your Own Dataset
Roboflow
TensorFlow vs PyTorch: Fireside
Roboflow
Occlusion Techniques in Computer Vision
Roboflow
A Customizable Web Application for Your Computer Vision Model
Roboflow
Model Tradeoffs and the Future of Computer Vision
Roboflow
Designing an Augmented Reality Board Game App
Roboflow
YOLOv4 - Advanced Tactics
Roboflow
How to Use CreateML and Build a Computer Vision iPhone App | AR Object Detection
Roboflow
Fireside Chat: Computer Vision in Agriculture
Roboflow
Scaled-YOLOv4 Tops EfficientDet: Research Rundown
Roboflow
What is Image Preprocessing?
Roboflow
Building a Community of Creators with BlkArthouse and Von Deon
Roboflow
How to Train Scaled-YOLOv4 to Detect Custom Objects
Roboflow
Intro to Computer Vision: Fireside
Roboflow
The Best Way to Annotate Images for Object Detection
Roboflow
The Computer Vision Process: Fireside
Roboflow
How to Annotate Images with Your Team Using Roboflow
Roboflow
Introducing the Roboflow Object Count Histogram
Roboflow
How Fast is the M1 at Machine Learning? Benchmarking Apple's M1 and Intel's Chips
Roboflow
CLIP: OpenAI's amazing new zero-shot image classifier
Roboflow
How I hacked my Nest camera to run custom models
Roboflow
Getting Started with the Roboflow Inference API
Roboflow
Transfer Learning in Computer Vision | What, How, Why
Roboflow
More on: CV Basics
View skill →Related Reads
📰
📰
📰
📰
PANet Paper Walkthrough: When Feature Pyramids Go Bottom-Up
Towards Data Science
CCTV Action Recognition: Comprehensive Fine-Tuning & Real-Time Deployment Guide
Medium · Python
I built a background remover that keeps the fine hair edges
Dev.to · KunStudio
I Built a Python Package to Solve My Own CV Frustration — 7K Downloads in a Week
Medium · Machine Learning
🎓
Tutor Explanation
DeepCamp AI