YOLOv5: the 2022 release tag, the 2026 commits, and the exports you have to install yourself
PyTorch-based YOLOv5 from Ultralytics for object detection, instance segmentation, and classification, with training and export to ONNX, TensorRT, TFLite, and CoreML.
At a glance
- What is it?
- YOLOv5 is an AGPL-3.0 PyTorch model for object detection, instance segmentation and classification, and it is still the fastest way to get a working detector from a clone. Two things decide whether it suits you: the newest release tag is v7.0 from 2022 while commits land in 2026, and requirements.txt comments out every export backend, the COCO mAP package and the screenshot dependency the quickstart uses.
- Who is it for?
- Use YOLOv5 when you want detection, instance segmentation or classification from a clone today and can live with a codebase whose newest tag is v7.0 from 2022-11-22 while the last push was 2026-09-16. Do not adopt it for a new architecture: the README itself redirects pose estimation, oriented bounding boxes and the newest models to the ultralytics package, and that is also a runtime dependency of this repository.
- Can I use it commercially?
- Yes, with strict conditions. AGPL-3.0 is a network copyleft licence: if people use a modified version over a network, for example as a hosted service, you must offer them its source code under the same licence.
- Is it still maintained?
- Yes. The repository last received commits 14 days ago.
- What is it written in?
- Mainly Python, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 25, 2026, and from our analysis. They are not legal advice.
Editorial analysis
requirements.txt pulls in the successor package as a dependency
Install the requirements and you have also installed the package the README tells you to move to. The base list ends with ultralytics>=8.4.132 and ultralytics-thop>=2.1.6 for FLOPs computation, alongside torch>=1.8.0 and torchvision>=0.9.0, with floors of numpy>=1.23.5 and pillow>=10.3.0. That coupling is worth knowing before you start: this repository cannot be run in isolation from the newer ultralytics code base, so a team that wants YOLOv5 pinned and frozen is still tracking a dependency that moves on its own schedule. The README's ecosystem section is blunt about the direction of travel, describing the ultralytics package as the actively maintained one for the newest architectures, pose estimation, oriented object detection and a unified Python and CLI interface, and the top banner now advertises a later model generation.
Every export backend is commented out in requirements.txt
export.py sits at the top of the tree, so the export story looks covered, and then the dependency file says otherwise. The entire export section is commented: coremltools>=6.0 for CoreML, onnx>=1.10.0 with onnxslim>=0.1.82, tensorrt, scikit-learn<=1.1.2 for CoreML quantization, tensorflow>=2.0.0,<=2.19.0 with the note that it covers CPU, aarch64 and macos builds, tensorflowjs>=3.9.0, and openvino>=2024.0.0. Consequence for a reader: a documented install produces a repository whose export script cannot run, because no backend is present. You choose the backend, uncomment the line and accept its version range, and the tensorflow cap shows this is a considered range rather than an open one. Anyone planning an ONNX or TensorRT deployment should treat that dependency decision as part of the work.
A fresh clone has no augmentation, no COCO mAP and no screenshots
The extras section is commented out too, and two of those lines collide with things the README advertises. pycocotools>=2.0.6 carries the comment COCO mAP, and albumentations>=1.0.3 is the augmentation library, both absent after pip install -r requirements.txt. More concretely, mss, commented out and labelled screenshots, is what the screen source in the quickstart needs:
# Run inference on a screen capture
python detect.py --weights yolov5s.pt --source screenSo the documented command for screen capture is not runnable on a documented install until you add the package yourself. The same applies to the logging extras, where tensorboard>=2.4.1, clearml>=1.2.0 and comet_ml are all commented, even though the v6.2 release was about ClearML and Deci.ai integrations. The file does not say which scripts import which optional package, so a missing import is how you find out.
Weights and datasets arrive at runtime, from the newest release
Nothing about the model files is in the clone. Models are downloaded automatically from the latest YOLOv5 release, and the README says datasets are fetched the same way for training, with the training section framed as reproducing COCO results. The quickstart makes the options explicit, yolov5n, yolov5s, yolov5m, yolov5l and yolov5x, loaded through PyTorch Hub:
import torch
# Load a YOLOv5 model (options: yolov5n, yolov5s, yolov5m, yolov5l, yolov5x)
model = torch.hub.load("ultralytics/yolov5", "yolov5s") # Default: yolov5sTwo consequences. An air-gapped machine cannot complete a first run without pre-staged weights and datasets, and the weights you get are whatever the current release tag points to rather than anything your checkout identifies, so the same commit can serve different files over time. detect.py behaves the same way, downloading yolov5s.pt on demand and writing output under runs/detect.
The install is a clone, and the wheel is the side door
Two install paths exist and they give you different things. The documented one is a repository clone with dependencies from requirements.txt:
# Clone the YOLOv5 repository
git clone https://github.com/ultralytics/yolov5
# Navigate to the cloned directory
cd yolov5
# Install required packages
pip install -r requirements.txtThe other is PyTorch Hub, which gives you a model object and not the scripts. The packaging file is explicit about the priority: a comment at the top of pyproject.toml says most users run YOLOv5 directly from a repository clone with dependencies from requirements.txt, and the build backend is plain setuptools with wheel. It declares version 7.0.0, name YOLOv5, requires-python >=3.8 and a Beta development status classifier. Practically, that means pip installing the package name is not the path the project asks you to take, and anything you import in your own code comes from a clone you have to keep in step yourself.
v7.0 is the newest tag and it is from November 2022
The release record and the commit record have drifted apart by years. Published releases are v7.0 on 2022-11-22 for realtime instance segmentation, v6.2 on 2022-08-17 for classification models, Apple M1, reproducibility and the ClearML and Deci.ai integrations, and v6.1 on 2022-02-22 for TensorRT, TensorFlow Edge TPU and OpenVINO export and inference. The last push to the repository was on 2026-09-16 and the project is not archived, so work continues on master with no release behind it. For an adopter this means a choice with no good answer: pin to v7.0 and you ship code from 2022, follow master and you ship unreviewed drift, and the version field in pyproject.toml reads 7.0.0 either way. There is no cadence left to plan a migration against.
AGPL-3.0 in three files, and an enterprise form in the README
Licensing is consistent and worth reading before anything ships. LICENSE at the top level is AGPL-3.0, pyproject.toml declares license = { "text" = "AGPL-3.0" }, and the first line of that file is a header comment carrying the AGPL-3.0 licence URL. The README then points at an Ultralytics Licensing form for requesting an Enterprise License, and says nothing about what those terms cover, so a team whose compliance process rejects AGPL has a form to fill in and no summary to evaluate. The dependency file shows the same instinct in small things: setuptools>=70.0.0 is annotated Snyk vulnerability fix, packaging is annotated as the migration path for deprecated pkg_resources packages, and a protobuf<=3.20.1 cap sits commented out next to a link to issue 8012 with no note on whether it still applies.
Two agent instruction files and a citation record sit at the top
The repository carries more than code. AGENTS.md and CLAUDE.md are both at the top level, so the project maintains instructions for automated coding agents, and their contents are not visible in the top-level listing, which means anyone automating changes here has to read both before touching anything. CITATION.cff records citation metadata, and there is a Chinese README alongside the English one in README.zh-CN.md. Alongside those, the working surface is scripts rather than a package: detect.py, train.py, val.py, export.py, benchmarks.py and hubconf.py, with classify/, segment/, data/, models/ and utils/ as directories, plus tests/ and tutorial.ipynb for people who would rather read than clone. Read the two agent files first, because the scripts assume a working environment that the requirements file only partly provides.
Editorial conclusion
Use YOLOv5 when you want detection, instance segmentation or classification from a clone today and can live with a codebase whose newest tag is v7.0 from 2022-11-22 while the last push was 2026-09-16. Do not adopt it for a new architecture: the README itself redirects pose estimation, oriented bounding boxes and the newest models to the ultralytics package, and that is also a runtime dependency of this repository. Before your first run, install the backend you need for export.py, add pycocotools for COCO mAP and mss if you intend to use the screen source, and settle the licence question, because the code is AGPL-3.0 and the only other route the README names is an enterprise licence request form.
Frequently asked questions
What does YOLOv5 do?
YOLOv5 is a PyTorch computer vision model for object detection, instance segmentation and image classification, and the repository ships a script for each job: detect.py, train.py, val.py, export.py, plus classify/ and segment/ directories. Weights and datasets download automatically from the latest YOLOv5 release.
How do I install yolov5?
Clone the repository and install the requirements in a Python>=3.8.0 environment with PyTorch>=1.8 already present: git clone https://github.com/ultralytics/yolov5, then cd yolov5, then pip install -r requirements.txt. A comment in pyproject.toml notes that most users run from a clone rather than from an installed package.
How do I use yolov5 for object detection?
detect.py takes a --weights file and a --source, and the README lists a webcam as source 0, plus a local image, a local video, a screen, a directory of images and a text file listing image paths. Results are saved under runs/detect, and the weights file downloads itself if it is not already there.
Is YOLO software free?
This repository is AGPL-3.0, stated in the LICENSE file and as license = { "text" = "AGPL-3.0" } in pyproject.toml, whose first line is an AGPL-3.0 header comment. The README also links an Ultralytics Licensing form for anyone who wants to request an Enterprise License instead.
What is yolov5 trained on?
The README's training section reproduces COCO dataset results and says both models and datasets download automatically from the latest YOLOv5 release, with the repository's data/ directory holding the datasets it expects. It does not give per-checkpoint training recipes or accuracy tables in the quickstart.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/ultralytics-yolov5)