CHƯƠNG 1: TỔNG QUAN CƠ SỞ LÝ THUYẾT 1. Giới thiệu tổng quan Trong một thế giới ngày càng đông đúc và phức tạp, việc quản lý và điều tiết giao thông đang trở nên ngày càng quan trọng. Tình hình giao thông kém hiệu quả không chỉ gây ra sự lãng phí thời gian của người tham gia giao thông mà còn tạo ra những tác động tiêu cực đến môi trường và an toàn đường đi. Đây là bài toán thách thức mà ứng dụng AI có thể giải quyết.
Mục tiêu chính của dự án này là xây dựng một website ứng dụng AI có khả năng nhận diện và đếm phương tiện giao thông. Điều này có thể giúp tăng cường khả năng quản lý giao thông, dự đoán tình hình lưu lượng giao thông, và cải thiện an toàn đường đi. Đồng thời, dự án cũng nhằm tạo ra một công cụ hiệu quả cho việc giám sát và thu thập dữ liệu liên quan đến phương tiện giao thông, có thể ứng dụng trong nhiều lĩnh vực, từ quản lý đô thị đến nghiên cứu vận tải. Phạm vi của dự án bao gồm việc phát triển một website có khả năng nhận diện và đếm các loại phương tiện giao thông như ô tô, xe máy, xe buýt, xe tải,.
trên các tuyến đường phổ biến. Sản phẩm này sẽ sử dụng các kỹ thuật và thuật toán AI như học sâu (deep learning) để xử lý hình ảnh và dữ liệu video. Để thực hiện dự án, em sẽ sử dụng ngôn ngữ lập trình Python và các thư viện phổ biến trong lĩnh vực trí tuệ nhân tạo như TensorFlow và OpenCV. Ngoài ra, dự án sẽ được xây dựng giao diện thực thi trên website nên sẽ có sử dụng thêm một vài ngôn ngữ như HTML, CSS, JS,.
Nền tảng lý thuyết 1.1 Trí tuệ nhân tạo (AI) Trí tuệ nhân tạo hay AI [1] (tiếng Anh: artificial intelligence), đôi khi được gọi là trí thông minh nhân tạo, là trí thông minh được thể hiện bằng máy móc, trái ngược với trí thông minh tự nhiên của con người. Thông thường, thuật ngữ “trí tuệ nhân tạo” thường được sử dụng để mô tả các máy chủ móc (hoặc máy tính) có khả năng bắt chước các chức năng “nhận thức” mà con người thường phải liên kết với tâm trí, như “học tập” và “giải quyết vấn đề”.2 Ứng Dụng Của Trí Tuệ Nhân Tạo AI đã và đang có một tầm ảnh hưởng lớn đối với nhiều khía cạnh của cuộc sống. Dưới đây là một số ứng dụng quan trọng của AI: ● Ô tô tự hành: AI được sử dụng để phát triển công nghệ ô tô tự hành, giúp giảm tai nạn giao thông và cải thiện việc đi lại. ● Chăm sóc sức khỏe: AI có thể giúp chẩn đoán bệnh, phát triển thuốc mới và tối ưu hóa quản lý bệnh viện.
● Tài chính và giao dịch: AI được sử dụng để dự đoán thị trường tài chính, quản lý rủi ro và thậm chí giao dịch tài chính tự động. ● Robotics: Trong ngành công nghiệp, AI đã giúp tạo ra các robot thông minh có khả năng thực hiện nhiều nhiệm vụ khác nhau, từ sản xuất đến dịch vụ khách hàng. Nhận diện đối tượng trong ảnh Nhận diện ảnh là quá trình sử dụng máy tính và các thuật toán để nhận biết và phân loại các đối tượng, biểu đồ hoặc mẫu trong hình ảnh hoặc video. Quá trình này thường bao gồm các bước sau: Thu thập dữ liệu: Để xây dựng các mô hình nhận diện ảnh, cần phải thu thập một lượng lớn dữ liệu hình ảnh chứa các đối tượng hoặc mẫu cần nhận diện.
5 Tiền xử lý: Dữ liệu hình ảnh thường cần được tiền xử lý để loại bỏ nhiễu và chuẩn hóa chúng trước khi đưa vào mô hình. Trích xuất đặc trưng: Máy tính cần phải học cách trích xuất những đặc trưng quan trọng từ hình ảnh, chẳng hạn như cạnh, màu sắc, hình dạng, và text. Huấn luyện mô hình: Sử dụng các mẫu dữ liệu đã được gán nhãn, máy tính sẽ học cách nhận diện các đối tượng hoặc mẫu này bằng cách xây dựng một mô hình học máy hoặc mạng nơ-ron sâu (deep learning). Đánh giá và tinh chỉnh: Mô hình cần được kiểm tra trên dữ liệu mới để đảm bảo tính hiệu quả và độ chính xác.
Nếu cần, mô hình sẽ được tinh chỉnh thêm.3 Deep Learning Deep Learning [3] (học sâu) có thể được xem là một lĩnh vực con của Machine Learning (học máy) – ở đó các máy tính sẽ học và cải thiện chính nó thông qua các thuật toán. Deep Learning được xây dựng dựa trên các khái niệm phức tạp hơn rất nhiều, chủ yếu hoạt động với các mạng nơ-ron nhân tạo để bắt chước khả năng tư duy và suy nghĩ của bộ não con người. Deep Learning [3] là một phương pháp của Machine Learning. Mạng nơ- ron nhân tạo trong Deep Learning được xây dựng để mô phỏng khả năng tư duy của bộ não con người.
Một mạng nơ-ron bao gồm nhiều lớp (layer) khác nhau, số lượng layer càng nhiều thì mạng sẽ càng “sâu”. Trong mỗi layer là các nút mạng (node) và được liên kết với những lớp liền kề khác. Mỗi kết nối giữa các node sẽ có một trọng số tương ứng, trọng số càng cao thì ảnh hưởng của kết nối này đến mạng nơ-ron càng lớn. Mỗi nơ-ron sẽ có một hàm kích hoạt, về cơ bản thì có nhiệm vụ “chuẩn hoá” đầu ra từ nơ-ron này.
Dữ liệu được người dùng đưa vào mạng nơ-ron sẽ đi qua tất cả layer và trả về kết quả ở layer cuối cùng, gọi là output layer.4 Object Detection Một trong những lĩnh vực quan trọng của Trí tuệ nhân tạo [1] (Artificial Intelligence) là thị giác máy (Computer Vision). Computer Vision là một lĩnh vực bao gồm các phương pháp thu nhận, xử lý ảnh kỹ thuật số, phân tích và nhận dạng các hình ảnh, phát hiện các đối tượng, tạo ảnh, siêu phân giải hình ảnh và nhiều hơn vậy. Object Detection có lẽ là khía cạnh sâu sắc nhất của thị giác máy do số lần sử dụng trong thực tế. Object Detection đề cập đến khả năng của hệ thống máy tính và phần mềm để định vị các đối tượng trong một hình ảnh và xác định từng đối tượng.
Object Detection đã được sử dụng rộng rãi để phát hiện khuôn mặt, phát hiện xe, đếm số người đi bộ, hệ thống bảo mật và xe không người lái. Có nhiều cách để nhận diện đối tượng có thể được sử dụng cũng như trong nhiều lĩnh vực thực hành. Giống như mọi công nghệ khác, một loạt các ứng dụng sáng tạo và tuyệt vời của Object Detection sẽ đến từ các lập trình viên và các nhà phát triển phần mềm. Bắt đầu sử dụng các phương pháp nhận diện đối tượng hiện đại trong các ứng dụng và hệ thống, cũng như xây dựng các ứng dụng mới dựa trên các phương pháp này.
Việc triển nhận diện đối tượng sớm liên quan đến việc sử dụng các thuật toán cổ điển, giống như các thuật toán được hỗ trợ trong OpenCV, thư viện computer vision phổ biến. Tuy nhiên, các thuật toán cổ điển này không thể đạt được hiệu suất đủ để làm việc trong các điều kiện khác nhau. Việc áp dụng đột phát và nhanh chóng của deep learning vào năm 2012 đã đưa vào sự tồn tại các thuật toán và phương pháp phát hiện đối tượng như R-CNN, Fast-RCNN, Faster-RCNN, RetinaNet, SSD và YOLO. Sử dụng các phương pháp và thuật toán này, dựa trên deep learning và cũng dựa trên việc học máy đòi hỏi rất nhiều kiến thức về toán học và việc học sâu.
Có hàng triệu chuyên gia lập trình và các nhà phát triển phần mềm muốn tích hợp và tạo ra các sản phẩm mới sử dụng object detection. Nhưng công nghệ này xa tầm tay của họ và phức tạp để hiểu và sử dụng thực tế của nó. 8 ● Các mô hình object detection dựa trên Region-Based Convolutional Neural Network (R-CNNs) gồm các lớp mô hình: R-CNN, Fast R-CNN và Faster R- CNN là những mô hình sơ khai, có tốc độ xử lý chậm. Thuật toán dựa trên 2 phần xử lý riêng biệt là phát hiện các region proposal và phân loại hình ảnh.
● Lớp các mô hình YOLO có tốc độ thời gian xử lý thực. Là công nghệ state-of-art nhất hiện nay có tốc độ xử lý realtime, phát hiện được lên tới 9000 loại đối tượng.5 Object Tracking Object Tracking [2][5] là bài toán theo dõi một hoặc nhiều đối tượng chuyển động theo thời gian trong một video. Hiểu một cách đơn giản nhất, nó là bài toán ở mức độ cao hơn so với object detection, khi đối tượng được xử lý không đơn giản là một hình ảnh mà là một chuỗi các hình ảnh, video. Object Tracking không phải cứ tách video ra thành các frame rồi áp dụng object detection với từng frame là đủ mà việc tracking bên cạnh việc xác định các bounding box, còn quan tâm đến khá nhiều yếu tố hoặc nhiễu khác nhau: ● ID của mỗi đối tượng cần đảm bảo luôn không đổi qua các frame ● Khi đối tượng bị che khuất hoặc biến mất sau 1 vài frame, hệ thống vẫn cần đảm bảo nhận diện lại được đúng ID khi đối tượng xuất hiện ● Các vấn đề liên quan đến tốc độ xử lí để đảm bảo realtime và tính ứng dụng cao Object Tracking có thể chia thành 2 cách tiếp cận chính: Single Object Tracking (SOT): Cái tên nói lên tất cả, Single Object Tracking tập trung vào việc theo dõi một đối tượng duy nhất trong toàn bộ video.
Và tất nhiên, để biết được cần theo dõi đối tượng nào, việc cung cấp một bounding box từ ban đầu là việc bắt buộc phải có.2: Single Object Tracking. Multiple Object Tracking (MOT): Multiple Object Tracking hướng tới các ứng dụng có tính mở rộng cao hơn. Bài toán cố gắng phát hiện đồng thời theo dõi tất cả các đối tượng trong tầm nhìn, kể cả các đối tượng mới xuất hiện trong video. Vì điều này, MOT thường là những bài toán khó hơn SOT và nhận được rất nhiều sự quan tâm của giới nghiên cứu.3: Multiple Object Tracking.
11 Một phương pháp Multiple Object Tracking cố gắng hướng đến việc theo dõi tất cả các đối tượng xuất hiện trong khung hình bằng việc phát hiện và gắn định danh cho từng đối tượng. Bên cạnh đó, các ID đã được gán cho 1 đối tượng cần đảm bảo nhất quán qua từng frame. Những vấn đề đáng quan tâm ở đây: Phát hiện "tất cả" các đối tượng: Đây vẫn luôn là vấn đề được quan tâm nhất trong object detection và vẫn không ngừng có những phương pháp, những thuật toán cải thiện vấn đề này. Trong object tracking, đặc biệt là detection based tracking, việc đảm bảo tính chính xác của quá trình detect cũng vô cùng quan trọng.