Yolov5 là gì? Các bài báo nghiên cứu khoa học liên quan

YOLOv5 là một mô hình phát hiện đối tượng thời gian thực thuộc họ YOLO, được phát triển bởi Ultralytics với mã nguồn mở trên nền tảng PyTorch. Nó sử dụng kiến trúc nhẹ, dễ tùy biến, hỗ trợ huấn luyện nhanh và chính xác, phù hợp với nhiều ứng dụng thị giác máy hiện đại.

Định nghĩa và nguồn gốc của YOLOv5

YOLOv5 là phiên bản trong dòng mô hình phát hiện đối tượng (object detection) thuộc họ “You Only Look Once” (YOLO). Mô hình này được phát triển bởi nhóm Ultralytics vào năm 2020, khác biệt với các phiên bản YOLO trước đó (ví dụ YOLOv3, YOLOv4) khi được viết hoàn toàn bằng ngôn ngữ Python sử dụng thư viện PyTorch thay vì Darknet — điều này giúp YOLOv5 dễ tích hợp, dễ tùy biến và thuận tiện cho cộng đồng nghiên cứu và phát triển. Thông tin chi tiết có thể xem tại Ultralytics YOLOv5.

YOLOv5 được thiết kế để cung cấp một giải pháp phát hiện đối tượng cân bằng giữa độ chính xác và tốc độ, phù hợp với ứng dụng thời gian thực hoặc trên thiết bị giới hạn tài nguyên. Việc sử dụng PyTorch cũng giúp việc chuyển đổi sang ONNX, TensorRT hoặc các định dạng deploy khác trở nên thuận tiện, tăng tính linh hoạt khi triển khai vào hệ thống thực tế.

YOLOv5 nhanh chóng được cộng đồng đón nhận và sử dụng rộng rãi trong các lĩnh vực như giám sát video, phân tích hình ảnh, robot, xe tự lái và nhiều ứng dụng thị giác máy khác. Sự phổ biến này xuất phát từ việc YOLOv5 cung cấp mã nguồn mở, chuẩn hóa quá trình huấn luyện, kiểm thử, định dạng dataset dễ hiểu, và khả năng tái sử dụng cao.

Nguyên lý hoạt động tổng quát

Khi xử lý một ảnh đầu vào, YOLOv5 chia ảnh đó thành một lưới (grid) gồm nhiều ô vuông nhỏ. Mỗi ô trong lưới sẽ chịu trách nhiệm dự đoán một số bounding box ứng viên (bounding boxes), cùng với nhãn lớp (class) và xác suất (confidence score) rằng bounding box đó chứa một đối tượng. Dữ liệu dự đoán được trả về dưới dạng tensor với các thông số tọa độ, độ tin cậy và nhãn — sau đó, các bước hậu xử lý như Non‑Maximum Suppression (NMS) được áp dụng để loại bỏ các dự đoán trùng lặp và giữ lại các bounding box tốt nhất.

Quá trình học của YOLOv5 tối ưu hóa một hàm mất mát (loss function) tổng hợp, bao gồm thành phần lỗi về định vị (bounding box), lỗi phân loại (class probability), và lỗi độ tin cậy (objectness). Việc huấn luyện cùng lúc trên toàn ảnh giúp mô hình học được thông tin ngữ cảnh chung, cho phép phát hiện đối tượng nhanh và hiệu quả hơn so với phương pháp phân vùng/R‑CNN truyền thống.

Cách tiếp cận “end-to-end” (đầu vào ảnh → đầu ra bounding boxes + nhãn) của YOLOv5 loại bỏ bước đề xuất vùng (region proposal) riêng biệt, giúp tăng tốc độ xử lý đáng kể. Mô hình có thể thực thi phát hiện đối tượng trong thời gian thực khi được triển khai trên GPU hoặc thiết bị mạnh, hoặc với độ trễ chấp nhận được trên nhiều nền tảng khác nhau.

Kiến trúc mô hình

Kiến trúc YOLOv5 được tổ chức thành các thành phần chính: Backbone (phần trích xuất đặc trưng), Neck (phần tổng hợp đặc trưng theo nhiều tỉ lệ), và Head (phần dự đoán bounding box và lớp). Backbone sử dụng cấu trúc CSP (Cross Stage Partial) để tăng cường khả năng trích xuất đặc trưng trong khi giảm số lượng tham số và giữ hiệu năng cao.

Neck sử dụng cấu trúc PANet (Path Aggregation Network) để kết hợp các đặc trưng ở nhiều cấp độ khác nhau — từ chi tiết thấp tới chi tiết cao — giúp phát hiện tốt đối tượng ở các kích thước đa dạng. Head của YOLOv5 tạo các bounding box ứng viên và đưa ra dự đoán lớp, xác suất, đồng thời tính toán các thông số như hộp giới hạn (bounding box), độ tin cậy và nhãn lớp.

Quy trình xử lý ảnh điển hình: ảnh đầu vào được resize và chuẩn hóa, sau đó đi qua Backbone để lấy đặc trưng sơ cấp; Neck aggregate đặc trưng nhiều tỉ lệ; Head tạo dự đoán. Sau khi inference, các bounding box được lọc qua NMS để loại bỏ trùng lặp. Thiết kế này giúp mô hình cân bằng giữa độ chính xác, độ nhanh và khả năng phát hiện ở nhiều kích cỡ đối tượng khác nhau.

Các phiên bản của YOLOv5 và sự khác biệt

YOLOv5 được phát hành với nhiều biến thể khác nhau phù hợp với các yêu cầu khác nhau về độ chính xác và tốc độ: thường gồm các phiên bản như YOLOv5s (small), YOLOv5m (medium), YOLOv5l (large) và YOLOv5x (extra-large). Mỗi phiên bản có số lượng tham số, chiều sâu mô hình, tốc độ xử lý và độ chính xác riêng, cho phép người dùng lựa chọn phương án phù hợp với nguồn lực phần cứng và yêu cầu ứng dụng.

Việc lựa chọn phiên bản thường phụ thuộc vào bối cảnh triển khai: nếu cần tốc độ cao, xử lý realtime hoặc phần cứng yếu, YOLOv5s hoặc v5m được ưu tiên; nếu cần độ chính xác cao, đặc biệt với nhiều lớp hoặc đối tượng phức tạp, phiên bản v5l hoặc v5x thường được sử dụng.

Bảng so sánh khái quát các phiên bản YOLOv5:

Phiên bản Ưu điểm chính Phù hợp với
YOLOv5s Nhẹ, inference nhanh, chiếm ít GPU/CPU Thiết bị biên, realtime, nhúng
YOLOv5m Cân bằng giữa tốc độ và độ chính xác Ứng dụng chung, server trung bình
YOLOv5l Độ chính xác cao hơn, phát hiện đối tượng phức tạp tốt hơn Server mạnh, yêu cầu độ chính xác
YOLOv5x Độ chính xác tối đa, tốt cho tập dữ liệu lớn và đa lớp Hệ thống máy chủ cao cấp, nghiên cứu, thử nghiệm

So sánh với các mô hình YOLO trước và sau

YOLOv5 không phải là bản chính thức từ tác giả gốc của dòng YOLO (Joseph Redmon), người đã dừng phát triển sau YOLOv3 vì lý do đạo đức. YOLOv4 được phát triển bởi Alexey Bochkovskiy trên nền tảng Darknet, còn YOLOv5 là sản phẩm hoàn toàn độc lập của Ultralytics, viết bằng PyTorch. Sự khác biệt này từng gây tranh cãi nhưng cũng tạo điều kiện để YOLOv5 phát triển mạnh mẽ với hệ sinh thái riêng.

So với YOLOv3/YOLOv4, YOLOv5 có ưu thế rõ rệt về tốc độ huấn luyện, khả năng mở rộng, khả năng triển khai trên các nền tảng như TensorRT, ONNX và CoreML. Đồng thời, nó cung cấp pipeline huấn luyện–đánh giá–triển khai thống nhất. Khi so với các mô hình sau này như YOLOv6, YOLOv7 hoặc YOLOv8, YOLOv5 vẫn duy trì sự ổn định, tài liệu rõ ràng và hỗ trợ cộng đồng tốt, dù không luôn đạt chỉ số mAP cao nhất.

Bảng so sánh hiệu năng một số mô hình phổ biến:

Mô hình Framework [email protected] FPS (GPU) Ghi chú
YOLOv4 Darknet 43.5 ~62 Cài đặt phức tạp, cần CUDA riêng
YOLOv5l PyTorch 47.0 ~70 Gọn nhẹ, dễ triển khai
YOLOv7 PyTorch 51.4 ~70 Hiệu năng cao, chưa tối ưu inference
YOLOv8 Ultralytics 53.9 ~60 Mới, chưa có nhiều tài liệu ứng dụng

Hiệu suất thực tế và các chỉ số đo lường

Hiệu suất của YOLOv5 được đánh giá qua một số chỉ số phổ biến: mAP (mean Average Precision), IoU (Intersection over Union), tốc độ inference (FPS), số tham số mô hình, kích thước file, và khả năng deploy thực tế. Trong tập dữ liệu COCO 2017, YOLOv5 thường đạt [email protected] từ 36 đến 50 tùy phiên bản.

mAP được tính dựa trên trung bình độ chính xác tại nhiều ngưỡng IoU khác nhau. Ví dụ: mAP@0.5[email protected] đo lường độ chính xác khi IoU ≥ 0.5 giữa box dự đoán và box thật. YOLOv5 nổi bật với mAP cao trên các object nhỏ và trung bình nhờ cải tiến về Neck (PANet) và anchor tuning.

Hiệu suất thực tế cũng phụ thuộc thiết bị. Trên GPU NVIDIA RTX 3090, YOLOv5s đạt trên 140 FPS trong khi YOLOv5x dao động ~50–60 FPS. Với CPU, các phiên bản nhỏ như v5s vẫn giữ được khả năng xử lý thời gian thực ở mức độ vừa phải, đặc biệt khi kết hợp với ONNX hoặc TensorRT để tối ưu tốc độ.

Ứng dụng thực tế của YOLOv5

YOLOv5 được ứng dụng rộng rãi trong nhiều ngành:

  • Giao thông: nhận dạng xe, biển số, vi phạm làn đường
  • Y tế: phát hiện tế bào ung thư, tổn thương từ ảnh X-quang, MRI
  • Giám sát an ninh: theo dõi người, phát hiện xâm nhập, phân tích hành vi
  • Nông nghiệp: phát hiện sâu bệnh, phân loại giống cây trồng
  • Bán lẻ: phân tích hành vi khách hàng, đếm người

Các tổ chức như OpenCV, Roboflow và nhiều trường đại học đã đưa YOLOv5 vào giảng dạy, nghiên cứu hoặc hệ thống sản phẩm thật. Với mã nguồn mở, người dùng dễ dàng triển khai YOLOv5 vào hệ thống edge (NVIDIA Jetson, Raspberry Pi) hay cloud (AWS, Azure) mà không cần thay đổi cấu trúc mô hình quá nhiều.

Tùy chỉnh và huấn luyện lại mô hình

YOLOv5 cho phép huấn luyện lại trên tập dữ liệu riêng rất dễ dàng, chỉ cần chuẩn hóa tập dữ liệu theo định dạng YOLO (txt label) hoặc sử dụng định dạng COCO. Công cụ như Roboflow, Label Studio, CVAT có thể xuất ra định dạng phù hợp. Việc huấn luyện sử dụng lệnh đơn giản qua CLI hoặc script Python.

Các bước huấn luyện cơ bản:

  1. Chuẩn bị tập dữ liệu với ảnh và nhãn
  2. Tạo file cấu hình .yaml mô tả dữ liệu
  3. Chạy lệnh huấn luyện: python train.py --img 640 --batch 16 --epochs 100 --data data.yaml --weights yolov5s.pt
  4. Kiểm tra kết quả trong thư mục runs/train

Tài liệu hướng dẫn chi tiết tại: Ultralytics Docs

Hạn chế và các thách thức

Mặc dù mạnh mẽ, YOLOv5 có một số hạn chế:

  • Không tối ưu cho ảnh có đối tượng cực nhỏ hoặc bị che khuất
  • Không modeling tốt quan hệ giữa các đối tượng phức tạp
  • Phụ thuộc vào anchor boxes nên cần fine-tuning cho tập mới
  • Không hỗ trợ segmentation hoặc tracking (phải kết hợp công cụ ngoài)

Một số mô hình mới như DETR (transformer-based) hoặc những mô hình anchor-free như CenterNet đang giải quyết các vấn đề này tốt hơn, nhưng YOLOv5 vẫn giữ vị thế vững nhờ sự dễ dùng, cộng đồng mạnh và tài nguyên phong phú.

Tài liệu tham khảo

  1. Ultralytics Official YOLOv5
  2. Jocher, G. et al. (2020). YOLOv5 by Ultralytics. GitHub
  3. Bochkovskiy, A., Wang, C.Y., Liao, H.Y.M. (2020). YOLOv4: Optimal Speed and Accuracy. arXiv:2004.10934
  4. Ultralytics Documentation
  5. Roboflow Platform
  6. Redmon, J. et al. (2016). YOLO9000: Better, Faster, Stronger. CVPR

Các bài báo, nghiên cứu, công bố khoa học về chủ đề yolov5:

Real-Time Video Fire Detection via Modified YOLOv5 Network Model
Springer Science and Business Media LLC - Tập 58 Số 4 - Trang 2377-2403 - 2022
Real-time detection algorithm of helmet and reflective vest based on improved YOLOv5
Journal of Real-Time Image Processing - - 2023
Application of improved YOLOV5 in plate defect detection
The International Journal of Advanced Manufacturing Technology -
Improved YOLOv5 for real-time traffic signs recognition in bad weather conditions
Springer Science and Business Media LLC - - 2023
Phát hiện drone nhiều kích thước sử dụng mạng YOLOv5
Tạp chí Nghiên cứu Khoa học và Công nghệ quân sự - Số 80 - Trang 142-148 - 2022
Ngày nay, máy bay không người lái được sử dụng rộng rãi với nhiều mục đích khác nhau. Với công nghệ ngày càng hiện đại, được trang bị nhiều chức năng cao cấp, linh hoạt với thiết kế nhỏ gọn mà giá thành lại không quá đắt. Drone được sử dụng trong nhiều lĩnh vực với nhiều mục đích khác nhau, đặc biệt là trong lĩnh vực quân sự, các thế lực thù địch sử dụng nó để thăm dò địa hình, mang vật liệu nổ tr... hiện toàn bộ
#Phát hiện máy bay không người lái; Thị giác máy tính; Yolov5; Mạng nơron phức tạp; IoU.
Fish detection method based on improved YOLOv5
Springer Science and Business Media LLC - Tập 31 Số 5 - Trang 2513-2530 - 2023
Insulator Detection in Intelligent Monitoring Based on Yolo Family and Customizing Hyperparameters
Journal of Technical Education Science - Số 75A - 2023
Monitoring of power transmission lines plays an important task in high voltage transmission systems. The problem of damaged insulator causes bad effects on an electrical power grid. To make sure the power grid worked properly, electrical personnel usually need to be climbed on the electric post to inspect them which consists of risk latent in occupational safety. Therefore, constructing smart moni... hiện toàn bộ
#Deep learning #Machine learning #Yolov5 #Yolov7 #Insulator detection #Intelligence monitoring
Second mesiobuccal canal segmentation with YOLOv5 architecture using cone beam computed tomography images
Shigaku = Odontology - Tập 112 Số 2 - Trang 552-561 - 2024
Tổng số: 123   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 10