LỜI CẢM ƠN ................................................................................................................. 1 MỤC LỤC ....................................................................................................................... 2 BẢNG THUẬT NGỮ VÀ VIẾT TẮT ........................................................................... 3 MỤC LỤC HÌNH ẢNH .................................................................................................. 3 TÓM TẮT........................................................................................................................ 4 TỪ KHOÁ ....................................................................................................................... 4 I. ĐẶT VẤN ĐỀ ........................................................................................................... 4 II. Mô hình YOLO và thuật toán SORT ..................................................................... 5 1. YOLO (You Only Look Once) ............................................................................... 5 2. SORT (Simple Online and Realtime Tracking) ...................................................... 6 a) Giải thuật Hungary ............................................................................................. 7 b) Bộ lọc Kalman ..................................................................................................... 9 c) Luồng xử lý SORT ............................................................................................. 10 III. Xây dựng thuật toán nhận diện và phân loại phương tiện ................................ 11 IV. Kết quả chạy với các video từ camera giám sát giao thông ............................... 12 1. Mở luồng video và tiến hành xử lý khung hình ................................................... 12 2. Sử dụng YOLOv8 để nhận diện phương tiện ....................................................... 13 3. Sử dụng SORT theo dõi phương tiện ................................................................... 14 4. Phân lại và đếm các phương tiện lưu thông ......................................................... 16 V. Đánh giá .................................................................................................................. 16 Tài liệu tham khảo ........................................................................................................ 17
Trang 1ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
TIỂU LUẬN Các vấn đề hiện đại của Kỹ thuật máy tính
Đề tài:
THUẬT TOÁN DEEP SORT VÀ ỨNG DỤNG TRONG
PHÂN LOẠI PHƯƠNG TIỆN GIAO THÔNG
Giảng viên đánh giá : TS.Hoàng Gia Hưng
Sinh viên : Nguyễn Quang Hoàn
Mã môn : ELT3241_1
Mã sinh viên : 20020667
HÀ NỘI - 2023
Trang 2LỜI CẢM ƠN
Lời đầu tiên, em gửi lời cảm ơn chân thành đến Trường Đại học Công Nghệ - ĐHQGHN đã đưa môn học “Các vấn đề hiện đại của Kỹ thuật máy tính” vào chương trình giảng dạy Đặc biệt em xin gửi lời cảm ơn sâu sắc đến giảng viên bộ môn – TS.Hoàng Gia Hưng, thầy Hiếu và thầy Mạnh đã dạy dỗ, truyền đạt những kiến thức quý báu cho chúng em trong suốt thời gian học tập vừa qua Trong thời gian tham gia lớp học,
em đã có thêm cho mình nhiều kiến thức bổ ích, đảm bảo cung cấp đầy đủ kiến thức, gắn liền với thức tế và là hành trang quan trọng cho chúng em khi làm việc Xin gửi lời tri ân nhất của em đối với những điều mà thầy cô đã dành cho sinh viên chúng em
Mặc dù đã cố gắng hoàn thành bài tiểu luận với tất cả nỗ lực và cố gắng của bản thân, nhưng do hạn chế về kiến thức và kinh nghiệm thực tiễn cũng như sự giới hạn về thời gian, bài tiểu luận của em không tránh khỏi những thiếu sót cả về nội dung và hình thức
Em rất mong nhận được sự chỉ bảo và góp ý của các thầy cô để giúp cho bài tiểu luận của
em thêm hoàn thiện hơn
Em xin chân thành cảm ơn!
Trang 3MỤC LỤC
LỜI CẢM ƠN 1
MỤC LỤC 2
BẢNG THUẬT NGỮ VÀ VIẾT TẮT 3
MỤC LỤC HÌNH ẢNH 3
TÓM TẮT 4
TỪ KHOÁ 4
I ĐẶT VẤN ĐỀ 4
II Mô hình YOLO và thuật toán SORT 5
1 YOLO (You Only Look Once) 5
2 SORT (Simple Online and Realtime Tracking) 6
a) Giải thuật Hungary 7
b) Bộ lọc Kalman 9
c) Luồng xử lý SORT 10
III Xây dựng thuật toán nhận diện và phân loại phương tiện 11
IV Kết quả chạy với các video từ camera giám sát giao thông 12
1 Mở luồng video và tiến hành xử lý khung hình 12
2 Sử dụng YOLOv8 để nhận diện phương tiện 13
3 Sử dụng SORT theo dõi phương tiện 14
4 Phân lại và đếm các phương tiện lưu thông 16
V Đánh giá 16
Tài liệu tham khảo 17
Trang 4BẢNG THUẬT NGỮ VÀ VIẾT TẮT SORT Simple Online Realtime Object Tracking
YOLO You Only Live Once
MỤC LỤC HÌNH ẢNH
Hình 1 Ứng dụng thị giác máy tính trong giao thông 5
Hình 2 Hình ảnh được phân chia thành lưới 7x7 ô 6
Hình 3 Biểu đổ so sánh tốc độ và độ chính xác của các thuật toán theo dõi đối tượng 7 Hình 4 Mô tả mối liên kết mỗi detection với mỗi track tương ứng 8
Hình 5 Các bước xử lýtrong thuật toán Kalman Filter 10
Hình 6 Luồng xử lý của SORT 11
Hình 7 Lưu đồ thuật toán nhận dạng cà phân loại phương tiện giao thông 12
Hình 8 Kết quả khi chạy 13
Hình 9 Chuyển đổi hộp giới hạn đúng và hộp giới hạn dự đoán 14
Hình 10 Các phương tiện được gán ID khi được nhận diện 15
Hình 11 Hiển thị kết quả đếm số phương tiện ra vào thành phố 15
Hình 12 Đếm các phương tiện đi qua trên 1 làn đường 16
Trang 5TÓM TẮT
Việc nhận diện và phân loại phương tiện giao thông có ý nghĩa quan trọng trong quy hoạch đô thị và quản lý giao thông, ngày càng được nghiên cứu sâu trên thế giới Giao thông tại Việt Nam có mật độ lưu thông lớn và phương tiện chủ yếu là xe máy nên vấn
đề nhận diện phương tiện với độ chính xác cao càng trở nên phức tạp Bài tiểu luận này nghiên cứu thuật toán mới cho phép nhận diện và phân loại phương tiện trong luồng video trực tiếp, thuật toán được đề xuất sử dụng mạng nơron triển khai trên thuật toán YOLO
và SORT ứng dụng trong theo dõi đối tượng Nghiên cứu được thử nghiệm trên các luồng video trực tiếp cho ra kết quả rất tích cực so với các phương pháp khác
TỪ KHOÁ
Simple Online Realtime Object Tracking, YOLO, Object Tracking, Nhận diện phương tiện, Phân loại phương tiện, Xử lý hình ảnh, Thị giác máy
I ĐẶT VẤN ĐỀ
Tắc nghẽn giao thông đã gia tăng trên toàn cầu trong thập kỷ qua, tình trạng tắc nghẽn giao thông là vấn đề rất trầm trọng [1] Tắc nghẽn giao thông làm phí thời gian, tiêu hao nhiên liệu và ô nhiễm môi trường [2] Theo khảo sát năm 2020 thì chi phí do tắc nghẽn gây ra ở các thành phố lớn của Mỹ là hàng tỷ đôla mỗi năm [3] Ở Việt Nam, mỗi năm thành phố Hồ Chí Minh thiệt hại khoảng 1.2 triệu giờ công lao động, 1.3 tỷ USD/năm do
ùn tắc giao thông và 2.3 tỷ USD do ô nhiễm môi trường từ các phương tiện cơ giới Đánh giá từ Viện Chiến lược và phát triển Giao thông vẫn tải cũng cho biết: ùn tắc gây thiệt hại cho thành phố Hà Nội mỗi năm khoảng 1 – 1.2 tỷ USD [4]
Trước những ảnh hưởng nghiêm trọng của tắc nghẽn giao thông, ngày càng nhiều các biện pháp được nghiên cứu và áp dụng, việc ứng dụng khoa học máy tính càng được chú
ý hơn nhiều Các nghiên cứu tại Phòng thí nghiệm Oak Ridge đã sử dụng trí tuệ nhân tạo (AI) và học máy (Machine Learning) để thiết kế hệ thống thị giác máy tính thu thập và
xử lý dữ liệu nhận được từ các camera giao thông giúp trính xung đột tại các giao lộ, đồng thời giảm tổng lượng tiêu hao nhiên liệu [5]
Trong bài tiểu luận này, em nghiên cứu để ứng dụng thị giác máy tính trong việc nhận diện và phân loại phương tiện giao thông tại Việt Nam, từ đó xác định số lượng phương tiện lưu thông trên đường và tính toán mật độ lưu lượng phương tiện tham gia giao thông
Trang 6trong một khoảng thời gian xác định Kết quả của bài tiểu luận sẽ được so sánh với các phương pháp nghiên cứu khác để đánh giá hiệu quả ủa thuật toán cũng như khả năng ứng dụng thực tế
Hình 1 Ứng dụng thị giác máy tính trong giao thông
II Mô hình YOLO và thuật toán SORT
1 YOLO (You Only Look Once)
Yolo là một mô hình mạng neural tích chập (CNN) dùng cho việc phát hiện, nhận dạng, phân loại đối tượng Yolo được tạo ra từ việc kết hợp giữa các lớp phức tạp (convolutional layers) cho phép trích xuất ra các đặc tính của ảnh và lớp kết nối (connected layers) dự đoán ra xác suất đó và tọa độ của đối tượng [6]
Yolo phân chia hình ảnh thành một mạng lưới 7x7 ô (grid_size=7x7) Từ đó sẽ
dự đoán xem trong mỗi ô liệu có đối tượng (object) mà điểm trung tâm rơi vào ô đó không, dự đoán điểm trung tâm, kích thước của đối tượng và xác xuất là đối tượng nào trong số các đối tượng cần xác định Mỗi ô này có trách nhiệm dự đoán hai hộp (boxes_number = 2) bao quanh, mỗi một hộp mô tả hình chữ nhật bao quanh một đối tượng Các dự đoán này bao gồm cả tọa độ của hộp và xác suất của việc có đối tượng trong hộp đó Hình 2 mô tả nguyên lý hình ảnh chia ô xác định đối tượng của thuật toán Yolo
Trang 7Hình 2 Hình ảnh được phân chia thành lưới 7x7 ô
Hiện nay phiên bản đang được sử dụng là thế hệ thứ 8, gọi là Yolov8 YOLOv8
là phiên bản YOLO mới nhất của Ultralytics Là mô hình tiên tiến, hiện đại (SOTA), YOLOv8 được xây dựng dựa trên sự thành công của các phiên bản trước, giới thiệu các tính năng và cải tiến mới nhằm nâng cao hiệu suất, tính linh hoạt và hiệu quả YOLOv8 hỗ trợ đầy đủ các nhiệm vụ AI về thị giác, bao gồm phát hiện, phân đoạn, ước tính tư thế, theo dõi và phân loại Tính linh hoạt này cho phép người dùng tận dụng khả năng của YOLOv8 trên nhiều ứng dụng và miền khác nhau [7]
2 SORT (Simple Online and Realtime Tracking)
SORT là sự phát triển của khung theo dõi nhiều đối tượng trực quan dựa trên các
kỹ thuật ước lượng trạng thái và liên kết dữ liệu thô SORT là một thuật toán thuộc dạng theo dõi và phát hiện (Tracking-by-detection), được thiết kế cho các ứng dụng theo dõi thời gian thực và phương pháp này tạo ra nhận dạng đối tượng một cách nhanh chóng
Một đặc điểm của lớp các thuật toán Tracking-by-detection là tách đối tượng cần xác định ra như một bài toán riêng biệt và cố gắng tối ưu kết quả trong bài toán này Công việc sau đó là tìm cách liên kết các hộp giới hạn thu được ở mỗi khung và gán
ID cho từng đối tượng Do đó, thu được một khung quá trình xử lí như sau:
Trang 8• Detect: phát hiện vị trí các đối tượng trong frame
• Predict: Dự đoán vị trí mới của các đối tượng dựa vào các frame trước
đó
• Associate: Liên kết các vị trí detected với các vị trí dự đoán được để gán
ID tương ứng
Hình 3 Biểu đổ so sánh tốc độ và độ chính xác của các thuật toán theo dõi đối tượng
Trên Hình 3, ta có thể thấy được tốc độ theo dõi đối tượng và độ chính xác trong thời gian thực của thuật toán SORT vượt trội so với các thuật toán khác Do vậy, chúng tôi lựa chọn thuật toán SORT để theo dõi các phương tiện giao thông, phục
vụ quá trình phân loại [8]
a) Giải thuật Hungary
Có n detection (i = 1, 2, …, n) và n track predicted (j = 1, 2, … n) Để liên kết một detection i với một track j → giả sử dựa vào 1 độ đo D (D là khoảng cách giữa
i và j trong không gian vector) Bài toán đặt ra là cần liên kết mỗi detection với mỗi track tương ứng sao cho sai số của việc liên kết là nhỏ nhất
Trang 9Hình 4 Mô tả mối liên kết mỗi detection với mỗi track tương ứng
Trước tiên, chúng ta mô hình hóa lại bài toán để giảm độ phức tạp khi xử lí:
với Các số xij thỏa mãn các điều kiện trên gọi là một phương án phân công, hay ngắn gọn là một phương án, một phương án đạt cực tiểu của z được gọi là một phương
án tối ưu hay lời giải của bài toán
Để tìm được xij ta dựa vào 2 định lí sau:
• Giả sử ma trận chi phí của bài toán giao việc là không âm và có ít nhất n phần
tử bằng 0 Hơn nữa nếu n phần tử 0 này nằm ở n hàng khác nhau và n cột khác nhau thì phương án giao cho người i thực hiện công việc tương ứng với số 0 này ở hàng i sẽ là phương án tối ưu (lời giải) của bài toán
• Cho C = [cij] là ma trận chi phí của bài toán giao việc (n người, n việc) và X*
= [xij] là một lời giải (phương án tối ưu) của bài toán này Giả sử C’ là ma trạn nhận được từ C bằng cách thếm số α ≠ 0 (dương hoặc âm) vào mỗi phần tử ở hàng r của C Khi đó X* cũng là lời giải của bài toán giao việc với ma trận chi phí C’
Thuật toán Hungary dựa vào 2 định lí này, từ đó hình thành được hướng xử lí bài toán : Biến đổi ma trận (cộng trừ vào các hàng hoặc cột) để đưa về ma trận có n phần từ bằng 0 nằm ở các hàng và cột khác nhau, sau đó, lấy ra phương án tối ưu là các vị trị chứa các phần tử 0 này [9]
Trang 10b) Bộ lọc Kalman
Trong object tracking, kalman filter được biết đến nhiều nhất với vai trò dự đoán các trạng thái của đối tượng hiện tại dựa vào các track trong quá khứ và update lại các detection sau khi đã được liên kết với các track trước đó
Quá trình cần xử lí là 1 quá trình ngẫu nhiên với các mô hình đã được định nghĩa
từ trước :
Ở đây:
• xk là giá trị biến trạng thái của quá trình, thường là các giá trị ẩn, không thể quan sát được
• zk là giá trị đo được, quan sát được của quá trình
• θk, hk là các mô hình định nghĩa từ trước
• uk, wk lần lượt là nhiễu của quá trình và nhiễu trong lúc đo đạc
Linear Kalman Filter giả định các mô hình của quá trình (θk, hk) đều là các mô hình tuyến tính Khi đó:
Trang 11Hình 5 Các bước xử lýtrong thuật toán Kalman Filter
Các bước xử lí tiếp theo của Kalman Filter có thể chia làm 2 phần chính (cách tiếp cận dựa trên xác suất) :
• Dự đoán (Prediction): Kalman Filter sử dụng mô hình dự đoán để ước lượng trạng thái tiếp theo của hệ thống Quá trình này không chỉ dựa trên thông tin
từ dữ liệu đo đạc mà còn tích hợp thông tin từ mô hình trạng thái và mô hình quá trình
• Hiệu chỉnh (Update): Sau khi có dữ liệu đo đạc mới, Kalman Filter cập nhật ước lượng trạng thái dựa trên dữ liệu đo đạc và giảm thiểu sai số [10]
c) Luồng xử lý SORT
Luồng xử lý SORT lấy 2 thuật toán Kalman Filter và giải thuật Hungary làm cốt lõi:
Trang 12Hình 6 Luồng xử lý của SORT
• Bước 1: SORT tiến hành sử dụng Kalman Filter để dự đoán các trạng thái track
mới dựa trên các track trong quá khứ
• Bước 2: Sử dụng những track vừa dự đoán được, kết hợp với các detection thu
được từ detector, xây dựng ma trận chi phí cho Assignment Problem Chi phí được sử dụng để đánh giá ở đây là giá trị IOU giữa các bouding box của track
và detection
• Bước 3: Sử dụng giải thuật Hungary giải bài toán Assignment Problem với ma
trận chi phí vừa lập
• Bước 4: Xử lí, phân loại các detection
• Bước 5: Sử dụng Kalman filter để update những detection đã được liên kết với
track
III Xây dựng thuật toán nhận diện và phân loại phương tiện
Nghiên cứu sẽ dựa trên thuật toán xác định vật thể của YOLO, thuật toán theo dõi vật thể của SORT, từ đó gán địa chỉ nhận dạng ID cho từng phương tiện lưu thông và phân loại chúng, xác định số lượng xe theo từng khoảng thời gian cụ thể Phương tiện được gán địa chỉ ở đây là xe ô tô …
Trang 13Hình 7 Lưu đồ thuật toán nhận dạng cà phân loại phương tiện giao thông
IV Kết quả chạy với các video từ camera giám sát giao thông
1 Mở luồng video và tiến hành xử lý khung hình
Sau quá trình khởi tạo thư viện, khởi tạo các biến và chạy mô hình thuật toán YOLOv5, tiến hành phát luồng video trực tiếp từ camera hoặc lựa chọn các tệp video Từng khung hình sẽ được chụp và kiểm tra theo vòng lặp while, nếu khung đọc được không chính xác, vòng lặp sẽ bị phá vỡ Việc chỉ xử lý một vùng lựa chọn nhất định cũng giúp cho thuật toán tối ưu hơn, loại bỏ các vùng không chứa phương tiện lưu thông
Trang 14Hình 8 Kết quả khi chạy
2 Sử dụng YOLOv8 để nhận diện phương tiện
Trong bối cảnh của việc nhận diện và theo dõi đối tượng, chuyển động của hộp giới hạn (bounding box) và hộp dự đoán có vai trò quan trọng để theo dõi vị trí và hình dạng của đối tượng qua các khung hình liên tiếp
Hộp giới hạn (Bounding Box) là một hình chữ nhật được định nghĩa bởi bốn thông số: tọa độ của góc trái trên (x_top-left, y_top-left) và tọa độ của góc phải dưới (x_ bottom-right, y_ bottom-right) Trên ảnh, hộp giới hạn đánh dấu ranh giới của đối tượng được nhận diện
Chuyển Động của Hộp Giới Hạn: Khi theo dõi đối tượng qua các khung hình, chuyển động của hộp giới hạn xảy ra khi tọa độ của các góc của nó thay đổi Chuyển động này có thể được mô tả bằng sự thay đổi về tọa độ (x, y) của góc trái trên và góc phải dưới
Hộp dự đoán (Predicted Box) là hộp giới hạn được dự đoán bởi mô hình cho khung hình tiếp theo dựa trên thông tin từ khung hình trước đó Chuyển động của hộp dự đoán diễn ra khi mô hình dự đoán các thay đổi về tọa độ của nó
Theo dõi chuyển động của hộp giới hạn giữa các khung hình liên tiếp là quan trọng để định vị và theo dõi đối tượng Các thuật toán theo dõi như SORT (Simple Online and Realtime Tracking) sử dụng các phương pháp như Hungarian Algorithm
Trang 15Hình 9 Chuyển đổi hộp giới hạn đúng và hộp giới hạn dự đoán
Phần đầu dự đoán hộp giới hạn của đối tượng và xuất ra tọa độ tâm, chiều rộng
và chiều cao, tức là {xcenter, ycenter, w, h} Khi đó biểu thức của hộp giới hạn dự đoán được hiển thị như sau:
Trong đó pw và ph đại diện cho chiều rộng và chiều cao của hộp giới hạn trước, tương ứng (Cx, Cy) là tọa độ của góc trên cùng bên trái của hình ảnh Hình 9 cho thấy kích thước của hộp giới hạn trước và vị trí của hộp giới hạn dự đoán
3 Sử dụng SORT theo dõi phương tiện
Sau khi các phương tiện đã được nhận diện, để theo dõi đối tượng, thuật toán được sử dụng là deep SORT
Nếu được cung cấp thông tin hộp giới hạn cho một ID đối tượng trong khung đầu tiên, phương pháp phân công dựa trên tâm khung (Centroid) được sử dụng để gán ID trong các khung tiếp theo Phân công dựa trên Centroid là một dạng phân công đơn giản, trong đó các ID được chỉ định bằng cách xem xét các Centroid Điều này được thực hiện bằng cách tính các Centroid cho mỗi hộp giới hạn trong khung thứ nhất Trong khung thứ hai, các Centroid mới được quan sát và dựa trên khoảng