Tải bản đầy đủ (.pdf) (8 trang)

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 bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (783.04 KB, 8 trang )

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:

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 tố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 tố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 tố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). Ngồ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 tố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 tốn ở tầng bên trên, GPU số 2 sẽ thực hiện các tính tố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 q 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
tố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 tố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 tố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ý tồ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 tốn
hồi quy tuyến tính (Linear Regression) để dự đố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 tố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 tố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ự đố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 tốn, các đối tượng được dự đốn với 3 tỉ
lệ khác nhau sau khi ảnh mẫu được phân vùng bằng thuật tốn k-means ỏ 9 tỉ lệ, q 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 tố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 tố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-



×