Phát hiện và phân lớp phương tiện giao thông dựa trên mô hình mạng nơ-ron tích chập
Bạn đang xem tài liệu "Phát hiện và phân lớp phương tiện giao thông dựa trên mô hình mạng nơ-ron tích chập", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tài liệu đính kèm:
- phat_hien_va_phan_lop_phuong_tien_giao_thong_dua_tren_mo_hin.pdf
Nội dung text: Phát hiện và phân lớp phương tiện giao thông dựa trên mô hình mạng nơ-ron tích chập
- Hội nghị Khoa học công nghệ lần thứ XXII Trường Đại học Giao thông vận tải PHÁT HIỆN VÀ PHÂN LỚP PHƯƠNG TIỆN GIAO THÔNG DỰA TRÊN MÔ HÌNH MẠNG NƠ-RON TÍCH CHẬP Lại Mạnh Dũng 1, Nguyễn Quốc Tuấn 1 1 Trường Đại học Giao thông Vận tải, Số 3 Cầu Giấy, Hà Nội * Tác giả liên hệ: Email: dzunglm@utc.edu.vn Tóm tắt. Trên một hệ thống giao thông, các thông tin cơ bản về luồng giao thông như số lượng, chủng loại và tốc độ di chuyển của các phương tiện là đầu vào quan trọng trong quá trình xử lý dữ liệu phục vụ cho công tác quản lý và điều hành giao thông. Để thu thập các thông tin này, đã có nhiều giải pháp kỹ thuật được nghiên cứu và triển khai, trong đó có các giải pháp ứng dụng kỹ thuật xử lý ảnh trong thu thập dữ liệu từ camera giám sát và tự động phân tích các thông tin về luồng giao thông. Gần đây, cùng với sự phát triển mạnh về phần cứng máy tính, cho ra các bộ xử lý đồ họa GPU có tốc độ tính toán vượt trội, tạo điều kiện cho việc phát triển các mô hình học máy tiên tiến, trong đó có các kỹ thuật học sâu (deep learning) cho phép phát hiện và phân lớp các đối tượng trên ảnh với độ chính xác rất cao. Trong bài báo này, chúng tôi đề cập tới một giải pháp phát hiện và phân lớp các phương tiện giao thông với độ chính xác cao dựa trên mô hình mạng nơ-ron tích chập (Convolutional Neural Network –CNN). Các mô hình cải tiến từ mô hình CNN ban đầu cho phép giảm khối lượng tính toán, qua đó giải quyết được bài toán phân lớp phương tiện giao thông trong điều kiện áp dụng cho dòng giao thông hỗn hợp, có nhiều loại hình phương tiện với mật độ lớn như ở các thành phố lớn của Việt Nam. Đặc biệt là đáp ứng được nhu cầu xử lý ảnh từ camera giám sát giao thông theo thời gian thực. Từ khóa: Phát hiện và phân lớp phương tiện giao thông, Mạng nơ-ron tích chập, Kỹ thuật học sâu, Mạng R-CNN, Mạng YOLO 1. TỔNG QUAN Mạng nơ-ron tích chập CNNs là một trong những mô hình Deep Learning tiên tiến cho phép xây dựng được những hệ thống xử lý ảnh với độ chính xác cao bằng cách thiết lập các mối liên kết giữa các tầng của mạng dựa trên phép tích chập, cho phép tăng cường các đặc trưng được sử dụng để phân lớp các đối tượng. Phép tích chập (Convolution): Trong xử lý ảnh, tích chập là phép biến đổi ảnh dựa trên phép nhân ma trận được thực hiện theo công thức (1) nhằm tạo ra ảnh mới có một số đặc trưng được tăng cường. Trong đó, - g(x,y) là giá trị mức xám tại điểm (x,y) sau khi thực hiện phép tích chập - f(x,y) là giá trị mức xám tại điểm (x,y) ban đầu - k là hạt nhân tích chập (convolution kernel), là ma trận có kích thước (2a+1) x (2b+1), hoạt dộng như một bộ lọc (filter), lần lượt trượt qua từng điểm ảnh của ảnh gốc theo chiều từ trái sang phải, từ trên xuống dưới, mỗi bước dịch qua một điểm ảnh để tính giá -298-
- Hội nghị Khoa học công nghệ lần thứ XXII Trường Đại học Giao thông vận tải trị tích chập của điểm ảnh gốc theo công thức (1). Kết quả của phép tích chập của một kernel với ma trận ảnh ban đầu sẽ là một ma trận ảnh có một số tính chất khác biệt với ảnh ban đầu. Ví dụ được mô tả trong [9] có thể làm mờ bức ảnh ban đầu bằng cách lấy giá trị trung bình của các điểm ảnh xung quanh cho điểm ảnh ở vị trí trung tâm bằng cách dùng bộ lọc như Hình 21 Hoặc ta có thể phát hiện biên ảnh bằng cách tính vi phân giữa các điểm ảnh lân cận nhờ sử dụng bộ lọc như trong Hình 22. Hình 21: Làm mờ ảnh bằng tích chập Hình 22: Phát hiện biên bằng tích chập Mạng nơ-ron tích chập CNNs gồm một số tầng (layer), trong đó tầng phía sau là tích chập của tầng liền kề phía trước với một bộ lọc nào đó. Bằng cách tích chập với các bộ lọc phù hợp và sử dụng các hàm kích hoạt phi tuyến (nonlinear activation function) như ReLU ta có thể tạo ra thông tin trừu tượng ở mức cao hơn cho các layer tiếp theo. Mạng nơ-ron tích chập CNNs đã được nghiên cứu và đề xuất vào những năm 1990 [7], nhưng việc triển khai các ứng dụng trong bài toán phân lớp đối tượng gặp nhiều khó khăn. Lý do là, để thực hiện phân lớp được nhiều đối tượng trên ảnh, đòi hỏi phải huấn luyện mô hình bằng các tập dữ liệu ảnh lớn, lên đến hàng triệu ảnh đã gán nhãn, trong khi đó, mô hình CNNs đòi hỏi khối lượng tính toán lớn dựa trên các phép tích chập. Với sự phát triển mạnh mẽ về phần cứng máy tính, cho ra đời các bộ xử lý đồ họa GPU (Graphical Processing Unit) tốc độ cao, được tối ưu hóa khi thực hiện các phép tích chập hai chiều. Cùng với ưu điểm của mô hình phân lớp SVM (Support Vector Machine). Năm 2012, Krizhevsky và các cộng sự [7].A đã khơi dậy mối quan tâm đối với mạng nơ-ron tích chập CNNs bằng việc huấn luyện mạng CNN dựa trên tập dữ liệu ảnh mẫu quy mô lớn tên là ImageNet lên đến 1.2 triệu hình ảnh đã được gán nhãn. Để thực hiện việc này, ông và các cộng sự đã đề xuất mô hình mạng nơ ron tích chập gồm có 8 lớp, trong đó có 5 lớp tích chập và 3 lớp kết nối đầy đủ (fully connected layer). Ngoài ra, ông và các cộng sự còn phải thiết kế -299-
- Hội nghị Khoa học công nghệ lần thứ XXII Trường Đại học Giao thông vận tải chương trình huấn luyện mạng để có thể thực hiện trên 02 GPU chạy song song. Mỗi GPU được giao thực hiện các phép tính toán độc lập, làm việc đồng thời và chỉ giao tiếp với nhau tại một số lớp nhất định. Hình 23 mô tả kiến trúc mạng nơ-ron tích chập CNN do Krizhevsky và các cộng sự đề xuất với 8 lớp được thiết kế để có thể sử dụng hai GPU huấn luyện đồng thời. Trong đó, GPU số 1 sẽ thực hiện các tính toán ở tầng bên trên, GPU số 2 sẽ thực hiện các tính toán ở tầng dưới. Hai GPU chỉ giao tiếp với nhau ở một số tầng nhất định. Mạng có các đầu vào 150 528 chiều. Số nơ-ron trên các lớp tương ứng là: 253 440 – 186 624 – 64 896 – 64 896 – 43 264 – 4 096 – 4 096 – 1 000 Hình 23: Kiến trúc mạng CNN do Krizhevsky và các cộng sự đề xuất [7].A Như vậy, mô hình có thể phân loại được 1000 lớp đối tượng khác nhau. Kết quả thử nghiệm mô hình cho thấy độ chính xác trong quá trình phân loại hình ảnh cao hơn đáng kể so với các kết quả trước đó [8]. 2. MỘT SỐ MÔ HÌNH MẠNG NƠ-RON TÍCH CHẬP TIÊN TIẾN Sau mô hình CNNs do Krizhevsky và các cộng sự đề xuất năm 2012, một số mô hình CNN cải tiến đã được nghiên cứu và đề xuất để tăng độ chính xác đồng thời giảm khối tượng tính toán. Qua đó, hiện thực hóa khả năng ứng dụng mạng CNNs trong quá trình phát hiện và phân lớp đối tượng. Đặc biệt là đáp ứng nhu cầu xử lý theo thời gian thực. Mô hình mạng nơ-ron tích chập theo vùng và mạng YOLO là hai cải tiến mới nhất của mạng này, mở ra khả năng ứng dụng mạng CNNs vào thực tế. 2.1 Mạng nơ-ron tích chập theo vùng (Region-based Convolutional Network R-CNN) Mô hình R-CNN [1][2] được Ross Girshick và các cộng sự giới thiệu vào năm 2014, để giải quyết bài toán phát hiện đối tượng. Ý tưởng của phương pháp này xuất phát từ mối liên hệ giữa bài toán phân lớp hình ảnh và phát hiện đối tượng trên ảnh. Bài toán phát hiện đối tượng trên ảnh đòi hỏi phải xác định được vị trí và khoanh vùng được đối tượng trên ảnh. Để thực hiện điều này, Ross Girshick và các cộng sự đã tạo ra khoảng 2000 vùng đề xuất (region proposals) cho mỗi hình ảnh đầu vào, mỗi vùng này được trích xuất véc-tơ đặc trưng có độ dài cố định bằng CNN, sau đó phân loại từng vùng đề xuất bằng SVM tuyến tính. Kết quả thử nghiệm chứng minh rằng CNN có thể phát hiện đối tượng trên tập dữ liệu mẫu PASCAL VOC với hiệu suất cao hơn đáng kể so với phương pháp dựa trên đặc trưng HOG cơ bản. Hai mô hình thế hệ sau của R-CNN là Fast R-CNN và Faster R-CNN được công bố lần lượt vào tháng 9/2015 và tháng 1/2016 là những cải tiến của R-CNN nhằm tăng tốc độ tính toán. -300-
- Hội nghị Khoa học công nghệ lần thứ XXII Trường Đại học Giao thông vận tải Hình 24: Các bước thực hiện R-CNN [1] Phương pháp R-CNN được minh họa trong Hình 24, bao gồm các bước: - (1) Ảnh đầu vào, - (2) Tạo ra khoảng 2000 vùng được đề xuất (Region proposals) từ ảnh đầu vào bằng cách kết hợp nhiều phương pháp khác nhau. Các vùng này được gọi tắt là ROI (Region of Interest – Các vùng được quan tâm để phát hiện đối tượng). - (3) Các ROI được chuẩn hóa thành các các ảnh RGB kích thước 227x227, sau đó được xử lý tuần tự trong mạng gồm 5 lớp tích chập (convolutional layer) và 2 lớp kết nối đầy đủ (fully connected layer). Tại đầu ra của mạng này, tương ứng với mỗi ROI ta thu được véc-tơ đặc trưng gồm 4096 phần tử. - (4) Cuối cùng, véc-tơ đặc trưng đầu ra của mạng được đưa vào các bộ phân lớp để phân lớp các ROI, đầu ra của bộ phân lớp này là một nhãn (tên lớp đối tượng) và mức độ chắc chắn của nhãn đó tương ứng cho từng ROI. 2.2 Mạng CNN-YOLO (You Only Look Once) Trước khi Redmon Joseph và các cộng sự công bố công trình khoa học về mạng YOLO [3] vào năm 2015, bài toán phát hiện đối tượng (Object detection) thường được thực hiện bằng các mô hình học sâu như DPM hay R-CNN. Mô hình YOLO cho thấy tốc độ nhanh hơn vượt trội so với các mô hình khác. Bởi vì, nó cho phép xử lý toàn bộ khung hình trên một mạng nơ- ron đơn nhất. Hiện tại, mạng YOLO đã được phát triển tới phiên bản thứ ba YOLOv3 [4], cho phép nâng cao độ chính xác nhận dạng bằng việc tăng quy mô mạng nơ-ron mà không có sự gia tăng đáng kể về tốc độ xử lý. Do đó, mạng YOLO đã được sử dụng nhiều trong các bài toán phát hiện đối tượng với số đông ví dụ như phát hiện người đi bộ [5] hay phương tiện giao thông trên video từ camera giám sát. Hình 25: Kiến trúc mạng YOLO [6] -301-
- Hội nghị Khoa học công nghệ lần thứ XXII Trường Đại học Giao thông vận tải Phiên bản đầu tiên của YOLO Hình 25 có phần đầu là 24 tầng tích chập, và cuối cùng là 2 tầng kết nối đầy đủ (Full Connected - FC). Các tầng tích chập làm nhiệm vụ trích xuất đặc trưng ảnh để tạo một bản đồ đặc trưng có dạng (7×7×1024). Các tầng FC giải quyết bài toán hồi quy tuyến tính (Linear Regression) để dự đoán hai nhóm tham số gồm: (1) tọa độ tâm và kích thước hình chữ nhật (Boundary Box) bao quanh đối tượng; (2) xác suất phân lớp đồi tượng trong box. Để phát hiện đối tượng trên ảnh, mạng YOLO chia ảnh thành lưới S×S ô (Cell). Tại mỗi ô, YOLO sẽ dự đoán một số lượng cho trước B các hộp chữ nhật bao quanh đối tượng (Boundary Box). Các hộp này được đặc trưng bởi 5 tham số đó là: tọa độ tâm của hộp (x, y), chiều rộng của hộp (w), chiều cao của hộp (h) và điểm tin cậy (o) (Box Confidence Score - Objectness) thể hiện khả năng hộp này có chứa đối tượng cần tìm hay không và độ chính xác về vị trí, kích thước của hộp. Sau đó, với mỗi hộp chữ nhật bao quanh đối tượng sẽ được phân vào C lớp đối tượng bằng cách tính toán C giá trị xác suất, mỗi giá trị đặc trưng cho xác suất mà đối tượng thuộc về lớp tương ứng. Như vậy, số lượng tham số đầu ra cần dự đoán của mạng YOLO được tính toán theo công thức (2) (2) Một thể hiện cụ thể của mạng YOLO được mô tả trong Hình 25 được dùng để phát hiện và phân loại đối tượng trong ảnh thuộc 20 loại khác nhau. Đầu tiên, ảnh đầu vào được chia thành lưới 7×7 ô (cell). Tại mỗi cell, YOLO sẽ dự đoán 2 hộp (Box) có thể chứa đối tượng cần tìm trong đó, Mỗi hộp được xác định bằng bộ 5 tham số gồm: x, y, w, h và o như đã trình bày ở trên. Như vậy, theo công thức (2), số lượng đầu ra của mạng sẽ là 7×7×30 như được trình bày trong công thức (3), Hình 26 mô tả đầu ra của mạng này. (3) Hình 26: Đầu ra mạng YOLO 7×7×30 Nguyên lý hoạt động như trên giúp cho YOLO có tốc độ xử lý cao hơn so với các mạng cùng chức năng khác như Faster R-CNN. Tuy nhiên, do YOLO chỉ chia ảnh thành lưới 7×7 ô, -302-
- Hội nghị Khoa học công nghệ lần thứ XXII Trường Đại học Giao thông vận tải nên kích thước của mỗi cell khá lớn, trong khi đó, YOLO chỉ phát hiện một đối tượng trong mỗi cell, dẫn đến nhược điểm là YOLO không phát hiện được các đối tượng kích thức nhỏ và có thể bỏ sót một vài đối tượng nếu ảnh có nhiều đối tượng quá gần nhau. Đến phiên bản thứ ba gọi là YOLOv3 đã có nhiều cải tiến để nâng cao độ chính xác đồng thời giảm khối lượng tính toán như: cho phép phân lớp đối tượng đa nhãn, thay thế hàm softmax bằng hàm logistic để giảm khối lượng tính toán, các đối tượng được dự đoán với 3 tỉ lệ khác nhau sau khi ảnh mẫu được phân vùng bằng thuật toán k-means ỏ 9 tỉ lệ, quá trình trích xuất đặc trưng được thực hiện bởi 53 tầng nhân chập, các tầng này được lấy từ mạng Darknet53[9] đã được huấn luyện bằng tập mẫu gồm 1,2 triệu ảnh trong cơ sở dữ liệu ảnh trực tuyến Imagenet cho độ chính xác cao hơn và tốc độ nhanh hơn. 3. THỬ NGHIỆM PHÁT HIỆN VÀ PHÂN LỚP PHƯƠNG TIỆN GIAO THÔNG Hình 27: Kết quả phát hiện và phân loại đối tượng bằng YOLOv3 Mạng YOLOv3 có nhiều ưu điểm đó là có độ chính xác cao trong các tình huống phải phát hiện và phân lớp các đối tượng có kích thước nhỏ, mật độ cao, nhưng thời gian tính toán lại cải thiện đáng kể, có thể đáp ứng được nhu cầu xử lý thời gian thực. Cho nên hiện nay, mạng YOLOv3 được sử dụng rất phổ biến để giải quyết các bài toán phát hiện và phân lớp đối tượng. Trong phần này, chúng tôi trình bày về việc thử nghiệm ứng dụng mạng YOLOv3 để xử lý hình ảnh được thu thập từ camera giám sát giao thông ở Hà Nội, qua đó, phát hiện và phân lớp các phương tiện di chuyển trong luồng giao thông hỗn hợp, mật độ cao. -303-
- Hội nghị Khoa học công nghệ lần thứ XXII Trường Đại học Giao thông vận tải Mạng YOLOv3 được thử nghiệm có tất cả 106 tầng trong đó 53 tầng tích chập kế thừa từ mạng Darknet53 để trích xuất đặc trưng, 53 tầng tiếp theo để phát hiện và phân lớp phương tiện giao thông trên ảnh với 3 độ phân giải khác nhau tương ứng ở các tầng 82, 94 và 106. Chương trình thử nghiệm ứng dụng mạng CNN-YOLOv3 để phát hiện và phân loại các phương tiện giao thông được cài đặt bằng ngôn ngữ Python với sự hỗ trợ của các thư viện tensorflow, tensornets. Việc cài đặt các thư viện này được thực hiện bằng lệnh PIP. Sau khi cài đặt các thư viện tensorflow, tensornets trên một IDE tùy chọn cần import các thư viện này vào dự án. Đồng thời cũng cần import thư viện OpenCV để đọc ảnh và video đầu vào và hiển thị kết quả sau xử lý ở đầu ra. Hình 27 mô tả kết quả phát hiện và phân loại phương tiện giao thông sử dụng mạng YOLOv3. Trên Hình 27 là kết quả phát hiện và phân lớp các đối tượng trên ảnh thu thập được từ camera giám sát giao thông. Mỗi đối tượng được bao bằng hình chữ nhật xung quanh kèm theo nhãn phân loại. Bên cạnh nhãn phân loại là độ tin cậy xác định đối tượng thuộc về nhãn tương ứng. Chương trình thử nghiệm được chạy trên máy tính có bộ vi xử lý Intel Core i7-9700 8 nhân 3.0GHz, bộ nhớ chính 16 GB DDR4, có trang bị card xử lý đồ họa GPU Nvidia GeForce GTX 1060 6GB. Kết quả thử nghiệm cho thấy, chương trình phát hiện và phân lớp đối tượng với độ chính xác cao, có thể xử lý video lên đến 12 khung hình/s mà vẫn đáp ứng được nhu cầu xử lý thời gian thực từ nguồn video từ camera giám sát. 4. KẾT LUẬN Trong bài báo, chúng tôi đã trình bày về mạng nơ-ron tích chập và ứng dụng mạng nơ-ron tích chập trong phát hiện và phân loại phương tiện giao thông. Các mô hình cải tiến như mạng nơ-ron tích chập theo vùng (R-CNN), mạng YOLO cho phép nâng cao độ chính xác, đồng thời giảm khối lượng tính toán. Qua đó, đáp ứng nhu cầu giải quyết vấn đề thu thập thông tin về luồng giao thông hỗn hợp, mật độ cao như ở các thành phố lớn ở Việt Nam, nhưng vẫn đáp ứng yêu cầu xử lý dữ liệu ảnh từ camera giám sát giao thông theo thời gian thực. LỜI CẢM ƠN Trân trọng cảm ơn Trường Đại học Giao thông Vận tải đã tài trợ cho cho nghiên cứu này trong khuôn khổ đề tài mã số T2019-CN-005. TÀI LIỆU THAM KHẢO [1]. Ross Girshick, et al. “Rich feature hierarchies for accurate object detection and semantic segmentation”, Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, 2014. [2]. Ross Girshick, et al. “Region-Based Convolutional Networks for Accurate Object Detection and Segmentation”, IEEE Transactions on Pattern Analysis and Machine Intelligence, 2015. [3]. Redmon Joseph, et al. “You only look once: Unified, real-time object detection.” Proceedings of the IEEE conference on computer vision and pattern recognition 2016. -304-
- Hội nghị Khoa học công nghệ lần thứ XXII Trường Đại học Giao thông vận tải [4]. Redmon Joseph, and Ali Farhadi. “Yolov3: An incremental improvement.” arXiv: 1804.02767 (2018). [5]. Molchanov V.V., et al. “Pedestrian detection in video surveillance using fully convolutional YOLO neural network.” Automated Visual Inspection and Machine Vision II. Vol. 10334. International Society for Potics and Photonics, 2017. [6]. Jonathan Hui. “Real-time Object Detection with YOLO, YOLOv2 and Now YOLOv3”. Medium, 18 Mar.2018. [7]. Y. LeCun, L. Bottou, Y. Bengio, and P. Haffner. Gradient-based learning applied to document recognition. Proc. of the IEEE, 1998. A. Krizhevsky, I. Sutskever, and G. Hinton. “ImageNet classification with deep convolutional neural networks”. In NIPS, 2012. [8]. Đặng Quang Thạch và các cộng sự. “Xây dựng thuật toán ước lượng mật độ xe lưu thông trên đường bằng công nghệ xử lý ảnh”. Báo cáo đề tài NCKH thuộc Viện Ứng dụng Công nghệ, 2016 [9]. -305-