Chương 1: Tổng quan Trong chương này trình bày lý do chọn đề tài, các mục tiêu, giới hạn, đối tượng nghiên cứu, phạm vi nghiên cứu và phương pháp nghiên cứu của đề tài. Chương 2: Cơ sở lý thuyết Giới thiệu về YOLO, trình bày các kỹ thuật quan trọng được sử dụng trong YOLO, mô tả chi tiết phiên bản YOLOv8 và các kỹ thuật khác. Chương 3: Thiết kế hệ thống Xây dựng hệ thống, các thiết bị phù hợp, xây dựng sơ đồ khối và sơ đồ nguyên lí của hệ thống. Chương 4: Kết quả Trình bày và đánh giá các kết quả sau khi hoàn thiện.
Chương 5: Kết luận và hướng phát triển Đưa ra kết luận, hạn chế và định hướng phát triển cho đề tài. 4 CHƯƠNG 2 CƠ SỞ LÝ THUYẾT 2.1 Tổng quan về YOLO You Only Look Once (YOLO) là một thuật toán nhận diện đối tượng tiên tiến, thời gian thực được giới thiệu vào năm 2015 bởi Joseph Redmon, Santosh Divvala, Ross Girshick và Ali Farhadi trong nghiên cứu nổi tiếng của họ "You Only Look Once: Unified, Real-Time Object Detection" [3]. Cảm hứng của YOLO bắt nguồn từ sự cần thiết trong lĩnh vực thị giác máy tính và trí tuệ nhân tạo, nơi mà việc phát hiện đối tượng đòi hỏi sự kết hợp giữa độ chính xác và tốc độ cao. Trước YOLO, các phương pháp truyền thống thường phải thực hiện nhiều bước phức tạp, từ trích xuất đặc trưng đến dự đoán lớp đối tượng, dẫn đến tốn kém thời gian và tài nguyên tính toán.
Con người có thể dễ dàng nhận biết và chọn lọc các đối tượng trong môi trường mà không cần quá chú ý đến tình hình cụ thể, bất kể đối tượng đó ở vị trí nào, hoặc liệu chúng có bị lộn ngược, khác về màu sắc hoặc kết cấu, bị che khuất một phần, và những yếu tố khác. Tuy nhiên, để trích xuất thông tin về các đối tượng và hình dạng trong một bức ảnh, việc nhận diện và nhận biết các đối tượng trên máy tính đòi hỏi một lượng xử lý lớn [4]. Việc nhận diện một đối tượng trong một hình ảnh hoặc video được gọi là nhận diện đối tượng trong thị giác máy tính. Các bước chính trong nhận diện đối tượng bao gồm trích xuất đặc điểm, điều này quan trọng cho việc giám sát, nhận diện xe cộ và nhận diện đối tượng dưới nước, trong các ứng dụng khác nhau.
Các phương pháp khác nhau đã được sử dụng để nhận diện đúng và chính xác đối tượng cho các ứng dụng chuyên biệt. Tuy nhiên, các giải pháp đề xuất vẫn gặp vấn đề về độ chính xác và hiệu suất. Các phương pháp học máy và mạng nơ-ron sâu đã thành công hơn trong việc giải quyết những vấn đề này trong nhận diện đối tượng [5]. Mục tiêu của việc nhận diện đối tượng là tìm ra tất cả các trường hợp của các đối tượng từ một lớp đã biết, như con người, xe hơi hoặc khuôn mặt, trong một bức ảnh.
Thường thì chỉ có một số ít trường hợp của đối tượng xuất hiện trong bức ảnh, nhưng có một số lượng rất lớn các vị trí và tỉ lệ mà chúng có thể xuất hiện và cần phải được 5 xem xét. Mỗi trường hợp của việc nhận diện đều được mô tả bằng thông tin về đặc trưng của dữ liệu. Thông tin này có thể đơn giản như vị trí của đối tượng, một vùng và tỉ lệ, hoặc diện tích của đối tượng được mô tả bằng hộp giới hạn. Trong một số trường hợp, thông tin về đặc trưng còn cụ thể hơn, bao gồm các thông số của một biến đổi tuyến tính hoặc phi tuyến tính.
Ví dụ, một công cụ nhận diện khuôn mặt có thể xác định các vị trí của mắt, mũi và miệng, cùng với hộp giới hạn trên khuôn mặt. YOLO được phát triển với mục tiêu giải quyết các thách thức bằng một phương pháp phát hiện đối tượng đơn giản hóa và hiệu quả. Bằng cách thực hiện phát hiện trong một lần chạy mô hình, YOLO loại bỏ các bước trung gian phức tạp và tối ưu hóa quy trình phát hiện đối tượng. Đồng thời, YOLO tập trung vào việc tối ưu hóa tốc độ xử lý mà vẫn đảm bảo độ chính xác của kết quả.
Sự tiện lợi trong triển khai cũng là một yếu tố quan trọng của YOLO. Khả năng dễ dàng triển khai trên nhiều nền tảng, từ các thiết bị nhúng đến máy tính cá nhân, đã tạo điều kiện thuận lợi cho việc ứng dụng YOLO vào các ứng dụng thực tế. Trí tuệ nhân tạo đã được áp dụng phổ biến trong vài năm trở lại đây, và Deep learning đóng một vai trò quan trọng trong quá trình này. Deep learning sử dụng các thuật toán được ảnh hưởng bởi cấu trúc và chức năng.
Làm việc với các thuật toán như vậy có lợi thế là hiệu suất thường cải thiện theo tỉ lệ với sự tăng dữ liệu, so với các thuật toán học thông thường mà hiệu suất ổn định dù có tăng lượng dữ liệu. Một số chủ đề nghiên cứu phổ biến nhất trong ứng dụng thị giác máy tính đã đặt việc giám sát đối tượng thời gian thực lên hàng đầu. Mặc dù có tiến bộ ấn tượng đã được đạt được trong nhiều năm gần đây, nhưng vẫn còn khó khăn trong việc theo dõi các đối tượng một cách chính xác và hiệu quả trong thời gian thực ở mức độ đáng kể. Các tính năng của hình ảnh và video cho các ứng dụng giám sát và an ninh được trích xuất trong quá trình xác định thuật toán nhận diện và giám sát.
Một số trong những thuật toán phổ biến bao gồm You Only Look Once (YOLO), mạng nơ-ron tích chập dựa trên cấu trúc đầy đủ (CNN), và các phiên bản nhanh hơn của thuật toán nhận diện đối tượng phổ biến (Faster R-CNN). RCNN thường chính xác 6 hơn so với các thuật toán khác, nhưng YOLO lại nổi bật hơn khi tốc độ được ưu tiên hơn so với độ chính xác [6]. YOLO là một phương pháp phổ biến trong lĩnh vực thị giác máy tính và xử lý ảnh, nhằm mục đích phát hiện và định vị đối tượng trong hình ảnh và video. Sử dụng mạng nơ-ron tích chập (CNN) để trích xuất đặc trưng từ hình ảnh, YOLO có khả năng dự đoán vị trí và lớp của các đối tượng một cách hiệu quả và nhanh chóng [6].1: Lịch sử phát triển của YOLO [6].
Một trong những đặc điểm nổi bật của YOLO là việc chia hình ảnh thành một lưới các ô vuông có kích thước cố định. Mỗi ô vuông trong lưới dự đoán một số lượng cố định các hộp giới hạn và xác suất tương ứng cho các đối tượng. Từ các dự đoán này, YOLO có thể phát hiện đồng thời nhiều đối tượng trong một lần chạy mô hình. Các dự đoán của YOLO bao gồm các thông tin như tọa độ của hộp giới hạn, xác suất của đối tượng trong hộp đó, và các điểm đặc trưng của đối tượng, như lớp và các thuộc tính khác.
Quá trình huấn luyện của YOLO được thực hiện thông qua việc điều chỉnh các trọng số của mạng nơ-ron để giảm thiểu sai số giữa dự đoán và nhãn thực tế trên tập dữ liệu huấn luyện. So sánh YOLO với các thuật toán phát hiện đối tượng phổ biến khác khác như R-CNN và SSD. Mặc dù YOLO không phải là thuật toán chính xác nhất, nhưng YOLO là thuật toán phát hiện đối tượng nhanh nhất. Theo kết quả của nhóm nghiên cứu ở trường đại học Southern Medical, Quảng Châu, Trung quốc (2021, 6) [7], ba phương pháp Faster R-CNN, YOLOv3 và SSD được đào tạo bằng cơ sở dữ liệu thuốc để nhận dạng và phân phối, kết quả cho thấy mô hình Faster R-CNN có MAP 7 cao (87.69%) nhưng tốc độ phát hiện thấp (FPS: 7) không đủ nhanh cho thời gian thực.
SSD có hiệu suất trung bình với MAP (82. Mặc dù YOLOv3 có MAP khiêm tốn nhất (80.17%) nhưng lại có tốc độ (FPS: 51) cao nhất. Vì vậy, trong các bệnh viện, YOLOv3 là lựa chọn phù hợp nhất trong ba phương pháp trên, Xác định thuốc, giảm xác suất phân phối thuốc sai và có thể giúp đỡ cải thiện sự an toàn của bệnh nhân.1: So sánh các thuật toán phát hiện đối tượng phổ biến dựa trên kết quả nghiên cứu [7] nêu trên. Thuật toán Độ chính xác Tốc độ Ứng dụng chính Phát hiện đối tượng chính xác Faster R-CNN Cao Thấp cao, ứng dụng nghiên cứu Phát hiện đối tượng thời gian YOLOv3 Trung bình Cao thực, ứng dụng di động Cân bằng giữa tốc độ và độ SSD Trung bình Trung bình chính xác Với khả năng kết hợp giữa độ chính xác và tốc độ, YOLO đã trở thành một công cụ quan trọng trong nhiều lĩnh vực ứng dụng như xe tự lái, giám sát an ninh, nhận diện khuôn mặt, phân loại đối tượng và nhiều ứng dụng khác trong thị giác máy tính và trí tuệ nhân tạo.2 Các kỹ thuật chính được sử dụng trong YOLO 2.1 Kỹ thuật Grid Cell Kỹ thuật Grid Cell (Ô Lưới) là một thành phần cốt lõi của thuật toán phát hiện vật thể YOLO, giúp tăng tốc và đơn giản hóa quá trình phát hiện vật thể trong ảnh.
Kỹ thuật này hoạt động bằng cách chia nhỏ ảnh dữ liệu đầu vào thành một lưới các ô vuông có kích thước S x S, trong đó S là một số nguyên dương. Mỗi ô lưới đại diện cho một khu vực cụ thể trong ảnh [8].2: Dữ liệu ảnh được áp dụng Grid Cell [3]. Tiếp theo thực hiện việc gán công việc cho mỗi ô lưới, Mỗi ô lưới được giao nhiệm vụ dự đoán các vật thể có thể xuất hiện trong khu vực của ô lưới đó. YOLO sử dụng các "Anchor box" để hỗ trợ dự đoán vị trí và kích thước của vật thể.
Anchor box là các hộp cố định có kích thước khác nhau, đại diện cho các loại vật thể phổ biến. Mỗi ô lưới được gán một số Anchor box phù hợp [6]. Sau đó YOLO sử dụng mạng nơ-ron tích chập (CNN) để trích xuất các đặc trưng từ mỗi ô lưới. Các đặc trưng này mô tả nội dung của ô lưới, bao gồm các đối tượng có thể có mặt và vị trí của chúng.
Dựa trên các đặc trưng trích xuất, YOLO thực hiện dự đoán cho mỗi ô lưới, bao gồm [9]: + Có vật thể hay không: YOLO dự đoán khả năng xuất hiện của vật thể trong ô lưới. + Loại vật thể: Nếu có vật thể, YOLO xác định loại vật thể (ví dụ: người đi bộ, xe máy, xe hơi,. + Vị trí: YOLO dự đoán vị trí (Bounding box) của vật thể trong ô lưới. YOLO sử dụng các kỹ thuật như Regression để điều chỉnh Anchor box và dự đoán vị trí và kích thước chính xác của vật thể.