Chương 1 Tổng quan Giới thiệu khái quát và tổng quan về tình hình nghiên cứu cũng như các phương pháp nghiên cứu của đề tài. Chương 2: Cơ sở lý thuyết: Giới thiệu mô tả về tổng quan lý thuyết. nguyên lý hoạt động của các mô-đun được sử dụng, các giao thức truyền nhận, các thuật toán về xử lý ảnh và các framework. Chương 3: Thiết kế và thi công: Trình bày các sơ đồ khối hệ thống, nguyên lý hoạt động của các khối thành phần hệ thống.
Chương 4: Kết quả, đánh giá hệ thống: Đánh giá các chức năng, trình bày kết quả cuối cùng đạt được từ phần cứng và phần mềm. Chương 5: Kết luận và hướng phát triển: Kết luận đề tài đối với những kết quả đạt được, nêu mặt còn hạn chế từ đó đề xuất hướng phát triển của hệ thống. 6 CHƯƠNG 2 CƠ SỞ LÝ THUYẾT 2.1 NHẬN DIỆN ĐỐI TƯỢNG Nhận diện đối tượng là một kỹ thuật tiên tiến trong lĩnh vực thị giác máy tính. Nó đóng vai trò như đôi mắt thông minh cho máy tính, giúp chúng có khả năng phát hiện và phân loại các vật thể trong hình ảnh hoặc video.1 Nhận diện đối tượng Các thuật toán nhận diện đối tượng chủ yếu được chia thành 2 nhóm chính: - Các mô hình RCNN (Region-Based Convolutional Neural Networks): Đây là các mô hình sử dụng mạng nơ-ron tích chập (Convolutional Neural Networks) để giải quyết các bài toán về định vị và nhận diện vật thể.
- Các mô hình YOLO (You Only Look Once): Đây là các mô hình được thiết kế để có thể nhận dạng các đối tượng theo thời gian thực (real-time). YOLO kết hợp các lớp tích chập (convolutional layers) để trích xuất các đặc trưng của ảnh và các lớp kết nối đầy đủ (full-connected layers) để dự đoán xác suất và tọa độ của các đối tượng.2 TÌM HIỂU VỀ MÔ HÌNH YOLO YOLO (You Only Look Once) là một trong các mô hình mạng nơ-ron tích chập (CNN) được thiết kế để nhận diện đối tượng trong thời gian thực. So với các phương pháp nhận hiện đối tượng trước đây, YOLO nổi bật bởi tốc độ xử lý nhanh chóng và độ chính xác cao, biến nó thành lựa chọn lý tưởng cho nhiều ứng dụng trong thực tế. Phần cốt lõi của YOLO là base network, bao gồm chủ yếu các lớp tích chập 7 (convolutional layers) và các lớp kết nối đầy đủ (fully connected layers).
Nhiệm vụ của base network là trích xuất các đặc trưng (feature) từ ảnh đầu vào. Sau phần base network là các Extra Layers, được áp dụng lên feature map để thực hiện việc phát hiện và định vị các đối tượng trong ảnh [4].2 Sơ đồ kiến trúc mạng YOLO 2.1 Dựa trên ô lưới (grid cell) Cách tiếp cận độc đáo của YOLO bắt đầu bằng việc chia ảnh đầu vào thành một lưới S×S, với S là một siêu tham số được chọn trước. Mỗi ô trong lưới này 'sở hữu' một tập hợp các bounding box tiềm năng và dự đoán xác suất các lớp đối tượng cho từng bounding box. Nguyên lý hoạt động cụ thể như sau: Mỗi ô lưới chỉ dự đoán một đối tượng.
Nếu tâm của một đối tượng nằm trong ô lưới, thì ô đó sẽ chịu trách nhiệm dự đoán đối tượng đó. Quá trình này được lặp lại trên toàn bộ lưới để phát hiện và định vị các đối tượng trong ảnh.3 Nguyên lí hoạt động nhận diện của YOLO 8 2.2 Non-max suppression Thuật toán YOLO (You Only Look Once) có xu hướng dự báo ra nhiều bounding box trên một bức ảnh. Do đó đối với những vùng trong ảnh có các cell (ô vuông) nằm gần nhau, khả năng các bounding box bị chồng chéo (overlap) là rất cao. Để giải quyết vấn đề này, YOLO sử dụng kỹ thuật non-max suppression.
Phương pháp này giúp giảm đáng kể số lượng bounding box được sinh ra. Cụ thể, non-max suppression sẽ loại bỏ các bounding box dự báo có độ chồng chéo cao, chỉ giữ lại những bounding box quan trọng nhất [4]. Quá trình non-max suppression bao gồm các bước như: sắp xếp các bounding box theo điểm số từ cao đến thấp, sau đó loại bỏ các bounding box có độ chồng chéo vượt quá một ngưỡng cho trước so với bounding box đang xét. Việc áp dụng non-max suppression giúp YOLO tập trung vào những vùng quan trọng nhất trong ảnh, từ đó cải thiện hiệu suất và độ chính xác của việc phát hiện đối tượng.3 Các chỉ số đánh giá Có một số chỉ số thường được sử dụng để đánh giá hiệu suất của các mô hình phát hiện đối tượng: Mean Average Precision (mAP): Độ chính xác của một mô hình được định nghĩa là số lượng true positives chia cho tổng số true positives và false positives.
Chỉ số mAP tính đến cả độ chính xác và độ thu hồi của mô hình, được tính bằng giá trị trung bình của average precision cho mỗi class. Một giá trị mAP cao hơn chỉ ra hiệu suất tốt hơn của mô hình. Average Precision (AP): Đây là một đo lường độ chính xác của mô hình ở các mức độ thu hồi khác nhau. Độ chính xác được định nghĩa là số lượng true positives chia cho tổng số true positives và false positives.
Độ thu hồi được định nghĩa là số lượng true positives chia cho tổng số true positives và false negatives. AP được tính bằng diện tích dưới đường cong precision-recall. Một giá trị AP cao hơn chỉ ra hiệu suất tốt hơn của mô hình. Intersection over Union (IoU): IoU là một đo lường sự chồng chéo giữa vùng bounding box dự đoán và vùng bounding box ground-truth.
Nó được tính bằng cách 9 lấy diện tích giao của hai vùng và chia cho diện tích của vùng kết hợp. Một giá trị IoU cao hơn chỉ ra sự tương ứng tốt hơn giữa vùng bounding box dự đoán và ground- truth. Ngoài ra còn có một số chỉ số khác đánh giá độ chính xác, như True Positive Rate (TPR), False Positive Rate (FPR), F1-score, và Log Average Miss Rate (MR). Ngoài những chỉ số này, các mô hình phát hiện đối tượng cũng có thể được đánh giá dựa trên hiệu quả tính toán của chúng [5].4 Hàm mất mát Trong YOLO, hàm mất mát (loss function) đóng vai trò rất quan trọng trong quá trình huấn luyện mô hình.
Mục tiêu của hàm lỗi là tối ưu hóa khả năng dự đoán chính xác vị trí, kích thước và lớp của các đối tượng trong hình ảnh bằng cách tối ưu hóa đồng thời ba yếu tố chính: dự đoán chính xác lớp đối tượng (classification), dự đoán chính xác tọa độ của bounding box (localization), và dự đoán chính xác độ tin cậy của bounding box (confidence) [5]. 1) Classification loss là một hàm lỗi được sử dụng để đánh giá độ chính xác của việc dự đoán loại nhãn (class) của một đối tượng. Nó chỉ tính toán trên những ô vuông (bounding box) có chứa đối tượng, mà không tính trên những ô vuông không chứa đối tượng [5]. 1) 𝑖=0 𝑐=0 Trong đó: 𝑜𝑏𝑗 1𝑖 : Hàm indicator có giá trị 0,1 nhằm xác định xem cell i có chứa vật thể hay không.
Bằng 1 nếu chứa vật thể và 0 nếu không chứa. 𝑝𝑖 (𝑐): Xác suất thực tế của lớp c trong grid cell i. 𝑝̂ 𝑖 (𝑐): Xác suất dự đoán của lớp c trong grid cell i. Localization loss là một hàm lỗi dùng để đánh giá độ chính xác của việc dự đoán vị trí (tọa độ, kích thước) của boundary box (hộp giới hạn) của đối tượng, so với vị trí thực tế (ground truth) từ dữ liệu huấn luyện [5].2) 𝑆2 𝐵 2 2 + 𝑐𝑜𝑜𝑟𝑑 ∑ ∑ 1𝑖𝑗 (√𝑤𝑖 − √𝑤 𝑜𝑏𝑗 ̂𝑖 ) + (√ℎ𝑖 − √ℎ̂𝑖 ) 𝑖=0 𝑗=0 Trong đó: 𝑐𝑜𝑜𝑟𝑑 : Hệ số điều chỉnh, thường được đặt giá trị cao hơn để nhấn mạnh tầm quan trọng của localization loss.
𝑜𝑏𝑗 1𝑖,𝑗 : Cho biết bounding box thứ j của cell i có chứa đối tượng 𝑥𝑖 𝑦𝑖 , 𝑤𝑖 , ℎ,: Tọa độ trung tâm và kích thước thực tế của bounding box. ̂𝑖 , ℎ̂𝑖 : Tọa độ trung tâm và kích thước dự đoán của bounding box. 𝑥̂𝑖 , 𝑦̂𝑖 , 𝑤 Confidence loss là một hàm lỗi dùng để đánh giá độ chính xác của việc dự đoán xem liệu một boundary box (hộp giới hạn) có chứa đối tượng hay không, so với nhãn thực tế (ground truth) tại ô vuông đó [5]. 3) 𝑖=0 𝑗=0 𝑖=0 𝑗=0 11 Trong đó: 𝑛𝑜𝑜𝑏𝑗 : Hệ số điều chỉnh quan trọng được sử dụng để kiểm soát trọng số của phần lỗi liên quan đến các bounding box không chứa đối tượng (no-object).
𝑛𝑜𝑜𝑏𝑗 1𝑖,𝑗 : Cho biết bounding box thứ j của cell i không chứa đối tượng 𝐶𝑖 : Độ tin cậy thực tế (1 nếu có đối tượng, 0 nếu không có). 𝐶̂𝑖 : Độ tin cậy dự đoán.3 TỔNG QUAN VỀ MÔ HÌNH YOLO V8 YOLO v8 là phiên bản mới nhất của thuật toán YOLO, được phát triển bởi Ultralytics, một công ty do Joseph Redmon, người sáng lập ra YOLO, thành lập. YOLO v8 được ra mắt vào năm 2023 và mang lại một số cải tiến so với các phiên bản YOLO trước đó.5 Hiệu suất của YOLO v8 so với phiên bản trước 2.1 Kiến trúc mô hình YOLO v8 12 Hình 2.6 Kiến trúc mô hình YOLO v8 YOLOv8 có nhiều phiên bản đa dạng với trọng số và tốc độ tính toán xử lí khác nhau được đánh giá trên tập dữ liệu COCO cho thấy tùy thuộc vào bài toán đặt ra có thể lựa chọn mô hình phù hợp để huấn luyện. 7 Các phiên bản của YOLOv8 được đánh giá theo COCO 2.2 Tính năng của YOLO v8 YOLOv8 có nhiều tính năng đáng chú ý.
Dưới đây là một số tính năng chính của YOLOv8: Tăng tốc độ: YOLOv8 đạt tốc độ suy luận nhanh hơn so với các mô hình phát hiện đối tượng khác trong khi vẫn duy trì độ chính xác cao. Nhiều cơ sở: YOLOv8 hỗ trợ các cơ sở khác nhau, chẳng hạn như EfficientNet, ResNet và CSPDarknet, cho phép người dùng lựa chọn mô hình tốt nhất cho trường hợp cụ thể của họ. Đào tạo thích ứng: YOLOv8 sử dụng đào tạo thích ứng để tối ưu hóa tốc độ học và cân bằng hàm mất mát trong quá trình đào tạo, dẫn đến hiệu suất mô hình tốt hơn. Tăng cường dữ liệu nâng cao: YOLOv8 sử dụng các kỹ thuật tăng cường dữ liệu nâng cao như MixUp và CutMix để cải thiện tính bền vững và khái quát hóa của mô hình.
Kiến trúc có thể tùy chỉnh: Kiến trúc của YOLOv8 rất có thể tùy chỉnh, cho phép người dùng dễ dàng sửa đổi cấu trúc và thông số của mô hình để phù hợp với nhu cầu của họ. Mô hình được xây dựng trước: YOLOv8 cung cấp các mô hình được xây dựng trước để sử dụng dễ dàng và chuyển giao học tập trên các tập dữ liệu khác nhau.