Bài viết này đề xuất một giải pháp áp dụng công nghệ xử lý ảnh và phương pháp máy học trên máy tính nhúng Raspberry Pi 4 để xác định xe ô tô vào hẻm và đưa ra tín hiệu cảnh báo thông qua đèn tín hiệu. Mục tiêu của bài viết là lựa chọn kiến trúc mô hình mạng đạt được tốc độ xử lý nhanh, độ chính xác phù hợp cho một ứng dụng và nền tảng máy tính nhúng Raspberry Pi 4 nhất định.
Trang 1ĐỀ XUẤT GIẢI PHÁP CẢNH BÁO KẸT XE TRONG HẺM NHỎ BẰNG
PHƯƠNG PHÁP XỬ LÝ ẢNH TRÊN RASPBERRY PI 4
Võ Thiện Lĩnh 1* , Đào Thanh Toản 2**
1Phân hiệu tại Thành phố Hồ Chí Minh, Trường Đại học Giao thông vận tải,
Số 450-451 Lê Văn Việt, Tăng Nhơn Phú A, Quận 9, TP Hồ Chí Minh
2Khoa Điện-Điện tử, Trường Đại học Giao thông vận tải, số 3 Cầu Giấy, Hà Nội
*Email: *linhvt_ph@utc.edu.vn; **daotoan@utc.edu.vn
Tóm tắt Đặc thù của mạng lưới giao thông tại các đô thị lớn ở Việt Nam là có rất
nhiều hẻm nhỏ, hẹp, mật độ lưu thông nhiều, dòng giao thông hỗn hợp, thường xuyên xảy ra ách tắc do ô tô đi vào hẻm Đặc biệt trong các hẻm có bề rộng từ 2 đến 5 m rất
dễ xảy ra tắc nghẽn khi có 2 xe ô tô đi đối đầu nhau Vì vậy, việc ứng dụng giao thông thông minh trong tổ chức điều khiển giao thông tại các hẻm nhỏ nhằm tránh ùn tắc giao thông là thật sự cần thiết Bài báo này đề xuất một giải pháp áp dụng công nghệ
xử lý ảnh và phương pháp máy học trên máy tính nhúng Raspberry Pi 4 để xác định xe
ô tô vào hẻm và đưa ra tín hiệu cảnh báo thông qua đèn tín hiệu Mục tiêu của bài báo
là lựa chọn kiến trúc mô hình mạng đạt được tốc độ xử lý nhanh, độ chính xác phù hợp cho một ứng dụng và nền tảng máy tính nhúng Raspberry Pi 4 nhất định Để đạt được mục tiêu này, nhóm tác giả nghiên cứu nhiều cách khác nhau để cân bằng giữa độ chính xác và tốc độ trong các hệ thống phát hiện đối tượng đã triển khai hiện nay
Từ khóa: Rasperry Pi 4, nhận dạng ảnh xe hơi, mạng nơ-ron tích chập, Yolo
1 ĐẶT VẤN ĐỀ
Hiện nay, hàng loạt tuyến đường huyết mạch, các con hẻm nhỏ cũng như các nút giao thông trọng điểm tại các thành phố lớn thường xuyên rơi vào tình trạng ùn ứ, tắc nghẽn giao thông dẫn đến chậm phát triển kinh tế - xã hội, ảnh hưởng đến môi trường Một vài nguyên nhân dẫn đến tình trạng kẹt xe như: ý thức chấp hành Luật Giao thông của người điều khiển xe, phương tiện cá nhân tham gia giao thông tăng cao, lấn chiếm vỉa hè, lòng đường để kinh doanh,… và đặc biệt là tình trạng kẹt xe trong các con hẻm nhỏ khi 2 xe ô tô chạy vào ngược chiều nhau xảy ra thường xuyên Cần có các thiết bị phát hiện phương tiện giao thông để giải quyết vấn đề này, các thiết bị này có thể được chia thành 2 loại cơ bản sau:
- Loại lắp đặt trong lòng đường bao gồm: vòng từ; từ kế;
- Loại lắp đặt phía trên bao gồm: xử lý ảnh từ hệ thống camera quan sát; rada viba, cảm biến siêu âm, cảm biến hồng ngoại và rada lazer
Trang 2-670-
Hiện tại, việc xác định xe ô tô trong các hẻm nhỏ ở Việt Nam bằng phương pháp vòng từ đã có triển khai một số nơi với hình thức tự phát Nhược điểm của phương pháp này là dễ bị nhiễu do cấu trúc vòng từ, hơn nữa, phương pháp này đòi hỏi phải can thiệp vào kết cấu hạ tầng của hẻm nên khá tốn kém và phức tạp Xác định phương tiện giao thông trong các hẻm nhỏ bằng xử lý ảnh vẫn chưa được sử dụng ở Việt Nam
do đó nhóm tác giả đề xuất hướng nghiên cứu xử lý ảnh từ hệ thống camera quan sát
Hệ thống bao gồm ba thành phần là Kit Raspberry Pi 4, Camera IP và đèn tín hiệu giao thông để cảnh báo Hệ thống sẽ điều khiển đèn xanh, đèn đỏ để cảnh báo đến các ô tô muốn đi vào hẻm Khi có xe đi vào từ bên đầu A của hẻm thì bên đầu B của hẻm sẽ có tín hiệu đèn đỏ để cảnh báo xe bên hẻm B không được vào Đồng thời sẽ có tín hiệu đèn xanh bên hẻm A để thông báo xe bên hẻm A được vào Nghĩa là, ta có thể cho phép hai hay nhiều xe ô tô lưu thông cùng chiều trong hẻm cùng lúc, còn hai xe ngược chiều thì không được phép lưu thông trong hẻm cùng lúc Từ đó tránh được tình trạng kẹt xe trong các hẻm nhỏ Hệ thống nhỏ gọn, có thể di dời và lắp đặt thuận tiện
Trong bài báo này, chúng tôi đề xuất một giải pháp ứng dụng trí tuệ nhân tạo vào trong đời sống Cụ thể là áp dụng mạng nơ-ron tích chập để nhận dạng phương tiện giao thông trong hẻm nhỏ để điều khiển tín hiệu đèn giao thông Với mục tiêu mong muốn là cảnh báo tình trạng kẹt xe trong hẻm nhỏ Chúng tôi tiến hành thay đổi một số thông số trong mạng mạng nơ-ron tích chập sẵn có cho phù hợp với đối tượng nghiên cứu của mình Kết quả thực nghiệm được đánh giá dựa trên các phương pháp khác nhau và cho thấy rất khả quan khi triển khai trên phần cứng Raspberry Pi 4
2 TỔNG QUAN HỆ THỐNG
Phần này mô tả cấu trúc chính của hệ thống phát hiện xe Đầu tiên, dữ liệu video
về cảnh giao thông trong hẻm được đưa vào kit Raspberry Pi 4 [1][2] Sau đó, ảnh sẽ được tiền xử lý và chuẩn hóa cho phù hợp Tiếp theo, diện tích mặt đường được phân vùng giới hạn xử lý Phương pháp phát hiện đối tượng sử dụng mạng YOLOv3 để phát hiện đối tượng phương tiện và hướng di chuyển trong video [3] Mô hình mạng này có thể cải thiện hiệu quả phát hiện các đối tượng nhỏ và giải quyết mạnh mẽ vấn đề đối tượng có sự thay đổi tỷ lệ Cuối cùng, hệ thống sẽ đưa ra tín hiệu cảnh báo thông qua đèn tín hiệu
Hình 1 Minh họa quá trình xảy ra kẹt xe trong hẻm nhỏ
Trang 3Hình 2 Sơ đồ khối thiết bị
3 PHƯƠNG PHÁP PHÁT HIỆN PHƯƠNG TIỆN GIAO THÔNG
Một số phương pháp phát hiện phương tiện giao thông, cụ thể trong bài báo này
là xe ô tô, bằng phương pháp xử lý ảnh đã được nghiên cứu và áp dụng hiện nay, gồm
4 phương pháp chính:
1 Phương pháp trừ nền [4]
2 Phương pháp phân biệt khung và dựa trên chuyển động [5]
3 Phương pháp luồng quang học [6]
4 Phương pháp dựa trên các đặc trưng [7][8]
Trong 4 phương pháp trên, phương pháp dựa trên các đặc trưng của phương tiện giao thông hiện nay đang được sử dụng rộng rãi Để trích đặc trưng đối tượng, việc sử dụng mạng nơ-ron tích chập đã được triển khai thành công với độ chính xác cao và được xem là phương pháp trích đặc trưng mức cao [9] Phương pháp trích đặc trưng truyền thống có tốc độ nhanh hơn khi phát hiện phương tiện nhưng không tạo ra kết quả tốt khi hình ảnh thay đổi độ sáng, chuyển động có tính chu kỳ trong nền và nơi có phương tiện di chuyển chậm hoặc khung cảnh phức tạp [10][11] Mạng nơ-ron tích chập đã đạt được kết quả tốt hơn trong việc phát hiện đối tượng với tốc độ nhanh và độ chính xác cao
3.1 Mạng nơ-ron tích chập
Với bài toán phát hiện xe ô tô trong bài báo này, tập mẫu huấn luyện là tập ảnh
có số lượng nhỏ, nên khi thực hiện bài toán phân loại với tập ảnh dữ liệu nhỏ, ta có thể
sử dụng lại kết quả của mạng nơ-ron tích chập đã có thay vì xây dựng lại mạng nơ-ron
và huấn luyện nó từ đầu Chỉ cần sử dụng kiến trúc mạng cho phù hợp, phương pháp
sử dụng các mô hình có sẵn như vậy còn được gọi là học chuyển tiếp Với phương pháp này, toàn bộ lớp trừ lớp ngõ ra, được coi là một bộ trích chọn đặc trưng sau đó ta huấn luyện một bộ phân loại khác dựa trên vector đặc trưng đã chọn
Một mạng nơ-ron tích chập về cơ bản có 3 quá trình khác nhau:
• Quá trình trích đặc trưng: Thông qua các tích chập giữa ma trận ảnh đầu vào với bộ lọc để tạo thành các đơn vị trong một lớp mới Quá trình này có thể diễn ra liên tục ở phần đầu của mạng và thường sử dụng hàm kích hoạt relu
• Quá trình tổng hợp: các lớp ở về sau quá trình trích đặc trưng sẽ có kích thước lớn do số đơn vị ở các lớp sau thường tăng tiến theo cấp số nhân Điều đó làm tăng số lượng hệ số và khối lượng tính toán trong mạng nơ ron Do đó để giảm tải tính toán chúng ta sẽ cần giảm chiều của ma trận thông qua việc tìm ra một giá trị đại diện cho mỗi một vùng không gian bộ lọc đi qua mà không làm thay đổi các đường nét chính
Phát hiện xe
Khối công suất
Đèn tín hiệu xanh, đỏ
Trang 4-672-
của bức Quá trình này gọi là tổng hợp
• Quá trình kết nối fully: Sau khi đã giảm số lượng tham số đến một mức độ hợp
lý, ma trận cần được định dạng lại thành một vector và sử dụng các kết nối hoàn toàn giữa các lớp Quá trình này sẽ diễn ra cuối mạng tích chập và sử dụng hàm kích hoạt là relu Kết nối cuối cùng sẽ dẫn tới các đơn vị là đại diện cho mỗi lớp với hàm kích hoạt
là softmax nhằm mục đích tính xác xuất
Hình 3 Cấu trúc của một mạng nơ ron tích chập [12]
YOLO là một mô hình mạng nơ-ron tích chập được thiết kế để phát hiện các đối tượng mà có ưu điểm nổi trội là nhanh hơn nhiều so với những mô hình cũ [3], phù hợp cho hệ thống real-time và có thể chạy tốt trên những máy tính nhúng như Raspberry Pi 4 YOLO được tạo ra gồm các lớp tích chập kết hợp các lớp maxpooling
và cuối cùng là 2 lớp kết nối đầy đủ Trong đó, các lớp tích chập sẽ trích xuất ra các đặc trưng của ảnh, còn các lớp kết nối đầy đủ sẽ dự đoán ra xác suất đó và tọa độ của đối tượng
Lớp tích chập được sử dụng để trích xuất các đặc trưng của hình ảnh đầu vào mxn, hình ảnh đầu vào được chia thành các lưới ixj Mô hình sẽ nhận dạng ảnh đó có đối tượng nào hay không, sau đó sẽ xác định tọa độ của đối tượng trong bức ảnh Tâm của hộp nhãn đối tượng (bounding box) nằm trong một đơn vị lưới, và đơn vị lưới chịu trách nhiệm dự đoán đối tượng Kích thước của ảnh đầu vào phải là bội số của kích thước lưới chia Vì đối tượng cần phát hiện là xe ô tô trong một hẻm nhỏ nên phần chứa đối tượng trong ảnh sẽ tương đối lớn nên kích thước lưới chia trong ảnh không cần quá lớn
Cấu trúc mạng YOLOv3 như Hình 5 được gọi là Darknet-53 [5][13], với 53 lớp
tích chập Chúng tôi sử dụng mô hình tối giản gọi là YOLOv3-tiny để dự đoán ảnh đầu
ra có hay không có xe ô tô [13] Tập ảnh dữ liệu thành tập huấn luyện của mô hình là COCO datatset [14] Với YOLOv3, ta có thể dễ dàng cân đối giữa tốc độ và độ chính xác chỉ cần thay đổi kích thước của mô hình mà không cần huấn luyện lại mô hình [15][16]
Trang 5Trong bài báo này, ảnh đầu vào 416x416 được chia thành grid có size 13×13 ô, đầu ra mô hình là một ma trận 3 chiều có kích thước 13×13×(5×N+M) với số lượng tham số mỗi ô là (5×N+M) với N và M lần lượt là số lượng Box và Class mà mỗi ô cần
dự đoán Dự đoán mỗi hộp nhãn đối tượng gồm 5 thành phần : (x, y, w, h, prediction) với (x, y) là tọa độ tâm, (w, h) lần lượt là chiều rộng và chiều cao của hộp nhãn đối tượng, prediction được định nghĩa là xác xuất dự đoán hộp nhãn chứa đối tượng [14]
Với IoU(Intersection over Union): tỷ lệ đo lường mức độ giao nhau giữa khung hình dự báo và khung hình được xác định trước từ bộ dữ liệu để nhằm xác định 2 khung hình có trùng lắp không Tỷ lệ này được tính dựa trên phần diện tích giao nhau giữa 2 khung hình với phần tổng diện tích giao nhau và không giao nhau giữa chúng
(2)
(5)
Hình 4 Hình minh họa cách tính IoU như công thức (2), (3), (4), (5)
YOLOv3 dự đoán điểm số đối tượng cho mỗi hộp nhãn bằng cách sử dụng hồi quy logistic Điểm số sẽ là 1 nếu hộp nhãn chồng lên đối tượng khung hình được xác định trước nhiều hơn bất kỳ hộp nhãn nào khác, Hình 4 Nếu hộp nhãn đối tượng trước
đó không phải là tốt nhất nhưng chồng lên một đối tượng khung hình được xác định trước lớn hơn một ngưỡng sẽ được dự đoán [5][17][18]
Trang 6-674-
Hình 5 Cấu trúc của YOLOv3 [15]
3.2 Lưu đồ giải thuật của hệ thống
Bộ xử lý trung tâm: sử dụng Raspberry Pi 4 lấy dữ liệu từ Camera đưa về xử lý, thay đổi kích cỡ ảnh sau đó đưa ảnh vào mô hình YOLOv3-tiny để phát hiện có phương tiện hay không Nếu có sẽ gửi tín hiệu đến mạch công suất để bật đèn màu đỏ Nếu không có phương tiện nào thì bật đèn xanh và tiếp tục kiểm tra Quy trình được thực hiện tương tự với thiết bị đặt tại đầu hẻm bên kia Camera: đặt tại vị trí mong muốn, thu thập dữ liệu và gửi về cho bộ xử lý trung tâm là Raspberry Pi 4 Tuy nhiên, khi lắp đặt camera cần có vài nguyên tắc như sau:
• Vị trí lắp camera ở độ cao phù hợp
• Vị trí lắp phải cho góc quan sát tốt, rộng và tầm nhìn không bị che khuất
Trang 7Hình 6 Lưu đồ hệ thống
3.3 So sánh các phương pháp
Độ chính xác của việc phát hiện và nhận dạng phương tiện giao thông phụ thuộc nhiều vào chất lượng của dữ liệu huấn luyện Những thách thức trong vấn đề này bao gồm góc quan sát của camera, chất lượng hình ảnh, ánh sáng và điều kiện thời tiết Chúng tôi đã áp dụng các mô hình phát hiện đối tượng khác nhau để có được kết quả
so sánh Trong số đó, YOLOv3-tiny có được độ ổn định, độ chính xác cao nhất
Thực nghiệm phát hiện xe trên đường Trương Văn Hải, Phường Tăng Nhơn Phú A, Quận 9, TP Hồ Chí Minh, triển khai trên 3 phương pháp với phần cứng Raspberry Pi 4, camera Logitech, trong cùng điều kiện môi trường:
Với phương pháp trừ ảnh nền: độ chính xác không cao, đôi khi nhận dạng sai đối tượng, ví dụ như ở Hình 7, khi không có phương tiện ô tô nào nhưng hệ thống vẫn phát hiện có Lý do ở đây là do có gió làm cây lắc lư nên hệ thống phát hiện sai
Bắt đầu
Kết thúc
Thu ảnh từ camera
Tiền xử lý ảnh
Cảnh báo có xe
Bám đối tượng
Mô hình YOLOv3-tiny
Sa
i
Đúng
Trang 8-676-
Hình 7 Phát hiện đối tượng sử dụng phương pháp trừ ảnh nền
Với phương pháp Haar Cascade: hệ thống phát hiện tốt khi điều kiện môi trường
có đủ ánh sáng Tuy nhiên khi thiếu ánh sáng, hệ thống không phát hiện ra đối tượng,
và đặc biệt nếu đối tượng ở khoản cách xa hay chất lượng camera kém cũng ảnh hưởng đến độ chính xác
Hình 8 Phát hiện đối tượng sử dụng phương pháp Haar Cascade
Với mô hình YOLOv3-tiny: hệ thống phát hiện rất tốt trong nhiều điều kiện môi trường khác nhau Hệ thống gần như không chịu sự tác động của ánh sáng hay chất lượng ảnh kém
Trang 9Hình 9: Phát hiện đối tượng sử dụng mô hình YOLOv3-tiny
Quá trình thử nghiệm khi trích xuất từ một đoạn video quay được trong hẻm với tổng thời gian 2 giờ, cho kết quả như Bảng 1
Bảng 1 Đánh giá kết quả thử nghiệm
Phương pháp thử
nghiệm
Thời gian xử lý trên một frame
Phát hiện đúng/thực tế
Không phát hiện
Phát hiện nhầm đối tượng Phương pháp trừ
Phương pháp Haar 0.03 giây 19/21 2 1
Phương pháp
YOLOv3-tiny 0.06 giây 21/21 0 0
4 KẾT LUẬN
Bài báo đã nêu vấn đề kẹt xe trong các con hẻm nhỏ tại các thành phố lớn ở Việt Nam Thông qua các phương pháp phát hiện phương tiện giao thông hiện có nhóm tác giả đã đề xuất giải pháp sử dụng xử lý ảnh để nhận biết có xe vào hẻm, từ đó điều khiển đèn tín hiệu giao thông giúp giảm tình trạng kẹt xe Thông qua mô hình YOLOv3-tiny, nhóm tác giả đã thực nghiệm thành công với hệ thống phát hiện xe ô tô trong hẻm khi được triển khai trên máy tính nhúng Raspberry Pi 4 với độ chính xác cao Trong thời gian 2 giờ, có 21 xe ô tô vào hẻm, hệ thống nhận dạng đúng 21/21 xe, không nhận nhầm đối tượng nào, trong khi phương pháp trừ ảnh nền nhận dạng nhanh nhưng nhận nhầm 8 đối tượng không phải là xe ô tô Phương pháp Haar cho kết quả tốt hơn phương pháp trừ ảnh nền nhưng không phát hiện ra đối tượng khi có người che chắn xe Kết quả của nghiên cứu này sẽ là tiền đề để triển khai ứng dụng trong thực tế tại các thành phố lớn ở nước ta Trong tương lai, nhóm sẽ triển khai thử nghiệm với nhiều mô hình mạng khác nhau để có được phương án tốt hơn cho hệ thống [19]
Trang 10-678-
TÀI LIỆU THAM KHẢO
[1] Agrawal & Singhal, S Smart drip irrigation system using raspberry Pi and arduino Proceedings of International Conference on Computing, Communication & Automation (ICCCA) 2015
[2] Julien Marot; Salah Bourennane Raspberry Pi for image processing education, 25th European Signal Processing Conference (EUSIPCO), IEEE Publishing, 2017
[3] Redmon, J., Divvala, S., Girshick, R., Farhadi, A You only look once(YOLO): Unified, real-time object detection In 2016 IEEE conference on computer vision and pattern recognition, 2016, https://doi.org/10.1109/cvpr.2016.91 IEEE, (pp 779–788)
[4] Radhakrishnan, M Video object extraction by using background subtraction techniques for sports applications, Digital Image Processing, 5(9), 2015, 91–97
[5] Qiu-Lin, L.I., & Jia-Feng, H.E Vehicles detection based on three-frame-difference method and cross-entropy threshold method, Computer Engineering, 37(4), 2011, 172–174 [6] Liu, Y., Yao, L., Shi, Q., Ding, J Optical flow based urban road vehicle tracking In 2013 Ninth International Conference on Computational Intelligence and Security 2014, https://doi.org/10.1109/cis.2013.89 IEEE
[7] Al-Smadi, M., Abdulrahim, K., Salam, R.A Traffic surveillance: A review of vision based vehicle detection, recognition and tracking 2016, International Journal of Applied Engineering Research, 11(1), 713–726
[8] Kevin Kolcheck, Zheyuan Wang, Haiyan Xu and Jiang Yu Zheng Visual Counting of Traffic Flow from A Car via Vehicle Detection and Motion Analysis, Fukuoka Institute of Technology, Fukuoka, Japan, September 2019
[9] Zhao, Z.Q., Zheng, P., Xu, S.T., Wu, X Object detection with deep learning: A review,
2018, arXiv e-prints, arXiv:1807.05511
[10] Palubinskas, G., Kurz, F., Reinartz, P Model based traffic congestion detection in optical remote sensing imagery European Transport Research Review, 2010, 2(2), 85–92 [11] K He, X Zhang, S Ren, and J Sun Deep residual learning for image recognition In Proceedings of the IEEE conference on computer vision and pattern recognition, 2016
[12] The MathWorks, Inc, Convolutional Neural Network, https://www.mathworks.com/ solutions/deep-learning/convolutional-neural-network.html, truy cập ngày 5 tháng 9 năm
2020
[13] Joseph Redmon, Ali Farhadi, YOLOv3: AnIncrementalImprovement, cornell university, New York, 2018
https://towardsdatascience.com/object-detection-using-yolov3-using-keras-80bf35e61ce1, Jul
28, 2019, truy cập ngày 12 tháng 9 năm 2020
[15] Song, H., Liang, H., Li, H et al Vision-based vehicle detection and counting system
using deep learning in highway scenes Eur Transp Res Rev 11, 51, 2019
[16] Kolcheck K., Wang Z., Xu H., Zheng J.Y Visual Counting of Traffic Flow from a Car via Vehicle Detection and Motion Analysis In: Palaiahnakote S., Sanniti di Baja G., Wang L.,