Khóa học
Phát hiện đối tượng (object detection) là một kỹ thuật thị giác máy tính dùng để nhận diện và định vị các đối tượng trong một ảnh hoặc video.
Tóm tắt nhanh (TL;DR)
- YOLO (You Only Look Once) là thuật toán phát hiện đối tượng theo thời gian thực, xử lý ảnh trong một lần lan truyền (forward pass) duy nhất, nhanh hơn đáng kể so với các bộ dò hai giai đoạn
- Thuật toán chia ảnh thành các lưới, dự đoán hộp giới hạn kèm điểm tin cậy và dùng Non-Maximum Suppression để lọc các phát hiện chồng lấp
- YOLO đã phát triển từ v1 (2015) đến YOLOv10, YOLOv11, YOLOv12, và YOLO26 (2026), mỗi phiên bản đều cải thiện tốc độ, độ chính xác, hoặc cả hai
- Ứng dụng phổ biến gồm xe tự hành, chẩn đoán hình ảnh y tế, nông nghiệp, giám sát an ninh và phân tích thể thao
- Cài đặt với
pip install ultralyticsvà chạy suy luận bằng Python API hoặc CLI
Định vị ảnh là quá trình xác định vị trí chính xác của một hoặc nhiều đối tượng bằng hộp giới hạn (bounding box), là các hình chữ nhật bao quanh đối tượng. Quá trình này đôi khi bị nhầm với phân loại ảnh hay nhận dạng ảnh, vốn nhằm dự đoán lớp của một ảnh hoặc một đối tượng trong ảnh vào một trong các danh mục/lớp.
Minh họa dưới đây thể hiện trực quan phần giải thích trước đó. Đối tượng được phát hiện trong ảnh là “Person.”

Hình: Tác giả
Trong bài viết khái niệm này, trước tiên bạn sẽ hiểu lợi ích của phát hiện đối tượng, rồi giới thiệu YOLO, thuật toán phát hiện đối tượng tiên tiến nhất hiện nay.
Ở phần hai, chúng ta sẽ tập trung nhiều hơn vào thuật toán YOLO và cách nó hoạt động. Sau đó, chúng tôi sẽ nêu một số ứng dụng thực tế dùng YOLO.
Phần cuối sẽ giải thích cách YOLO phát triển từ 2015 đến 2024 trước khi kết luận về các bước tiếp theo.
YOLO là gì?
You Only Look Once (YOLO) là thuật toán phát hiện đối tượng theo thời gian thực, tiên tiến, được giới thiệu năm 2015 bởi Joseph Redmon, Santosh Divvala, Ross Girshick và Ali Farhadi trong bài báo nổi tiếng You Only Look Once: Unified, Real-Time Object Detection.
Các tác giả đặt bài toán phát hiện đối tượng như một bài toán hồi quy thay vì phân loại, bằng cách tách không gian các hộp giới hạn và gán xác suất cho mỗi ảnh được phát hiện thông qua một mạng nơ-ron tích chập (CNN) duy nhất.
Nếu bạn quan tâm đến phân loại ảnh, hãy cân nhắc khóa học Image Modeling with Keras in Python, nơi bạn sẽ xây dựng các mạng nơ-ron sâu dựa trên Keras cho tác vụ phân loại ảnh. Nếu bạn thích Pytorch hơn, Deep Learning with PyTorch sẽ dạy bạn về mạng nơ-ron tích chập và cách sử dụng chúng để xây dựng các mô hình mạnh mẽ hơn nhiều.
Vì sao YOLO phổ biến cho phát hiện đối tượng?
Một số lý do khiến YOLO dẫn đầu cuộc đua gồm có:
- Tốc độ
- Độ chính xác phát hiện
- Khả năng khái quát tốt
- Mã nguồn mở
Hãy cùng xem chi tiết từng điểm.
1. Tốc độ
YOLO cực nhanh vì không sử dụng các pipeline phức tạp. Nó có thể xử lý ảnh ở 45 khung hình mỗi giây (FPS). Ngoài ra, YOLO đạt mAP (mean Average Precision) hơn gấp đôi so với các hệ thống thời gian thực khác, khiến nó là ứng viên tuyệt vời cho xử lý thời gian thực.
Từ biểu đồ dưới đây, ta thấy YOLO vượt xa các bộ dò khác với 91 FPS.

Tốc độ YOLO so với các bộ dò đối tượng tiên tiến khác (nguồn)
2. Độ chính xác phát hiện cao
YOLO vượt trội so với các mô hình tiên tiến khác về độ chính xác, với rất ít lỗi nền.
3. Khả năng khái quát tốt hơn
Điều này đặc biệt đúng với các phiên bản mới của YOLO, sẽ được bàn sau trong bài. Với những tiến bộ đó, YOLO tiến xa hơn bằng cách cung cấp khả năng khái quát tốt hơn cho các miền mới, rất phù hợp cho các ứng dụng cần phát hiện đối tượng nhanh và vững chắc.
Chẳng hạn, bài Automatic Detection of Melanoma with Yolo Deep Convolutional Neural Networks cho thấy phiên bản đầu tiên, YOLOv1, có mAP thấp nhất cho phát hiện tự động bệnh u hắc tố so với YOLOv2 và YOLOv3.
4. Mã nguồn mở
Việc YOLO là mã nguồn mở đã thúc đẩy cộng đồng liên tục cải tiến mô hình. Đây là một trong các lý do YOLO đạt nhiều cải tiến trong thời gian ngắn như vậy.
Kiến trúc YOLO
Kiến trúc YOLO tương tự GoogleNet. Như minh họa dưới đây, nó có 24 lớp tích chập, bốn lớp gộp cực đại và hai lớp kết nối đầy đủ.

Kiến trúc YOLO từ bài báo gốc (Điều chỉnh bởi Tác giả)
Kiến trúc hoạt động như sau:
- Thay đổi kích thước ảnh đầu vào thành 448x448 trước khi đưa qua mạng tích chập.
- Áp dụng tích chập 1x1 trước để giảm số kênh, sau đó tích chập 3x3 để tạo đầu ra dạng khối.
- Hàm kích hoạt dùng ReLU, trừ lớp cuối dùng hàm tuyến tính.
- Một số kỹ thuật bổ sung như batch normalization và dropout giúp điều chuẩn mô hình và tránh quá khớp.
Hoàn thành lộ trình Deep Learning in Python hoặc PyTorch CNN Tutorial sẽ giúp bạn sẵn sàng dùng Keras để huấn luyện và kiểm thử các mạng đa đầu ra phức tạp và đào sâu hơn vào học sâu.
YOLO phát hiện đối tượng như thế nào?
Sau khi hiểu kiến trúc, hãy cùng điểm qua cách thuật toán YOLO thực hiện phát hiện đối tượng qua một ví dụ đơn giản.
“Hãy tưởng tượng bạn xây dựng một ứng dụng YOLO phát hiện cầu thủ và bóng đá từ một ảnh bất kỳ.
Nhưng làm sao giải thích quá trình này cho ai đó, nhất là người mới?
→ Đó là mục tiêu của phần này. Bạn sẽ hiểu toàn bộ quy trình YOLO thực hiện phát hiện đối tượng và cách thu được ảnh (B) từ ảnh (A).”
Hình: Tác giả
Thuật toán hoạt động dựa trên bốn cách tiếp cận sau:
- Khối dư (residual blocks)
- Hồi quy hộp giới hạn
- Intersection Over Union, viết tắt là IOU
- Non-Maximum Suppression.
Hãy xem kỹ từng phần.
1. Khối dư (Residual blocks)
Bước đầu chia ảnh gốc (A) thành lưới NxN có ô bằng nhau, với N trong ví dụ này là 4, như hình bên phải. Mỗi ô trong lưới chịu trách nhiệm định vị và dự đoán lớp của đối tượng mà nó bao phủ, cùng với giá trị xác suất/độ tin cậy.

Hình: Tác giả
2. Hồi quy hộp giới hạn
Bước tiếp theo là xác định các hộp giới hạn dạng hình chữ nhật, làm nổi bật tất cả đối tượng trong ảnh. Số hộp giới hạn có thể bằng số đối tượng trong ảnh.
YOLO xác định các thuộc tính của những hộp giới hạn này bằng một mô-đun hồi quy duy nhất theo định dạng sau, trong đó Y là vector biểu diễn cuối cho mỗi hộp giới hạn.
Y = [pc, bx, by, bh, bw, c1, c2]
Điều này đặc biệt quan trọng trong giai đoạn huấn luyện mô hình.
pclà điểm xác suất của ô lưới chứa một đối tượng. Ví dụ, tất cả các ô màu đỏ sẽ có xác suất lớn hơn 0. Hình bên phải là phiên bản đơn giản hóa vì xác suất của mỗi ô màu vàng là 0 (không đáng kể).

Hình: Tác giả
bx,bylà tọa độ x và y của tâm hộp giới hạn so với ô lưới bao quanh.bh,bwlà chiều cao và chiều rộng của hộp giới hạn so với ô lưới bao quanh.c1vàc2là hai lớp, Player và Ball. Bạn có thể có nhiều lớp tùy trường hợp sử dụng.
Để hiểu rõ, hãy chú ý hơn đến cầu thủ ở góc dưới bên phải.
Hình: Tác giả
3. Intersection Over Union (IOU)
Thường thì một đối tượng trong ảnh có thể có nhiều ô lưới ứng viên để dự đoán, dù không phải cái nào cũng phù hợp. Mục tiêu của IOU (giá trị từ 0 đến 1) là loại bỏ các ô như vậy để chỉ giữ những ô phù hợp. Logic như sau:
- Người dùng định nghĩa ngưỡng chọn IOU, ví dụ 0,5.
- Sau đó YOLO tính IOU của mỗi ô lưới, là diện tích Giao chia cho diện tích Hợp.
- Cuối cùng, bỏ qua dự đoán của các ô có IOU ≤ ngưỡng và giữ các ô có IOU > ngưỡng.
Dưới đây là minh họa áp dụng quá trình chọn lưới cho đối tượng ở góc dưới bên trái. Có thể thấy đối tượng ban đầu có hai ô ứng viên, và cuối cùng chỉ “Grid 2” được chọn.

Hình: Tác giả
4. Non-Max Suppression (NMS)
Đặt ngưỡng IOU không phải lúc nào cũng đủ vì một đối tượng có thể có nhiều hộp với IOU vượt ngưỡng, và giữ tất cả có thể gây nhiễu. NMS giúp chỉ giữ các hộp có điểm xác suất phát hiện cao nhất.
Ứng dụng của YOLO
Phát hiện đối tượng bằng YOLO có nhiều ứng dụng trong đời sống hằng ngày. Phần này sẽ đề cập một số trong các lĩnh vực: y tế, nông nghiệp, giám sát an ninh và xe tự hành.
Phát hiện đối tượng đã được đưa vào nhiều ngành thực tiễn như y tế và nông nghiệp. Hãy hiểu từng lĩnh vực qua ví dụ cụ thể.
Y tế
Đặc biệt trong phẫu thuật, việc định vị cơ quan theo thời gian thực có thể khó do sự khác biệt sinh học giữa các bệnh nhân. Kidney Recognition in CT dùng YOLOv3 để hỗ trợ định vị thận ở 2D và 3D từ ảnh chụp cắt lớp vi tính (CT).
Khóa Biomedical Image Analysis in Python có thể giúp bạn học nền tảng khám phá, thao tác và đo đạc dữ liệu ảnh y sinh bằng Python.

Phát hiện thận 2D bằng YOLOv3 (Ảnh từ Kidney Recognition in CT using YOLOv3)
Nông nghiệp
Trí tuệ nhân tạo và robot đóng vai trò lớn trong nông nghiệp hiện đại. Robot thu hoạch dựa trên thị giác được giới thiệu để thay thế việc hái trái cây và rau thủ công. Một trong những mô hình tốt nhất trong lĩnh vực này dùng YOLO. Trong Tomato detection based on a modified YOLOv3 framework, các tác giả mô tả cách họ dùng YOLO để nhận dạng loại trái cây và rau nhằm thu hoạch hiệu quả.

Ảnh từ Tomato detection based on modified YOLOv3 framework (nguồn)
Giám sát an ninh
Mặc dù phát hiện đối tượng thường được dùng trong giám sát an ninh, nhưng không chỉ có vậy. YOLOv3 đã được dùng trong đại dịch COVID-19 để ước lượng vi phạm giãn cách xã hội giữa người với người.
Bạn có thể đọc thêm tại A deep-learning-based social distance monitoring framework for COVID-19.
Xe tự hành
Phát hiện đối tượng thời gian thực là một phần “DNA” của hệ thống xe tự hành. Sự tích hợp này rất quan trọng vì xe cần nhận diện đúng làn đường và mọi đối tượng, người đi bộ xung quanh để tăng an toàn giao thông. Khả năng thời gian thực của YOLO khiến nó là ứng viên tốt hơn so với các cách tiếp cận phân đoạn ảnh đơn thuần.
Sự phát triển của YOLO: Từ 2015 đến 2024
Kể từ lần ra mắt đầu tiên năm 2015, YOLO đã phát triển mạnh với nhiều phiên bản. Phần này sẽ giúp hiểu khác biệt giữa các phiên bản.
YOLO hay YOLOv1: Điểm khởi đầu
Phiên bản đầu tiên của YOLO là bước ngoặt cho phát hiện đối tượng vì có thể nhận diện nhanh và hiệu quả.
Tuy nhiên, như nhiều giải pháp khác, YOLO phiên bản đầu có những hạn chế riêng:
- Khó phát hiện các đối tượng nhỏ trong nhóm, như một nhóm người trên khán đài. Lý do là mỗi ô lưới trong kiến trúc YOLO được thiết kế cho phát hiện một đối tượng.
- YOLO khó nhận diện được các hình dạng mới hoặc bất thường.
- Cuối cùng, hàm mất mát dùng để xấp xỉ hiệu năng phát hiện coi lỗi của hộp nhỏ và lớn như nhau, dẫn đến định vị sai.
YOLOv2 hay YOLO9000
YOLOv2 ra đời năm 2016 với ý tưởng làm cho YOLO tốt hơn, nhanh hơn và mạnh hơn.
Cải tiến bao gồm (nhưng không giới hạn) việc dùng Darknet-19 làm kiến trúc mới, batch normalization, độ phân giải đầu vào cao hơn, lớp tích chập với anchor, gom cụm theo chiều (dimensionality clustering), và (5) đặc trưng tinh (fine-grained features).
Batch normalization
Thêm lớp batch normalization cải thiện hiệu năng 2% mAP. Lớp này còn có hiệu ứng điều chuẩn, ngăn quá khớp.
Đầu vào độ phân giải cao hơn
YOLOv2 dùng trực tiếp đầu vào 448×448 thay vì 224×224, giúp mô hình điều chỉnh bộ lọc để hoạt động tốt hơn trên ảnh độ phân giải cao. Cách này tăng độ chính xác thêm 4% mAP sau khi huấn luyện 10 epoch trên dữ liệu ImageNet.
Các lớp tích chập dùng anchor box
Thay vì dự đoán trực tiếp tọa độ hộp giới hạn như YOLOv1, YOLOv2 đơn giản hóa bằng cách thay các lớp kết nối đầy đủ bằng anchor box. Cách này hơi giảm độ chính xác nhưng tăng recall 7%, tạo dư địa cải thiện.
Gom cụm theo chiều (dimensionality clustering)
YOLOv2 tự động tìm các anchor box nói trên bằng gom cụm k-means với k=5 thay vì chọn thủ công. Cách mới này mang lại cân bằng tốt giữa recall và precision.
Để hiểu rõ hơn gom cụm k-means, xem các hướng dẫn K-Means Clustering in Python with scikit-learn và K-Means Clustering in R. Chúng đào sâu khái niệm k-means bằng Python và R.
Đặc trưng tinh (Fine-grained features)
Dự đoán của YOLOv2 tạo bản đồ đặc trưng 13x13, đủ cho đối tượng lớn. Nhưng để phát hiện đối tượng nhỏ hơn, kiến trúc có thể chỉnh bằng cách biến bản đồ đặc trưng 26 × 26 × 512 thành 13 × 13 × 2048 rồi nối với đặc trưng gốc. Cách này cải thiện hiệu năng 1%.
YOLOv3: Cải tiến gia tăng
Một cải tiến gia tăng được thực hiện trên YOLOv2 để tạo YOLOv3.
Thay đổi chủ yếu là kiến trúc mạng mới: Darknet-53. Đây là mạng 106 lớp, có mạng upsampling và khối dư. Nó lớn hơn, nhanh hơn, chính xác hơn so với Darknet-19, xương sống của YOLOv2. Kiến trúc mới mang lại lợi ích trên nhiều mặt:
Dự đoán hộp giới hạn tốt hơn
YOLOv3 dùng hồi quy logistic để dự đoán điểm “objectness” cho mỗi hộp giới hạn.
Dự đoán lớp chính xác hơn
Thay vì dùng softmax như YOLOv2, YOLOv3 dùng các bộ phân loại logistic độc lập để dự đoán lớp của hộp giới hạn. Điều này hữu ích khi gặp miền phức tạp với nhãn chồng lấp (ví dụ Person → Soccer Player). Dùng softmax sẽ ép mỗi hộp chỉ thuộc một lớp, không phải lúc nào cũng đúng.
Dự đoán chính xác ở nhiều tỉ lệ
YOLOv3 thực hiện ba dự đoán ở các tỉ lệ khác nhau cho mỗi vị trí trong ảnh đầu vào để hỗ trợ upsampling từ các lớp trước. Chiến lược này cho phép thu được thông tin ngữ nghĩa chi tiết và giàu ý nghĩa hơn, cải thiện chất lượng đầu ra.
YOLOv4 : Tối ưu tốc độ và độ chính xác
Phiên bản này có tốc độ và độ chính xác tối ưu so với các phiên bản trước và các bộ dò tiên tiến khác.
Hình dưới cho thấy YOLOv4 vượt YOLOv3 và các mô hình khác về tốc độ FPS lần lượt 10% và 12%.

Tốc độ YOLOv4 so với YOLOv3 và các bộ dò tiên tiến khác (nguồn)
YOLOv4 được thiết kế riêng cho hệ thống sản xuất và tối ưu cho tính toán song song.
Xương sống kiến trúc YOLOv4 là CSPDarknet53, mạng gồm 29 lớp tích chập với bộ lọc 3 × 3 và khoảng 27,6 triệu tham số.
So với YOLOv3, kiến trúc này bổ sung các thành phần sau để phát hiện tốt hơn:
- Khối Spatial Pyramid Pooling (SPP) giúp tăng đáng kể vùng cảm thụ, tách lọc các đặc trưng ngữ cảnh quan trọng nhất mà không ảnh hưởng tốc độ.
- Thay vì Feature Pyramid Network (FPN) dùng ở YOLOv3, YOLOv4 dùng PANet để tổng hợp tham số từ các mức phát hiện khác nhau.
- Tăng cường dữ liệu dùng kỹ thuật mosaic kết hợp bốn ảnh huấn luyện cùng huấn luyện đối kháng tự thân (self-adversarial training).
- Chọn siêu tham số tối ưu bằng thuật toán di truyền.
YOLOR : You Only Look One Representation
Là một mạng thống nhất cho nhiều tác vụ, YOLOR dựa trên mạng hợp nhất kết hợp giữa tri thức tường minh và tri thức ngầm.

Kiến trúc mạng hợp nhất (nguồn)
Tri thức tường minh là học tập bình thường/có ý thức. Học ngầm là học từ kinh nghiệm một cách vô thức.
Kết hợp hai kỹ thuật này, YOLOR tạo được kiến trúc vững hơn dựa trên ba quy trình: (1) căn chỉnh đặc trưng, (2) căn chỉnh dự đoán cho phát hiện đối tượng, và (3) biểu diễn chuẩn cho học đa nhiệm
Căn chỉnh dự đoán
Cách này đưa biểu diễn ngầm vào bản đồ đặc trưng của mỗi feature pyramid network (FPN), cải thiện độ chính xác khoảng 0,5%.
Tinh chỉnh dự đoán cho phát hiện đối tượng
Dự đoán của mô hình được tinh chỉnh bằng cách thêm biểu diễn ngầm vào các lớp đầu ra của mạng.
Biểu diễn chuẩn cho học đa nhiệm
Huấn luyện đa nhiệm cần tối ưu hóa chung trên hàm mất mát dùng chung giữa các tác vụ. Quá trình này có thể làm giảm hiệu năng tổng thể; vấn đề có thể giảm nhẹ bằng tích hợp biểu diễn chuẩn trong quá trình huấn luyện.
Từ biểu đồ sau, ta thấy rằng YOLOR đạt trên bộ MS COCO tốc độ suy luận tiên tiến so với các mô hình khác.

Hiệu năng YOLOR so với YOLOv4 và các mô hình khác (nguồn)
YOLOX: Vượt qua dòng YOLO năm 2021
Mô hình này dùng baseline là phiên bản chỉnh sửa của YOLOv3, với Darknet-53 làm xương sống.
Được công bố trong bài Exceeding YOLO Series in 2021, YOLOX mang đến bốn đặc trưng chính để tạo mô hình tốt hơn so với các phiên bản cũ.
Đầu ra tách rời hiệu quả (decoupled head)
Đầu ra ghép (coupled head) ở các phiên bản YOLO trước làm giảm hiệu năng. YOLOX dùng đầu ra tách rời, tách biệt tác vụ phân loại và định vị, từ đó tăng hiệu năng.
Tăng cường dữ liệu mạnh mẽ
Tích hợp Mosaic và MixUp vào tăng cường dữ liệu giúp hiệu năng YOLOX tăng đáng kể.
Hệ thống không anchor
Thuật toán dựa trên anchor thực hiện gom cụm bên trong, làm tăng thời gian suy luận. Loại bỏ cơ chế anchor trong YOLOX giảm số dự đoán mỗi ảnh và cải thiện đáng kể thời gian suy luận.
SimOTA cho gán nhãn
Thay vì dùng IoU, tác giả đưa ra SimOTA, chiến lược gán nhãn vững hơn, đạt kết quả tiên tiến nhờ không chỉ giảm thời gian huấn luyện mà còn tránh các vấn đề siêu tham số bổ sung. Ngoài ra, nó còn cải thiện mAP phát hiện thêm 3%.
YOLOv5
YOLOv5, so với các phiên bản khác, không có bài báo nghiên cứu công bố và là phiên bản YOLO đầu tiên được hiện thực bằng Pytorch, thay vì Darknet.
Phát hành bởi Glenn Jocher tháng 6/2020, YOLOv5, tương tự YOLOv4, dùng CSPDarknet53 làm xương sống kiến trúc. Bản phát hành gồm năm kích thước mô hình: YOLOv5s (nhỏ nhất), YOLOv5m, YOLOv5l và YOLOv5x (lớn nhất).
Một cải tiến lớn trong kiến trúc YOLOv5 là tích hợp lớp Focus, biểu diễn bằng một lớp duy nhất thay thế ba lớp đầu của YOLOv3. Tích hợp này giảm số lớp, số tham số và tăng tốc cả lan truyền thuận và ngược mà không ảnh hưởng lớn đến mAP.
Minh họa sau so sánh thời gian huấn luyện giữa YOLOv4 và YOLOv5s.

So sánh thời gian huấn luyện giữa YOLOv4 và YOLOv5 (nguồn)
YOLOv6: Khung phát hiện đối tượng một giai đoạn cho ứng dụng công nghiệp
Dành cho ứng dụng công nghiệp với thiết kế hiệu quả thân thiện phần cứng và hiệu năng cao, khung YOLOv6 (MT-YOLOv6) được phát hành bởi Meituan, một công ty thương mại điện tử Trung Quốc.
Được viết bằng Pytorch, phiên bản mới này không thuộc YOLO chính thức nhưng vẫn mang tên YOLOv6 vì xương sống lấy cảm hứng từ kiến trúc YOLO một giai đoạn gốc.
YOLOv6 giới thiệu ba cải tiến đáng kể so với YOLOv5: thiết kế backbone và neck thân thiện phần cứng, đầu ra tách rời hiệu quả, và chiến lược huấn luyện hiệu quả hơn.
YOLOv6 cho kết quả vượt trội so với các phiên bản YOLO trước về độ chính xác và tốc độ trên bộ COCO như minh họa dưới đây.

So sánh các bộ dò đối tượng hiệu quả tiên tiến. Tất cả các mô hình được kiểm thử với TensorRT 7, trừ mô hình lượng tử hóa dùng TensorRT 8 (nguồn)
- YOLOv6-N đạt 35,9% AP trên bộ COCO với thông lượng 1234 FPS trên GPU NVIDIA Tesla T4.
- YOLOv6-S đạt kỷ lục mới 43,3% AP ở 869 FPS.
- YOLOv6-M và YOLOv6-L cũng đạt độ chính xác tốt hơn lần lượt 49,5% và 52,3% với cùng tốc độ suy luận.
Tất cả các đặc điểm này khiến YOLOv6 phù hợp cho ứng dụng công nghiệp.
YOLOv7 : Tập “bag-of-freebies” có thể huấn luyện và kỷ lục mới cho bộ dò thời gian thực
YOLOv7 ra mắt tháng 7/2022 trong bài Trained bag-of-freebies sets new state-of-the-art for real-time object detectors. Phiên bản này tạo bước tiến lớn trong phát hiện đối tượng, vượt qua tất cả mô hình trước về độ chính xác và tốc độ.

So sánh thời gian suy luận của YOLOv7 với các bộ dò thời gian thực khác (nguồn)
YOLOv7 có thay đổi lớn ở (1) kiến trúc và (2) mức Trainable bag-of-freebies:
Mức kiến trúc
YOLOv7 cải tổ kiến trúc bằng cách tích hợp Extended Efficient Layer Aggregation Network (E-ELAN), cho phép mô hình học đặc trưng đa dạng hơn để học tốt hơn.
Ngoài ra, YOLOv7 mở rộng kiến trúc bằng cách nối các kiến trúc của các mô hình dẫn xuất như YOLOv4, Scaled YOLOv4 và YOLO-R. Điều này giúp mô hình đáp ứng nhu cầu về tốc độ suy luận khác nhau.

Tăng tỉ lệ đồng thời độ sâu và bề rộng cho mô hình dựa trên nối (nguồn)
Trainable bag-of-freebies
Thuật ngữ bag-of-freebies ám chỉ việc cải thiện độ chính xác của mô hình mà không tăng chi phí huấn luyện, và đó là lý do YOLOv7 tăng không chỉ tốc độ suy luận mà cả độ chính xác phát hiện.
YOLOv8: Mở rộng tính mô-đun và linh hoạt
YOLOv8 giới thiệu thiết kế mô-đun và linh hoạt hơn, cho phép tùy chỉnh và tinh chỉnh dễ dàng. Hỗ trợ sẵn cho nhiều tác vụ ngoài phát hiện đối tượng như phân đoạn và ước lượng tư thế.
- Các mô hình gọn nhẹ tối ưu thêm cân bằng giữa tốc độ và độ chính xác, với kích thước nhỏ hướng tới ứng dụng thời gian thực trên thiết bị biên.
- Thêm hỗ trợ dữ liệu tùy chỉnh để dễ tích hợp với các bộ dữ liệu riêng, giúp linh hoạt cho ứng dụng cụ thể.
- YOLOv8 cũng bổ sung API mới để triển khai và quản lý mô hình trong môi trường sản xuất dễ hơn.
YOLO-NAS (Neural Architecture Search): Tối ưu kiến trúc
YOLO-NAS sử dụng Neural Architecture Search (NAS) để tự động thiết kế kiến trúc tối ưu, tối đa hóa hiệu năng mà không cần tinh chỉnh thủ công.
- Được tinh chỉnh để cân bằng tối ưu giữa hiệu năng và tài nguyên, phù hợp cả mô hình độ chính xác cao và ứng dụng độ trễ thấp.
- Tự động điều chỉnh độ phân giải cho các đối tượng khác nhau trong ảnh, tối ưu thêm quá trình suy luận.
YOLOv9: Kỹ thuật đột phá cho phát hiện đối tượng thời gian thực
YOLO-World: Phát hiện đối tượng Zero-Shot
YOLO-World, do Phòng thí nghiệm AI của Tencent phát triển, giới thiệu một mô hình mới: "prompt rồi mới phát hiện." Khác các mô hình YOLO truyền thống cần huấn luyện trên các lớp đối tượng cụ thể, YOLO-World có thể phát hiện đối tượng dựa trên văn bản nhắc (text prompt) mà không cần fine-tuning.
Năng lực zero-shot này loại bỏ nhu cầu mã hóa văn bản tức thời, đạt tới 74,1 FPS trên GPU V100. YOLO-World đặc biệt hữu ích khi bạn cần phát hiện đối tượng tùy chỉnh mà không thu thập dữ liệu huấn luyện.
Ra mắt năm 2024, YOLO phiên bản v9 giới thiệu một số kỹ thuật sáng tạo như sau:
- Programmable Gradient Information (PGI): Kỹ thuật mới tối ưu luồng gradient trong huấn luyện, giúp mô hình học hiệu quả hơn từ các bộ dữ liệu phức tạp.
- Generalized Efficient Layer Aggregation Network (GELAN): Cải tiến kiến trúc đáng kể giúp cải thiện học và tổng hợp đặc trưng, đóng góp cho cả độ chính xác và tốc độ.
YOLOv9 lập tiêu chuẩn mới trên bộ MS COCO, thể hiện hiệu năng vượt trội so với các phiên bản trước, đặc biệt về độ chính xác và khả năng thích ứng trên nhiều tác vụ. Dù được phát triển bởi một nhóm mã nguồn mở riêng, YOLOv9 xây dựng trên codebase của Ultralytics YOLOv5, thể hiện nỗ lực hợp tác trong cộng đồng AI để đẩy giới hạn của phát hiện đối tượng.
Phiên bản mới nhất này nhấn mạnh các tiến bộ lớn ở cả quy trình huấn luyện và kiến trúc, tập trung vào hiệu quả, khả năng thích ứng và độ chính xác cho ứng dụng thời gian thực.
YOLOv10: Phát hiện đối tượng thời gian thực không cần NMS
Phát hành tháng 5/2024 bởi các nhà nghiên cứu Đại học Thanh Hoa, YOLOv10 là bước tiến đáng kể trong phát hiện đối tượng thời gian thực. Đổi mới chính là loại bỏ Non-Maximum Suppression (NMS) trong suy luận, vốn thường gây độ trễ cho pipeline phát hiện.
YOLOv10 giới thiệu gán nhãn kép nhất quán cho huấn luyện không cần NMS, kết hợp gán nhãn một-nhiều và một-một. Cách này duy trì hiệu quả huấn luyện trong khi cho phép suy luận không cần NMS. Theo bài báo, YOLOv10-S nhanh hơn 1,8× so với RT-DETR-R18 với độ chính xác tương đương, đồng thời dùng ít tham số hơn 2,8×.
YOLOv11: Tăng tính mô-đun và hỗ trợ đa tác vụ
Phát triển bởi Ultralytics (tác giả YOLOv5 và YOLOv8), YOLOv11 hỗ trợ nhiều tác vụ thị giác máy tính: phát hiện đối tượng, phân đoạn instance, phân loại ảnh, phát hiện điểm mốc (keypoint) và hộp giới hạn định hướng (OBB). Mô hình YOLOv11x đạt 54,7% mAP trên chuẩn MS COCO.
YOLOv12: Kiến trúc dựa trên cơ chế chú ý
YOLOv12 đưa cơ chế chú ý (attention) vào kiến trúc YOLO, giúp mô hình tập trung vào vùng ảnh liên quan. Phiên bản này đạt độ chính xác tốt hơn trên cảnh phức tạp với đối tượng chồng lấp trong khi vẫn duy trì hiệu năng thời gian thực.
YOLO26: Tiến hóa mới nhất (2026)
YOLO26, phát hành tháng 1/2026 bởi Ultralytics, là mô hình đầu-cuối, tối ưu cho thiết bị biên, hỗ trợ năm tác vụ cốt lõi: phát hiện đối tượng, phân đoạn instance, ước lượng tư thế, phát hiện đối tượng định hướng (OBB) và phân loại ảnh. Nó đạt độ chính xác cao nhất trong dòng YOLO đồng thời duy trì tốc độ suy luận nhanh.
YOLO26 cung cấp nhiều kích thước mô hình (Nano, Small, Medium, Large, Extra Large) để cân bằng độ chính xác và tốc độ cho các kịch bản triển khai khác nhau. Cài đặt và sử dụng với:
from ultralytics import YOLO
# Load the model
model = YOLO("yolo26m.pt")
# Run inference
results = model("image.jpg")
results[0].show()
Kết luận
Bài viết đã trình bày lợi ích của YOLO so với các thuật toán phát hiện đối tượng tiên tiến khác và quá trình phát triển từ 2015 đến 2026 với các điểm cải tiến chính.
Với tốc độ phát triển nhanh của YOLO, không nghi ngờ gì nó sẽ tiếp tục dẫn đầu trong lĩnh vực phát hiện đối tượng trong thời gian rất dài.
Bước tiếp theo của bài viết sẽ là áp dụng thuật toán YOLO vào các trường hợp thực tế. Trong lúc chờ đợi, khóa học Introduction to Deep Learning in Python có thể giúp bạn học nền tảng mạng nơ-ron và cách xây dựng mô hình học sâu bằng Keras 2.0 trong Python.
Câu hỏi thường gặp (FAQs)
Chúng ta có thể dùng YOLO trên video không?
Có. YOLO là thuật toán phát hiện theo thời gian thực hoạt động trên cả ảnh và video.
YOLO có tốt hơn Faster R-CNN không?
Về Mean Average Precision (mAP), Faster R-CNN đạt 87,69%. Tuy nhiên, YOLOv3 có tốc độ ấn tượng, và số khung hình mỗi giây (FPS) nhanh gấp 8 lần Faster R-CNN.
Vì sao YOLO được gọi là You Only Look Once?
Vì YOLO dự đoán tất cả đối tượng trong một ảnh chỉ trong MỘT lần lan truyền (forward pass).
YOLO có thể phát hiện bao nhiêu lớp?
YOLO có khả năng phát hiện hơn 9000 lớp cùng lúc.
Phiên bản YOLO mới nhất vào năm 2026 là gì?
Phiên bản mới nhất là YOLO26, phát hành tháng 1/2026 bởi Ultralytics. Nó hỗ trợ phát hiện đối tượng, phân đoạn instance, ước lượng tư thế, hộp giới hạn định hướng (OBB) và phân loại ảnh. YOLO26 đạt độ chính xác cao nhất trong dòng YOLO đồng thời duy trì tốc độ suy luận nhanh phù hợp triển khai trên thiết bị biên.
Sự khác nhau giữa YOLO và Faster R-CNN là gì?
YOLO là bộ dò một giai đoạn xử lý ảnh trong một lần lan truyền, nhanh hơn (45+ FPS) nhưng đôi khi kém chính xác cho đối tượng nhỏ. Faster R-CNN là bộ dò hai giai đoạn: tạo vùng đề xuất rồi phân loại—đạt độ chính xác cao hơn (87,69% mAP) nhưng chậm hơn (chậm khoảng 8× so với YOLOv3). Chọn YOLO cho ứng dụng thời gian thực và chọn Faster R-CNN khi độ chính xác quan trọng hơn tốc độ.
Làm thế nào để cài đặt và chạy YOLO?
Cài đặt thư viện Ultralytics với pip install ultralytics. Sau đó chạy suy luận trong Python:
from ultralytics import YOLO
model = YOLO('yolo26m.pt')
results = model('image.jpg')
results[0].show()Bạn cũng có thể dùng CLI: yolo detect predict model=yolo26m.pt source=image.jpg
Nhà khoa học dữ liệu đa tài, yêu thích chia sẻ kiến thức và đóng góp cho cộng đồng, Zoumana là người sáng tạo nội dung trên YouTube và là cây bút công nghệ hàng đầu trên Medium. Anh yêu thích thuyết trình, lập trình và giảng dạy. Zoumana có hai bằng thạc sĩ: một về khoa học máy tính chuyên sâu Học máy tại Paris, Pháp, và một về Khoa học dữ liệu tại Texas Tech University, Hoa Kỳ. Anh bắt đầu sự nghiệp với vai trò Nhà phát triển phần mềm tại Groupe OPEN ở Pháp, sau đó chuyển sang IBM làm Tư vấn Học máy, nơi anh phát triển các giải pháp AI đầu-cuối cho các công ty bảo hiểm. Zoumana gia nhập Axionable, startup Trí tuệ nhân tạo Bền vững đầu tiên có trụ sở tại Paris và Montreal. Tại đây, anh làm Nhà khoa học dữ liệu và triển khai các sản phẩm AI, chủ yếu là các bài toán NLP, cho khách hàng tại Pháp, Montreal, Singapore và Thụy Sĩ. Ngoài ra, 5% thời gian của anh được dành cho Nghiên cứu và Phát triển. Hiện tại, anh làm việc với vai trò Nhà khoa học dữ liệu cao cấp tại IFC - Nhóm Ngân hàng Thế giới.
