TopGit
Đánh giá repo GitHub

YOLOv5: Phát hiện & Phân đoạn Đối tượng bằng PyTorch

YTopGit review image for ultralytics/yolov5
Review by Topgit.dev for ultralytics/yolov5, with GitHub repository stats and README context.
Nhận định nhanh

Ultralytics YOLOv5 là một model PyTorch cho object detection, instance segmentation và image classification, đi kèm pretrained weights và pipeline train.py/detect.py vẫn chạy tốt. Nên dùng nếu bạn muốn training loop ổn định, có tài liệu và chạy được ngay. Nên bỏ qua nếu bắt đầu dự án mới — README của Ultralytics hướng người dùng mới sang package `ultralytics` đang được phát triển tích cực hơn.

Sao
★ 58.2k
Fork
⑂ 17.5k
Người đóng góp
👥 349
Ngôn ngữ
Python
Giấy phép
AGPL-3.0
Chủ đề
AI Tools
Cập nhật
Oct 2026
Trang chủ
GitHub

Tìm hiểu về Ultralytics YOLOv5

Ultralytics YOLOv5 là một model computer vision mã nguồn mở, xây dựng trên PyTorch, dùng để phát hiện, phân đoạn và phân loại đối tượng trong ảnh chỉ với một codebase và một bộ script huấn luyện. Nó có năm kích cỡ model — YOLOv5n, YOLOv5s, YOLOv5m, YOLOv5l và YOLOv5x — đánh đổi độ chính xác lấy tốc độ inference, cùng các biến thể P6 (yolov5n6 đến yolov5x6) tối ưu cho input 1280px.

Các tính năng chính của YOLOv5

  • ✓Năm kích cỡ model detection (n/s/m/l/x) cộng thêm biến thể P6 cho input 1280px, nên bạn chọn điểm cân bằng tốc độ/độ chính xác mà không phải huấn luyện lại kiến trúc từ đầu.
  • ✓Checkpoint COCO đã pretrained tự động tải về từ release GitHub mới nhất ngay lần đầu bạn tham chiếu tên weights.
  • ✓detect.py nhận gần như mọi loại nguồn — webcam, ảnh hoặc video cục bộ, một thư mục, glob pattern, file .txt liệt kê đường dẫn hoặc URL stream, link YouTube, hay stream RTSP/RTMP/HTTP.
  • ✓Load qua PyTorch Hub (`torch.hub.load("ultralytics/yolov5", "yolov5s")`) trả về một object kết quả với các method `.print()`, `.show()`, `.save()`, `.crop()`, `.pandas()`.
  • ✓Model instance segmentation, thêm từ release v7.0, chạy chung bộ script train/val/export với các model detection.
  • ✓Tutorial export bao phủ ONNX, TensorRT, CoreML và TFLite trong một chỗ.
  • ✓AutoBatch (`--batch-size -1`) tự chọn batch size vừa với bộ nhớ GPU thay vì bạn phải đoán.
  • ✓Tích hợp log sẵn với Weights & Biases, Comet ML, ClearML và Roboflow để theo dõi huấn luyện, cộng thêm DeepSparse để tăng tốc inference.
Số sao GitHub của repo này thay đổi thế nào theo thời gian. Nguồn: star-history.com.Xem lịch sử sao ↗

Bắt đầu với YOLOv5

Clone repo và cài dependencies vào môi trường Python 3.8+ đã có sẵn PyTorch 1.8+: ```bash git clone https://github.com/ultralytics/yolov5 cd yolov5 pip install -r requirements.txt ``` yolov5 không có package trên PyPI. Bạn làm việc trực tiếp trong repo đã clone, đó cũng là lý do weights và dataset tự động tải về ngay trong repo này lần đầu bạn chạy detect.py hoặc train.py.

Chạy inference và training

Để gọi inference một lần, load checkpoint qua PyTorch Hub rồi chạy trực tiếp trên ảnh, URL, hoặc numpy array: ```python import torch model = torch.hub.load("ultralytics/yolov5", "yolov5s") results = model("https://ultralytics.com/images/zidane.jpg") results.print() ``` Để inference hàng loạt từ command line, `detect.py` nhận gần như mọi loại nguồn: ```bash python detect.py --weights yolov5s.pt --source img.jpg ``` Huấn luyện trên COCO (hoặc `data.yaml` của riêng bạn) chạy qua `train.py`, trong đó `--batch-size -1` kích hoạt AutoBatch thay vì bạn tự chọn số: ```bash python train.py --data coco.yaml --epochs 300 --weights '' --cfg yolov5s.yaml --batch-size 64 ``` README ghi rằng YOLOv5n đến YOLOv5x mất khoảng một đến tám ngày để huấn luyện 300 epoch trên một GPU V100 — huấn luyện multi-GPU rút ngắn thời gian này.

Điểm mạnh

  • ✓Khả năng nhận nguồn của detect.py rất rộng — cùng một script nhận webcam, thư mục, glob, file text liệt kê đường dẫn, link YouTube, hay stream RTSP, nên bạn không phải viết code nạp dữ liệu riêng cho từng loại nguồn.
  • ✓Checkpoint COCO đã pretrained và dataset tự tải về từ GitHub release ngay lần đầu bạn tham chiếu đến chúng — không cần bước tải riêng.
  • ✓Năm kích cỡ model cộng thêm biến thể P6 nghĩa là bạn đổi `yolov5n` sang `yolov5x` chỉ bằng một flag config, thay vì thiết kế lại mạng cho một điểm tốc độ/độ chính xác khác.
  • ✓Tutorial export gom sẵn ONNX, TensorRT, CoreML và TFLite trong một chỗ, nên đưa model đã huấn luyện lên điện thoại hay thiết bị edge không phải là một dự án nghiên cứu riêng.
  • ✓Tích hợp sẵn với Weights & Biases, Comet ML và ClearML nghĩa là bạn có experiment tracking mà không cần tự nối logger.

Khi nào nên cân nhắc model khác

  • △YOLOv5 hiện đang ở giai đoạn bảo trì — chính README của Ultralytics hướng người dùng mới sang package `ultralytics` đang được phát triển tích cực hơn, có pose estimation và oriented bounding box (OBB) mà YOLOv5 không có.
  • △AGPL-3.0 là license copyleft; đưa YOLOv5 vào sản phẩm closed-source nghĩa là bạn phải mở mã nguồn code của mình, hoặc mua Enterprise License từ Ultralytics.
  • △Huấn luyện full-size rất tốn GPU — theo chính số liệu trong README, YOLOv5x mất nhiều ngày trên một GPU V100, nên bạn cần phần cứng thật hoặc GPU cloud để tái tạo lại benchmark đã công bố.
  • △Không có package `yolov5` cài qua pip; bạn làm việc trong một repo đã clone chứ không phải một library import được, gây bất tiện nếu muốn đưa nó vào một dự án có sẵn như một dependency.

Khám phá các model YOLO khác của Ultralytics

Câu hỏi thường gặp

License của YOLOv5 là gì?

YOLOv5 phát hành theo license AGPL-3.0, một license copyleft mạnh. Ultralytics cũng có Enterprise License riêng cho các đội cần điều khoản khác.

YOLOv5 có dùng được cho dự án thương mại không?

YOLOv5 có thể dùng trong dự án thương mại, nhưng license AGPL-3.0 yêu cầu bạn mở mã nguồn cho code phân phối kèm theo nó — đội nào cần giữ code closed-source thì dùng Enterprise License của Ultralytics.

YOLOv5 xử lý được những tác vụ computer vision nào?

YOLOv5 xử lý object detection, instance segmentation và image classification, mỗi tác vụ đều huấn luyện và xuất được qua cùng một bộ script (train.py, detect.py, val.py, export.py).

Làm sao để huấn luyện YOLOv5 trên dataset tuỳ chỉnh?

Trỏ train.py vào một data.yaml mô tả class và đường dẫn ảnh của bạn, cùng một config model như yolov5s.yaml, rồi chạy `python train.py --data data.yaml --weights yolov5s.pt`. Tutorial Train Custom Data trong README nói chi tiết về định dạng gắn nhãn.

YOLOv5 có còn được bảo trì tích cực không?

README của YOLOv5 mô tả nó là mature và production-proven chứ không phải nơi thêm tính năng mới — Ultralytics dồn phát triển tích cực vào package `ultralytics` mới hơn, có thêm pose estimation và oriented bounding box mà YOLOv5 không có.

YOLOv5 hỗ trợ xuất model sang những định dạng nào?

Tutorial export của YOLOv5 bao phủ ONNX, TensorRT, CoreML và TFLite, giúp bạn đưa checkpoint đã huấn luyện từ GPU training sang thiết bị mobile, edge box, hay runtime inference phía server.

Vấn đề mà nó giải quyết

Huấn luyện một object detector từ đầu nghĩa là phải tự viết data loader, augmentation pipeline, loss khớp anchor, và đường xuất (export) sang đúng runtime mà nơi triển khai cần — làm đúng cả bốn phần đó tốn hàng tuần. YOLOv5 đóng gói sẵn toàn bộ pipeline đó (train.py, detect.py, val.py, export.py) quanh pretrained weights huấn luyện trên COCO, nên một developer có sẵn dataset gắn nhãn theo định dạng YOLO có thể đi từ số 0 đến một model đã huấn luyện và xuất xong mà không phải tự dựng phần công cụ xung quanh.

Các trường hợp sử dụng tốt nhất

  • •Phát hiện đối tượng theo thời gian thực từ webcam hoặc camera RTSP qua detect.py, không cần tự viết code capture.
  • •Huấn luyện detector tuỳ chỉnh trên dataset đã gắn nhãn bằng cách trỏ train.py vào một data.yaml và một config yolov5*.yaml.
  • •Instance segmentation trên dữ liệu kiểu COCO bằng các script trong thư mục segment/ ra mắt từ v7.0.
  • •Xuất model đã huấn luyện sang ONNX hoặc TensorRT để triển khai trên thiết bị NVIDIA Jetson.
  • •Prototyping nhanh qua PyTorch Hub ngay trong notebook, không cần clone cả pipeline detect.py của repo.

Ai nên dùng — và ai nên bỏ qua

Nên dùng YOLOv5 nếu bạn có dataset gắn nhãn theo định dạng YOLO và muốn một pipeline train/export đã trải qua nhiều năm dùng trong production, với tutorial cho đúng vấn đề bạn đang gặp. Nên bỏ qua nếu bạn bắt đầu một dự án hoàn toàn mới không có code YOLOv5 sẵn cần bảo trì — chính README của Ultralytics hướng người dùng mới sang package `ultralytics`, và nếu bạn cần pose estimation hay oriented bounding box, YOLOv5 đơn giản là không có.

Repo liên quan

Nguồn & ghi công

Dựa trên repo GitHub ultralytics/yolov5 và README của nó.

Dữ liệu GitHub · đồng bộ lần cuối 14 thg 8, 2026Đánh giá bởi Henry
← Về TopGit

Vẫn đang phân vân về yolov5?

Một cú bấm sẽ gửi câu hỏi kèm trang này cho AI — xem AI nói gì về yolov5.

GitHub