1. Hạn chế
1.1. Ràng buộc về mặt không gian
1.1.1. Mỗi grid cell chỉ dự đoán tối đa 2 bounding boxes.
1.1.2. Vấn đề: Nhiều đối tượng (ví dụ nhiều con chim) cùng nằm trong một grid cell dẫn đến sai sót.
1.2. Downsampling
1.2.1. Sử dụng kỹ thuật downsampling (như pooling) trong CNN làm mất chi tiết của các đối tượng nhỏ.
1.3. Main Error
1.3.1. Sai số chủ yếu xuất hiện ở việc dự đoán vị trí bounding boxes.
2. Kết quả, đánh giá và cải tiến
2.1. Kết quả
2.1.1. Hiệu suất
2.1.1.1. Real-time
2.1.1.1.1. Chỉ số mAP vượt trội so với các phương pháp khác.
2.1.1.1.2. FPS nhanh hơn 30Hz, vượt trội hơn DPM.
2.1.1.1.3. Fast YOLO với 9 lớp tích chập hoạt động ổn định trong thời gian thực.
2.1.1.2. Less than real-time
2.1.1.2.1. Một số trường hợp dự đoán sai trên các đối tượng nhỏ hoặc khu vực không có object (background).
2.1.2. Sai số phổ biến
2.1.2.1. Background Error: Mô hình đôi khi dự đoán sai khu vực background là object, đặc biệt khi background có chi tiết nhỏ.
2.2. Ý tưởng cải tiến
2.2.1. Kết hợp RCNN và YOLO
2.2.1.1. Sử dụng RCNN để xử lý các khu vực phức tạp và chi tiết nhỏ.
2.2.1.2. Dùng YOLO để kiểm soát các khu vực liên quan đến sai số background, tăng tốc độ xử lý.
2.3. Sự vượt trội của YOLO trên tranh vẽ
2.3.1. Hạn chế của các model khác
2.3.1.1. Được training chủ yếu trên hình chụp thực tế → Hiệu suất kém khi test trên tranh vẽ hoặc hình ảnh ước lệ.
2.3.2. Khả năng của YOLO
2.3.2.1. YOLO vẫn đạt hiệu suất tốt khi làm việc với tranh vẽ.
2.3.2.2. Có khả năng học và nhận diện các đặc trưng ước lệ, gần giống với các đối tượng thực tế.
3. Confusion Matrix và Metrics
3.1. Confusion Matrix trong Classification
3.1.1. Ví dụ: Với 4 class (A, B, C, D): 90% dự đoán đúng là A. 7% nhầm là B. 3% nhầm là C.
3.1.2. Các chỉ số giúp hiểu mức độ trùng lặp giữa các class (VD: cam nhầm với chanh → chấp nhận được).
3.2. Confusion Matrix trong Object Detection
3.2.1. True Positive (TP)
3.2.1.1. IOU≥0.5 và đúng class.
3.2.2. True Negative (TN)
3.2.2.1. Không có object, và model cũng không phát hiện object (ít xảy ra).
3.2.3. False Positive (FP)
3.2.3.1. IOU≥0.5, nhưng sai class.
3.2.4. False Negative (FN)
3.2.4.1. IOU<0.5, có object nhưng không phát hiện được.
3.3. IOU (Intersection over Union)
3.3.1. Là chỉ số quan trọng trong đánh giá Object Detection.
3.3.2. Mức ngưỡng phổ biến: IOU≥0.5 để chấp nhận một dự đoán là đúng.
3.3.3. Hai object có IOU=0 chưa chắc giống nhau về đặc trưng.
4. Precision-Recall Curve
4.1. Định nghĩa và Cách Tính
4.1.1. Precision-Recall Curve là biểu đồ biểu diễn mối quan hệ giữa Precision và Recall ở các mức ngưỡng IOU khác nhau.
4.1.2. VOC Dataset: 20 classes, IOU threshold = 0.5.
4.1.3. COCO Dataset: 80 classes với nhiều mức IOU từ 0.5 đến 0.95.
4.2. Average Precision (AP)
4.2.1. AP (Average Precision): Trung bình của các giá trị Precision tại các mức Recall.
4.2.1.1. VOC sử dụng 11 điểm để tính trung bình.
4.2.2. AP AUC: Diện tích bên dưới đường Precision-Recall interpolated (đường màu đỏ).
4.3. AP_101 và mAP
4.3.1. AP_101: Precision-Recall Curve chia thành 101 điểm
4.3.1.1. Xét IOU threshold từ 0.5 đến 0.95 với bước nhảy 0.05 → 10 giá trị AP.
4.3.1.2. Trung bình 10 giá trị AP được gọi là mAP (mean Average Precision).
4.3.2. Mối quan hệ IOU và AP
4.3.2.1. IOU threshold càng cao → tiêu chí đánh giá càng khắt khe → AP càng giảm.
4.4. Precision-Recall Curve và Confusion Matrix
4.4.1. Precision-Recall Curve được xây dựng từ Confusion Matrix
4.4.1.1. Với mỗi mức ngưỡng IOU, Confusion Matrix xác định các giá trị True Positive (TP), False Positive (FP), và False Negative (FN).
4.4.1.2. Precision = TP/(TP+FP)
4.4.1.3. Recall = TP(TP+FN)
4.5. Đánh giá qua Precision-Recall Curve
4.5.1. Dễ dàng so sánh các mô hình bằng cách vẽ các đường Precision-Recall trên cùng một biểu đồ.
4.5.2. Diện tích bên dưới đường càng lớn → Mô hình càng chính xác.
5. Ứng dụng
5.1. Giao thông
5.1.1. Nhận diện xe cộ, đếm phương tiện.
5.2. Y tế
5.2.1. Phân tích hình ảnh y khoa (CT, X-ray).
5.3. Công nghiệp
5.3.1. Phát hiện lỗi trong dây chuyền sản xuất.
5.4. Công nghệ di động
5.4.1. Nhận diện trong ứng dụng AR/VR.
6. Tổng quan YOLOv1
6.1. Giới thiệu
6.1.1. YOLO viết tắt của "You Only Look Once".
6.1.2. Được giới thiệu lần đầu trong bài báo "You Only Look Once: Unified, Real-Time Object Detection".
6.1.3. One-stage object detection
6.1.3.1. Dự đoán bounding boxes và phân loại đối tượng trong một bước duy nhất, không cần giai đoạn trung gian như region proposals.
6.1.3.2. Toàn bộ pipeline đơn giản, ánh xạ trực tiếp từ ảnh đầu vào sang đầu ra (tọa độ, confidence, class probabilities).
6.1.3.3. Ưu điểm so với Two-Stage
6.1.3.3.1. Tốc độ: Nhanh hơn, phù hợp real-time (giám sát, xe tự hành).
6.1.3.3.2. Kiến trúc đơn giản: Dễ triển khai, yêu cầu tài nguyên thấp hơn.
6.1.3.3.3. Tích hợp tốt: Phù hợp với thiết bị IoT và nhúng.
6.1.3.4. Hạn chế
6.1.3.4.1. Độ chính xác thấp hơn trên đối tượng nhỏ hoặc chồng chéo.
6.1.3.4.2. Gặp vấn đề class imbalance, nhưng đã được cải thiện (Focal Loss - RetinaNet).
6.2. Ưu điểm
6.2.1. Tốc độ xử lý nhanh (real-time).
6.2.2. Toàn bộ khung hình được xử lý đồng thời thay vì chia nhỏ thành các vùng.
6.2.3. Khả năng tổng quát hóa tốt trên các loại dữ liệu khác nhau.
7. Kiến trúc mạng của YOLOv1
7.1. Tổng quan
7.1.1. Mạng YOLOv1 gồm 24 lớp convolutional và 2 lớp fully connected.
7.1.2. Các lớp convolutional sử dụng kích thước kernel 1x1 và 3x3.
7.2. Thành phần chính
7.2.1. Convolutional Layers: Trích xuất đặc trưng từ ảnh đầu vào.
7.2.2. Pooling Layers: Giảm kích thước ảnh, tăng tốc độ tính toán.
7.2.3. Fully Connected Layers: Gắn kết toàn bộ đặc trưng để đưa ra dự đoán cuối.
7.3. Output Layer
7.3.1. Mỗi ô đầu ra một tensor kích thước
7.3.1.1. Tọạ độ (x, y).
7.3.1.2. Kích thước (w, h).
7.3.1.3. Class probability
7.3.1.4. Confidence score
7.3.1.4.1. Nếu ô nào có tâm con vật, cho nó bằng 1, không có object cho là 0
7.3.1.4.2. Thông tin 1: Liệu bounding box có object Thông tin 2: Độ chính xác của nó (vị trí và kích thước)
7.3.1.4.3. IOU: Diện tích phần giao/Diện tích phần hợp
8. Cấu trúc và cơ chế hoạt động
8.1. Phân chia grid
8.1.1. Hình ảnh được chia thành các ô lưới (grid cells) kích thước
8.1.2. Số thông tin của một grid cell
8.1.2.1. Có 5 giá trị trong một bức ảnh 7x7 grid cell
8.1.2.2. Bản chất là bài toán Regression (Ước lượng 1 hoặc nhiều giá trị thực) → không phải phân loại
8.1.2.3. Đầu vào: 448x448x3
8.1.2.4. Đầu ra: Một khối 7x7x30
8.2. Đầu ra từ mỗi ô
8.2.1. Mỗi ô dự đoán
8.2.1.1. Bounding boxes
8.2.1.2. Class probabilities
8.2.1.3. Class probabilities
8.3. Loss Function
8.3.1. Gồm 3 phần chính
8.3.1.1. Localization loss: Sai số tọạ độ (x, y, w, h).
8.3.1.2. Confidence loss: Sai số dự đoán điểm tin cậy.
8.3.1.3. Classification loss: Sai số phân loại.
8.3.2. Loss function được cân bằng với các hệ số trọng số
8.3.2.1. λcoord: Trọng số cho localization loss.
8.3.2.2. λnoobj : Trọng số giảm ảnh hưởng của ô không chứa đối tượng (no object).
8.4. Quy trình xử lý
8.4.1. Ảnh đầu vào: 448x448 pixel.
8.4.2. Qua mạng CNN để trích xuất đặc trưng.
8.4.3. Kết quả cuối: Vector chứa thông tin vị trí, kích thước và lớp của đối tượng.
9. Hàm kích hoạt
9.1. Leaky ReLU
9.1.1. Được sử dụng trong tất cả các lớp convolution để giải quyết vấn đề chết neuron (vanishing gradients).
9.1.2. Cải thiện khả năng học so với ReLU thông thường nhờ xử lý giá trị âm (cho phép gradient khác 0 khi x≤0).
9.1.3. Giữ hiệu quả tính toán cao, phù hợp với tốc độ real-time.
9.2. Linear Activation
9.2.1. Được sử dụng tại lớp đầu ra để dự đoán tọa độ bounding box (x, y, w, h).
10. Training
10.1. Chia 2 giai đoạn
10.1.1. Giai đoạn 1
10.1.1.1. Train trên tập ImageNet (sử dụng kiến trúc AlexNet)
10.1.2. Giai đoạn 2
10.1.2.1. Transfer Learning: Thêm 4 lớp tích chập và 2 lớp fully connected.
10.1.2.2. Train trên tập PASCAL VOC 2007.
10.2. Thông số huấn luyện
10.2.1. Batch size: 64.
10.2.2. Momentum: 0.9.
10.2.3. Learning rate
10.2.3.1. Khởi đầu : 10^-3, tăng lên 10^-2 sau đó giảm dần
10.2.3.2. Tổng cộng: 135 epochs.
10.3. Kỹ thuật cải tiến
10.3.1. Dropout: Giảm overfitting.
10.3.2. Data augmentation: Mở rộng dữ liệu để tăng tính đa dạng.