Xây dựng hệ thống đo mật độ lưu thông xe cộ trên các tuyến đường chốt giao thông thông qua tiếp cận nhận diện thực thể và xử lý ảnh
lượt xem 3
download
Báo cáo "Xây dựng hệ thống đo mật độ lưu thông xe cộ trên các tuyến đường chốt giao thông thông qua tiếp cận nhận diện thực thể và xử lý ảnh" nhằm mục đích nghiên cứu và xây dựng một hệ thống nhằm hỗ trợ tính toán mật độ giao thông trên các tuyến đường hay các chốt giao thông một cách tự động, thông qua nhận diện thực thể và xử lý ảnh. Mời các bạn cùng tham khảo!
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Xây dựng hệ thống đo mật độ lưu thông xe cộ trên các tuyến đường chốt giao thông thông qua tiếp cận nhận diện thực thể và xử lý ảnh
- XÂY DỰNG HỆ THỐNG ĐO MẬT ĐỘ LƯU THÔNG XE CỘ TRÊN CÁC TUYẾN ĐƯỜNG/CHỐT GIAO THÔNG THÔNG QUA TIẾP CẬN NHẬN DIỆN THỰC THỂ VÀ XỬ LÝ ẢNH Ngô Hoàng Phúc*, Phạm Minh Hiếu, Phan Thanh Tùng, Trần Như Huỳnh, Huỳnh Trần Nhật Nam Khoa Công nghệ Thông tin, Trường Đại học Công nghệ Thành phố Hồ Chí Minh GVHD: ThS. Nguyễn Hữu Trung, TS. Phạm Thế Anh Phú TÓM TẮT Bài báo cáo này, chúng em có mục đích nghiên cứu và xây dựng một hệ thống nhằm hỗ trợ tính toán mật độ giao thông trên các tuyến đường hay các chốt giao thông một cách tự động, thông qua nhận diện thực thể và xử lý ảnh. Trong quá trình nghiên cứu, chúng em sử dụng mô hình YOLOv8 để làm nền tảng cho việc xây dựng thuật toán phát hiện các phương tiện giao thông trên các tuyến đường và kết hợp với việc đếm và tính toán mật độ giao thông tại một số thời điểm cụ thể. Vẽ các khung bao quanh phương tiện được phát hiện trong hình ảnh với thuật toán DeepSort để theo dõi đối tượng, sau đó đếm và tính toán mật độ giao thông. Tập dữ liệu được sử dụng trong nghiên cứu là tập dữ liệu COCO có khoảng 330K hình ảnh được gắn nhãn và chia thành 80 lớp đối tượng khác nhau, cùng với khoảng 2,5M đối tượng được gắn nhãn. Nghiên cứu được thử nghiệm trên các tệp dữ liệu được quay lại bằng camera ở các vị trí cầu vượt đường bộ, kết quả thử nghiệm cho thấy thuật toán đề xuất hoạt động ổn định và hiệu quả với độ chính xác cao khoảng 95% với ô tô và trên 80% với xe máy, kết quả có phần vượt trội hơn so với các phương pháp khác. (What is COCO?, n.d.) Từ khóa: Đo mật độ lưu thông, nhận diện thực thực thể, xử lý hình ảnh 1. GIỚI THIỆU Ý TƯỞNG Khi nhu cầu đi lại của con người ngày càng cao thì tình trạng ách tắc giao thông/kẹt xe là một vấn đề quan trọng. Do sự phát triển nhanh chóng của mật độ dân cư tại các thành phố lớn, dẫn đến việc các cơ sở hạ tầng và hệ thống giao thông hiện nay chưa đáp ứng đủ nhu cầu. Hiện tượng ách tắc giao thông xảy ra thường xuyên tại các tuyến đường lớn, đặc biệt là trong các giờ cao điểm. Năm 2022, ùn tắc giao thông ở Thành phố HCM so với năm 2021 có chiều hướng tăng lên. Cuối năm 2022, 3/18 điểm nguy cơ ùn tắc giao thông có chuyển biến tốt, 8/18 điểm có chuyển biến nhưng còn phức tạp, 7/18 điểm không chuyển biến. Ngoài ra còn phát sinh 6 điểm ùn tắc giao thông mới. Từ thực trạng này, một hệ thống đo mật độ lưu thông của phương tiện tham gia giao thông đã được chúng em nghiên cứu. Với dữ liệu từ các camera giám sát giao thông, phần mềm sẽ thực hiện những thuật toán để nhận dạng và đo mật độ lưu thông của các phương tiện tham gia giao thông trên đường, nhằm mục đích phát triển tối ưu mạng lưới đường bộ với lưu lượng giao thông hiệu quả và giảm thiểu tắc nghẽn giao thông. (Hiệp, 2023) 2
- 2. GIỚI THIỆU KỸ THUẬT Artificial Neural Network (ANN) ANN là một nhánh của AI, bao gồm rất nhiều các lớp nơ-ron (neuron layer), hay còn gọi là các tầng ẩn (hidden layer), và số lượng tầng ẩn này sẽ được điều chỉnh tùy theo độ phức tạp của bài toán. Một ANN đơn giản sẽ có 3 thành phần, lần lượt tên là lớp đầu vào (input layer), các tầng ẩn (hidden layer) và lớp đầu ra (output layer). Mỗi tầng ẩn chứa một số lượng nơ-ron nhất định, mỗi tầng ẩn sẽ nối tiếp nhận thông tin đầu ra của tầng trước đó tính toán/chuyển đổi nó thành một giá trị mới ở đầu ra - dựa trên cấu trúc cũng như hàm kích hoạt (activation function) mà tầng ẩn đó được cài đặt. (What is a neural network?, n.d.) Cách thức hoạt động: - Tiền xử lý dữ liệu: để giảm thiểu nhiễu và chuẩn hóa dữ liệu. - Khởi tạo trọng số: cần được khởi tạo ngẫu nhiên để tránh tình trạng cố định ở một điểm và dẫn đến kết quả không tốt. - Tính toán độ lỗi: Sử dụng đầu ra của mạng và giá trị mong đợi, tính toán độ lỗi - Backpropagation: Độ lỗi được truyền ngược qua mạng neural để cập nhật lại trọng số. - Kiểm tra mô hình: trên tập dữ liệu kiểm tra để đánh giá độ chính xác và sự khớp của nó với dữ liệu mới. - Điều chỉnh mô hình: Nếu mô hình không đạt được kết quả tốt, ta cần điều chỉnh lại kiến trúc của mạng, cập nhật lại trọng số và thử lại. Convolutional Neural Network Mạng CNN là một tập hợp các lớp Convolution chồng lên nhau và sử dụng các hàm nonlinear activation để kích hoạt các trọng số trong các node. Mỗi một lớp sau khi thông qua các hàm kích hoạt sẽ tạo ra các thông tin trừu tượng hơn cho các lớp tiếp theo. (Thuật toán CNN là gì? Cấu trúc mạng Convolutional Neural Network, n.d.) (Wood, n.d.) Các lớp cơ bản của CNN: - Convolutional (Conv) Layer: lớp tích chập – chịu trách nhiệm chính cho việc thực hiện các tác vụ trích xuất các đặc trưng (features) từ ảnh. - Pooling Layer: lớp gộp/tổng hợp, đảm nhận nhiệm vụ tổng hợp các đặc trưng đã được trích xuất trong các tầng tích chập trước đó – bên cạnh đó quá trình tổng hợp còn giúp giảm bớt số lượng các tham số từ các tầng ẩn trước truyền đến nó – nhưng vẫn đảm bảo giữ lại được các đặc trưng quan trọng – tầng tổng hợp/pooling có thể được cài đặt với cơ chế tổng hợp khác nhau, ví dụ: max pooling, average pooling, v.v. - Fully Connected (FC) Layer: lớp kết nối toàn diện - thường sẽ được sử dụng để giải quyết và đưa ra các kết quả cho các bài toán cụ thể nào đó, ví dụ như phân lớp, phân vùng ảnh, ... - Activation Layer (Lớp kích hoạt): Lớp kích hoạt sử dụng các hàm kích hoạt, chẳng hạn như hàm 3
- ReLU, để đưa các giá trị đầu ra của các lớp trước đó vào phạm vi giá trị mong muốn. Object Tracking (OT) Object Tracking là thuật toán theo dõi chuyển động của một hoặc nhiều đối tượng. OT có nhiệm vụ ước tính hoặc dự đoán vị trí và các thông tin liên quan khác của đối tượng chuyển động trong video. Object Tracking liên quan đến quá trình phát hiện đối tượng. Sau đây là tổng quan nhanh về các bước: - Phát hiện đối tượng (Object Detection), trong đó thuật toán sẽ phân loại và phát hiện đối tượng bằng cách vẽ hình chữ nhật bao quanh đối tượng (Bounding Box). - Chỉ định nhận dạng duy nhất cho một đối tượng (ID). - Theo dõi đối tượng được phát hiện khi nó di chuyển qua các khung hình (Frame). Object Tracking có 2 loại: Image Tracking và Video Tracking. (Barla, 2021) Mô hình YOLO YOLO (You Only Look Once) là một mô hình mạng nơ-ron được xây dựng dựa trên kiến trúc mạng nơ-ron tích chập (CNN). YOLO được sử dụng rộng rãi trong nhiều bài toán thuộc lĩnh vực thị giác máy tính (computer vision) và xử lý hình ảnh (image processing) nhằm để phát hiện đối tượng và nhận dạng chúng trên các ảnh và video. (Rực & Cường, 2021) Trong quá trình nghiên cứu, chúng em sử dụng YOLO (phiên bản 8 – YOLOv8) để tiến hành xử lý dữ liệu hình ảnh trong video giao thông thu thập. YOLOv8 là phiên bản ra mắt gần nhất và được đánh giá cao về tốc độ xử lý hình ảnh cũng như hiệu năng. (Ultralytics YOLOv8 Docs, n.d.) Trong quá trình hoạt động, YOLO chia ảnh đầu vào thành một lưới các ô vuông nhỏ, gọi là "cell". Mỗi cell dự đoán các bounding box, tương ứng với các đối tượng trong ảnh. Các bounding box này có thể chứa một hoặc nhiều đối tượng, tuy nhiên, chỉ có một bounding box duy nhất được chọn cho mỗi đối tượng. Để phân loại các đối tượng, YOLO sử dụng một lớp fully-connected (FC) và hàm kích hoạt softmax. FC layer giúp rút trích các đặc trưng từ các bounding box, trong khi softmax layer sẽ dự đoán xác suất của các lớp mà đối tượng trong bounding box đó có thể thuộc về - chúng ta có khoảng 80 lớp các loại thực thể. (Redmon, Divvala, Girshick, & Farhadi, 2016) 3. QUÁ TRÌNH THỰC HIỆN Thuật toán nhận diện phương tiện giao thông trong phần ROI (region of interest) 4
- Hình 1. Thuật toán nhận diện phương tiện giao thông trong phần Sau khi sử dụng mô hình YOLOv8 trên tập dữ liệu COCO, chúng em bắt đầu đưa video đầu vào rồi xác định vùng region of interest (ROI) còn được gọi là khu vực cần quan tâm trên video. Tiếp theo sẽ tách từng frame ra, với một video đầu với có tốc độ 30 fps thì tương đương với 1s ta sẽ có 30 frame hình, sau đó tiến hành nhận dạng xe trong từng frame, ta sẽ xác định được các bounding box của các phương tiện giao thông. Từ đó ta sẽ tính được vị trí trọng tâm của bounding box, sử dụng hàm cv2.pointPolygonTest() để kiểm tra vị trí trọng của bounding box có nằm trong khu vực cần quan tâm hay không. Nếu kết quả trả về lớn hơn hoặc bằng 0 thì ta tiến hành gọi hàm vẽ bounding box lên frame ảnh đó, update liên tục vị trí của xe. Cứ lặp lại như vậy cho đến khi kết thúc video. (Trung, 2020) Thuật toán đếm phương tiện giao thông Vẽ một line có tọa độ (x1, y1, x2, y2) cắt ngang sang đoạn đường ta muốn đếm. Tạo một biến obj_name = names[object_id[i]] trả về tên của đối tượng tương ứng với chỉ số object_id[i] trong danh sách names (là danh sách chứa các đối tượng). obj_name là biến được sử dụng để lưu trữ tên của đối tượng đó. Sau khi có được vị trí trọng tâm của bounding box ta sẽ tạo 2 biến data_deque = {}, object_counter = {}. Biến data_deque là một dictionary, nơi mà mỗi key là một id của đối tượng, và giá trị tương ứng là một deque (double-ended queue), chứa các tọa độ trọng tâm bounding box của đối tượng theo thời gian. Biến object_counter cũng là một dictionary, nơi mà mỗi key là tên đối tượng, và giá trị tương ứng là số lượng đối tượng đó được đếm được trong video. Hình 2. Thuật toán đếm phương tiện giao thông Ví dụ: Nếu có 3 xe máy được phát hiện trong video thì object_counter sẽ có dạng {"xe may": 3}. Sau đó, thêm vị trí các tọa độ trọng tâm bounding box vào đầu danh sách lưu trữ data_deque[id]. Kiểm tra danh sách data_deque[id] có lớn hơn hoặc bằng 2 không. Nếu danh sách data_deque cho đối tượng có id có độ dài lớn hơn hoặc bằng 2, thì sẽ kiểm tra 5
- xem đối tượng đã đi qua đường thẳng hay chưa. Điều này được thực hiện bằng cách sử dụng hàm intersect() để kiểm tra xem đoạn thẳng được xác định bởi hai điểm (trọng tâm của bounding box) trong data_deque có giao với đoạn thẳng line đã vẽ hay không. Nếu đoạn thẳng được xác định bởi hai điểm (trọng tâm của bounding box) trong data_deque giao với line số lượng đối tượng đi qua đường thẳng sẽ được tăng thêm 1 cho loại đối tượng obj_name. Nếu đây là đối tượng đầu tiên được phát hiện cho loại obj_name, i sẽ được thêm vào object_counter, với giá trị ban đầu là 1. Nếu obj_name đã có trong object_counter, thì giá trị của nó sẽ được tăng thêm 1. Chạy vòng lặp duyệt đến các đối tượng trong object_counter và in kết quả lên frame. (Trung, 2020) Thuật toán tính mật độ giao thông Để tính toán mật độ giao thông khi có diện tích của các bounding box chứa các xe và diện tích phần ROI ta cần lấy diện tích của trung bình của các loại xe. Sau đó lấy diện tích trung bình của từng loại nhân với số xe xuất hiện trong vùng ROI. Tương tự ở các loại xe còn lại, sau đó lưu trữ vào các mảng chứa tổng diện tích của các loại xe. Sau đó ta tính mật độ bằng cách lấy tổng diện tích của các phương tiện giao thông chia cho tổng diện tích vùng ROI ta thu được mật độ giao thông của từng frame ảnh. Tạo một biến có kiểu dữ liệu deque chứa giá trị mật độ của từng frame ảnh. Cứ 300 frame (tương đương với 10s) ta tính trung bình cộng một lần và xuất kết quả lên màn hình. Đồng thời, ta xóa dữ liệu trong deque để có thể lưu trữ kết quả của 10s tiếp theo. 4. KẾT QUẢ Thực hiện thực nghiệm trên một video được ghi lại từ điện thoại tại một đoạn đường gần Cầu Bộ Hành Số 3, Đ. Phạm Văn Đồng, Phường 1, Gò Vấp vào ngày 20/03/2023. Video này có độ dài 17 phút 50 giây và chứa các hình ảnh về xe ô tô, xe máy và người đi bộ di chuyển trên đường. Mục đích của thực nghiệm là để kiểm tra hiệu quả của thuật toán phát hiện phương tiện giao thông, đếm và tính toán mật độ giao thông trên tập dữ liệu COCO trên một tình huống thực tế. Tỉ lệ độ chính xác theo tỉ lệ mật độ giao thông được thể hiện trong bảng dưới. Kết quả phân tích tỉ lệ chính xác được dựa vào số lượng phương tiện nhận diện và phân loại được so với số lượng phương tiện thực tế trong các điều kiện khác nhau, số lượng mỗi loại xe thực nghiệm là từ 700 - 1000 xe trong điều kiện thời tiết và ánh sáng tốt. Bảng 1: Kết quả phân tích tỉ lệ chính xác so với thực tế Mật độ lưu thông Mật độ lưu thông trung Loại xe Mật độ lưu thông cao thấp bình Xe máy 94,05 % 85,89 % 72,56% Xe buýt 96,59 % 94,08% 90,85% Xe hơi 97,12% 92,23% 89,47% Xe tải 94,12% 91,64% 88,63% 6
- Kết quả thử nghiệm cho thấy, mô hình nhận dạng có tỉ lệ chính xác cao và ổn định với xe ô tô, xe tải và xe buýt nhờ vào đặc điểm kích thước và nhận dạng dễ dàng của chúng. Tuy nhiên, với xe máy có kích thước nhỏ và đặc điểm nhận dạng phức tạp hơn, tỉ lệ chính xác chưa ổn định và giảm mạnh khi mật độ lưu thông tăng cao. Điều này phụ thuộc vào nhiều yếu tố như góc quan sát của camera, điều kiện thời tiết và ánh sáng. Hình 3. Mật độ lưu thông thấp Hình 4. Mật độ lưu thông trung Hình 5. Mật độ lưu thông cao bình 5. KẾ HOẠCH VÀ HƯỚNG PHÁT TRIỂN Tại Việt Nam, với đặc thù lượng xe máy lớn và mật độ lưu thông cao, việc phân loại chính xác và ổn định là rất phức tạp, để cải thiện khả năng nhận dạng, nhóm nghiên cứu sẽ tăng cường lượng dữ liệu đầu vào cho quá trình huấn luyện mô hình YOLOv8 với xe máy và các loại phương tiện chưa có trong tập dữ liệu. Để cải thiện độ chính xác, chúng em sẽ tiến hành thu thập thêm nhiều dữ liệu về các loại phương tiện giao thông hơn, đa dạng hơn. Qua đó, sẽ giúp quá trình nhận dạng xe chính xác hơn. Ngoài ra, để nhận diện và tính toán mật độ hiệu quả, ta cũng cần cải thiện thuật toán nhận dạng và tính toán. Sau khi có một hệ thống nhận diện phương tiện giao thông có có kết quả ổn định, đếm chính xác lưu lượng phương tiện tham gia giao thông trên đường, ta sẽ áp dụng các dữ liệu đó vào những bài toán khác trong thực tế, ví dụ như điều tiết lượng xe, thời gian cho các đèn tín hiệu giao thông, nhằm để giải quyết các vấn đề về tắc nghẽn giao thông. Đồng thời, hệ thống cũng có thể kết hợp thêm các tính năng như đo tốc độ phương tiện và nhận diện thêm biển số xe để trích xuất khi cần thiết. Phát triển thêm giao diện web, các API để người dùng dễ dàng sử dụng và trực quan hơn. TÀI LIỆU THAM KHẢO 1. Barla, N. (2021). Retrieved from https://www.v7labs.com/blog/object-tracking-guide#h1 2. Hiệp, M. (2023). Bảo đảm trật tự, ATGT, giảm ùn tắc giao thông là một trong những nhiệm vụ trọng tâm ưu tiên trong năm 2023. Retrieved from https://hcmcpv.org.vn/tin-tuc/bao-dam-trat-tu-atgt- giam-un-tac-giao-thong-la-mot-trong-nhung-nhiem-vu-trong-tam-uu-tien-trong-na-1491906233 3. Redmon, J., Divvala, S., Girshick, R., & Farhadi, A. (2016). You Only Look Once: Unified, Real-Time Object Detection. In Proceedings of the IEEE conference on computer, 779-788. 4. Rực, V. V., & Cường, N. M. (2021). Nghiên cứu thuật toán phân loại phương tiện giao thông dựa trên thị giác máy tính. Khoa học và công nghệ, 92-96. 7
- 5. Thọ , T. P., Thịnh, N. T., & Phương, N. N. (2011). Nhận dạng và đếm phương tiện giao thông trong hệ thống cảnh báo và điều khiển giao thông dựa vào phương pháp xử lý ảnh. Tạp Chí Khoa Học Giáo Dục Kỹ Thuật (pp. 72-79). Hồ Chí Minh: Đại Học Sư Phạm Kỹ Thuật Tp Hồ Chí Minh. 6. Thuật toán CNN là gì? Cấu trúc mạng Convolutional Neural Network. (n.d.). Retrieved from https://topdev.vn/blog/thuat-toan-cnn-convolutional-neural-network/ 7. Trung, B. T. (2020). SORT - Deep SORT : Một góc nhìn về Object Tracking (phần 1). Retrieved from https://viblo.asia/p/sort-deep-sort-mot-goc-nhin-ve-object-tracking-phan-1- Az45bPooZxY 8. Ultralytics YOLOv8 Docs. (n.d.). Retrieved from https://docs.ultralytics.com/ 9. What is a neural network? (n.d.). Retrieved from https://www.ibm.com/topics/neural-networks 10. What is COCO? (n.d.). Retrieved from https://cocodataset.org 11. Wood, T. (n.d.). Convolutional Neural Network. Retrieved from https://deepai.org/machine- learning-glossary-and-terms/convolutional-neural-networ 8
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Bài giảng Bảo mật hệ thống thông tin - Lê Phúc
137 p | 884 | 304
-
Xây dựng hệ thống tự phục hồi Hệ điều hành với Ghost
0 p | 348 | 173
-
Xây dựng hệ thống đĩa dự phòng (RAID)
8 p | 688 | 51
-
Xây dựng hệ thống BKGrid với GT3.0
11 p | 235 | 47
-
Giáo trình Quản trị mail server (Nghề: Công nghệ thông tin) - CĐ Kinh tế Kỹ thuật TP.HCM
56 p | 47 | 10
-
Ứng dụng công cụ google để xây dựng hệ thống thông tin đảm bảo chất lượng bên trong tại trường Đại học Hoa Lư
10 p | 50 | 9
-
Thiết kế và xây dựng hệ thống báo cháy nhanh qua internet sử dụng giao thức Websocket
10 p | 80 | 9
-
Hệ thống nhận dạng ảnh mặt người dùng mạng Neural và biến đổi Gabor Wavelet
5 p | 72 | 9
-
Ứng dụng IoT trong xây dựng hệ thống quản lý bãi đỗ xe ôtô thông minh tại thành phố Nha Trang
9 p | 31 | 8
-
Giáo trình Xây dựng hệ thống firewall (Nghề: Quản trị mạng máy tính - Trình độ Cao đẳng) - Trường Cao đẳng Nghề An Giang
68 p | 26 | 8
-
Tổ chức và quản lý, hệ thống cơ sở dữ liệu số, bộ sưu tập tài liệu số
19 p | 96 | 6
-
Nghiên cứu dịch vụ Web để xây dựng hệ thống đăng nhập một lần
7 p | 64 | 6
-
Xây dựng hệ thư viện đồ họa BKGraphics và các phần mềm ứng dụng trong đào tạo kỹ thuật đồ họa.
9 p | 138 | 5
-
Thực hiện hệ thống thực thi bảo mật Keystone Enclave trên lõi RISC-V
6 p | 21 | 5
-
Về một phương pháp xây dựng hệ mật mã lai ghép
5 p | 25 | 4
-
Hệ thống nhận diện khuôn mặt trong chấm công và điểm danh
7 p | 47 | 3
-
Xây dựng chính sách mật khẩu an toàn, dễ sử dụng – Xu hướng bảo mật thông tin hiện đại trong một hệ thống
5 p | 31 | 2
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn