ĐỖ hỮu hiỀn nghiÊn cỨu Ứng dỤng kỸ thuẬt mÁy hỌc ĐỂ phÂn …
TRANSCRIPT
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÀ RỊA - VŨNG TÀU
ĐỖ HỮU HIỀN
NGHIÊN CỨU ỨNG DỤNG KỸ THUẬT MÁY HỌC ĐỂ PHÂN
TÍCH HÌNH ẢNH VÀ NHẬN DẠNG PHƯƠNG TIỆN VỀ HÀNH VI VI PHẠM LUẬT GIAO THÔNG ĐƯỜNG BỘ
LUẬN VĂN THẠC SỸ CÔNG NGHỆ THÔNG TIN
Bà Rịa - Vũng Tàu, tháng 4 năm 2021
2
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÀ RỊA - VŨNG TÀU
ĐỖ HỮU HIỀN
NGHIÊN CỨU ỨNG DỤNG KỸ THUẬT MÁY HỌC ĐỂ PHÂN TÍCH HÌNH ẢNH VÀ NHẬN DẠNG PHƯƠNG TIỆN VỀ HÀNH
VI VI PHẠM LUẬT GIAO THÔNG ĐƯỜNG BỘ
LUẬN VĂN THẠC SỸ
Chuyên ngành: Công nghệ thông tin Mã số ngành: 8480201
CÁN BỘ HƯỚNG DẪN KHOA HỌC TS. PHAN NGỌC HOÀNG
Bà Rịa - Vũng Tàu, tháng 4 năm 2021
3
LỜI CAM ĐOAN
Tôi xin cam đoan đây là công trình nghiên cứu của riêng tôi dưới sự hướng dẫn
của TS. Phan Ngọc Hoàng. Các số liệu, kết quả nêu và trình bày trong Luận văn là
trung thực và chưa từng được ai công bố trong bất kỳ công trình nào khác.
Qua đây, tôi cũng xin cam đoan rằng trong thời gian hoàn thành Luận văn tôi đã
được một vài đồng nghiệp hỗ trợ, giúp đỡ để hoàn thành đến thời điểm này và cũng đã
được tôi chân thành cảm ơn. Các thông tin trích dẫn trong Luận văn đã được chỉ rõ
nguồn gốc.
Học viên thực hiện Luận văn
Đỗ Hữu Hiền
4
LỜI CẢM ƠN
Trước tiên, tôi xin chân thành gửi lời tri ân sâu sắc đến Ban giám hiệu Trường
Đại học Bà Rịa – Vũng Tàu, Ban lãnh đạo Viện Đào tạo Quốc tế và Sau đại học, cùng
quý thầy, quý cô thuộc khoa Công nghệ Thông tin – Trường Đại học Bà Rịa – Vũng
Tàu đã tận tình quan tâm hỗ trợ, khuyến khích, truyền đạt cho tôi nhiều kiến thức quý
báu và đã tạo mọi điều kiện thuận lợi trong suốt quá trình học tập và nghiên cứu tại
Trường.
Tôi xin tỏ lòng biết ơn sâu sắc đến thầy TS. Phan Ngọc Hoàng, người đã quan
tâm, trách nhiệm, tận tình giúp đỡ và truyền đạt nhiều kinh nghiệm để tôi sớm có thể
thực hiện và hoàn thành được đề tài.
Xin chân thành ghi ơn người thân trong gia đình, đồng nghiệp trong cơ quan,
đơn vị và các bạn đã thông cảm, tận tình, giúp đỡ, hỗ trợ và động viên tôi rất nhiều
trong quá trình thực hiện đề tài.
Một lần nữa, tôi thành thật xin chân thành cảm ơn!
Học viên thực hiện Luận văn
Đỗ Hữu Hiền
5
MỤC LỤC
LỜI CAM ĐOAN ....................................................................................................... 3
LỜI CẢM ƠN ............................................................................................................ 4
MỤC LỤC .................................................................................................................. 5
DANH MỤC CÁC TỪ VIẾT TẮT ............................................................................ 9
DANH MỤC CÁC HÌNH ........................................................................................ 10
DANH MỤC BẢNG ................................................................................................. 13
1. GIỚI THIỆU ........................................................................................................ 14
1.1. Đặt vấn đề: .......................................................................................................... 14
1.2. Tính cấp thiết của đề tài: ..................................................................................... 18
2. MỤC TIÊU, ĐỐI TƯỢNG, PHẠM VI, NỘI DUNG VÀ HƯỚNG NGHIÊN
CỨU .......................................................................................................................... 22
2.1. Mục tiêu của đề tài .............................................................................................. 22
2.2 Đối tượng ............................................................................................................. 22
2.3 Phạm vi ................................................................................................................ 23
2.4. Nội dung nghiên cứu ........................................................................................... 23
2.4.1. Về nội dung .............................................................................................. 23
2.4.2. Về mặt lý thuyết ....................................................................................... 23
2.4.3. Về mặt thực nghiệm ................................................................................. 24
2.5. Phương pháp luận và phương pháp nghiên cứu ................................................... 24
3. TỔNG QUAN VỀ LĨNH VỰC NGHIÊN CỨU .................................................. 25
3.1. Những hướng nghiên cứu đã được thực hiện ....................................................... 25
3.2. Những kết quả nghiên cứu đã áp dụng vào thực tế .............................................. 26
3.3. Những phương pháp nghiên cứu đã được áp dụng trên thế giới và Việt Nam ...... 28
3.4. Một số vấn đề còn hạn chế của những nghiên cứu trước và những vấn đề cần được
tiếp tục nghiên cứu hoàn thiện ................................................................................... 30
3.4.1. Một số vấn đề còn hạn chế của những nghiên cứu trước ........................... 30
3.4.2. Những vấn đề cần được tiếp tục nghiên cứu hoàn thiện ............................ 30
4. CẤU TRÚC LUẬN VĂN ..................................................................................... 31
5. NGHIÊN CỨU TỔNG QUAN VÀ PHÂN TÍCH BÀI TOÁN ............................ 33
Chương 1. Các khái niệm, tổng quan về trí tuệ nhân tạo, học máy, các giải thuật
về học máy và kỹ thuật áp dụng cho phát hiện, nhận dạng đối tượng ................... 33
6
1. Khái niệm chung [6-9, 16, 17, 31] ........................................................................ 33
1.1. Xử lý ảnh ............................................................................................................ 33
1.2. Trí tuệ nhận tạo (AI-Artificial Intelligence)......................................................... 33
1.3. Học máy (Machine Learning) ............................................................................. 33
1.4. Học sâu (Deep Learning) .................................................................................... 33
1.5. Mạng nơ-ron nhân tạo (Artificial Neural Network) ............................................. 33
2. Tổng quan về trí tuệ nhân tạo [6-9, 21] ............................................................... 33
2.1. Trí tuệ nhân tạo ................................................................................................... 33
2.2. Ứng dụng trí tuệ nhân tạo trong hiện tại và tương lai .......................................... 35
3. Tổng quan về máy học [6-9, 16-17, 21-23] ........................................................... 38
3.1. Học máy (Machine Learning) ............................................................................. 38
3.2. Ứng dụng học máy .............................................................................................. 38
3.3. Các phương thức về máy học .............................................................................. 38
4. Các giải thuật về máy học [16-17, 21-23] ............................................................. 41
4.1. Giải thuật Mạng nơ-ron nhân tạo (Artificial Neural Network - ANN) ................. 41
4.2. Giải thuật dựa vào thể thức (K-nearest neighbors - KNN) ................................... 42
4.3. Giải thuật cây quyết định (Decision tree) ............................................................ 43
4.4. Giải thuật Random forest (RF) ............................................................................ 45
4.5. Giải thuật máy hỗ trợ vector (Support vector machine - SVM) ........................... 46
4.6. Giải thuật Naive Bayes (NB) ............................................................................... 47
4.7. Giải thuật phân cụm K-means clustering ............................................................. 48
5. Kỹ thuật áp dụng cho phát hiện, nhận dạng đối tượng [16-17, 21-23, 26-27] .... 49
5.1. Kỹ thuật phát hiện đối tượng kết hợp nhận dạng khuôn mặt (Viola Jones – Haar)
.................................................................................................................................. 49
5.2. Kỹ thuật biến đổi đặc trưng bất biến theo tỷ lệ (Scale-invariant feature transform -
SIFT) ......................................................................................................................... 52
5.3. Kỹ thuật biểu đồ độ dốc định hướng (Histogram of oriented gradients -HOG) ... 56
5.4. Kỹ thuật học sâu để nhận dạng và phân loại đối tượng [16-21] ........................... 60
5.4.1 Kỹ thuật mạng nơ-ron tích chập ................................................................ 60
5.4.2. Kỹ thuật tìm kiếm xác định vị trí vật thể trong ảnh sử dụng mạng CNN [35-
36] ..................................................................................................................... 65
7
5.4.3. Nhận xét, đánh giá và lựa chọn kỹ thuật áp dụng cho bài toán nhận dạng
phân loại đối tượng ............................................................................................ 75
Chương 2. Tổng quan về giao thông ........................................................................ 78
1. Các khái niệm ....................................................................................................... 78
1.1. Giao thông .......................................................................................................... 78
1.2. Đối tượng tham gia giao thông ............................................................................ 78
2. Tổng quan về thực trạng giao thông .................................................................... 78
3. Phương pháp phát hiện, nhận dạng đối tượng tham gia giao thông [1, 29-30] .. 81
3.1. Nhận dạng phân loại đối tượng tham gia giao thông ............................................ 81
3.2 Khái niệm về hệ thống nhận dạng biển số xe ........................................................ 82
3.2.1 Khái niệm .................................................................................................. 82
3.2.2 Lịch sử và phát triển .................................................................................. 82
3.2.3. Cách thức hoạt động của hệ thống nhận dạng biển số xe .......................... 83
3.2.4. Phân loại các ứng dụng nhận dạng biển số xe ........................................... 84
3.2.5. Ứng dụng thực tiễn tại Việt Nam .............................................................. 85
3.2.6. Phân loại biển số xe .................................................................................. 85
3.3. Phương pháp nhận dạng biển số xe từ ảnh chụp của thiết bị ghi hình .................. 87
3.3.1. Phương pháp chuyển đổi Hough ............................................................... 88
3.3.2. Phương pháp hình thái học ....................................................................... 88
3.4. Phương pháp nhận dạng ký tự trong biển số xe ................................................... 89
3.5. Một số đặc điểm để nhận dạng biển số xe tại Việt Nam ...................................... 89
Chương 3. Áp dụng Yolov3 cho bài toán phát hiện, nhận dạng đối tượng tham gia
giao thông vi phạm luật giao thông đường bộ ......................................................... 92
1. Kỹ thuật đề xuất áp dụng cho bài toán ................................................................ 92
1.1. Kỹ thuật áp dụng mạng nơ-ron tích chập (Faster R-CNN) .................................. 92
1.2. Kỹ thuật áp dụng nhìn một lần [32-34] ................................................................ 92
3. Mô hình và chức năng hệ thống đề xuất áp dụng cho bài toán .......................... 97
3.1 Địa điểm áp dụng thử nghiệm mô hình cho bài toán............................................. 97
3.2. Thiết kế mô hình lắp đặt hệ thống cho bài toán ................................................... 98
3.3. Thiết kế hệ thống trụ đỡ ...................................................................................... 98
3.4. Hệ thống Camera ................................................................................................ 98
8
3.5. Thiết kế mô hình kết nối hệ thống xử lý bài toán ................................................. 99
3.6. Sơ đồ tổng quan hệ thống áp dụng cho bài toán .................................................. 99
3.7. Hệ thống xử lý ảnh, phát hiện và nhận diện đối tượng ....................................... 101
3.7.1. Quy trình xử lý ảnh áp dụng cho bài toán ............................................... 101
3.7.2. Quy trình phát hiện, nhận dạng và phân loại đối tượng ........................... 102
3.7.3. Quy trình phát hiện, nhận dạng biển số xe: ............................................. 104
Chương 4. Xây dựng chương trình thực nghiệm và đánh giá kết quả ................. 108
1. Xây dựng chương trình thực nghiệm ................................................................ 108
1.1. Cài đặt chương trình chạy [35] .......................................................................... 108
1.1.1 Cài đặt thư viện mã nguồn mở Opencv .................................................... 108
1.1.2. Cài đặt thư viện CUDA .......................................................................... 108
1.1.3. Cài đặt thư viện cuDNN ......................................................................... 108
1.1.4. Mô tả cài đặt thư viện ............................................................................. 108
1.2. Chạy chương trình ............................................................................................ 109
1.3. Quy trình huấn luyện và nhận dạng đối tượng vật thể........................................ 110
1.4. Quy trình huấn luyện và nhận dạng hành vi vi phạm chở quá số người quy định
................................................................................................................................ 117
1.5. Quy trình huấn luyện và nhận dạng hành vi vi phạm không đội mũ bảo hiểm ... 120
1.6. Quy trình huấn luyện và nhận diện biển số xe của đối tượng tham gia giao thông:
................................................................................................................................ 127
6. KẾT LUẬN VÀ KIẾN NGHỊ ............................................................................ 135
6.1. Kết luận ........................................................................................................... 135
6.2. Kiến nghị và hướng phát triển ........................................................................ 136
TÀI LIỆU THAM KHẢO: .................................................................................... 138
9
DANH MỤC CÁC TỪ VIẾT TẮT STT Từ viết tắt Từ đầy đủ
1 AI Artificial Intelligence
2 AR Augmented Reality
3 ANN Artificial Neural Network
4 BBF Best Bin First
5 CNN Convolutional Neural Network
6 CV Cross Validation
7 ICT Information and Communication Technology
8 ITS Intelligent Transport Systems
9 KNN K-Nearest Neighbors
10 MAE Mean Absolute Error
11 MAP Maximum A Posteriori
12 ML Machine Learning
13 DL Deep Learning
14 MLE Maximum Likelihood Estimation
15 MSE Mean Square Error
16 RF Random Forest
17 RPN Region Proposal Network
18 SMAC Social, Mobile, Analytics & Cloud
19 SVM Support Vector Machine
20 VR Virtual Reality
21 YOLO You Only Look Once
22 CNTT Công nghệ thông tin
23 SXTN Sản xuất thử nghiệm
10
DANH MỤC CÁC HÌNH Hình 1: Mô hình nút giao lộ (ngã tư) triển khai xây dựng mô hình nghiên cứu ...... 22
Hình 2: Sơ đồ nhận dạng biển số xe ......................................................................... 25
Hình 3: Nhận dạng khuôn mặt người trong ảnh ...................................................... 26
Hình 4: Ứng dụng công nghệ trí tuệ nhân tạo với bộ nhớ hạn chế .......................... 35
Hình 5: Ứng dụng công nghệ trí tuệ nhân tạo tự nhận thức .................................... 35
Hình 6: Ứng dụng công nghệ trí tuệ nhân tạoxe tự lái ............................................. 36
Hình 7: Ứng dụng công nghệ trí tuệ nhân tạo cho thiết bị bay không người lái ...... 37
Hình 8: Ứng dụng công nghệ trí tuệ nhân tạo ROBOT trong day học ..................... 37
Hình 9: Phương thức học có giám sát ...................................................................... 39
Hình 10: Hình mô tả chữ viết tay .............................................................................. 40
Hình 11: Phương thức học không giám sát về bài toán phân cụm ........................... 40
Hình 12: Phương thức học bán giám sát .................................................................. 40
Hình 13: Minh họa mạng nơ-ron nhân tạo 3 lớp ..................................................... 41
Hình 14: Bản đồ 1NN ............................................................................................... 43
Hình 15: Quá trình phát triển cây (bên trái) và rừng ngẫu nhiên (bên phải) ........... 45
Hình 16: Bốn loại đặc trưng khu vực hình chữ nhật dùng trong kỹ thuật phát hiện
.................................................................................................................................. 51
Hình 17: Đặc trưng Haar tương ứng ảnh thực tế ..................................................... 51
Hình 18: Kết quả của thuật toán SIFT ..................................................................... 53
Hình 19: Các bước hiện thực giải thuật HOG .......................................................... 59
Hình 20: Kết quả phát hiện người thông qua giải thuật HOG ................................. 60
Hình 21: Convolved feature khác nhau với ma trận lọc khác nhau ......................... 62
Hình 22: Cấu trúc của mạng CNN ........................................................................... 63
Hình 23: Trường tiếp nhận cục bộ ........................................................................... 63
Hình 24: Các bước tạo ra 1 hidden layer .................................................................. 65
Hình 25: Xây dựng lớp max pooling ......................................................................... 65
Hình 26: Xác định vị trí nhiều đối tượng trong ảnh ................................................. 65
11
Hình 27: Output sau khi thực hiện Graph Based Image Segmentation [1] .............. 66
Hình 28: Các bước của thuật toán R-CNN [2] ......................................................... 66
Hình 29: Các bước của thuật toán Fast R-CNN [3] ................................................. 67
Hình 30: Kiến trúc Faster R-CNN [4] ....................................................................... 68
Hình 31: Hình chữ nhật region proposal ................................................................. 69
Hình 32: Hệ số IoU đánh giá bounding box dự đoán đối tượng khớp với ảnh thật.. 69
Hình 33: So sánh thời gian phát hiện đối tượng so với các kỹ thuật khác ................ 70
Hình 34: Mô hình sử dụng mạng VGG16 ................................................................ 71
Hình 35: Kết quả mô hình sử dụng mạng VGG16 .................................................... 71
Hình 36: Sơ đồ số chiều của các feature maps ......................................................... 71
Hình 37: Sơ đồ áp dụng thuật toán SSD ................................................................... 72
Hình 38: Chia ảnh thành ma trận ô vuông ............................................................... 73
Hình 39: Sai số phân loại ......................................................................................... 75
Hình 40: Hình ảnh mô tả phương tiện và người tham gia giao thông ..................... 78
Hình 41: Hình ảnh mô tả tình trạng không tuân thủ Luật ....................................... 79
Hình 42: Ảnh xám và lược đồ xám của ảnh ............................................................. 80
Hình 43: Kiến trúc Darknet-53 ................................................................................. 94
Hình 44: Khung ranh giới xác định đối tượng chim ................................................ 95
Hình 45: Phát hiện, định vị và phân loại nhiều đối tượng ........................................ 95
Hình 46: YOLO phiên bản 1 có những hạn chế đối với phát hiện đối tượng nhỏ .... 95
Hình 47: Kiến trúc Darknet-19 ................................................................................ 97
Hình 48: Bản vẽ thiết kế mô hình lắp đặt hệ thống .................................................. 98
Hình 49: Mô hình kết nối-truy xuất hệ thống ........................................................... 99
Hình 50: Cấu trúc phần cứng cho hệ thống ............................................................. 99
Hình 51: Cấu trúc phần mềm xử lý hệ thống ........................................................... 99
Hình 52: Phát hiện đối tượng áp dụng giải thuật YOLOv3 .................................... 104
Hình 53: Các bước dự đoán áp dụng theo giải thuật YOLOv3 ............................... 104
Hình 54: Sơ đồ mô hình theo kến trúc áp dụng YOLOv3 theo tỷ lệ ........................ 105
Hình 55: Kết quả dự đoán áp dụng giải thuật YOLOv3 .......................................... 105
Hình 56: Bộ dữ liệu gồm 22 hình ảnh trích xuất từ bộ dữ liệu mẫu ....................... 112
Hình 57: Kết quả nhận dạng đối tượng tham gia giao thông được gán nhãn
(tracking) .................................................................. 115Error! Bookmark not defined.
12
Hình 58: Bộ dữ liệu gồm 10 hình ảnh trích xuất từ bộ dữ liệu mẫu ....................... 118
Hình 59: Kết quả nhận dạng đối tượng về hành vi vi phạm giao thông được gán
nhãn (tracking)về chở quá số người ....................................................................... 119
Hình 60: Bộ dữ liệu gồm 22 hình ảnh trích xuất từ bộ dữ liệu mẫu ....................... 123
Hình 61: Kết quả nhận dạng đối tượng về hành vi vi phạm giao thông được gán
nhãn (tracking) về không đội mũ bảo hiểm ............................................................ 126
13
DANH MỤC BẢNG
Bảng 1: Kết quả nhận dạng các đối tượng, vật thể tham gia giao thông ................ 116
Bảng 2: Kết quả nhận dạng đối tượng tham gia giao thông về hành vi vi phạm chở
quá số người theo quy định ..................................................................................... 120
Bảng 3: Kết quả nhận dạng đối tượng tham gia giao thông về hành vi vi phạm chở
quá số người theo quy định ..................................................................................... 127
14
1. GIỚI THIỆU
1.1. Đặt vấn đề
Ngày nay, công nghệ thông tin là một trong những lĩnh vực quan trọng góp phần
thúc đẩy sự phát triển kinh tế của đất nước. Ứng dụng của công nghệ thông tin
(CNTT) xuất hiện ở rất nhiều lĩnh vực, là nền tảng của các nghiên cứu về công nghệ
cao như khoa học vũ trụ, công nghệ điện tử và tự động hóa, các hệ thống thông
minh,... Khi Internet ra đời vào những năm 90, nó đã kết nối thông tin trên toàn thế
giới lại với nhau. Chúng ta chỉ cần ngồi bất cứ nơi đâu với máy tính được kết nối
mạng là có thể truy nhập thông tin về bất cứ lĩnh vực gì trên thế giới.
Tại Việt Nam, từ những năm 70 của thế kỷ 20 đã bắt đầu có các nghiên cứu về
máy tính cũng như những ứng dụng về CNTT. Hiện nay CNTT luôn được xác định là
lĩnh vực then chốt được đầu tư không những hiện đại hóa cơ sở hạ tầng mà còn là việc
ứng dụng sâu rộng vào các lĩnh vực khác của đời sống xã hội [1].
Nghị quyết số 36-NQ/TW ngày 01/7/2014 của Bộ Chính trị về đẩy mạnh ứng
dụng, phát triển CNTT đáp ứng yêu cầu phát triển bền vững và hội nhập quốc tế tiếp
tục khẳng định sự quan tâm chỉ đạo sát sao của Đảng đối với công tác ứng dụng, phát
triển CNTT, khẳng định vị trí, vai trò của CNTT trong sự nghiệp xây dựng và bảo vệ
Tổ quốc thời kỳ mới. Và là một văn bản rất quan trọng, là định hướng xuyên suốt cho
chiến lược ứng dụng và phát triển CNTT và truyền thông từ nay đến năm 2030, là tiền
đề quan trọng để CNTT Việt Nam phát triển mạnh mẽ, sâu rộng hơn, đề ra những định
hướng lớn cho sự phát triển ngành CNTT nước nhà trong khoảng 10 - 20 năm tới. Đến
năm 2030, đưa năng lực nghiên cứu, ứng dụng, phát triển, sản xuất và cung ứng sản
phẩm, dịch vụ CNTT đạt trình độ tiên tiến thế giới; Việt Nam trở thành quốc gia mạnh
về CNTT trong khu vực.
Ngày 27/09/2019 Bộ Chính trị ban hành Nghị quyết số 52-NQ/TW về một số
chủ trương, chính sách chủ động tham gia cuộc Cách mạng công nghiệp lần thứ tư
(CMCN 4.0) với quan điểm chủ động, tích cực tham gia cuộc Cách mạng công nghiệp
lần thứ tư là yêu cầu tất yếu khách quan; là nhiệm vụ có ý nghĩa chiến lược đặc biệt
quan trọng, vừa cấp bách vừa lâu dài của cả hệ thống chính trị và toàn xã hội, gắn chặt
với quá trình hội nhập quốc tế sâu rộng; đồng thời nhận thức đầy đủ, đúng đắn về nội
hàm, bản chất của cuộc Cách mạng công nghiệp lần thứ tư để quyết tâm đổi mới tư
15
duy và hành động, coi đó là giải pháp đột phá với bước đi và lộ trình phù hợp là cơ hội
để Việt Nam bứt phá trong phát triển kinh tế - xã hội. Xác định mục tiêu đến năm
2030, Việt Nam chúng ta duy trì xếp hạng về chỉ số Đổi mới sáng tạo toàn cầu (GII)
thuộc nhóm 40 nước dẫn đầu thế giới. Mạng di động 5G phủ sóng toàn quốc; mọi
người dân được truy cập Internet băng thông rộng với chi phí thấp. Kinh tế số chiếm
trên 30% GDP; năng suất lao động tăng bình quân khoảng 7,5%/năm. Hoàn thành xây
dựng Chính phủ số. Hình thành một số chuỗi đô thị thông minh tại các khu vực kinh tế
trọng điểm phía Bắc, phía Nam và miền Trung; từng bước kết nối với mạng lưới đô thị
thông minh trong khu vực và thế giới và tầm nhìn đến năm 2045, Việt Nam trở thành
một trong những trung tâm sản xuất và dịch vụ thông minh, trung tâm khởi nghiệp, đổi
mới sáng tạo thuộc nhóm dẫn đầu khu vực Châu Á; có năng suất lao động cao, có đủ
năng lực làm chủ và áp dụng công nghệ hiện đại trong tất cả các lĩnh vực kinh tế - xã
hội, môi trường, quốc phòng, an ninh [2-3].
Bản chất của cuộc cách mạng công nghiệp lần thứ tư (CMCN 4.0) là cuộc cách
mạng thể chế. Với sự phát triển mạnh mẽ của công nghệ số tạo ra mô hình mới, lực
lượng lao động mới, nhanh chóng, bùng nổ… khiến khuôn khổ thể chế truyền thống
không còn phù hợp, mà nếu duy trì sẽ kìm hãm sự phát triển của đất nước và ngày
04/7/2017, Thủ tướng chính phủ Ban hành Chỉ thị số 16/CT-TTg về tăng cường năng
lực tiếp cận cuộc cách mạng công nghiệp lần thứ 4. Trên cở sở đó, ngày 03/12/2018
Bộ Khoa học và Công nghệ ban hành Quyết định số 3685/QĐ-BKHCN về danh mục
các công nghệ chủ chốt của công nghiệp 4.0 (Trí tuệ nhân tạo - Artificial Intelligence,
Chuỗi khối- Blockchain, Dữ liệu lớn - Big Data, Khai phá dữ liệu và Phân tích dữ liệu
- Data Mining and Data Analytics, Internet vạn vật- Internet of Things, Điện toán đám
mây- Cloud computing, Robot tự hành - Autonomous Robots, Robot cộng tác
Collaborative robotics, In 3D và chế tạo cộng - 3D printing and Additive
manufacturing, Thực tại ảo - Virtual Reality, Công nghệ chế tạo vật liệu nano - Nano
materials, Công nghệ vật liệu mới - New material technnology, Sinh học tổng hợp -
Synthetic biology, Mạng di động thế hệ 5 - 5th Generation Mobile Network, ...).
Đặc biệt, cuộc cách mạng công nghiệp lần thư 4 có nhiều tác động đến đời sống
kinh tế - xã hội trên nhiều lĩnh vực. Nền kinh tế toàn cầu đang đứng trước một giai
đoạn chuyển đổi không thể đảo ngược. Cuộc cách mạng này thông qua các công nghệ
như trí tuệ nhân tạo (AI), Internet vạn vật (IoT), thực tế ảo (VR), tương tác thực tại ảo
16
(AR), mạng xã hội, điện toán đám mây, di động, phân tích dữ liệu lớn (SMAC)... để
chuyển hóa toàn bộ thế giới thực thành thế giới số.
Các công nghệ thông minh sẽ được tích hợp vào mọi khía cạnh của xã hội, xóa
bỏ các ranh giới công nghệ thông thường, thay đổi hình dạng mạng lưới công nghệ và
sản xuất, thúc đẩy sự phát triển của thời đại. Những phát triển này hứa hẹn sẽ mở ra cơ
hội cho Chính phủ, vùng miền các quốc gia thúc đẩy nền kinh tế mở, linh hoạt, nâng
cao hiệu quả của nền kinh tế - xã hội và mang lại lợi thế “đi đầu” cho những quốc gia,
vùng miền tận dụng tốt các công nghệ mới nhất. Cách mạng công nghiệp lần thứ 4 dựa
trên nền tảng công nghệ số và tích hợp tất cả các công nghệ thông minh để tối ưu hóa
quy trình, phương thức sản xuất; với những công nghệ đang và sẽ có tác động lớn như
(Trí tuệ nhân tạo - Artificial Intelligence, Chuỗi khối- Blockchain, Dữ liệu lớn - Big
Data, Khai phá dữ liệu và Phân tích dữ liệu - Data Mining and Data Analytics, Internet
vạn vật- Internet of Things, Điện toán đám mây- Cloud computing, Robot tự hành -
Autonomous Robots,… Trong lĩnh vực sản xuất công nghiệp, viễn cảnh các nhà máy
thông minh trong đó các máy móc được kết nối Internet và liên kết với nhau qua một
hệ thống có thể tự hình dung toàn bộ quy trình sản xuất rồi đưa ra quyết định sẽ không
còn xa. Có thể thấy, Cách mạng công nghiệp lần thứ 4 tác động đến tất cả các lĩnh vực
kinh tế - xã hội như: công nghiệp, nông nghiệp, tài chính ngân hàng, lao động, việc
làm, giao thông vận tải, dệt may, du lịch, y tế, giáo dục và đào tạo. Điều đó có nghĩa
nó sẽ ảnh hưởng trực tiếp đến các tổ chức, cá nhân và các địa phương trong cả nước
[4-5].
Theo các nhà nghiên cứu, ứng dụng trí tuệ nhân tạo được huấn luyện tốt có thể
thực hiện một số công việc với kỹ năng tương đương như con người. Tuy nhiên, trí tuệ
nhân tạo có lợi thế hơn con người nhờ khả năng mở rộng bằng việc học liên tục không
nghỉ, thậm chí là tự học mà không cần sự hướng dẫn của con người. Trí tuệ nhân tạo
có thể phát hiện ra mẫu trong những dữ liệu phức tạp đến mức các chuyên gia cũng
không nhận ra. Trong đó, đối với một số ứng dụng đặc thù như xử lý hình ảnh, trí tuệ
nhân tạo đã bằng hoặc vượt khả năng của con người. Chính vì lẽ đó, khi được ứng
dụng vào quá trình điều tiết giao thông, trí tuệ nhân tạo sẽ giúp giảm bớt nhân công
nhưng lại tăng cường khả năng xử lý dữ liệu của hệ thống.
Vì vậy có thể nói, trí tuệ nhân tạo (Artificial Intelligence - AI) là một hướng
nghiên cứu của lĩnh vực CNTT và Khoa học máy tính nhằm phát triển các hệ thống
17
thông minh để giải quyết các bài toán trong thực tế giống như hoạt động của bộ não
người. Trí tuệ nhân tạo được bắt đầu nghiên cứu từ những năm 50 của thế kỷ 20 và
trong khoảng 30 năm trở lại đây đã được cộng đồng các nhà khoa học quan tâm mạnh
mẽ. Rất nhiều các hội thảo lớn về lĩnh vực này được tổ chức hàng năm trên thế giới.
Các ứng dụng tiêu biểu của trí tuệ nhân tạo vào đời sống xã hội bào gồm: người máy,
robot, xử lý ngôn ngữ tự nhiên, nhận dạng, phát hiện dị thường, an ninh quốc phòng,
tin sinh học, khoa học vũ trụ và trái đất,…
Những năm gần đây, chúng ta đã chứng kiến được nhiều thành tựu vựợt bậc
trong lĩnh vực thị giác máy tính (Computer Vision). Các hệ thống xử lý ảnh lớn của
Facebook, Google hay Amazon đã đưa vào sản phẩm của mình những chức năng
thông minh như nhận dạng khuôn mặt người dùng, phát triển xe hơi tự lái hay drone
giao hàng tự động.
Bên cạnh đó, sự phát triển của mạng nơ-ron đang dần hiện thực hoá khái niệm
chúng ta vẫn thường gọi là (Computer Vision) thị giác máy tính. Tuy nhiên, việc sử
dụng thuật toán mạng nơ-ron vẫn còn gặp nhiều khó khăn. Chẳng hạn như: Khi bạn
muốn phát hiện nhận dạng một đối tượng trong một bức ảnh và đánh nhãn cho đối
tượng đó thì các phương pháp lúc bấy giờ quá chậm để xử lý theo thời gian thực hoặc
là đòi hỏi cần phải đầu tư trang thiết bị rất mạnh dẫn đến chi phí rất tốn kém,....
Chính vì lẻ đó, cho đến khi giải thuật nhìn một lần (You Only Look Once -
YOLO) ra đời. You Only Look Once lần lượt có các phiên bản 1, 2 (YOLO Version
1, 2) và hiện nay là You Only Look Once phiên bản 3 (YOLO Version 3) có khả
năng gán nhãn cho toàn bộ đối tượng trong khung hình với chỉ duy nhất một hoạt
động. Có thể nói, You Only Look Once đã xây dựng một hướng tiếp cận đầu tiên
giúp đưa nhận dạng đối tượng theo thời gian thực (Real-Time Object Detection) thực
sự khả thi áp dụng thực tế trong cuộc sống.
Đối với mạng nơ-ron tích chập (Convolutional Neural Network - CNN) là
một trong những mô hình học sâu (Deep Learning) tiên tiến giúp cho chúng ta xây
dựng được những hệ thống thông minh với độ chính xác cao như hiện nay và còn là
một mô hình xử lý thông tin phỏng theo cách thức xử lý thông tin của các hệ nơ-ron
sinh học. Nó được tạo nên từ một số lượng lớn các phần tử (nơ-ron) kết nối với nhau
thông qua các liên kết (trọng số liên kết) làm việc như một thể thống nhất để giải quyết
một vấn đề cụ thể nào đó. Một mạng nơ-ron nhân tạo được cấu hình cho một ứng dụng
18
cụ thể (nhận dạng mẫu, phân loại dữ liệu,...) thông qua một quá trình học từ tập các
mẫu huấn luyện. Về bản chất học chính là quá trình hiệu chỉnh trọng số liên kết giữa
các nơ-ron.
Trong khuôn khổ luận văn Thạc sỹ của cá nhân, qua việc được trang bị các môn
học lý thuyết như thuật toán, xử lý ảnh, trí tuệ nhân tạo, tìm kiếm,… tôi đã lựa chọn đề
tài “Nghiên cứu ứng dụng kỹ thuật máy học để phân tích hình ảnh và nhận dạng
phương tiện vi phạm Luật giao thông đường bộ”. Chủ đề phân lớp dữ liệu là một
nhánh quan trọng trong lĩnh vực máy học (machine learning) của trí tuệ nhân tạo.
Chúng ta có thể kể đến các ứng dụng của máy học trong thực tế như người máy, robot,
nhận dạng đối tượng, nhận dạng mặt người, nhận dạng tiếng nói và chữ viết,…Trong
đó, học sâu (Deep learning) với mô hình mạng nơ-ron tích chập theo phương pháp
nhìn một lần (Convolutional Neural Network for You Only Look Once - CNNs for
YOLO Object Detection) là một trong những giải thuật của mô hình hệ thống máy
học tiên tiến giúp cho chúng ta xây dựng đựợc những hệ thống thông minh với độ
chính xác cao như hiện nay. Trong khuôn khổ luận văn cao học này, cá nhân tập trung
nghiên cứu về mạng nơ-ron (neural network) cũng như mạng tích chập (Convolution
network) theo giải thuật của mô hình mạng nơ-ron tích chập (CNNs) nhằm phân tích
lớp ảnh (Image Classification) và áp dụng trong việc xây dựng hệ thống nhận dạng
phương tiện với phương pháp nhận dạng đối tượng (You Only Look Once) các hành
vi vi phạm Luật giao thông đường bộ [6-9].
1.2. Tính cấp thiết của đề tài
Theo một báo cáo của Liên Hợp Quốc, hơn nửa dân số trái đất hôm nay đã là
dân đô thị, với 54,6% dân số thế giới tương đương 3,6 tỷ người đang sống ở các đô thị,
nghiên cứu cho thấy đến năm 2050, tỉ lệ dân cư thành thị sẽ chiếm hơn 70% dân số thế
giới, với 64,1% ở các nước đang phát triển và 85,9% ở các nước phát triển sẽ sống ở
các khu vực thành thị.
Sự tập trung dân số, tốc độ gia tăng của đô thị hóa đã mang lại cho các thành
phố và quốc gia một số thách thức trong việc đáp ứng nhu cầu ngày càng tăng của
người dân, như: cơ sở hạ tầng, giao thông, các yêu cầu về nhà ở, năng lượng, an ninh,
y tế, giáo dục, môi trường và ứng phó với biến đổi khí hậu, thiên tai cũng như các vấn
đề như truyền thông và giải trí. Do đó việc phát triển đô thị trong tương lai có ảnh
19
hưởng lớn tới môi trường, tới việc quản lý và cải thiện chất lượng đô thị, điều này chỉ
có thể nắm bắt được thông qua việc thay đổi phương thức điều hành của chính quyền,
sự tham gia của người dân, cũng như sự tham gia của các bên liên quan chịu trách
nhiệm quản lý chung. Vì vậy, việc định hướng cho phát triển "đô thị truyền thống"
hiện nay thành “đô thị thông minh” hơn là một nhu cầu tất yếu mà trong đó bao gồm
các ứng dụng về chính quyền điện tử, giao thông thông minh, y tế thông minh, giáo
dục thông minh, du lịch thông minh, môi trường thông minh,…việc triển khai, áp dụng
các hệ thống tự động và kết hợp với Cuộc cách mạng công nghiệp lần thứ 4 (CMCN
4.0) bởi các công nghệ chủ chốt của công nghiệp 4.0 (Trí tuệ nhân tạo - Artificial
Intelligence, Chuỗi khối- Blockchain, Dữ liệu lớn - Big Data, Khai phá dữ liệu và
Phân tích dữ liệu - Data Mining and Data Analytics, Internet vạn vật- Internet of
Things, Điện toán đám mây- Cloud computing, ...) [10].
Xét một cách tổng quan, việc triển khai giao thông thông minh sẽ có 3 giai
đoạn. Trong đó bao gồm việc thu thập dữ liệu, xử lý dữ liệu và phân phối lại chúng
cho người tham gia giao thông. Để hoạt động của hệ thống được trơn tru, sẽ cần phải
có một trung tâm xử lý nhằm tổng hợp thông tin và tiến hành điều tiết. Ở giai đoạn ban
đầu, những trung tâm này được điều hành chủ yếu bởi con người. Tuy vậy, với các
tiến bộ của trí tuệ nhân tạo (AI) sẽ được ứng dụng nhằm thay thế con người trong
tương lai.
Hệ thống giao thông thông minh (Intelligent Transport Systems – ITS) không
phải là điều gì quá mới mẻ. Ý tưởng về hệ thống này đã được khởi xướng từ những
năm 60, 70 của thế kỷ trước tại Mỹ và các nước Châu Âu. Đến nay, mô hình này đã
được áp dụng thành công tại nhiều thành phố lớn trên thế giới [11].
Tại các nước châu Á, Hàn Quốc chính là quốc gia đi tiên phong trong việc ứng
dụng công nghệ nhằm phát triển Hệ thống giao thông thông minh. Seoul (Hàn Quốc)
được nhận định là thành phố có hệ thống giao thông thông minh tốt nhất thế giới.
Tại thành phố Seoul – Hàn Quốc, chính phủ thiết lập một hệ thống vận hành
giao thông có tên TOPIS. Khi truy nhập vào hệ thống này, người dân sẽ được cung cấp
các thông tin liên quan đến tình trạng giao thông. Với những người đang chờ xe buýt,
thông tin này bao gồm cả vị trí cụ thể của chuyến xe đang tới, thời gian dự kiến sẽ tới
bến và lượng ghế còn trống trên xe là bao nhiêu.
20
Tại Việt Nam, cùng với các kinh nghiệm đã triển khai trên thực tế trong các
năm vừa qua của các địa phương trong cả nước như thành phố Hà Nội, thành phố Hồ
Chí Minh, Đồng Nai, Kiên Giang, Quảng Nam, Đà Nẵng, Thừa Thiên Huế, Quảng
Ninh… việc trang bị hệ thống Camera giám sát giao thông thông minh nhằm mục đích
nâng cao năng lực giám sát, kiểm soát và xử lý các vi phạm trật tự an toàn giao thông
đường bộ đã mang lại những hiệu quả tích cực. Bên cạnh việc giảm thiểu các tai nạn
giao thông, tình hình an ninh trật tự được đảm bảo, ý thức tự giác chấp hành pháp luật
của người tham gia giao thông được nâng cao.
Tỉnh Bà Rịa – Vũng Tàu là một tỉnh ven biển thuộc vùng Đông Nam Bộ, nằm
trong vùng kinh tế trọng điểm phía Nam, có tổng diện tích tự nhiên là 1.980,98 km2,
dân số khoảng trên 1,3 triệu người, cũng nằm trong xu thế xây dựng đô thị hướng đến
thông minh đang được quan tâm và thúc đẩy. Có thể nói, đô thị thông minh được coi là
lựa chọn tất yếu, phù hợp với xu thế phát triển chung của thế giới cũng như khả năng
tiếp cận của Việt Nam. Bà Rịa – Vũng Tàu được đánh giá là một trong những địa
phương có hệ thống giao thông đường biển, đường hàng không và đường bộ với kết
cấu hạ tầng giao thông khá hiện đại. Trong đó, đường bộ là đầu mối giao thông quan
trọng với 3 tuyến quốc lộ chính gồm QL51, QL55, QL56. Quốc lộ 51 và là trục giao
thông chính của vùng Kinh tế trọng điểm phía Nam, nối liền với phố TP. Hồ Chí
Minh, Tp. Biên Hòa và Tp. Vũng Tàu. Quốc lộ 55, chạy từ Tp. Bà Rịa đi Tp. Phan
Thiết nối với các tỉnh duyên hải Đông Nam Bộ, có giá trị giao thông liên vùng, nối
vùng Nam Trung Bộ với miền Đông. Quốc lộ 56 là trục đường giao thông nối Tp. Bà
Rịa tỉnh Bà Rịa – Vũng Tàu và vùng kinh tế trọng điểm phía Nam với Tây Nguyên. Từ
QL56 có thể đi thẳng qua TX. Long Khánh đi Tp. Đà Lạt (Lâm Đồng). Ngoài ra tỉnh
Bà Rịa – Vũng Tàu có rất nhiều tuyến đường tỉnh kết nối đi các huyện, thị xã và thành
phố.
Theo số liệu tổng hợp, đến cuối tháng 9/2020 trên địa bàn tỉnh đã xảy ra 285 vụ
tai nạn giao thông, hậu quả làm 120 người chết và 213 người bị thương. Trong đó có
28 vụ tai nạn giao thông tự gây, làm 31 người chết và 04 người bị thương. So với cùng
kỳ năm 2018, số vụ tai nạn giao thông giảm 02 vụ, số người chết giảm 06 người, số
người bị thương giảm 55 người. Tuy số vụ TNGT, số người chết và bị thương đều
giảm so với cùng kỳ nhưng con số thống kê cho thấy vẫn ở mức cao và tiềm ẩn diễn
biến phức tạp. Nguyên nhân chủ yếu là do một bộ phận người tham gia giao thông
21
chưa ý thức trong việc chấp hành pháp luật giao thông đường bộ, còn đối phó, chưa tự
giác, vi phạm về trật tự - an toàn giao thông (TT-ATGT) vẫn còn phổ biến, đặc biệt là
các hành vi vi phạm như: điều khiển phương tiện tham gia giao thông không đúng tốc
độ quy định, điều khiển phương tiện tham gia giao thông không đúng phần làn/chiều
đướng theo quy định, không chấp hành hiệu lệnh của tín hiệu giao thông, phương tiện
tham gia giao thông quá khổ - quá tải, phương tiện tham gia giao thông chở quá số
lượng người quy định [12-13].
Bên cạnh đó, giao thông luôn là một vấn đề được quan tâm nhiều nhất đối với
các đô thị lớn ở các nước nói chung và ở Việt Nam nói riêng. Trong những năm gần
đây tình trạng tắc đường, kẹt xe, tai nạn và vi phạm Luật giao thông đường bộ vẫn
luôn là vấn đề rất nghiêm trọng và cấp bách. Đây được xem là vấn đề bức xúc của toàn
xã hội, ảnh hưởng đến sự phát triển bền vững về kinh tế, văn hóa, xã hội và hình ảnh
của đất nước Việt Nam với bạn bè Quốc tế.
Hiện nay, mặc dù đã có những nghiên cứu, nhiều giải pháp, cũng như các ý
tưởng mới của các nhà khoa học, các chuyên gia hàng đầu trong nước và thế giới về
việc hỗ trợ, giảm thiểu tình trạng tắc đường, kẹt xe, tai nạn và các hành vi vi phạm
Luật giao thông đường bộ nhưng hiệu quả vẫn chưa cao và tình trạng vẫn diễn ra
thường xuyên trên các trục đường giao thông, đặc biệt là ở các khu đô thị.
Xuất phát từ nhu cầu thực tiễn, vì vậy tôi chọn vấn đề “Nghiên cứu ứng dụng
kỹ thuật máy học để phân tích hình ảnh và nhận dạng phương tiện vi phạm Luật
giao thông đường bộ” làm đề tài nghiên cứu nhằm phát hiện, nhận dạng và xử lý các
hành vi vi phạm trật tự an toàn giao thông, góp phần giảm thiểu ùn tắc, tai nạn cho
người và phương tiện tham gia giao thông. Đồng thời giúp công tác tuần tra kiểm soát
trật tự, an ninh và phát hiện kịp thời, có chứng cứ pháp lý về hình ảnh nhằm cung cấp
cho lực lượng chức năng khi điều tra các vụ việc xảy ra trên đường góp phần đảm bảo
an ninh trật tự xã hội là cần thiết. Kết quả thực hiện đề tài dự kiến sẽ được đưa vào áp
dụng thực tế trên địa bàn tỉnh Bà Rịa – Vũng Tàu sau khi hoàn thành nghiên cứu luận
văn.
2. MỤC TIÊU, ĐỐI TƯỢNG, PHẠM VI, NỘI DUNG VÀ HƯỚNG NGHIÊN
CỨU
2.1. Mục tiêu của đề tài
22
- Mục tiêu tổng quát: Nghiên cứu ứng dụng kỹ thuật máy học để xây dựng mô
hình phục vụ theo dõi, giám sát tình trạng giao thông đường bộ, tự động phát hiện, ghi
nhận, phân tích hình ảnh đối tượng và nhận dạng phương tiện về các hành vi vi phạm
Luật giao thông đường bộ theo thời gian thực với độ chính xác cao tại một nút giao lộ,
từ đó có thể xử phạt nhằm nâng cao ý thức về an toàn giao thông của người dân, đảm
bảo trật tự an toàn xã hội.
- Mục tiêu cụ thể: Theo dõi, giám sát tình trạng giao thông đường bộ, tự động
phát hiện, ghi nhận, phân tích hình ảnh đối tượng và nhận dạng biển số phương tiện và
các hành vi vi phạm Luật giao thông đường bộ theo thời gian thực tại một nút giao lộ
cụ thể sau:
(1) Chở quá số người quy định khi tham gia giao thông.
(2) Không đội mũ bảo hiểm khi điều khiển xe mô tô, xe gắn máy.
Hình 1: Mô hình nút giao lộ (ngã tư) triển khai xây dựng mô hình nghiên cứu
2.2 Đối tượng
Đối tượng nghiên cứu chính là các loại phương tiện tham gia giao thông đường
bộ theo quy định của Luật giao thông đường bộ áp dụng đối với hành vi vi phạm theo
mục tiêu đề tài nghiên cứu đề ra đó là:
- Thu thập, xây dựng bộ dữ liệu ảnh các phương tiện giao thông đường bộ cho
hệ thống giám sát.
- Một số mô hình mạng nơ-ron và nơ-ron tích chập đang được sử dụng phổ biến
trong lĩnh vực nhận dạng.
23
- Ứng dụng kỹ thuật máy học trong lĩnh vực trí tuệ nhân tạo để phát hiện, ghi
nhận và phân vùng đối tượng ảnh dựa trên các giải thuật học sâu để phân lớp đối tượng
quan tâm với các đối tượng ảnh còn lại.
- Phương pháp trích xuất điểm đặc trưng đối tượng, phương tiện theo mô hình
mạng nơ-ron tích chập theo phương pháp phát hiện đối tượng nhìn chỉ một lần.
2.3 Phạm vi
- Xây dựng bộ mẫu dữ liệu nghiên cứu, thử nghiệm với số lượng 500 mẫu là
ảnh các đối tượng vể phương tiện tham gia giao thông. Những ảnh này dùng để phát
hiện vùng chứa biển số theo cách tiếp cận của phương pháp hình thái học để phát hiện
vùng biển số cho các biển đăng ký xe của Việt Nam.
- Tập trung nghiên cứu kỹ thuật máy học trong lĩnh vực trí tuệ nhân tạo để phát
hiện, ghi nhận và phân vùng đối tượng ảnh dựa trên các giải thuật học sâu nhằm phân
lớp đối tượng quan tâm với các đối tượng ảnh còn lại, cụ thể hơn là công việc cần phải
giải quyết vấn đề phát hiện vùng chứa biển số xe và nhận dạng ký tự trong biển số với
mô hình mạng nơ-ron tích chập để tiến hành nhận dạng biển số xe vi phạm Luật giao
thông đường bộ.
2.4. Nội dung nghiên cứu
2.4.1. Về nội dung
- Nghiên cứu xây dựng hệ thống phát hiện, ghi nhận và phân vùng đối tượng
ảnh dựa trên các bộ thư viện cài đặt cho mô hình, giải thuật học sâu (deep learning).
- Sử dụng công cụ, mô hình mạng nơ-ron tích chập (CNNs) nhằm phân tích lớp
ảnh (Image Classification) áp dụng trong việc xây dựng hệ thống tự động nhận dạng
phương tiện và các hành vi vi phạm Luật giao thông đường bộ theo thời gian thực.
- Huấn luyện và xây dựng nhận dạng đối tượng về các hành vi vi phạm Luật
giao thông đường bộ.
2.4.2. Về mặt lý thuyết
- Tìm hiểu tổng quan về hệ thống kỹ thuật máy học (machine learning) trong
lĩnh vực trí tuệ nhân tạo (AI) để phát hiện, ghi nhận và phân vùng đối tượng ảnh dựa
trên các giải thuật học sâu (deep learning) để phân lớp đối tượng quan tâm với các đối
tượng ảnh còn lại.
- Tìm hiểu tổng quan về hệ thống mô hình giải thuật mạng nơ-ron và mạng no-
ron tích chập theo phương pháp phát hiện đối tượng nhìn chỉ một lần.
24
- Nghiên cứu tổng quan về phướng pháp, cách thức nhận dạng đối tượng,
phương tiện tham gia giao thông thông qua biển số xe trong đề tài nghiên cứu.
- Nghiên cứu áp dụng các kỹ thuật đã được tìm hiểu để tự động phát hiện, nhận
dạng phương tiện tham gia giao thông và các hành vi vi phạm Luật giao thông đường
bộ.
2.4.3. Về mặt thực nghiệm
- Tiến hành khảo sát lựa chọn địa điểm xây dựng mô hình nghiên cứu triển khai
thử nghiệm.
- Thiết kế mô hình và lựa chọn thiết bị trang thiết bị, giải pháp thi công lắp đặt
cho hệ thống.
- Xây dựng phần mềm ứng dụng điều khiển hệ thống thông minh kết hợp quản
lý và in ấn bằng chứng hình ảnh vi phạm chạy trên nền tảng website.
- Ứng dụng trí tuệ nhân tạo (AI) để tự động học và nhận diện các lỗi hành vi vi
phạm giao thông từ các dữ liệu vi phạm ban đầu và nhận dạng các lỗi vi phạm có độ
chính xác ngày càng cao hơn từ các dữ liệu vi phạm trước đó.
- Xây dựng quy trình vận hành khai thác, xây dựng các kịch bản nhằm tổ chức
triển khai thu thập bộ dữ liệu mẫu tại mô hình thực tế.
- Xây dựng bộ cơ sở dữ liệu điện toán đám mây có khả năng lưu trữ dữ liệu lớn
về các hình ảnh bằng chứng vi phạm và thông tin của các phương tiện tham gia giao
thông vi phạm.
- Nghiên cứu thực hiện thông qua các hình ảnh thực nhằm xác định, đánh giá
kết quả cuối cùng và đưa ra các dự báo.
2.5. Phương pháp luận và phương pháp nghiên cứu
Để đảm bảo thực hiện xây dựng đầy đủ mô hình hệ thống tự động phát hiện, ghi
nhận, phân tích hình ảnh đối tượng và nhận dạng phương tiện và các hành vi vi phạm
Luật giao thông đường bộ theo thời gian thực. Đề tài nghiên cứu đề xuất thực hiện
theo hai bước cụ thể sau:
- Bước 1- Huấn luyện: Sử dụng bộ dữ liệu trên cơ sở các kịch bản, diễn tập,
huấn huyện và thu thập ảnh đối tượng động từ hệ thống camera lắp sẵn đưa vào huấn
luyện, thử nghiệm để đưa ra mô hình nhận dạng và đánh giá kết quả.
25
- Bước 2 - Thử nghiệm: Sử dụng mô hình vừa huấn luyện được ở trên thông
qua hình ảnh giao thông để thực hiện các giải thuật phân lớp đối tượng trên dữ liệu
mới và đánh giá kết quả.
3. TỔNG QUAN VỀ LĨNH VỰC NGHIÊN CỨU
3.1. Những hướng nghiên cứu đã được thực hiện
Nghiên cứu xây dựng hệ thống giám sát ngã tư thông minh tại 01 điểm giao lộ
đường Huỳnh Minh Thạnh và 27/4 thuộc thị trấn Phước Bửu, huyện Xuyên Mộc, tỉnh
Bà Rịa – Vũng Tàu đây là dự án sản xuất thử nghiệm cấp tỉnh thực hiện nhiệm vụ
khoa học và công nghệ hàng năm do UBND tỉnh Bà Rịa – Vũng Tàu đặt hàng cho
Trung tâm Ứng dụng tiến bộ khoa học và công nghệ chủ trì thực hiện. Mục tiêu dự án
SXTN đã nêu trên với giải pháp là thiết kế lắp đặt trên nền tảng công nghệ sẵn có vi
xử lý AVR Atmel 8-bit, hoặc ARM Atmel 32-bit thông qua bản mạch Arduino và thực
thi chương trình được nạp sẵn cho bộ xử lý trung tâm đặt tại giao lộ cần quan sát, bộ
xử lý này tiếp nhận thông tin từ các camera được kết hợp với các cảm biến laser và
camera giám sát hình ảnh phương tiện tham gia giao thông. Nhận dạng hành vi vi
phạm và lưu trữ thông tin trên hệ thống dữ liệu điện toán đám mây thông qua sóng 3G.
Thông qua phần mềm ứng dụng có thể xây dựng kịch bản cho hệ thống tự động điều
khiển và xử lý thông tin tiếp nhận từ các thiết bị.
Hệ thống nhận dạng biển số xe: Bộ thư viện OpenCV – đây là bộ thư viện được
Intel và Itseez phát triển trong hơn 20 năm qua với hơn 2.500 thuật toán nhận dạng
khác nhau, sử dụng máy học (machine learning).
Hình 2: Sơ đồ nhận dạng biển số xe
26
Hệ thống nhận dạng người tham gia giao thông: IOT Core và Azure đảm nhận
việc có bao nhiên người tham gia giao thông tại thời điểm đó, từ đó biết được trên một
phương tiện xe máy có bao nhiêu người, đặc điểm của họ, phân tích các hành vi tại
thời điểm đó để kiểm tra xem họ có chấp hành đúng luật giao thông hay không.
Hình 3: Nhận dạng khuôn mặt người trong ảnh
Từ đó, có thể nhận thấy cần phải thay đổi ứng dụng giải pháp công nghệ vào
việc giám sát hành vi của người tham gia giao thông nhằm phát hiện, ghi nhận và phân
vùng đối tượng ảnh dựa trên các giải thuật học sâu (deep learning) để phân lớp đối
tượng quan tâm với các đối tượng ảnh còn lại, đặc biệt với thông qua các kỹ thuật học
sâu (Deep learning) với mô hình mạng nơ-ron tích chập theo phương pháp nhìn một
lần (Convolutional Neural Network for You Only Look Once - CNNs for YOLO
Object Detection) nhằm phân tích đối tượng áp dụng trong việc xây dựng hệ thống tự
động nhận dạng phương tiện và các hành vi vi phạm Luật giao thông đường bộ theo
thời gian thực là cấp bách và cần thiết phù hợp với xu hướng công nghệ mới, tiên tiến
hơn, tốt hơn,….
3.2. Những kết quả nghiên cứu đã áp dụng vào thực tế
Việc ứng dụng của công nghệ phân loại hiện nay đang phát triển rất mạnh ở rất
nhiều lĩnh vực (học thuật, kinh doanh, bảo mật, y tế...) và các đối tượng (nhà nghiên
27
cứu xã hội, chính phủ và các tổ chức phi lợi nhuận khác). Vì các tổ chức này sở hữu
một lượng lớn dữ liệu không có cấu trúc và việc xử lý dữ liệu sẽ trở nên dễ dàng hơn
rất nhiều nếu như các dữ liệu này được chuẩn hóa bởi các chủ đề/nhãn. Nền tảng công
nghệ để thực hiện bài toán phân loại văn bản chính là trí tuệ nhân tạo (Artificial
Intelligence – AI) áp dụng giải thuật học sâu (Deep Learning) với mô hình mạng nơ-
ron được áp dụng như:
- Nghiên cứu của ông Andrews Sobral: Ông Andrews Sobral và cộng sự đã
nghiên cứu nhận diện phương tiện qua phương pháp Haar Cascades using OpenCV.
Nghiên cứu sử dụng thư viện thị giác máy tính mã nguồn mở JavaScript và OpenCV
để nhận diện hình ảnh được truy cập vào webcam.
- Nghiên cứu nhận diện và theo dõi xe sử dụng OpenCV và Kalman Filter: Ông
Ronit Sinha và cộng sự sử dụng OpenCV và Kalman Filter để nhận diện và theo dõi xe
từ luồng trực tuyến của Camera giao thông. Bộ lọc OpenCV và Kalman sẽ phát hiện
và theo dõi xe ô tô từ video được phát trực tiếp từ camera.
- Nghiên cứu về nhận diện vật thể bằng thuật toán YOLO: Yolo được Redmon
và Farhadi phát triển vào năm 2015, trong thời gian học tiến sĩ. YOLO (‘You only
look once”) là một thuật toán nhận diện phổ biến nhờ độ chính xác cao trong thời gian
thực, đạt đến 45 khung hình trên giây.
- Nghiên cứu nhận diện phương tiện và hướng đi (Vehicle Detection for
Autonomous Driving): Ông Junsheng Fu và cộng sự đã sử dụng các công cụ, bao gồm
OpenCV3, Python3.5, tensorflow, CUDA8 OS: Ubuntu 16.04. Có 2 hướng đi: SVM
tuyến tính và mạng nơ-ron.
Ở Việt Nam, cộng đồng nghiên cứu trí tuệ nhân tạo xử lý ngôn ngữ tự nhiên để
áp dụng vào bài toán xử lý tiếng Việt đang rất phát triển. Do đặc thù của tiếng Việt và
sự khác biệt về bộ ngôn ngữ trong các thư viện, công cụ hỗ trợ, nên cộng đồng các nhà
nghiên cứu trí tuệ nhân tạo (AI) của Việt Nam đã xây dựng và phát triển một số các
thuật toán, thư viện và công cụ dành riêng cho tiếng Việt. Một số doanh nghiệp và
trường đại học hoạt động trong lĩnh vực công nghệ thông tin đã và đang nghiên cứu
đưa bài toán phân loại văn bản vào ứng dụng thực tế như: Framgia, Đại học Lê Quý
Đôn, FPT, Đại học Khoa học Công nghệ thuộc Đại học Quốc gia Việt Nam,…. Còn
trong lĩnh vực quân sự, do là là môi trường đặc thù, vì vậy, việc thu thập thông tin trên
các trang báo điện tử, diễn đàn, mạng xã hội,… để theo dõi tình hình, nắm bắt thông
28
tin là một trong những nhiệm vụ mới, quan trọng trên không gian mạng. Do lượng
thông tin thu thập được qua mạng Internet là rất lớn, nên đã đặt ra yêu cầu phân tích và
xử lý lượng dữ liệu khổng lồ trên một cách tự động và nhanh chóng.
3.3. Những phương pháp nghiên cứu đã được áp dụng trên thế giới và Việt
Nam
Một là, thực trạng nghiên cứu áp dụng đối với một số nước trong khu vực và
thế giới:
Đến nay, mô hình này đã được áp dụng thành công tại nhiều thành phố lớn trên
thế giới như Mỹ và các nước Châu Âu đi đầu trong nghiên cứu triển khai và áp dụng
thành công cho nhiều lĩnh vực trong đời sống, xã hội.
Tại các nước châu Á, Hàn Quốc chính là quốc gia đi tiên phong trong việc ứng
dụng công nghệ nhằm phát triển Hệ thống giao thông thông minh. Seoul (Hàn Quốc)
được nhận định là thành phố có hệ thống giao thông thông minh tốt nhất thế giới.
Hoặc như Singapore với chiến lược “Quốc gia thông minh” được khởi động từ
tháng 11 năm 2014, đề án Quốc gia thông minh của Singapore được xây dựng trên nền
tảng đặt người dân làm trung tâm, sử dụng công nghệ để giải quyết các vấn đề và
thách thức của đô thị. Sáng kiến này nêu rõ: “Singapore nỗ lực để trở thành một quốc
gia thông minh nhằm hỗ trợ người dân sống tốt hơn, cộng đồng mạnh mẽ hơn và tạo
nhiều cơ hội hơn cho tất cả mọi người”. Thông qua đề án này, Singapore đã và đang
hình thành một nền văn hóa quốc gia xung quanh việc khuyến khích thực nghiệm, nuôi
dưỡng tinh thần sáng tạo và triển khai những ý tưởng mới. ICT là cốt lõi để thực hiện
mục tiêu Quốc gia thông minh, trong đó tập trung vào 3 ưu tiên: công nghệ hỗ trợ xã
hội; di động và giao thông thông minh; môi trường dữ liệu an toàn. Chính phủ
cũng cam kết hằng năm đầu tư khoảng 1% GDP cho nghiên cứu và phát triển.
Trải qua hơn 2 năm vận hành, đến nay, Singapore đã triển khai được các giải
pháp thông minh trong lĩnh vực nhà ở, điều khiển giao thông, xe tự lái, quan trắc môi
trường, thanh toán không dùng tiền mặt, các công nghệ hỗ trợ tự hành/người máy, y tế
từ xa, công cụ tiếp nhận ý kiến người dân, và hệ thống cơ sở dữ liệu mở. Song song
đó, Singapore tiếp tục duy trì và mở rộng hoạt động hỗ trợ khởi nghiệp nhằm có thể
đảm bảo nguồn cung cho các ứng dụng thông minh trong tương lai.
Tại Trung Quốc áp dụng mô hình mạng nơ-ron tích chập theo phương pháp
nhìn một lần (Convolutional Neural Network for You Only Look Once - CNNs for
29
YOLO Object Detection) xây dựng hệ thống theo dõi người dân của Trung Quốc, từ
đó có thể giúp chính quyền xác định được tội phạm lẫn trốn ở đó hay không, hoặc hệ
thống xe tự lái, cũng phải xác định được người đi đường ở đâu từ đó đưa ra quyết định
di chuyển tiếp theo.
Hai là, thực trạng nghiên cứu áp dụng hiện nay tại Việt Nam:
- Việc triển khai nghiên cứu áp dụng trí tuệ nhân tạo (AI) trong việc xây dựng
thành phố thông minh đã và đang áp dụng nghiên cứu công nghệ và triển khai cho một
số địa phương như: thành phố Hà Nội, thành phố Hồ Chí Minh, thành phố Đà Nẵng,
Bình Dương, Đồng Nai, Kiên Giang, Quảng Nam, Thừa Thiên Huế, Quảng Ninh,
…tập trung chủ yếu vào các vấn đề chính cụ thể như: xây dựng hạ tầng mạng kết nối
trên toàn thành phố để phục vụ nhu cầu kết nối, chia sẻ thông tin của chính quyền,
doanh nghiệp, người dân, du khách và truyền dẫn cho các ứng dụng thành phố thông
minh hơn; Hệ thống giao thông thông minh: ứng dụng CNTT-TT vào công tác quản lý
giao thông đô thị của thành phố một cách chủ động và hiệu quả hơn; Hệ thống cấp
nước thông minh: ứng dụng CNTT-TT để nâng cao chất lượng xử lý và phân phối
nước sạch cho người dân. Riêng tỉnh Bà Rịa – Vũng Tàu ngày 13/12/2019 Hội đồng
nhân dân tỉnh đã thông qua Nghị quyết số 112/NQ-HĐND về Đề án phát triển đô thị
thông minh tỉnh Bà Rịa – Vũng Tàu giai đoạn 2020-2022, định hướng đến 2025, tầm
nhìn đến 2030 với mục tiêu phát triển thí điểm đô thị thông minh bền vững tỉnh Bà Rịa
– Vũng tàu giai đoạn đến 2030 hướng tới tăng trưởng xanh, phát triển bền vững; ứng
dụng thành tựu khoa học công nghệ hiện đại, tối ưu hóa cơ sở dữ liệu hạ tầng kỹ thuật
và hạ tầng ICT phát triển đô thị thông minh nhằm phát huy tiềm năng lợi thế, khai thác
hiệu quả tài nguyên, con người, nâng cao chất lượng cuộc sống nhân dân, đồng thời
tạo điều kiện để các tổ chức, cá nhân tham gia đầu tư xây dựng cơ sở vật chất kỹ thuật
phát triển đô thị thông minh; hạn chế các rủi ro và nguy cô tiềm năng; nâng cao hiệu
quả quản lý nhà nước và các dịch vụ đô thị; nâng cao sức cạnh tranh của nền kinh tế và
hội nhập, góp phần thắng lợi các mục tiêu kinh tế - xã hội, an ninh quốc phòng tại địa
phương.
- Nghiên cứu phát hiện làn đường, ôtô và người đi bộ bằng công nghệ ảnh hỗ
trợ cho ôtô tự hành của hai tác giả Trương Quốc Bảo, Trương Quốc Định - Trường
Đại học Cần Thơ.
30
- Các nhà khoa học thuộc Khoa Điện - Điện tử, Trường Đại học Giao thông
Vận tải đã nghiên cứu thiết kế và chế tạo thành công hệ thống giám sát giao thông ứng
dụng công nghệ xử lý ảnh. Hệ thống bao gồm camera giám sát, camera chụp hình,
mạng truyền thông, video server, phần mềm xử lý ảnh và cơ sở dữ liệu có thể tự động
phát hiện và ghi nhận các tình huống vi phạm Luật Giao thông nhằm tăng cường giám
sát, phát hiện và xử lý kịp thời các vi phạm, hạn chế tai nạn và nâng cao ý thức chấp
hành của người tham gia giao thông[8-11].
3.4. Một số vấn đề còn hạn chế của những nghiên cứu trước và những vấn
đề cần được tiếp tục nghiên cứu hoàn thiện
3.4.1. Một số vấn đề còn hạn chế của những nghiên cứu trước
Đầu vào mô hình là một bức ảnh, đối với bài toán nhận dạng, chúng ta không
chỉ phải phân loại được đối tượng (object) trên bức ảnh mà còn phải định vị được vị trí
của đối tượng đó và mỗi lần thực hiện tốn rất nhiều thời gian. Do đó:
- Tốn rất nhiều tài nguyên để tính toán cho mọi vùng trên một bức ảnh và do đó
không thể thực hiện theo thời gian thực (realtime) trên các thiết bị yếu.
- Ảnh phương tiện lưu thông vào ban đêm hay trong bóng tối nếu thiết bị ghi
hình không có đèn flash thì khả năng nhận dạng thấp do thiếu sáng.
- Không thể nhìn thấy các đối tượng nhỏ, các đối tượng quá gần sát nhau;
không thể khái quát các đối tượng nếu hình ảnh có kích thước khác so với hình ảnh
đào tạo, huấn luyện.
- Tỷ lệ nhận dạng còn phụ thuộc nhiều vào điều kiện ánh sáng, phản chiếu, độ
che bóng và điều kiện môi trường.
- Với những biển số trên phương tiện giao thông có đường viền phức tạp thì
mức độ nhận dạng không cao. Chỉ giới hạn ảnh chụp trong góc 40 độ để nhận dạng
được tốt, nếu góc lớn hơn thì khả năng nhận dạng sẽ giảm.
- Đặc biệt, đối với Việt Nam rất đa dạng các loại phương tiện giao thông (ô tô,
xe máy, xe lam, xe ba bánh, xe đạp, người đi bộ,…), các vật thể (mũ bảo hiểm, ô dù,
điện thoại, đèn tín hiệu), các hành vi và tình trạng giao thông (tai nạn giao thông, tắc
đường, đua xe, lạng lách,…).
3.4.2. Những vấn đề cần được tiếp tục nghiên cứu hoàn thiện
- Chuẩn hóa hàng loạt ở các lớp tích chập, làm giảm sự thay đổi giá trị trong
các lớp ẩn, cải thiện tính ổn định của mạng lưới.
31
- Việc tăng kích thước đầu vào của hình ảnh đã cải thiện (độ chính xác trung
bình) tăng lên.
- Thực hiện phân loại và dự đoán trong một khung duy nhất. Các khung tâm và
khung ranh giới; khung tâm chịu trách nhiệm dự đoán khung ranh giới và các khung
tâm được thiết kế cho một tập dữ liệu nhất định bằng cách sử dụng thuật toán phân
cụm (k-means clustering).
- Đối với việc phát hiện các vật nhỏ trên hình ảnh khắc phục bẳng cách chia
hình ảnh thành các ô lưới nhỏ hơn so với nghiên cứu trước đó. Điều này cho phép các
nghiên cứu sau cần phải xác định các đối tượng nhỏ hơn trong hình ảnh và cũng hiệu
quả với các đối tượng lớn hơn.
- Trong các nghiên cứu trước có một điểm yếu phát hiện các đối tượng với các
kích cỡ đầu vào khác nhau, việc đào tạo với các hình ảnh nhỏ của một đối tượng cụ thể
thì nó có vấn đề phát hiện cùng một đối tượng trên hình ảnh có kích thước lớn hơn.
Điều này tiếp tục nghiên cứu để xử lý việc được đào tạo, huấn luyện với các hình ảnh
ngẫu nhiên với các kích thước khác nhau trong khoảng ảnh nhằm cho phép mạng tìm
hiểu và dự đoán các đối tượng từ các kích thước đầu vào khác nhau với độ chính xác
cao.
- Nghiên cứu theo hướng ứng dụng trong việc sử dụng kiến trúc mạng Darknet
19 với 19 lớp chập và 5 lớp max-pooling và một lớp softmax cho việc phân loại đối
tượng.
- Nâng cao hiệu quả chương trình, tách ly các kí tự trong biển số trong các
trường hợp biển số bị nhiều nhiễu, mất mát thông tin do nhiễu từ điều kiện môi trường,
tìm vùng biển số trong ảnh có độ tương phản giữa biển số và nền thấp. Đặc biệt là biển
xe có nền màu đỏ chữ trắng hoặc nền màu vàng chữ trắng.
- Phát triển chương trình thành module phần cứng. Có khả năng tương thích với
các thiết bị quan sát như camera. Kết hợp quản lý và in ấn bằng chứng hình ảnh vi
phạm chạy trên nền tảng website.
- Cần trang bị hệ thống camera có độ phân giải cao cho hình ảnh biển số xe rõ
nét trong điều kiện ánh sáng ban ngày, ban đêm hay với thời tiết mưa, bão; Có cấu
hình phù hợp cho việc chụp ảnh khi xe di chuyển với tốc độ cao kết hợp công nghệ
nhận dạng một cách chính xác.
4. CẤU TRÚC LUẬN VĂN
32
Luận văn thạc sỹ cá nhân biên soạn bao gồm 6 mục và 4 chương với nội dung
tóm tắt như sau:
1. GIỚI THIỆU
2. MỤC TIÊU, ĐỐI TƯỢNG, PHẠM VI, NỘI DUNG VÀ HƯỚNG
NGHIÊN CỨU
3. TỔNG QUAN VỀ LĨNH VỰC NGHIÊN CỨU
4. CẤU TRÚC LUẬN VĂN
5. NGHIÊN CỨU TỔNG QUAN VÀ PHÂN TÍCH BÀI TOÁN
- Chương 1. Các khái niệm, tổng quan về trí tuệ nhân tạo, học máy, các giải
thuật về kỹ thuật học máy và kỹ thuật áp dụng cho phát hiện, nhận dạng đối tượng.
- Chương 2. Tổng quan về giao thông.
- Chương 3. Áp dụng YOLOv3 cho bài toán phát hiện, nhận dạng đối tượng
tham gia giao thông vi phạm Luật giao thông đường bộ.
- Chương 4. Xây dựng chương trình thực nghiệm và đánh giá kết quả.
6. KẾT LUẬN VÀ KIẾN NGHỊ
33
5. NGHIÊN CỨU TỔNG QUAN VÀ PHÂN TÍCH BÀI TOÁN
Chương 1. Các khái niệm, tổng quan về trí tuệ nhân tạo, học máy, các giải thuật
về học máy và kỹ thuật áp dụng cho phát hiện, nhận dạng đối tượng
1. Khái niệm chung [6-9, 16, 17, 31]
1.1. Xử lý ảnh
Xử lý ảnh là phương pháp chuyển đổi hình ảnh sang dạng số và thực hiện một
số hoạt động trên đó để nâng cao chất lượng hình ảnh hoặc để trích xuất một số thông
tin hữu ích từ hình ảnh đó.
1.2. Trí tuệ nhận tạo (AI-Artificial Intelligence)
Có thể được định nghĩa như một ngành của khoa học máy tính liên quan đến
việc tự động hóa các hành vi thông minh [12].
1.3. Học máy (Machine Learning)
Học máy là một ứng dụng trí tuệ nhân tạo cung cấp cho hệ thống khả năng tự
động học hỏi và cải thiện hiệu suất, độ chính xác dựa trên những kinh nghiệm từ dữ
liệu đầu vào. Máy học là tập trung vào việc phát triển các phần mềm, chương trình
máy tính có thể truy cập vào dữ liệu và tận dụng nguồn dữ liệu đó để tự học.
1.4. Học sâu (Deep Learning)
Học sâu là một chức năng của trí tuệ nhân tạo (AI), bắt chước hoạt động của bộ
não con người trong việc xử lí dữ liệu và tạo ra các mẫu để sử dụng cho việc ra quyết
định. Học sâu là tập con của học máy trong trí tuệ nhân tạo, có các mạng lưới có khả
năng "học" mà không bị giám sát từ dữ liệu không có cấu trúc hoặc không được gắn
nhãn [17].
1.5. Mạng nơ-ron nhân tạo (Artificial Neural Network)
Là một chuỗi các thuật toán được đưa ra để nỗ lực tìm kiếm các mối quan hệ cơ
bản trong một tập hợp dữ liệu, thông qua quá trình bắt chước cách thức hoạt động của
bộ não con người.
2. Tổng quan về trí tuệ nhân tạo [6-9, 21]
2.1. Trí tuệ nhân tạo
- Hiện nay cả thế giới đang đứng trên cuộc cách mạng công nghiệp 4.0 và trí
tuệ nhân tạo biết đến như chiếc chìa khóa để biến những ý nghĩ của con người thành
34
hiện thực. Trí tuệ nhân tạo hay trí thông minh nhân tạo (Artificial intelligence -AI) là
một ngành thuộc lĩnh vực khoa học máy tính (Computer science). Là trí tuệ do con
người lập trình tạo nên với mục tiêu giúp máy tính có thể tự động hóa các hành vi
thông minh như con người. Trí tuệ nhân tạo khác với việc lập trình logic trong
các ngôn ngữ lập trình là ở việc ứng dụng các hệ thống học máy (machine learning) để
mô phỏng trí tuệ của con người trong các xử lý mà con người làm tốt hơn máy tính. Cụ
thể, trí tuệ nhân tạo giúp máy tính có được những trí tuệ của con người như: biết suy
nghĩ và lập luận để giải quyết vấn đề, biết giao tiếp do hiểu ngôn ngữ, tiếng nói, biết
học và tự thích nghi,…Tuy rằng trí thông minh nhân tạo có nghĩa rộng như là trí thông
minh trong các tác phẩm khoa học viễn tưởng, nó là một trong những ngành trọng yếu
của tin học. Trí thông minh nhân tạo liên quan đến cách cư xử, sự học hỏi và khả năng
thích ứng thông minh của máy móc.
- Thành phần công nghệ trí tuệ nhân tạo được chia làm 4 nhóm chính cụ thể
sau:
(1) Nhóm 1: Công nghệ trí tuệ nhân tạo phản ứng có khả năng phân tích những
động thái khả thi nhất của chính mình và của đối thủ, từ đó, đưa ra được giải pháp tối
ưu nhất.
Ví dụ: Điển hình của công nghệ trí tuệ nhân tạo phản ứng là Deep Blue. Đây là
một chương trình chơi cờ vua tự động, được tạo ra bởi IBM, với khả năng xác định các
nước cờ đồng thời dự đoán những bước đi tiếp theo của đối thủ. Thông qua đó, Deep
Blue đưa ra những nước đi thích hợp nhất.
(2) Nhóm 2: Công nghệ trí tuệ nhân tạo với bộ nhớ hạn chế là khả năng sử dụng
những kinh nghiệm trong quá khứ để đưa ra những quyết định trong tương lai. Công
nghệ AI này thường kết hợp với cảm biến môi trường xung quanh nhằm mục đích dự
đoán những trường hợp có thể xảy ra và đưa ra quyết định tốt nhất cho thiết bị.
Ví dụ: Đối với xe không người lái, nhiều cảm biến được trang bị xung quanh xe
và ở đầu xe để tính toán khoảng cách với các xe phía trước, công nghệ AI sẽ dự đoán
khả năng xảy ra va chạm, từ đó điều chỉnh tốc độ xe phù hợp để giữ an toàn cho xe.
35
Hình 4: Ứng dụng công nghệ trí tuệ nhân tạo với bộ nhớ hạn chế
(3) Nhóm 3: Lý thuyết trí tuệ nhân tạo này có thể học hỏi cũng như tự suy nghĩ,
sau đó áp dụng những gì học được để thực hiện một việc cụ thể. Hiện nay, công nghệ
AI này vẫn chưa trở thành một phương án khả thi.
(4) Nhóm 4: Công nghệ trí tuệ nhân tạo tự nhận thức này có khả năng tự nhận
thức về bản thân, có ý thức và hành xử như con người. Thậm chí, chúng còn có thể
bộc lộ cảm xúc cũng như hiểu được những cảm xúc của con người. Đây được xem là
bước phát triển cao nhất của công nghệ AI và đến thời điểm hiện tại, công nghệ này
vẫn chưa khả thi.
Hình 5: Ứng dụng công nghệ trí tuệ nhân tạo tự nhận thức
2.2. Ứng dụng trí tuệ nhân tạo trong hiện tại và tương lai
- Việc ứng dụng của công nghệ phân loại hiện nay đang phát triển rất mạnh ở
rất nhiều lĩnh vực (học thuật, kinh doanh, bảo mật, y tế, ...) và các đối tượng (nhà
nghiên cứu xã hội, chính phủ và các tổ chức phi lợi nhuận khác). Vì các tổ chức này sở
hữu một lượng lớn dữ liệu không có cấu trúc và việc xử lý dữ liệu sẽ trở nên dễ dàng
hơn rất nhiều nếu như các dữ liệu này được chuẩn hóa bởi các chủ đề/nhãn. Nền tảng
công nghệ để thực hiện bài toán phân loại văn bản chính là trí tuệ nhân tạo áp dụng
giải thuật học sâu với mô hình mạng nơ-ron điển hình như:
(1) Xử lý ngôn ngữ tự nhiên (Natural Language Processing): xử lý văn bản,
giao tiếp người - máy.
36
(2) Nhận dạng (Patten recognition): nhận dạng tiếng nói, chữ viết tay, vân tay,
thị giác máy, thiên văn học.
(3) Máy tìm kiếm như Google, Yahoo, You tube: các hệ thống này sử dụng các
công cụ của học máy để phát triển hệ thống.
(4) Chẩn đoán trong y tế: trợ giúp phân tích ảnh X-quang, các hệ chuyên gia
chẩn đoán tự động.
(5) Tin sinh học: phân loại và dự đoán chuỗi gene, dự đoán tính chất của thuốc
mới.
(6) Phát hiện gian lận tài chính, gian lận thẻ tín dụng, phát hiện dị thường.
(7) Phân tích thị trường chứng khoán.
(8) Trò chơi: máy tính chơi cờ Deep blue của IBM chế tạo năm 1998.
(9) Người máy: là tổng hợp của rất nhiều ngành khoa học, trong đó học máy
tạo nên hệ thần kinh và bộ não của người máy.
- Ví dụ như:
(1) Trong ngành vận tải: Trí tuệ nhân tạo được ứng dụng trên những phương
tiện vận tải tự lái, điển hình là ô tô. Sự ứng dụng này góp phần mang lại lợi ích kinh tế
cao hơn nhờ khả năng cắt giảm chi phí cũng như hạn chế những tai nạn nguy hiểm đến
tính mạng. Vào năm 2016, Otto, hãng phát triển xe tự lái thuộc Uber đã vận chuyển
thành công 50.000 lon bia Budweisers bằng xe tự lái trên quãng đường dài 193 km.
Theo dự đoán của công ty tư vấn công nghệ thông tin Gartner, trong tương lai, những
chiếc xe có thể kết nối với nhau thông qua Wifi để đưa ra những lộ trình vận tải tốt
nhất.
Hình 6: Ứng dụng công nghệ trí tuệ nhân tạo xe tự lái
37
(2) Trong sản xuất: Trí tuệ nhân tạo được ứng dụng để xây dựng những quy
trình sản xuất tối ưu hơn. Công nghệ AI có khả năng phân tích cao, làm cơ sở định
hướng cho việc ra quyết định trong sản xuất.
(3) Trong y tế: Ứng dụng tiêu biểu của trí tuệ nhân tạo trong lĩnh vực y tế là
máy bay thiết bị bay không người lái được sử dụng trong những trường hợp cứu hộ
khẩn cấp. Thiết bị bay không người lái có tốc độ nhanh hơn xe chuyên dụng đến 40%
và vô cùng thích hợp để sử dụng ở những nơi có địa hình hiểm trở.
Hình 7: Ứng dụng công nghệ trí tuệ nhân tạo cho thiết bị bay không người lái
(4) Trong giáo dục: Sự ra đời của trí tuệ nhân tạo giúp tạo ra những thay đổi
lớn trong lĩnh vực giáo dục. Các hoạt động giáo dục như chấm điểm hay dạy kèm học
sinh có thể được tự động hóa nhờ công nghệ AI. Nhiều trò chơi, phần mềm giáo dục ra
đời đáp ứng nhu cầu cụ thể của từng học sinh, giúp học sinh cải thiện tình hình học tập
theo tốc độ riêng của mình. Trí tuệ nhân tạo còn có thể chỉ ra những vấn đề mà các
khóa học cần phải cải thiện. Chẳng hạn như khi nhiều học sinh được phát hiện là gửi
đáp án sai cho bài tập, hệ thống sẽ thông báo cho giáo viên đồng thời gửi thông điệp
đến học sinh để chỉnh sửa đáp án phù hợp. Công nghệ AI còn có khả năng theo dõi sự
tiến bộ của học sinh và thông báo đến giáo viên khi phát hiện ra vấn đề đối với kết quả
học tập của học sinh.
Hình 8: Ứng dụng công nghệ trí tuệ nhân tạo ROBOT trong day học
38
Hơn nữa, sinh viên còn có thể học hỏi từ bất cứ nơi nào trên thế giới thông qua
việc sử dụng những phần mềm có hỗ trợ AI. Công nghệ AI cũng cung cấp dữ liệu
nhằm giúp sinh viên lựa chọn được những khóa học tốt nhất cho mình.
(5) Trong truyền thông: Đối với lĩnh vực truyền thông, sự phát triển của trí tuệ
nhân tạo góp phần làm thay đổi cách thức tiếp cận đối với khách hàng mục tiêu. Nhờ
những ưu điểm của công nghệ AI, các công ty có thể cung cấp quảng cáo vào đúng
thời điểm, đúng khách hàng tiềm năng, dựa trên việc phân tích các đặc điểm về nhân
khẩu học, thói quen hoạt động trực tuyến và những nội dung mà khách hàng thường
xem trên quảng cáo.
(6) Trong ngành dịch vụ: Công nghệ AI giúp ngành dịch vụ hoạt động tối ưu
hơn và góp phần mang đến những trải nghiệm mới mẻ hơn và tốt hơn cho khách
hàng. Thông qua việc thu thập và phân tích dữ liệu, công nghệ AI có thể nắm bắt
thông tin về hành vi sử dụng dịch vụ của khách hàng, từ đó mang lại những giải pháp
phù hợp với nhu cầu của từng khách hàng [2,7,9].
3. Tổng quan về học máy [6-9, 16-17, 21-23]
3.1. Học máy (Machine Learning)
Là một bộ phận của của trí tuệ nhân tạo (AI), các hệ thống mà sau khi được
cung cấp một lượng dữ liệu và thực hiện một hoặc một số thao tác dựa trên những dữ
liệu đã được cung cấp để máy có thể học. Machine Learning thường được dùng trong
việc xử lý các tác vụ tương tự con người mà khó có thể mô phỏng thành công thức cụ
thể, ví dụ như nhận diện, đánh giá lựa chọn, ...
3.2. Ứng dụng học máy
Học máy thường được áp dùng trong việc xử lý các tác vụ tương tự con người
mà khó có thể mô phỏng thành công thức cụ thể, ví dụ như nhận diện, đánh giá lựa
chọn,...
3.3. Các phương thức về máy học
- Học có giám sát (dạy học): Học có giám sát là một hướng tiếp cận của máy
học để làm cho máy tính có khả năng "học". Trong hướng tiếp cận này, người ta "huấn
luyện" máy tính dựa trên những quan sát có dán nhãn. Ta có thể hình dung những quan
sát này như là những câu hỏi, và nhãn của chúng là những câu trả lời. Ý tưởng của học
có giám sát là: bằng việc ghi nhớ và tổng quát hóa một số quy tắc từ một tập câu hỏi
39
có đáp án trước, máy tính sẽ có thể trả lời được những câu hỏi dù chưa từng gặp phải,
nhưng có mối liên quan.
Ví dụ ta dạy máy tính "1 + 1 = 2" và hy vọng nó sẽ học được phép tính cộng
x + 1 và trả lời được là "2 + 1 = 3". Học có giám sát mô phỏng việc con người học
bằng cách đưa ra dự đoán của mình cho một câu hỏi, sau đó đối chiếu với đáp án. Sau
đó con người rút ra phương pháp để trả lời đúng không chỉ câu hỏi đó, mà cho những
câu hỏi có dạng tương tự. Trong học có giám sát, các quan sát bắt buộc phải được dán
nhãn trước. Đây chính là một trong những nhược điểm của phương pháp này, bởi vì
không phải lúc nào việc dán nhãn chính xác cho quan sát cũng dễ dàng. Ví dụ như
trong dịch thuật, từ một câu của ngôn ngữ gốc có thể dịch thành rất nhiều phiên bản
khác nhau trong ngôn ngữ cần dịch sang. Tuy nhiên, việc quan sát được dán nhãn cũng
lại chính là ưu điểm của học có giám sát bởi vì một khi đã thu thập được một bộ dữ
liệu lớn được dán nhãn chuẩn xác, thì việc huấn luyện trở nên dễ dàng hơn rất nhiều so
với khi dữ liệu không được dán nhãn.
Hình 9: Phương thức học có giám sát
Ví dụ: Trong nhận dạng chữ viết tay, ta có ảnh của hàng nghìn ví dụ của mỗi
chữ số được viết bởi nhiều người khác nhau. Chúng ta đưa các bức ảnh này vào trong
một thuật toán và chỉ cho nó biết mỗi bức ảnh tương ứng với chữ số nào. Sau khi thuật
toán tạo ra một mô hình, tức một hàm số mà đầu vào là một bức ảnh và đầu ra là một
chữ số, khi nhận được một bức ảnh mới mà mô hình chưa nhìn thấy bao giờ, nó sẽ dự
đoán bức ảnh đó chứa chữ số nào.
40
Hình 10: Hình mô tả chữ viết tay
Ví dụ này khá giống với cách học của con người khi còn nhỏ. Ta đưa bảng chữ
cái cho một đứa trẻ và chỉ cho chúng đây là chữ A, đây là chữ B. Sau một vài lần được
dạy thì trẻ có thể nhận biết được đâu là chữ A, đâu là chữ B trong một cuốn sách mà
chúng chưa nhìn thấy bao giờ
- Học không giám sát (tự học): Trong thuật toán này, chúng ta không biết
được dữ liệu đầu ra hay nhãn mà chỉ có dữ liệu đầu vào. Thuật toán Học không giám
sát dựa vào cấu trúc của dữ liệu để thực hiện một công việc nào đó, ví dụ như phân
nhóm hoặc giảm số chiều của dữ liệu để thuận tiện trong việc lưu trữ và tính toán.
Một cách toán học, Học không giám sát là khi chúng ta chỉ có dữ liệu vào X mà không
biết nhãn Y tương ứng. Những thuật toán loại này được gọi là Học không giám sát vì
không giống như Học có giám sát, chúng ta không biết câu trả lời chính xác cho mỗi
dữ liệu đầu vào. Giống như khi ta học, không có thầy cô giáo nào chỉ cho ta biết đó là
chữ A hay chữ B. Cụm không giám sát được đặt tên theo nghĩa này.
Hình 11: Phương thức học không giám sát về bài toán phân cụm
- Học bán giám sát (vừa học vừa tự học): Nằm ở đâu đó giữa học tập được giám
sát và không giám sát, vì chúng sử dụng cả dữ liệu được gắn nhãn và không dán nhãn
để đào tạo - thường là một lượng nhỏ dữ liệu có nhãn và một lượng lớn dữ liệu không
được dán nhãn. Các hệ thống sử dụng phương pháp này có thể cải thiện đáng kể độ
41
chính xác của việc học. Thông thường, việc học bán giám sát được chọn khi dữ liệu
được dán nhãn được yêu cầu đòi hỏi tài nguyên có kỹ năng và có liên quan để đào
tạo/học hỏi từ nó. Nếu không, dữ liệu được gắn nhãn thường không yêu cầu tài nguyên
bổ sung.
Hình 12: Phương thức học bán giám sát
4. Các giải thuật về máy học [16-17, 21-23]
4.1. Giải thuật Mạng nơ-ron nhân tạo (Artificial Neural Network - ANN)
- Mạng nơ-ron nhân tạo là sự mô phỏng chức năng của hệ thần kinh con người
với vô số các nơ-ron được liên kết và truyền thông với nhau. Giống như mạng nơ-ron
của não người, ANN học và lưu những kinh nghiệm và sử dụng trong những tình
huống phù hợp. Mạng nơ-ron đã áp dụng thành công trong nhiều vấn đề liên quan đến
dự báo, phân loại và điều khiển thuộc nhiều lĩnh vực khác nhau, như tài chính, y tế, địa
chất và vật lý. Ví dụ như khả năng nhận dạng mặt người, dự báo thời tiết và thiên tai,
tự động điều khiển hệ thống lái tàu, hệ thống dự báo sự cố, v.v.
- Kiến trúc chung của một mạng nơ-ron nhân tạo gồm 3 thành phần đó là: input
layer, hidden layer và output layer. Trong đó, hidden layer gồm các thần kinh nhận dữ
liệu input từ các neural ở lớp trước đó và chuyển đổi các input này cho các lớp xử lý
tiếp theo. Trong một ANN có thể có nhiều lớp ẩn.
Hình 13: Minh họa mạng nơ-ron nhân tạo 3 lớp
42
- Quá trình xử lý thông tin của một mạng nơ-ron nhân tạo liên quan đến:
(1) Lớp Inputs: Dữ liệu nhập tương ứng các thuộc tính của dữ liệu.
(2) Lớp Outputs: Kết quả là một giải pháp cho một vấn đề.
(3) Lớp Weights: Trọng số liên kết là thành phần quan trọng thể hiện
mức độ quan trọng (độ mạnh) của dữ liệu nhập đối với quá trình xử lý thông tin (quá
trình chuyển đổi dữ liệu từ lớp này sang lớp khác). Quá trình học của ANN thực ra là
quá trình điều chỉnh các trọng số của các dữ liệu nhập để có được kết quả mong muốn.
Trong đó:
(1) Summation Function: hàm tổng tính tổng trọng số của tất cả các dữ liệu
nhập đưa vào mỗi neural. Hàm tổng của một nơ-ron đối với n dữ liệu nhập được tính
theo công thức sau:
1
n
i iiY X W
(2) Transfer Function: hàm tổng của một neural cho biết khả năng kích hoạt của
neural đó, còn gọi là kích hoạt bên trong. Các nơ-ron này có thể sinh ra một kết quả
hoặc không (nói cách khác rằng có thể kết quả của 1 neural có thể được chuyển đến
lớp tiếp trong mạng nơ-ron hoặc không). Mối quan hệ giữa kích hoạt bên trong và kết
quả được thể hiện bằng hàm chuyển đổi (Transfer Function). Việc lựa chọn hàm
chuyển đổi có tác động lớn đến kết quả của một mạng nơ-ron nhân tạo. Hàm chuyển
đổi phi tuyến được sử dụng phổ biến là hàm sigmoid Yt = 1/ (1+e-y), trong đó yt là hàm
chuyển đổi và y là hàm tổng.
(3) Kết quả xử lý tại các nơ-ron đôi khi rất lớn, vì vậy hàm chuyển đổi được sử
dụng để xử lý kết quả này trước khi chuyển đến lớp tiếp theo. Đôi khi thay vì sử dụng
hàm chuyển đổi người ta sử dụng giá trị ngưỡng để kiểm soát các kết quả của các
neural tại một lớp nào đó trước khi chuyển các kết quả này đến các lớp tiếp theo. Nếu
kết quả của một nơ-ron nào đó nhỏ hơn giá trị ngưỡng thì nó sẽ không được chuyển
đến lớp tiếp theo. Kiến thức nền tảng này tham khảo từ tài liệu [5].
4.2. Giải thuật dựa vào thể thức (K-nearest neighbors - KNN)
K-nearest neighbor là một trong những thuật toán học có giám sát đơn giản
nhất (mà hiệu quả trong một vài trường hợp) trong các kỹ thuật học máy. Khi huấn
luyện, thuật toán này không học một điều gì từ dữ liệu huấn luyện (đây cũng là lý do
thuật toán này được xếp vào loại lười học), mọi tính toán được thực hiện khi nó cần dự
43
đoán kết quả của dữ liệu mới. KNN có thể áp dụng được vào cả hai loại của bài toán
học có giám sát là phân loại và hồi quy.
Với KNN, trong bài toán phân loại, nhãn của một điểm dữ liệu mới được suy ra
trực tiếp từ K điểm dữ liệu gần nhất trong tập dữ liệu huấn luyện. Nhãn của một dữ
liệu kiểm định có thể được quyết định bằng bầu chọn theo số phiếu giữa các điểm gần
nhất, hoặc nó có thể được suy ra bằng cách đánh trọng số khác nhau cho mỗi điểm gần
nhất đó rồi suy ra nhãn. Trong bài toán hồi quy, kết quả của một điểm dữ liệu sẽ bằng
chính kết quả của điểm dữ liệu đã biết gần nhất (trong trường hợp K=1), hoặc là trung
bình trọng số của kết quả của những điểm gần nhất, hoặc bằng một mối quan hệ dựa
trên khoảng cách tới các điểm gần nhất đó.
Một cách ngắn gọn, KNN là thuật toán đi tìm kết quả của một điểm dữ liệu mới
bằng cách chỉ dựa trên thông tin của K điểm dữ liệu trong tập dữ liệu huấn luyện gần
nó nhất (K-lân cận), không quan tâm đến việc có một vài điểm dữ liệu trong những
điểm gần nhất này là nhiễu.
Ví dụ hình 14 là bài toán phân loại với 3 lớp: Đỏ, Lam, Lục. Mỗi điểm dữ liệu
kiểm chứng sẽ được gán nhãn theo màu của điểm mà nó thuộc về. Trong hình này, có
một vài vùng nhỏ xem lẫn vào các vùng lớn hơn khác màu. Ví dụ có một điểm màu
Lục ở gần góc 11 giờ nằm giữa hai vùng lớn với nhiều dữ liệu màu Đỏ và Lam. Điểm
này rất có thể là nhiễu, dẫn đến nếu dữ liệu kiểm chứng rơi vào vùng này sẽ có nhiều
khả năng cho kết quả không chính xác. Kiến thức nền tảng này tham khảo từ tài liệu.
Hình 14: Bản đồ 1NN
4.3. Giải thuật cây quyết định (Decision tree)
Trong lý thuyết quyết định, một cây quyết định là một đồ thị của các quyết định
và các hậu quả có thể của nó (bao gồm rủi ro và hao phí tài nguyên). Cây quyết định
được sử dụng để xây dựng một kế hoạch nhằm đạt được mục tiêu mong muốn. Các
44
cây quyết định được dùng để hỗ trợ quá trình ra quyết định. Cây quyết định là một
dạng đặc biệt của cấu trúc cây.
Trong lĩnh vực học máy, cây quyết định là một kiểu mô hình dự báo, nghĩa là
một ánh xạ từ các quan sát về một sự vật hoặc hiện tượng tới các kết luận về giá trị
mục tiêu của sự vật hoặc hiện tượng. Mỗi một nút trong tương ứng với một biến;
đường nối giữa nó với nút con của nó thể hiện một giá trị cụ thể cho biến đó. Mỗi nút
lá đại diện cho giá trị dự đoán của biến mục tiêu, cho trước các giá trị của các biến
được biểu diễn bởi đường đi từ nút gốc tới nút lá đó. Kỹ thuật học máy dùng trong cây
quyết định được gọi là học bằng cây quyết định, hay chỉ gọi với cái tên ngắn gọn là
cây quyết định.
Học bằng cây quyết định cũng là một phương pháp thông dụng trong khai phá
dữ liệu. Khi đó, cây quyết định mô tả một cấu trúc cây, trong đó, các lá đại diện cho
các phân loại còn cành đại diện cho các kết hợp của các thuộc tính dẫn tới phân loại
đó. Một cây quyết định có thể được học bằng cách chia tập hợp nguồn thành các tập
con dựa theo một kiểm tra giá trị thuộc tính. Quá trình này được lặp lại một cách đệ
quy cho mỗi tập con dẫn xuất. Quá trình đệ quy hoàn thành khi không thể tiếp tục thực
hiện việc chia tách được nữa, hay khi một phân loại đơn có thể áp dụng cho từng phần
tử của tập con dẫn xuất. Một bộ phân loại rừng ngẫu nhiên sử dụng một số cây quyết
định để có thể cải thiện tỷ lệ phân loại.
Cây quyết định cũng là một phương tiện có tính mô tả dành cho việc tính toán
các xác suất có điều kiện. Cây quyết định có thể được mô tả như là sự kết hợp của các
kỹ thuật toán học và tính toán nhằm hỗ trợ việc mô tả, phân loại và tổng quát hóa một
tập dữ liệu cho trước. Dữ liệu được cho dưới dạng các bản ghi có dạng: (x, y) = (x1, x2,
x3..., xk, y), trong đó, biến phụ thuộc y là biến cần tìm hiểu, phân loại hay tổng quát
hóa và x1, x2, x3... là các biến thực hiện công việc đó. Kiến thức nền tảng này tham
khảo từ tài liệu [7].
4.4. Giải thuật Random forest (RF)
Rừng ngẫu nhiên là một thuật toán học có giám sát sử dụng một tập hợp của
các cây quyết định, trong đó mỗi cây được chọn ngẫu nhiện dựa theo thuật toán. Rừng
ngẫu nhiên hoạt động bằng cách đánh giá nhiều cây quyết định ngẫu nhiên và chọn ra
cây quyết định có kết quả được đánh giá tốt nhất trong số cây quyết định trả về. Điểm
mạnh của rừng ngẫu nhiên là có thể sử dụng cho cả bài toán phân loại và hồi qui, làm
45
việc được với tập dữ liệu không đầy đủ, và có thể tránh được việc huấn luyện quá
mức.
Quá trình phát triển cây quyết định sử dụng các thuộc tính của tập dữ liệu đầu
vào. Giá trị thuộc tính có thể là liệt kê hoặc liên tục. Quá trình này sử dụng các luật
chia entropy để chọn sự phân chia tốt nhất giữa tất cả các khả năng phân chia của mỗi
thuộc tính. Kết quả của sự phân chia này là 2 tập con thuộc tính. Mỗi sự phân chia phụ
thuộc vào giá trị của chỉ 1 thuộc tính. Quá trình này bắt đầu với nút gốc của cây và lặp
theo 3 bước đối với mỗi nút để phát triển cây như hình 15 bên trái.
Hình 15: Quá trình phát triển cây (bên trái) và rừng ngẫu nhiên (bên phải)
Bước đầu tiên là tìm sự phân chia tốt nhất cho mỗi thuộc tính. Do giá trị thuộc
tính có thể được tính toán và sắp xếp để kiểm tra các khả năng phân chia, sự phân chia
tốt nhất cực đại các tiêu chí cho trước. Bước thứ hai là tìm sự phân chia tốt nhất của
nút trong số các khả năng phân chia trong bước thứ nhất. Sự phân chia tốt nhất cũng
cực đại các tiêu chí cho trước. Bước thứ ba phân chia nút sử dụng sự phân chia tốt nhất
tìm thấy trong bước thứ hai. Quá trình này lặp lại cho đến khi các luật ngừng thỏa mãn
và tạo ra 1 cây quyết định.
Quá trình phát triển cây quyết định là một trong các bước quan trọng trong quá
trình phát triển rừng ngẫu nhiên như hình 15 bên phải. Tập dữ liệu đầu vào được chia
ngẫu nhiên thành tập dữ liệu huấn luyện và tập dữ liệu kiểm tra. Tập huấn luyện được
dùng để phát triển thành cây quyết định. Tập kiểm tra được dùng để đánh giá và chọn
lựa cây quyết định nếu có kết quả đạt ngưỡng cho trước. Quá trình này lặp lại cho đến
46
khi lựa chọn được một số cây quyết định đạt yêu cầu. Kiến thức nền tảng này tham
khảo từ tài liệu [8, 9].
4.5. Giải thuật máy hỗ trợ vector (Support vector machine - SVM)
Máy vectơ hỗ trợ là một khái niệm trong thống kê và khoa học máy tính cho
một tập hợp các phương pháp học có giám sát liên quan đến nhau để phân loại và phân
tích hồi quy. SVM dạng chuẩn nhận dữ liệu vào và phân loại chúng vào hai lớp khác
nhau. Do đó SVM là một thuật toán phân loại nhị phân. Với một bộ các ví dụ luyện
tập thuộc hai thể loại cho trước, thuật toán luyện tập SVM xây dựng một mô hình
SVM để phân loại các ví dụ khác vào hai thể loại đó. Một mô hình SVM là một cách
biểu diễn các điểm trong không gian và lựa chọn ranh giới giữa hai thể loại sao cho
khoảng cách từ các ví dụ luyện tập tới ranh giới là xa nhất có thể. Các ví dụ mới cũng
được biểu diễn trong cùng một không gian và được thuật toán dự đoán thuộc một trong
hai thể loại tùy vào ví dụ đó nằm ở phía nào của ranh giới.
Một máy vectơ hỗ trợ xây dựng một siêu phẳng hoặc một tập hợp các siêu
phẳng trong một không gian nhiều chiều hoặc vô hạn chiều, có thể được sử dụng cho
phân loại, hồi quy, hoặc các nhiệm vụ khác. Một cách trực giác, để phân loại tốt nhất
thì các siêu phẳng nằm ở càng xa các điểm dữ liệu của tất cả các lớp (gọi là hàm lề)
càng tốt, vì nói chung lề càng lớn thì sai số tổng quát hóa của thuật toán phân loại càng
bé.
Trong nhiều trường hợp, không thể phân chia các lớp dữ liệu một cách tuyến
tính trong một không gian ban đầu được dùng để mô tả một vấn đề. Vì vậy, nhiều khi
cần phải ánh xạ các điểm dữ liệu trong không gian ban đầu vào một không gian mới
nhiều chiều hơn, để việc phân tích chúng trở nên dễ dàng hơn trong không gian mới.
Để việc tính toán được hiệu quả, ánh xạ sử dụng trong thuật toán SVM chỉ đòi hỏi tích
vô hướng của các vectơ dữ liệu trong không gian mới có thể được tính dễ dàng từ các
tọa độ trong không gian cũ. Tích vô hướng này được xác định bằng một hàm hạt nhân
K(x,y) phù hợp. Một siêu phẳng trong không gian mới được định nghĩa là tập hợp các
điểm có tích vô hướng với một vectơ cố định trong không gian đó là một hằng số.
Vectơ xác định một siêu phẳng sử dụng trong SVM là một tổ hợp tuyến tính của các
vectơ dữ liệu luyện tập trong không gian mới với các hệ số αi. Với siêu phẳng lựa
chọn như trên, các điểm x trong không gian đặc trưng được ánh xạ vào một siêu mặt
phẳng là các điểm thỏa mãn: ( , )i ii
K x x là hằng số. Ghi chú rằng nếu K(x,y) nhận
47
giá trị ngày càng nhỏ khi y xa dần khỏi x thì mỗi số hạng của tổng trên được dùng để
đo độ tương tự giữa x với điểm xitương ứng trong dữ liệu huấn luyện. Như vậy, tác
dụng của tổng trên chính là so sánh khoảng cách giữa điểm cần dự đoán với các điểm
dữ liệu đã biết. Lưu ý là tập hợp các điểm x được ánh xạ vào một siêu phẳng có thể có
độ phức tạp tùy ý trong không gian ban đầu, nên có thể phân tích các tập hợp thậm chí
không lồi trong không gian ban đầu. Kiến thức nền tảng này tham khảo từ tài liệu [10].
4.6. Giải thuật Naive Bayes (NB)
Xét bài toán phân loại với C lớp 1, 2, ..., C. Giả sử có một điểm dữ liệu x Rd.
Tính xác suất để điểm dữ liệu này rơi vào lớp c:
p(y = c|x) hoặc p(c|x) (1).
Tức là tính xác suất để đầu ra là lớp c biết rằng đầu vào là vector x.
Biểu thức này, nếu tính được, giúp xác định được xác suất để điểm dữ liệu rơi
vào mỗi lớp. Từ đó có thể giúp xác định lớp của điểm dữ liệu đó bằng cách chọn ra lớp
có xác suất cao nhất:
c = arg maxc {1,...,C}p(c|x) (2).
Biểu thức (2) thường tính bằng quy tắc Bayes:
c = arg maxcp(c|x) = arg maxcp(x|c)p(c)/p(x) = arg maxcp(x|c)p(c) (3).
do mẫu số p(x) không phụ thuộc vào c. Tiếp tục xét biểu thức (3), p(c) có thể
được hiểu là xác suất để một điểm rơi vào class c. Giá trị này có thể được tính bằng
phương pháp MLE (maximum likelihood estimation), tức tỷ lệ số điểm dữ liệu trong
tập huấn luyện rơi vào lớp này chia cho tổng số lượng dữ liệu trong tập huấn luyện,
hoặc cũng có thể được đánh giá bằng phương pháp MAP (maximum a posteriori).
Thành phần còn lại p(x|c), tức phân phối của các điểm dữ liệu trong lớp c,
thường rất khó tính toán vì x là một biến ngẫu nhiên nhiều chiều, cần rất nhiều dữ liệu
huấn luyện để có thể xây dựng được phân phối đó. Việc tính toán được đơn giản bằng
cách giả sử rằng các thành phầncủa biến ngẫu nhiên x là độc lập với nhau, nếu biết c:
p(x|c) = p(x1,...,xd|c) =)กdi=1 p(xi|c) (4).
Giả thiết các chiều của dữ liệu độc lập với nhau, nếu biết c, là quá chặt và ít khi
tìm được dữ liệu mà các thành phần hoàn toàn độc lập với nhau. Tuy nhiên, giả thiết
này lại mang lại những kết quả tốt bất ngờ với tốc độ huấn luyện và kiểm tra nhanh
phù hợp với bài toán có dữ liệu đầu vào lớn, vì vậy phương pháp xác định lớp của dữ
liệu dựa trên giả thuyết này được gọi là Naive Bayes.
48
Ở bước huấn luyện, các phân phối p(xi|c), i=1,...d sẽ được xác định dựa vào tập
dữ liệu huấn luyện. Việc xác định các giá trị này có thể dựa vào phương pháp MLE
hoặc MAP. Ở bước kiểm tra, lớp của một điểm dữ liệu mới x sẽ được xác định bởi:
c = arg maxc €{1,..,c}p(c)กdi=1 p(xi|c) (5).
Khi áp dụng vào bài toán thực tế với d lớn và các xác suất nhỏ, biểu thức ở vế phải của
(5) sẽ là một số rất nhỏ, khi tính toán có thể gặp sai số. Để giải quyết việc này, biểu
thức (5) thường được viết lại dưới dạng tương đương bằng cách lấy log của vế phải.
Biểu thức p(c), c=1,...,c có thể được xác định như là tần suất xuất hiện của lớp trong
tập dữ liệu huấn luyện. Việc tính toán p(xi|c) phụ thuộc vào loại dữ liệu. Có ba loại
được sử dụng phổ biến là: Gaussian Naive Bayes, Multinomial Naive Bayes, và
Bernoulli Naïve[6].
4.7. Giải thuật phân cụm K-means clustering
Thuật toán K-means clustering (phân cụm K-means) thuộc lớp phương pháp
Học không giám sát (Unsupervised Learning) trong học máy (Machine Learning). Có
rất nhiều định nghĩa khác nhau về kỹ thuật này, nhưng về bản chất ta có thể hiểu phân
cụm là các qui trình tìm cách nhóm các đối tượng đã cho vào các cụm (clusters), sao
cho các đối tượng trong cùng 1 cụm tương tự (similar) nhau và các đối tượng khác
cụm thì không tương tự (Dissimilar) nhau.
Mục đích của phân cụm là tìm ra bản chất bên trong các nhóm của dữ liệu. Các
thuật toán phân cụm (Clustering Algorithms) đều sinh ra các cụm (clusters). Tuy
nhiên, không có tiêu chí nào là được xem là tốt nhất để đánh giá hiệu quả của của phân
tích phân cụm, điều này phụ thuộc vào mục đích của phân cụm như: data reduction,
“natural clusters”, “useful” clusters, outlier detection.
K-Means là thuật toán rất quan trọng và được sử dụng phổ biến trong kỹ thuật
phân cụm. Tư tưởng chính của thuật toán K-Means là tìm cách phân nhóm các đối
tượng (objects) đã cho vào K cụm (K là số các cụm được xác đinh trước, K nguyên
dương) sao cho tổng bình phương khoảng cách giữa các đối tượng đến tâm nhóm
(centroid) là nhỏ nhất.
49
Mô tả thuật toán K-Means được mô tả như sau:
Thuật toán K-Means thực hiện qua các bước chính sau:
(1) Chọn ngẫu nhiên K tâm (centroid) cho K cụm (cluster). Mỗi cụm được đại
diện bằng các tâm của cụm.
(2) Tính khoảng cách giữa các đối tượng (objects) đến K tâm (thường dùng
khoảng cách Euclidean).
(3) Nhóm các đối tượng vào nhóm gần nhất.
(4) Xác định lại tâm mới cho các nhóm.
(5) Thực hiện lại bước 2 cho đến khi không có sự thay đổi nhóm nào của các
đối tượng.
5. Kỹ thuật áp dụng cho phát hiện, nhận dạng đối tượng [16-17, 21-23, 26-27]
5.1. Kỹ thuật phát hiện đối tượng kết hợp nhận dạng khuôn mặt (Viola
Jones – Haar)
Kỹ thuật phát hiện đối tượng Viola-Jones là một trong những kỹ thuật có tỷ lệ
phát hiện đối tượng thời gian thực cao. Kỹ thuật này có thể được huấn luyện để phát
hiện nhiều loại đối tượng, nhưng chủ yếu tập trung vào nhận dạng khuôn mặt. Vấn đề
Bắt đầu
Số Cụm K
Tâm của cụm K
Khoảng cách các đối tượng đến tâm K
Nhóm các đối tượng dựa trên khoảng cách
nhỏ nhất
Không có đối tượng di chuyển đến
nhóm
Kết thúc
S
50
cần giải quyết là phát hiện khuôn mặt trong ảnh. Con người có thể làm điều này một
cách dễ dàng, nhưng máy tính cần các hướng dẫn và ràng buộc chính xác. Để làm cho
nhiệm vụ dễ thực hiện hơn, kỹ thuật Viola-Jones yêu cầu phải nhìn trực diện, toàn bộ
khuôn mặt phải hướng về phía máy ảnh và không được nghiêng sang hai bên. Các
ràng buộc này có thể làm giảm phần nào tiện ích của thuật toán, bởi vì bước phát hiện
thường được thực hiện theo sau bước nhận biết, nhưng trong thực tế, các giới hạn này
về tư thế là hoàn toàn chấp nhận được. Một số ưu điểm của kỹ thuật này là:
(1) Chính xác: tỷ lệ phát hiện đúng rất cao.
(2) Thời gian thực: xử lý ít nhất 2 khung hình mỗi giây đối với các ứng dụng
thực tế.
(3) Chỉ phát hiện khuôn mặt và không nhận dạng: tập trung phân biệt khuôn
mặt.
(4) Thuật toán có bốn giai đoạn:
- Lựa chọn đặc trưng Haar.
- Tạo một hình ảnh tích hợp.
- Huấn luyện Adaboost.
- Phân loại xếp tầng.
Các đặc trưng được kỹ thuật phát hiện tìm kiếm liên quan đến tổng các điểm
ảnh trong các khu vực hình chữ nhật. Như vậy, chúng có một số điểm tương đồng với
các hàm cơ sở Haar, đã được sử dụng trước đây trong việc phát hiện đối tượng dựa
trên hình ảnh. Tuy nhiên, vì các đặc trưng được Viola và Jones sử dụng đều phụ thuộc
vào nhiều hơn một khu vực hình chữ nhật, nên chúng thường phức tạp hơn. Hình 16
minh họa bốn loại đặc trưng khác nhau được sử dụng trong kỹ thuật phát hiện. Giá trị
của bất kỳ đặc trưng bằng tổng các điểm ảnh trong hình chữ nhật trừ đi tổng các điểm
ảnh trong hình chữ nhật được tô bóng. Các loại đặc trưng hình chữ nhật này là đầu tiên
khi so sánh với các lựa chọn thay thế, ví dụ như bộ lọc ổn định. Mặc dù chúng nhạy
cảm với các đặc trưng dọc và ngang, thông tin phản hồi của chúng khá chung và đơn
giản.
51
Hình 16: Bốn loại đặc trưng khu vực hình chữ nhật dùng trong kỹ thuật phát hiện
Đặc trưng Haar: Khuôn mặt của con người thường có những đặc trưng tương
tự, được kết hợp theo một số quy tắc này gọi là đặc trưng Haar. Một vài đặc trưng
chung cho khuôn mặt người: vùng mắt tối hơn vùng má trên hay vùng mũi sống sáng
hơn mắt. Thành phần các đặc trưng hình thành các đặc điểm khuôn mặt phù hợp: vị trí
và kích thước của mắt, miệng, sống mũi, và giá trị độ dốc định hướng của cường độ
điểm ảnh.
Bốn đặc trưng phù hợp với giải thuật này được tìm kiếm trong hình ảnh của
khuôn mặt như Hình 17. Các đặc trưng hình chữ nhật:
(1) Giá trị = Σ(điểm ảnh ở vùng đen) - Σ(điểm ảnh ở vùng trắng)
(2) Ba loại: hai, ba, bốn hình chữ nhật, Viola-Jones đã sử dụng các đặc trưng
hai hình chữ nhật
(3) Ví dụ sự khác biệt về độ sáng giữa các hình chữ nhật trắng và đen trên một
khu vực cụ thể
(4) Mỗi đặc trưng có liên quan đến một vị trí đặc biệt trong khung cửa sổ phụ.
Hình 17: Đặc trưng Haar tương ứng ảnh thực tế
Hình 17 cho ta thấy đặc trưng Haar trông giống như sống mũi được áp dụng
trên khuôn mặt (hình trên); Đặc trưng Haar trông tương tự như vùng mắt tối hơn má
trên được áp dụng trên khuôn mặt (hình giữa); Loại thứ 3 và thứ 4 của đặc trưng Haar.
52
Một biểu diễn hình ảnh được gọi là hình ảnh tích hợp đánh giá các đặc trưng
hình chữ nhật trong khoảng thời gian xác định, điều này mang lại lợi thế tốc độ đáng
kể so với các đặc trưng thay thế phức tạp hơn. Bởi vì khung hình chữ nhật của mỗi đặc
trưng luôn liền kề với ít nhất một hình chữ nhật khác, do đó, bất kỳ đặc trưng hai hình
chữ nhật nào cũng có thể được tính toán bởi sáu tham chiếu mảng, bất kỳ đặc trưng ba
hình chữ nhật nào cũng có thể được tính toán bởi tám tham chiếu mảng và bất kỳ đặc
trưng bốn hình chữ nhật nào cũng có thể được tính toán bởi chín tham chiếu mảng.
Việc phát hiện các đối tượng chuyển động không cần phải áp dụng phát hiện
đối tượng cho từng khung hình. Thay vào đó, các giải thuật theo dõi có thể phát hiện
các đặc trưng nổi bật trong các hộp giới hạn phát hiện và theo dõi chuyển động giữa
các khung hình. Điều này không chỉ cải thiện tốc độ theo dõi bằng cách loại bỏ việc
phát hiện lại các đối tượng trong mỗi khung hình mà còn cải thiện độ chính xác, vì các
đặc trưng nổi bật có khả năng phục hồi tốt hơn so với kỹ thuật phát hiện Viola-Jones
đối với những thay đổi xoay.
5.2. Kỹ thuật biến đổi đặc trưng bất biến theo tỷ lệ (Scale-invariant feature
transform - SIFT)
Kỹ thuật biến đổi đặc trưng bất biến tỷ lệ (SIFT) là kỹ thuật phát hiện đặc trưng
trong thị giác máy tính dùng phát hiện và mô tả các đặc trưng cục bộ trong hình ảnh.
Các ứng dụng bao gồm nhận dạng đối tượng, lập bản đồ và điều hướng robot, mô
phỏng đối tượng 3D, nhận dạng cử chỉ, theo dõi video, nhận dạng cá thể động vật
hoang dã.
Những điểm chính của các đối tượng SIFT đầu tiên được trích xuất từ một tập
hợp các hình ảnh tham chiếu và được lưu trữ trong cơ sở dữ liệu. Một đối tượng được
nhận dạng trong một hình ảnh mới bằng cách so sánh riêng từng đặc trưng từ hình ảnh
mới với cơ sở dữ liệu này và tìm các ảnh ứng viên có đặc trưng phù hợp dựa trên
khoảng cách Euclide của các vectơ đặc trưng của chúng. Từ tập hợp đầy đủ các ứng
viên phù hợp, các tập hợp con của các điểm chính phù hợp về đối tượng và vị trí, tỷ lệ
và hướng của nó trong hình ảnh mới được xác định để lọc ra các kết quả phù hợp hơn.
Việc xác định các cụm đồng nhất được thực hiện nhanh chóng bằng cách sử dụng bảng
băm hiệu quả của biến đổi Hough tổng quát. Mỗi cụm gồm 3 đặc trưng trở lên phù hợp
một đối tượng và tư thế sau đó được xác minh mô hình chi tiết hơn và các ngoại lệ bị
loại bỏ tiếp theo. Cuối cùng, xác suất mà một bộ đặc trưng cụ thể chỉ ra sự hiện diện
53
của một đối tượng được tính toán, với độ chính xác của sự phù hợp và xác suất phù
hợp sai có thể xảy ra. Đối tượng phù hợp vượt qua tất cả các thử nghiệm này có thể
được xác định chính xác với độ tin cậy cao [14].
Hình 18: Kết quả của thuật toán SIFT
Hình 18 cho ta thấy sau khi phát hiện điểm cực trị không gian tỷ lệ (vị trí của
chúng được hiển thị ở hình trên cùng), thuật toán SIFT sẽ loại bỏ các điểm chính có độ
tương phản thấp (các điểm còn lại được hiển thị trong hình ảnh ở giữa) và sau đó lọc
ra các vị trí nằm trên các cạnh. Tập hợp các điểm chính được hiển thị trên hình ảnh
cuối cùng.
Phát hiện đặc trưng bất biến tỷ lệ:phương pháp Lowe để tạo đặc trưng hình ảnh
biến một hình ảnh thành một tập hợp lớn các vectơ đặc trưng, mỗi vectơ là bất biến đối
với dịch, chia tỷ lệ và xoay hình ảnh, một phần bất biến đối với các thay đổi độ sáng
và biến dạng hình học cục bộ. Các đặc trưng này có chung đặc tính với các nơ-ron
trong vỏ thị giác chính đang mã hóa các dạng cơ bản, màu sắc và chuyển động để phát
hiện đối tượng trong tầm nhìn linh trưởng. Các vị trí chính được định nghĩa là cực đại
và cực tiểu của kết quả của sự khác biệt của hàm Gaussian được áp dụng trong không
gian tỷ lệ cho một loạt các hình ảnh được làm mịn và được ghép lại. Điểm ứng cử viên
có độ tương phản thấp và điểm phản ứng cạnh dọc theo một cạnh bị loại bỏ. Định
hướng chiếm ưu thế được gán cho các điểm chính cục bộ. Các bước này đảm bảo rằng
các điểm chính ổn định hơn để phù hợp và nhận dạng. Sau đó, các mô tả SIFT mạnh
mẽ đến biến dạng affine cục bộ có được bằng cách xem xét các điểm ảnh xung quanh
bán kính của vị trí chính, làm mờ và lấy mẫu lại các mặt phẳng định hướng hình ảnh
cục bộ.
54
Phù hợp và lập chỉ mục đặc trưng: lập chỉ mục bao gồm lưu trữ các khóa SIFT
và xác định các khóa khớp từ hình ảnh mới. Lowe đã sử dụng một sửa đổi của giải
thuật cây k-d được gọi là phương pháp tìm kiếm đầu tiên tốt nhất có thể xác định các
lân cận gần nhất với xác suất cao chỉ sử dụng một số lượng tính toán giới hạn. Giải
thuật BBF sử dụng thứ tự tìm kiếm được sửa đổi cho giải thuật cây k-d để các thùng
trong không gian đặc trưng được tìm kiếm theo thứ tự khoảng cách gần nhất của chúng
từ vị trí truy vấn. Thứ tự tìm kiếm này yêu cầu sử dụng hàng đợi ưu tiên dựa trên heap
để xác định hiệu quả thứ tự tìm kiếm. Kết quả phù hợp nhất cho từng điểm chính được
tìm thấy bằng cách xác định lân cận gần nhất của nó trong cơ sở dữ liệu về các điểm
chính từ hình ảnh đào tạo. Các lân cận gần nhất được định nghĩa là các điểm chính với
khoảng cách Euclide tối thiểu từ vectơ mô tả đã cho. Xác suất mà một phù hợp là
chính xác có thể được xác định bằng cách lấy tỷ lệ khoảng cách từ lân cận gần nhất với
khoảng cách của lần thứ hai gần nhất.
Lowe [14] đã từ chối tất cả các phù hợp trong đó tỷ lệ khoảng cách lớn hơn 0,8,
loại bỏ 90%các phù hợp sai trong khi loại bỏ ít hơn 5% các phù hợp chính xác. Để tiếp
tục cải thiện hiệu quả của giải thuật tìm kiếm BBF đã bị cắt bỏ sau khi kiểm tra 200
ứng cử viên lân cận gần nhất đầu tiên. Đối với cơ sở dữ liệu gồm 100.000 điểm chính,
điều này cung cấp khả năng tăng tốc so với tìm kiếm lân cận gần nhất chính xác
khoảng 2 bậc độ lớn, nhưng dẫn đến mất ít hơn 5% số lượng kết quả phù hợp chính
xác.
Nhận dạng cụm bằng cách bỏ phiếu biến đổi Hough: biến đổi Hough được sử
dụng để phân cụm các giả thuyết mô hình đáng tin cậy để tìm kiếm các khóa đồng ý
với một tư thế mô hình cụ thể. Biến đổi Hough xác định các cụm tính năng với một
diễn giải nhất quán bằng cách sử dụng từng tính năng để bỏ phiếu cho tất cả các tư thế
đối tượng phù hợp với tính năng. Khi các cụm tính năng được tìm thấy để bỏ phiếu
cho cùng một tư thế của một đối tượng, xác suất diễn giải là chính xác cao hơn nhiều
so với bất kỳ tính năng nào. Một mục trong bảng băm được tạo ra dự đoán vị trí mô
hình, định hướng và tỷ lệ từ giả thuyết khớp. Bảng băm được tìm kiếm để xác định tất
cả các cụm của ít nhất 3 mục trong một thùng và các thùng được sắp xếp theo thứ tự
giảm kích thước.
Mỗi điểm khóa SIFT chỉ định vị trí, tỷ lệ và hướng 2D và mỗi điểm khóa phù
hợp trong cơ sở dữ liệu có một bản ghi các tham số của nó so với hình ảnh huấn luyện
55
được tìm thấy. Biến đổi tương tự được ngụ ý bởi 4 tham số này chỉ là xấp xỉ với không
gian đặt tự do 6 độ đầy đủ cho một đối tượng 3D và cũng không tính đến bất kỳ biến
dạng không cứng nhắc nào. Do đó, Lowe [14] đã sử dụng kích thước thùng rộng 30 độ
cho định hướng, hệ số 2 cho tỷ lệ và 0,25 lần kích thước hình ảnh huấn luyện dự kiến
tối đa (sử dụng tỷ lệ dự đoán) cho vị trí.
Các mẫu khóa SIFT được tạo ở quy mô lớn hơn được cho gấp đôi trọng lượng
của các mẫu ở quy mô nhỏ hơn. Điều này có nghĩa là quy mô lớn hơn có hiệu lực có
thể lọc các hàng xóm có khả năng nhất để kiểm tra ở quy mô nhỏ hơn. Điều này cũng
cải thiện hiệu suất nhận dạng bằng cách tăng thêm trọng lượng cho thang đo ít nhiễu
nhất. Để tránh vấn đề về hiệu ứng ranh giới trong việc gán thùng, mỗi điểm chính sẽ
bỏ phiếu cho 2 thùng gần nhất ở mỗi chiều, đưa ra tổng cộng 16 mục cho mỗi giả
thuyết và mở rộng thêm phạm vi tư thế.
Xác minh mô hình bằng bình phương tối thiểu tuyến tính: mỗi cụm được xác
định sau đó phải tuân theo một quy trình xác minh trong đó giải pháp bình phương tối
thiểu tuyến tính được thực hiện cho các tham số của phép biến đổi affine liên quan đến
mô hình với hình ảnh.Phép biến đổi affine của điểm mô hình|xy|t thành điểm hình
ảnh|uv|t có thể được viếtnhư dưới đây:
u m1m2 x tx
= + v m3m4 y ty
trong đó bản dịch mô hình là |txty|và phép quay affine, tỷ lệ và độ giãn được biểu diễn
bằng các tham số m1, m2, m3và m4. Phương trình này chỉ trình bày một phù hợp,
nhưng có thể thêm bất kỳ một số lượng phù hợp, với mỗi phù hợp đóng góp thêm hai
hàng cho ma trận đầu tiên và cuối cùng. Tối thiểu cần ba phù hợp để đưa ra một giải
pháp. Hệ phương trình tuyến tính có thể viết lại như sau:
ˆAx b
Trong đó A là ma trận m × n đã biết (m > n), x là vectơ n chiều chưa biết và b
là vectơ m chiều đã biết. Do đó, vectơ x là một nghiệm của hệ phương trình tuyến tính
bình thường.
Phát hiện ngoại lệ: các ngoại lệ hiện có thể được loại bỏ bằng cách kiểm tra sự
thỏa thuận giữa từng tính năng hình ảnh và mô hình, đưa ra giải pháp tham số. Với giải
pháp bình phương tối thiểu tuyến tính, mỗi phù hợp được yêu cầu phải đồng ý trong
phạm vi một nửa phạm vi lỗi được sử dụng cho các tham số trong các thùng biến đổi
56
Hough. Khi các ngoại lệ bị loại bỏ, giải pháp bình phương tối thiểu tuyến tính được
giải lại với các điểm còn lại và quá trình lặp lại. Nếu vẫn còn ít hơn 3 điểm sau khi loại
bỏ các ngoại lệ, thì phù hợp sẽ bị từ chối. Ngoài ra, một bước phù hợp từ trên xuống
được sử dụng để thêm bất kỳ kết quả phù hợp nào phù hợp với vị trí mô hình dự kiến,
có thể bị bỏ sót từ thùng biến đổi Hough do xấp xỉ biến đổi tương tự hoặc các lỗi khác.
Quyết định cuối cùng chấp nhận hoặc từ chối một giả thuyết mô hình dựa trên
mô hình xác suất chi tiết. [15] Phương pháp này trước tiên tính toán số lượng phù hợp
sai dự kiến cho tư thế mô hình, với kích thước dự kiến của mô hình, số lượng tính
năng trong khu vực và độ chính xác của sự phù hợp. Một phân tích xác suất Bayes sau
đó đưa ra xác suất rằng đối tượng có mặt dựa trên số lượng tính năng phù hợp thực tế
được tìm thấy. Một mô hình được chấp nhận nếu xác suất cuối cùng cho một diễn giải
chính xác lớn hơn 0,98. Nhận dạng đối tượng dựa trên SIFT của Lowe.
5.3. Kỹ thuật biểu đồ độ dốc định hướng (Histogram of oriented gradients
-HOG)
Kỹ thuật biểu đồ của độ dốc định hướng (HOG) [16] là một bộ mô tả đặc trưng
được sử dụng trong thị giác máy tính và xử lý hình ảnh nhằm mục đích phát hiện đối
tượng. Kỹ thuật này đếm số lần xuất hiện của định hướng độ dốc trong các phần cục
bộ của hình ảnh. Kỹ thuật này tương tự như biểu đồ định hướng cạnh, bộ mô tả biến
đổi đặc trưng bất biến tỷ lệ và ngữ cảnh hình dạng, nhưng khác ở chỗ nó được tính
toán trên một lưới dày đặc các ô cách đều nhau và sử dụng chuẩn hóa tương phản cục
bộ chồng chéo để tăng độ chính xác. Navneet và các cộng sự trình bày đầy đủ về kỹ
thuật HOG tại hội nghị khoa học về thị giác máy tính và nhận dạng năm 2005. Đầu
tiên, họ tập trung vào phát hiện người đi bộ trong hình ảnh tĩnh, sau đó họ mở rộng thử
nghiệm phát hiện đối tượng con người trong phim ảnh, cũng như nhiều loại động vật
và phương tiện giao thông trong hình ảnh tĩnh.
Ý tưởng chính của biểu đồ bộ mô tả độ dốc định hướng là hình dạng và xuất
hiện của đối tượng cục bộ trong một hình ảnh có thể được mô tả bằng phân phối độ
dốc cường độ hay hướng cạnh. Hình ảnh được chia thành các vùng được kết nối nhỏ
gọi là các ô và đối với các điểm ảnh trong mỗi ô, một biểu đồ hướng dẫn độ dốc được
biên dịch. Bộ mô tả là sự kết hợp của các biểu đồ. Để tăng cường độ chính xác, biểu
đồ cục bộ có thể được chuẩn hóa tương phản bằng cách tính toán cường độ trên một
vùng lớn hơn của hình ảnh, được gọi là khối, và sau đó sử dụng giá trị này để chuẩn
57
hóa tất cả các ô trong khối. Sự chuẩn hóa này dẫn đến sự bất biến tốt hơn đối với
những thay đổi do độ sáng và bóng hình.
Bộ mô tả HOG có một số lợi thế chính so với các bộ mô tả khác. Vì hoạt động
trên các ô cục bộ, bộ mô tả bất biến đối với các phép biến đổi hình học, ngoại trừ
hướng đối tượng. Những thay đổi như vậy chỉ xuất hiện ở các khu vực không gian lớn
hơn. Hơn nữa, như Navneet và các cộng sự đã phát hiện ra, lấy mẫu không gian thô,
lấy mẫu định hướng tốt và chuẩn hóa trắc quang mạnh cục bộ cho phép chuyển động
cơ thể cá nhân của người đi bộ miễn là họ duy trì được tư thế đứng thẳng. Do đó, bộ
mô tả HOG đặc biệt phù hợp để phát hiện con người trong các hình ảnh.
Tính toán độ dốc: bước đầu tiên của tính toán trong nhiều trình phát hiện đặc
trưng trong quá trình tiền xử lý ảnh là đảm bảo giá trị gamma và màu được chuẩn hóa.
Tuy nhiên, như Navneet và các cộng sự chỉ ra, bước này có thể được bỏ qua trong tính
toán bộ mô tả HOG, vì việc chuẩn hóa mô tả tiếp theo về cơ bản đạt được kết quả
tương tự. Xử lý trước hình ảnh cung cấp ít ảnh hưởng đến hiệu suất. Thay vào đó,
bước đầu tiên là tính toán các giá trị độ dốc. Phương pháp phổ biến nhất là áp dụng
đạo hàm riêng từng điểm rời rạc, tập trung vào một hoặc cả hai chiều ngang và dọc.
Cụ thể, phương pháp này yêu cầu lọc dữ liệu màu hoặc cường độ của hình ảnh với các
lõi bộ lọc sau:
|-101| & |-101|T
Phân vùng định hướng: bước thứ hai của tính toán là tạo biểu đồ ô. Mỗi điểm
trong ô tạo ra một phiếu bầu có trọng số cho kênh biểu đồ dựa trên định hướng dựa
trên các giá trị được tìm thấy trong tính toán độ dốc. Bản thân các ô có thể là hình chữ
nhật hoặc hình tròn và các kênh biểu đồ được trải đều từ 0 đến 1800 hoặc 0 đến 3600,
tùy thuộc vào độ dốc là không dấu hay không có ký hiệu. Navneet và các cộng sự nhận
thấy rằng các độ dốc không dấu được sử dụng cùng với 9 kênh biểu đồ được thực hiện
tốt nhất trong các thí nghiệm phát hiện con người. Đối với trọng số phiếu bầu, đóng
góp điểm ảnh có thể chính là độ lớn của độ dốc hoặc một số chức năng của độ lớn.
Trong các thử nghiệm, độ lớn độ dốc thường tạo ra kết quả tốt nhất. Các tùy chọn khác
cho trọng số phiếu bầu có thể bao gồm căn bậc hai hoặc bình phương của độ lớn độ
dốc [16].
Khối mô tả: để tính toán cho những thay đổi về độ chiếu sáng và độ tương
phản, độ lớn độ dốc phải được chuẩn hóa cục bộ, đòi hỏi phải nhóm các ô lại với nhau
58
thành các khối lớnhơn về không gian. Bộ mô tả HOG là vectơ nối của các thành phần
của biểu đồ ô đã chuẩn hóa từ tất cả các vùng khối. Các khối này thường chồng lấp lên
nhau, có nghĩa là mỗi ô đóng góp nhiều lần cho bộ mô tả cuối cùng. Hai hình khối
chính tồn tại là khối R-HOG hình chữ nhật và khối C-HOG tròn. Các khối R-HOG
thường là các ô vuông, được biểu thị bằng ba tham số: số lượng ô trên mỗi khối, số
điểm ảnh trên mỗi ô và số kênh trên biểu đồ ô. Trong thử nghiệm phát hiện đối tượng
con người của Navneet và các cộng sự, các tham số tối ưu được tìm thấy là bốn ô 8×8
điểm ảnh trên mỗi khối (16×16 điểm ảnh mỗi khối) với 9 kênh biểu đồ. Hơn nữa, thử
nghiệm cũng cho thấy rằng một số cải tiến nhỏ về hiệu suất có thể đạt được bằng cách
áp dụng cửa sổ không gian Gaussian trong mỗi khối trước khi lập bảng biểu đồ để
giảm trọng số điểm ảnh xung quanh cạnh của khối. Các khối R-HOG xuất hiện khá
giống với các mô tả biến đổi đặc trưng bất biến tỷ lệ (SIFT). Tuy nhiên, mặc dù có sự
hình thành tương tự nhau, các khối R-HOG được tính toán trong các lưới dày đặc ở
một tỷ lệ duy nhất mà không căn chỉnh hướng, trong khi các mô tả SIFT thường được
tính toán tại các điểm hình ảnh quan trọng, bất biến tỷ lệ và được xoay theo hướng
thẳng hàng. Ngoài ra, các khối R-HOG được sử dụng kết hợp để mã hóa thông tin
dạng không gian, trong khi các mô tả SIFT được sử dụng riêng lẻ.
Các khối HOG tròn (C-HOG) có thể được tìm thấy trong hai biến thể: những
biến thể với một ô đơn lẻ ở trung tâm và những biến thể có một ô trung tâm phân chia
góc. Ngoài ra, các khối C-HOG này có thể được mô tả với bốn tham số: số lượng
thùng góc và hướng tâm, bán kính của thùng trung tâm và hệ số mở rộng cho bán kính
của các thùng xuyên tâm bổ sung. Navneet và các cộng sự nhận thấy rằng hai biến thể
chính cung cấp hiệu suất tương đương và hai thùng hướng tâm có bốn thùng góc, bán
kính trung tâm 4 điểm ảnh và hệ số mở rộng 2 cung cấp hiệu suất tốt nhất trong thử
nghiệm (để đạt được hiệu suất tốt, cuối cùng sử dụng cấu hình này). Ngoài ra, trọng số
Gaussian không mang lại lợi ích khi được sử dụng cùng với các khối C-HOG. Các
khối C-HOG xuất hiện tương tự như các mô tả bối cảnh hình dạng, nhưng khác biệt
mạnh ở các khối C-HOG chứa các ô có một số kênh định hướng, trong khi bối cảnh
hình dạng chỉ sử dụng số lượng hiện diện cạnh duy nhất trong công thức của chúng.
Nhận dạng đối tượng: Các bộ mô tả HOG có thể được sử dụng để nhận dạng
đối tượng bằng cách cung cấp chúng như các đặc trưng cho giải thuật học máy.
Navneet và các cộng sự đã sử dụng các bộ mô tả HOG làm các đặc trưng trong một
59
máy vectơ hỗ trợ (SVM). Tuy nhiên, các bộ mô tả HOG không được gắn với một giải
thuật học máy cụ thể.
Hình 19: Các bước hiện thực giải thuật HOG
Các bước huấn luyện mô hình phân loại người dùng đặc trưng HOG: Các bước
thực hiện để huấn luyện trên tập dữ liệu phân loại như hình 19:
(1) Lần lượt duyệt các hình ảnh con người trong tập ảnh positive gồm n ảnh.
(2) Đọc hình ảnh positive, do ảnh này đã cắt chỉnh sẵn chỉ chứa đối tượng con
người nên có thể tiến hành rút trích đặc trưng HOG.
(3) Rút trích đặc trưng mỗi hình ảnh tiến hành lưu trữ lại vector m chiều.
(4) Sau khi xử lý hết tập ảnh positive, thu thập được một ma trận có kích thước
m × n, mỗi dòng trong ma trận này là vector đặc trưng của mỗi mẫu positive, n chính
là số mẫu dương trong danh sách huấn luyện.
(5) Đọc hình ảnh negative, ảnh mẫu negative bao gồm ảnh phong cảnh và
không có người, tính chất của tập mẫu negative này chính là hoàn toàn không có
người. Mỗi ảnh negative có thể cắt chỉnh ngẫu nhiên 10 mẫu ảnh negative.
(6) Rút trích đặc trưng trên các mẫu ảnh negative này và lưu trữ lại.
(7) Sau khi xử lý hết tập ảnh negative, thu được ma trận có kích thước k × n.
(8) Tiến hành nối hai ma trận của dữ liệu negative và positive lại thành một ma
trận siêuto khổng lồ có kích thước (m + k) × n chứa dữ liệu huấn luyện.
(9) Tạo một vector có kích thước m + k phần tử (bằng số mẫu huấn luyện),
trong đó k phần tử đầu tiên chứa giá trị 0 (đại diện cho mẫu ảnh âm) và m phần tử còn
lại trong vectơ là giá trị 1 (mẫu ảnh dương). Lưu ý rằng tương ứng vị trí vectơ chứa
nhãn phải phù hợp với vị trí của vectơ đặc trưng đó bên ma trận chứa vectơ đặc trưng.
(10) Đưa vectơ đặc trưng và nhãn vào mô hình SVM để huấn luyện.
60
Hình 20: Kết quả phát hiện người thông qua giải thuật HOG
Hình 20 việc Bounding box vẽ trên ảnh là kết quả dự đoán: dự đoán sai box
ngay cửa, dự đoán đúng box người.
5.4. Kỹ thuật học sâu để nhận dạng và phân loại đối tượng [16-21]
5.4.1 Kỹ thuật mạng nơ-ron tích chập
Mạng nơ-ron chuyển đổi hay mạng nơ-ron tích chập (CNN) là một trong những
mô hình học sâu tiên tiến áp dụng nhiều trong các bài toán nhận dạng đối tượng trong
hình ảnh hoặc phim ảnh, đồng thời ứng dụng để xây dựng những hệ thống nhận dạng
thông minh với độ chính xác cao hiện nay. Những hệ thống xử lý ảnh của Facebook,
Google hay Amazon đã áp dụng mô hình này để nhận diện khuôn mặt con người, phát
triển xe ô tô tự hành hay thiết bị bay giao hàng tự động.
Mô hình ANN từ chương trước bao gồm 3 thành phần đó là: input layer, hidden
layer và output layer. Mỗi hidden layer được gọi là lớp kết nối đầy đủ (fully connected
layer), nếu mỗi nút trong hidden layer được kết nối với tất cả các nút trong layer trước.
Cả mô hình được gọi là mạng nơ-ron kết nối đầy đủ (fully connected neural network-
FCNN).
Khi sử dụng FCNN để xử lý ảnh thì ảnh màu 64×64 được biểu diễn dưới dạng
1 tensor 64×64×3. Để biểu thị hết nội dung của bức ảnh thì cần truyền vào input layer
tất cả các điểm ảnh (64×64×3 = 12.288), nghĩa là input layer bao gồm 12288 nút. Giả
sử số lượng nút trong hidden layer đầu tiên là 1000. Số lượng trọng số w giữa input
layer và hidden layer đầu tiên là 12.288×1.000 = 12.288.000, số lượng bias là 1.000
61
nên tổng số tham số là 12.289.000. Khi có thêm các hidden layer và kích thước hình
ảnh tăng thì số lượng tham số tăng rất nhanh, dẫn đến độ phức tạp tính toán rất cao.
Việc áp dụng phép tính convolution vào layer trong ANN có thể giải quyết được vấn
đề lượng lớn tham số mà vẫn rút trích được các đặc trưng của hình ảnh.
Convolution là một cửa sổ trượt trên một ma trận như mô tả sau đây:
1x1 1x0 1x1 0 0
0x0 1x1 1x0 1 0 4 - -
Image = 0x1 0x0 1x1 1 1 Convolved Feature = - - -
0 0 1 1 0 - - -
0 1 1 0 0
1 1x1 1x0 0x1 0
0 1x0 1x1 1x0 0 4 3 -
Image = 0 0x1 1x0 1x1 1 Convolved Feature = - - -
0 0 1 1 0 - - -
0 1 1 0 0
...
1 1 1 0 0
0 1 1 1 0 4 3 4
Image = 0 0 1x1 1x0 1 Convolved Feature = 2 4 3
0 0 1x0 1x1 0x0 2 3 4
0 1 1x1 0x0 0x1
Lưu ý rằng các điểm ảnh trong ảnh ở cạnh nhau thường có liên kết với nhau
hơn là những điểm ảnh ở xa. Để tìm các đường trong ảnh, ta áp dụng lõi sobel trên mỗi
vùng kích thước 3×3. Hay làm nét ảnh ta áp dụng lõi sharpen cũng trên vùng có kích
thước 3×3. Trong phép tính convolution trong ảnh, chỉ 1 lõi được dùng trên toàn bộ
bức ảnh. Hay nói cách khác là các điểm ảnh chia sẻ hệ số với nhau. Các convolutional
layer có các tham số đã được học để tự điều chỉnh lấy ra những thông tin chính xác mà
không cần chọn các đặc trưng. Trong ví dụ trên, ma trận bên trái là một hình ảnh trắng
đen được số hóa có kích thước 5×5 và mỗi điểm ảnh có giá trị 1 hoặc 0 là giao điểm
của dòng và cột. Convolution hay tích chập là nhântừng phần tử trong ma trận 3×3.
Cửa sổ trượt, còn gọi là lõi, là một ma trận có kích thước nhỏ, như trong ví dụ trên là
62
3×3. Convolution hay tích chập là nhân từng phần tử bên trong ma trận 3×3 với ma
trận bên trái. Kết quả được một ma trận gọi là Convoled Feature được sinh ra từ việc
nhận ma trận 3×3, còn gọi là ma trận lọc, với ma trận ảnh 5×5 bên trái, như Hình 21.
Hình 21: Convolved feature khác nhau với ma trận lọc khác nhau
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 kích hoạt phi tuyến để kích hoạt các trọng số trong các nút. 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. Trong mô hình mạng nơ-ron truyền ngược thì mỗi nút đầu vào liên kết mỗi nút
đầu ra trong các lớp tiếp theo.
Mô hình này gọi là mạng nơ-ron kết nối đầy đủ hay mạng nơ-ron toàn vẹn. Mô
hình CNN thì ngược lại, nghĩa là các layer liên kết được với nhau thông qua cơ chế
convolution. Lớp tiếp theo là kết quả convolution từ lớp trước đó, nhờ vậy các kết nối
cục bộ được thiết lập. Như vậy, mỗi nút ở lớp kế tiếp sinh ra từ kết quả của bộ lọc áp
đặt lên một vùng ảnh cục bộ của nút trước đó.
Mỗi một lớp được sử dụng các bộ lọc khác nhau. Có hàng trăm hàng nghìn bộ
lọc và kết hợp kết quả của chúng lại. Ngoài ra, có một số lớp khác như lớp tổng hợp
(pooling), lớp mẫu phụ (subsampling) dùng để chắt lọc lại các thông tin hữu ích hơn
thông qua việc loại bỏ các thông tin nhiễu. Trong quá trình huấn luyện mạng CNN tự
động học các giá trị qua các lớp, ví dụ trong tác vụ phân lớp ảnh, mạng CNN cố gắng
63
tìm ra thông số tối ưu cho các bộ lọc tương ứng theo thứ tự raw pixel > edges > shapes
> facial > high-level features. Lớp cuối cùng được dùng để phân lớp ảnh.
Hình 22: Cấu trúc của mạng CNN
Trong mô hình CNN có 2 khía cạnh cần quan tâm là tính bất biến (Location
Invariance) và tính kết hợp (Compositionality). Với cùng một đối tượng, nếu đối
tượng này được chiếu theo các gốc độ khác nhau (translation, rotation, scaling) thì độ
chính xác của thuật toán sẽ bị ảnh hưởng đáng kể. Pooling layer sẽ cho bạn tính bất
biến đối với phép dịch chuyển (translation), phép quay (rotation) và phép co giãn
(scaling). Tính kết hợp cục bộ cho ta các cấp độ biểu diễn thông tin từ mức độ thấp
đến mức độ cao và trừu tượng hơn thông qua convolution từ các filter. Đó là lý do tại
sao CNNs cho ra mô hình với độ chính xác rất cao, tương tự như cách con người nhận
biết các vật thể trong tự nhiên. Mạng CNN sử dụng 3 ý tưởng cơ bản:
(1) Trường tiếp nhận cục bộ (local receptive field).
(2) Trọng số chia sẻ (shared weights).
(3) Tổng hợp (pooling).
Trường tiếp nhận cục bộ (local receptive field): Đầu vào của mạng CNN là một
ảnh, ví dụ như ảnh có kích thước 28×28 thì tương ứng đầu vào là một ma trận có
28×28 và giá trị mỗi điểm ảnh là một ô trong ma trận. Mô hình mạng ANN truyền
thống kết nối các nút đầu vào vào tầng ảnh. Tuy nhiên, CNN chỉ kết nối trong một
vùng nhỏ của các nút đầu vào như một bộ lọc có kích thước 5×5 tương ứng 24 (28-
5+1) điểm ảnh đầu vào. Mỗi một kết nối học một trọng số và mỗi nút ẩn học một bias.
Mỗi một vùng 5×5 gọi là một trường tiếp nhận cục bộ như Hình 23.
Hình 23: Trường tiếp nhận cục bộ
Hình 24 mô tả các bước tạo ra 1 hidden layer. Hình trên tạo ra nút ẩn đầu tiên
trong lớp ẩn thứ nhất; hình dưới cùng dịch bộ lọc sang bên phải 1 cột tạo ra nút ẩn thứ
64
hai. Quá trình dịch cho đến hết ma trận đầu vào tạo ra 1 hidden layer. Với bài toán
nhận dạng ảnh, ma trận lớp đầu vào thường được gọi là feature map, trọng số xác định
các đặc trương là shared weight và độ lệch xác định một feature map là shared bias.
Như vậy, hoàn tất các bước trên chỉ tạo ra 1 feature map và việc nhận dạng ảnh đòi hỏi
nhiều hơn 1 feature map. Trường tiếp nhận cục bộ thích hợp cho việc phân tách dữ
liệu ảnh, giúp chọn ra những vùng ảnh có giá trị nhất cho việc đánh giá phân lớp.
Trọng số chia sẻ (shared weight and bias): các trọng số cho mỗi bộ lọc phải
giống nhau. Các nút trong lớp ẩn đầu phát hiện chính xác đặc trưng tương tự chỉ ở các
vị trí khác nhau trong hình ảnh đầu vào. Việc ánh xạ từ input layer sang hidden layer
là một feature map.
Mỗi fearture map cần 5×5=25 shared weight và 1 shared bias, tổng cộng 26
tham số. Nếu có 10 feature map thì có 10×26 = 260 tham số. Nếu layer đầu tiên có kết
nối đầy đủ nghĩa là 28×28=784 nút đầu vào và chỉ có 30 nút ẩn. Tổng số tham số là
28×28×30+30 bao gồm 28×28×30 shared weight và 30 shared bias, lớn hơn nhiều so
với mạng CNN. Lưu ý rằng mô hình có số lượng tham số ít hơn chạy nhanh hơn. Một
convolutional layer bao gồm các feature map khác nhau, mỗi feature map giúp phát
hiện một vài đặc trưng trong ảnh. Lợi ích lớn nhất của trọng số chia sẻ là giảm tối đa
số lượng tham số trong mạng CNN.
Lớp tổng hợp (pooling layer): lớp pooling thường được sử dụng ngay sau lớp
convulation để đơn giản hóa thông tin đầu ra và giảm bớt số lượng nút như Hình 22.
Thủ tục pooling phổ biến là max-pooling chọn giá trị lớn nhất trong vùng đầu vào 2×2
như Hình 25, và qua lớp max pooling thì số lượng nút giảm đi phân nửa. Một mạng
CNN có nhiều feature map nên mỗi feature map tương ứng max pooling khác nhau.
Có thể thấy rằng max pooling là cách xác định đặc trưng nổi bật nhất trong số các đặc
trưng.
Hình 24: Các bước tạo ra 1 hidden layer
65
Hình 25: Xây dựng lớp max pooling
5.4.2. Kỹ thuật tìm kiếm xác định vị trí vật thể trong ảnh sử dụng mạng CNN [35-
36]
5.4.2.1. Region Convolutional Neural Network Proposals (R-CNN) [16]
Mô hình CNN được áp dụng cho bài toán phân loại ảnh, cụ thể là các ảnh input
của bài toán phân loại chỉ bao gồm 1 đối tượng cụ thể như chữ số, loài hoa, đồ vật hay
con người. Tuy nhiên, ảnh trong cuộc sống bình thường thì không chỉ chứa 1 đối
tượng mà thường bao gồm rất nhiều các đối tượng, nên vị trí của từng đối tượng trong
ảnh cần được xem xét như Hình 26.
Vấn đề phát hiện đối tượng thông qua vị trí của đối tượng trong ảnh bao gồm 2
bài toán:
- Xác định các bounding box (hình chữ nhật) quanh đối tượng.
- Với mỗi bounding box, cần phân loại đối tượng với độ chính xác.
Việc lựa chọn có bao nhiêu loại đối tượng thì phụ thuộc vào bài toán cần giải
quyết. Vì không biết trước có bao nhiêu đối tượng trong ảnh, nên mô hình CNN không
thiết kế được output layer hiệu quả. Mô hình R-CNN [18] (regional convolutional
neural network) là giải pháp cho vấn đề này.
Hình 26: Xác định vị trí nhiều đối tượng trong ảnh
66
5.4.2.2. Region with Convolutional Neural Network feature (R-CNN)
Giải thuật R-CNN tập trung vào 2 bước: bước 1 sử dụng giải thuật tìm kiếm
chọn lọc để trích xuất khoảng 2000 bounding box trong ảnh input có khả năng chứa
đối tượng và bước 2 xác định mỗi bounding box chứa đối tượng nào.
Giải thuật tìm kiếm chọn lọc với input là ảnh màu và output là khoảng 2000
bounding box (region proposal) mà có khả năng chứa các đối tượng. Đầu tiên ảnh
được phân mảnh qua thuật toán Graph Based Image Segmentation. Mỗi đối tượng
trong ảnh có thể chứa nhiều hơn 1 màu và các đối tượng có thể bị che mất một phần
bởi một hoặc nhiều đối tượng khác, vì vậy region proposal thường nhóm các vùng
màu với nhau, thay vì sử dụng mỗi màu trong output. Tiếp theo, các vùng màu được
nhóm với nhau dựa trên độ tương đồng về màu sắc, hướng gradient, kích thước,
...Cuối cùng các region proposal được xác định dựa trên các nhóm vùng màu.
Hình 27: Output sau khi thực hiện Graph Based Image Segmentation [1]
Bài toán trở thành phân loại ảnh cho các region proposal. Do thuật toán tìm
kiếm chọn lọc trích xuất khoảng 2000 region proposal nên có rất nhiều region proposal
không chứa đối tượng nào. Một lớp background không chứa đối tượng nào cần thiết
thêm vào, ví dụ Hình 28 có 4 region proposal phân loại bounding box là người ngựa
hay background.
Hình 28: Các bước của thuật toán R-CNN [2]
67
Sau đó các region proposal được thay đổi về cùng kích thước và thực hiện
truyền kiến thức huấn luyện (transfer learning) với bộ trích xuất đặc trưng, sau đó các
đặc trưng trích xuất được cho vào thuật toán SVM để phân loại ảnh. Ngoài ra, các đặc
trưng trích xuất cũng được dùng để dự đoán 4 giá trị offset cho mỗi cạnh, ví dụ như
khi region proposal chứa người nhưng chỉ có phần thân và nửa mặt, nửa mặt còn lại
không có trong region proposal đó thì offset value có thể giúp mở rộng region
proposal để lấy được toàn bộ người.
Mặc dù R-CNN hoạt động khá tốt so với các thuật toán CNN về thị giác máy
tính, R-CNN vẫn có khá nhiều hạn chế. Mỗi ảnh yêu cầu phân loại các lớp cho 2000
region proposal nên mất nhiều thời gian để huấn luyện. Thời gian xử lý mỗi ảnh trong
tập thử nghiệm là 47 giây nên không thể áp dụng cho nhận dạng đối tượng theo thời
gian thực.
5.4.2.3. Fast R-CNN
Fast R-CNN [3] được giới thiệu bởi cùng tác giải của R-CNN giải quyết hạn chế
của R-CNN để cải thiện tốc độ. Tương tự như R-CNN, Fast R-CNN vẫn dùng giải
thuật tìm kiếm chọn lọc để trích xuất các region proposal. Tuy nhiên, thay vì tách
khoảng 2000 region proposal ra khỏi ảnh và thực hiện bài toán phân loại cho mỗi ảnh,
Fast R-CNN cho cả bức ảnh vào mạng thần kinh tích chập bao gồm một vài lớp
convolution và max pooling để tạo ra convolutional feature map. Sau đó, các vùng
region proposal được trích xuất tương ứng từ convolutional feature map. Cuối cùng,
giải thuật sử dụng flatten và thêm 2 fully connected layer (FCs) để dự đoán lớp của
region proposal và giá trị offset của bounding box.
Hình 29: Các bước của thuật toán Fast R-CNN [3]
Do kích thước của các region proposal khác nhau nên việc flatten tạo ra các
vector có kích thước khác nhau, dẫn đến khó khăn trong việc áp dụng mạng thần kinh
nhân tạo. R-CNN đã xử lý vấn đề này bằng cách thay đổi các region proposal về cùng
kích thước trước khi áp dụng transfer learning. Tuy nhiên, vấn đề ở đây là cần chuyển
68
các region proposal trong feature map về cùng kích thước, trong khi các feature map
không thể thay đổi kích thước.
Region of Interest (ROI) pooling là một dạng của pooling layer nhằm giải
quyết vấn đề thay đổi kích thước các feature map. Điểm khác so với max pooling hay
average pooling là bất kể kích thước của tensor input, ROI pooling luôn cho ra output
có kích thước cố định được định nghĩa trước.
Ví dụ kí hiệu a/b là phần nguyên của a khi chia cho b và a%b là phần dư của a
khi chia chob. Gọi input của ROI pooling kích thước mxn và output có kích thước hxk
(thông thường h, k nhỏ hơn so với m, n); chia chiều rộng thành h phần, (h-1) phần có
kích thước m/h, phần cuối có kích thước m/h + m%h; tương tự, chia chiều dài thành k
phần, (k-1) phần có kích thước n/k, phần cuối có kích thước n/k + n%k. Sau đó, thực
hiện max pooling lấy ra 1 giá trị cho mỗi khối được tạo ra. Kích thước sau khi thực
hiện ROI pooling là hxk.
Fast R-CNN khác với R-CNN là thực hiện feature map với cả bức ảnh sau đó
lấy các region proposal ra từ feature map, còn R-CNN thực hiện tách các region
proposal ra rồi mới thực hiện CNN trên từng region proposal. Do đó, Fast R-CNN
nhanh hơn đáng kể nhờ tối ưu việc tính toán bằng phép vectơ hóa (vectorization). Tuy
nhiên, Fast R-CNN vẫn chậm ở phần tính region proposal và giải thuật tìm kiếm chọn
lọc. Vấn đề này có thể cải tiến bằng cách dùng học sâu để tạo ra region proposal.
5.4.2.4. Faster R-CNN
Faster R-CNN [4] không dùng giải thuật tìm kiếm chọn lọc để trích xuất các
region proposal, mà sử dụng 1 mạng CNN mới gọi là region proposal network (RPN)
để tìm kiếm các region proposal. Đầu tiên, cả bức ảnh được huấn luyện trước để lấy
feature map. Tiếp theo, feature map được dùng cho RPN để trích xuất các region
proposal. Sau khi lấy được vị trí các region proposal thì thực hiện tương tự kỹ thuật
Fast R-CNN như hình 30.
Hình 30: Kiến trúc Faster R-CNN [4]
69
Input và output của RPN lần lượt là feature map và các region proposal có hình
chữ nhật được xác định bằng 2 điểm ở 2 góc, ví dụ A(xmin, ymin) và B(xmax, ymax) như
hình 31.
Hình 31: Hình chữ nhật region proposal
Mô hình kỹ thuật RPN vận hành với giả sử rằng xmin<xmaxvà ymin<ymaxvà các
giá trị x, y khi dự đoán nằm trong bức ảnh. RPN giải quyết vấn đề này bằng cách sử
dụng kỹ thuật anchor để biểu diễn region propsal. Thay vì dự đoán 2 góc, kỹ thuật
anchor dự đoán điểm trung tâm (xcenter, ycenter) và chiều rộng (width), chiều dài (height)
của hình chữ nhật. Như vậy, mỗi anchor được xác định bằng 4 tham số (xcenter, ycenter,
width, height). Do không sử dụng giải thuật tìm kiếm chọn lọc nên ban đầu RPN cần
xác định các anchor box có thể là regionproposal, sau đó RPN xử lý và output những
anchor box chắc chắn chứa đối tượng. Nhiệm vụ chính của RPN là lấy ra các region
proposal tương tự như cách giải thuật tìm kiếm chọn lọc thực hiện chứ không phải là
phân loại ảnh.
Mô hình RPN khá đơn giản, feature map được cho qua convolution layer 3×3,
512 lõi. Sau đó, với mỗi anchor lấy được ở trên, RPN thực hiện 2 bước:
1- dự đoán xem anchor chứa đối tượng (foreground) hay không chứa đối tượng
(background);
2- dự đoán 4 giá trị tham số (xcenter, ycenter, width, height) cho các anchor. Lưu ý
rằng có rất nhiều anchor bị chồng lên nhau nên kỹ thuật non-maxima suppression được
dùng để loại bỏ các anchor chồng lên nhau. Sau cùng, dựa vào phần trăm dự đoán
anchor không chứa đối tượng, RPN lấy 1 số lượng anchor để làm region proposal.
Hình 32: Hệ số IoU đánh giá bounding box dự đoán đối tượng khớp với ảnh thật
70
Ví dụ, trong RPN đầu tiên có khoảng 9000 anchor box (tập input), tuy nhiên,
output chỉ muốn giữ lại 100 anchor (tập ouput) làm region proposal. Kỹ thuật non-
maxima suppression thực hiện các bước sau:
(1) Chọn ra anchor box (A) là anchor chứa đối tượng có xác suất lớn nhất trong
tập input.
(2) Thêm A vào tập ouput.
(3) Loại bỏ A và các anchor box trong tập input mà có hệ số IoU (Intersection
over Union) với A lớn hơn 0.5 ra khỏi tập input.
(4) Kiểm tra nếu tập input rỗng hoặc tập output đủ 100 anchor thì dừng lại, nếu
không quay lại Bước 1.
IoU được sử dụng trong bài toán phát hiện đối tượng để đánh giá xem bounding
box dự đoán đối tượng khớp với khung ảnh thật (ground truth) của đối tượng như
Hình 26. Chỉ số IoU trong khoảng [0,1] và IoU càng gần 1 thì bounding box dự đoán
càng gần khung ảnh thật.
Hình 30 minh họa Faster R-CNN nhanh hơn hẳn các kỹ thuật R-CNN trước đó,
vì vậy có thể dùng cho phát hiện đối tượng trong thời gian thực.
Hình 33: So sánh thời gian phát hiện đối tượng so với các kỹ thuật khác
5.4.2.5. Thuật toán Single Shot Object Detectors (SSD) [1, 18-21]
Single shot detector là mô hình sử dụng mạng VGG16 để rút trích đặc trưng.
Mô hình như hình 34. Trong đó, những conv có màu xanh nước biển nhạt là những
custom convolution layter (ta có thể thêm bớt bao nhiêu tuỳ thích). Convolutional
filter layter (là cục màu xanh lá cây) có nhiệm vụ tổng hợp các thông tin lại để đưa
quyết định.
71
Hình 34: Mô hình sử dụng mạng VGG16
Khi sử dụng mô hình như hình 34, chúng ta thấy rằng các custom convolution
layter có nhiệm vụ làm giảm chiều và giảm độ phân giải của bức ảnh. Cho nên, mô
hình chỉ có khả năng nhận ra các đối tượng có kích thước lớn. Để giải quyết vấn đề
này, chúng ta sẽ sử dụng các object detector khác nhau trên mỗi feature maps (xem
output của mỗi custom convolution là một feature map).
Hình 35: Kết quả mô hình sử dụng mạng VGG16
Hình 36: Sơ đồ số chiều của các feature maps
SSD sử dụng các layter có kích thước giảm dần theo độ sâu để nhận dạng đối
tượng. Nhìn vào hình vẽ sơ đồ hình 37 của SSD, chúng ra dễ dàng nhận thấy rằng độ
phân giải giảm đáng kể qua mỗi layer và có lẽ (chắc chắn) sẽ bỏ sót những đối tượng
có kích thước nhỏ ở những lớp có độ phân giải thấp. Nếu trong dự án thực tế của bạn
có xảy ra vấn đề này, bạn nên tăng độ phân giải của ảnh đầu vào.
72
Hình 37: Sơ đồ áp dụng thuật toán SSD
5.4.2.6. Thuật toán You Only Look Once (YOLO) [18-21]
YOLO [19, 20, 21] là một mô hình CNN để phát hiện đối tượng với ưu điểm
nổi trội là nhanh hơn nhiều so với những mô hình trước, thậm chí, có thể vận hành tốt
trên những thiết bị IoT. Có 3 phiên bản YOLO v1, YOLO v2 và YOLO v3, trong đó
phiên bản cuối cùng chạy nhanh hơn nhưng phức tạp và khó sử dụng hơn. Đầu vào mô
hình là một bức ảnh, bài toán phát hiện đối tượng không chỉ phân loại được đối tượng
trên bức ảnh mà còn định vị được vị trí của đối tượng đó. Phát hiện đối tượng trong
thời gian thực có nhiều ứng dụng, ví dụ như hệ thống theo dõi đối tượng có thể giúp
hoạt động giám sát, hoặc hệ thống xe ô tô tự lái phải xác định được người đi đường ở
đâu để đưa ra quyết định di chuyển tiếp theo. Một trong những ưu điểm chính của
YOLO là chỉ sử dụng thông tin toàn bộ bức ảnh một lần và dự đoán toàn bộ hình chữ
nhật chứa các đối tượng. Mô hình được xây dựng theo kiểu end-to-end nên được huấn
luyện hoàn toàn bằng gradient descent [22].
Hệ thống lưới (grid system): ảnh được chia thành ma trận ô vuông 7×7, mỗi ô
vuông bao gồm một tập các thông tin mà mô hình phải dự đoán. Hình 38 là ví dụ.
Đối tượng duy nhất mà ô vuông đó chứa. Tâm của đối tượng cần xác định nằm
trong ô vuông nào thì ô vuông đó chứa đối tượng đó. Ví dụ tâm của cô gái nằm trong ô
vuông màu xanh, do đó mô hình phải dự đoán được nhãn của ô vuông đó là cô gái.
Lưu ý cho dù phần ảnh cô gái có nằm ở ô vuông khác mà tâm không thuộc ô vuông đó
thì vẫn không tính là chứa cô gái, ngoài ra, nếu có nhiều tâm nằm trong một ô vuông
thì chúng ta vẫn chỉ gán một nhãn cho ô vuông đó thôi. Chính ràng buộc mỗi ô vuông
chỉ chứa một đối tượng làm cho mô hình không thể phát hiện những đối tượng có tâm
nằm cùng một ô vuông. Tuy nhiên, việc tăng kích thước ô vuông từ 7×7 lên kích thước
lớn hơn có thể giúp phát hiện được nhiều đối tượng hơn. Ngoài ra, kích thước của ảnh
đầu vào phải là bội số của kích thước ô vuông.
73
Mỗi ô vuông chịu trách nhiệm dự đoán 2 boundary box của đối tượng. Mỗi
boundary box dự đoán có chứa đối tượng hay không và thông tin vị trí của boundary
box gồm trung tâm boundary box của đối tượng và chiều dài, rộng của boundary box
đó. Ví vụ ô vuông màu xanh cần dự đoán 2 boundary box chứa cô gái như hình 31.
Một điều cần lưu ý, việc cài đặt không dự đoán giá trị điểm ảnh mà cần phải chuẩn hóa
kích thước ảnh về đoạn từ [0,1] và dự đoán độ lệch của tâm đối tượng đến hình chữ
nhật chứa đối tượng đó. Ví dụ, thay vì dự đoán vị trí điểm ảnh của điểm màu đỏ, thì
cần dự đoán độ lệch a, b trong ô vuông chứa tâm đối tượng.
Hình 38: Chia ảnh thành ma trận ô vuông
Như vậy, mỗi ô vuông có thể dự đoán các thông tin sau: ô vuông có chứa đối
tượng nào hay không chứa đối tượng, độ lệch 2 hình chữ nhật chứa đối tượng so với ô
vuông hiện tại và lớp của đối tượng. Mỗi ô vuông cần một vectơ có số chiều đủ lớn để
dự đoán các thông tin.
Sử dụng CNN kết hợp YOLO: thông tin dự đoán đã được xác định đối với mỗi
ô vuông, vấn đề còn lại là xây dựng mô hình CNN cho ra ouput với kích thước phù
hợp, nghĩa là kích thước ô vuông × kích thước ô vuông × số chiều, ví dụ với kích
thước ô vuông là 7×7, mỗi ô vuông dự đoán 2 hình chữ nhật, và có 3 loại đối tượng thì
output là 7×7×13 từ mô hình CNN (2+2x4+3=13).
YOLO sử dụng hồi quy tuyến tính (linear regression) để dự đoán các thông tin
ở mỗi ô vuông. Do đó, layer cuối cùng không sử dụng bất kỳ hàm kích hoạt. Ví dụ, với
ảnh input có kích thước 448×448, mô hình CNN có 6 lớp max pooling với kích thước
74
2×2 sẽ giảm 64 lần kích thước ảnh xuống còn 7×7 ở output đầu ra. Đồng thời, thay vì
sử dụng lớp kết nối đầy đủ ở các layer cuối cùng, có thể thay thế bằng lớp 1×1
convolution với 13 feature map để output cho ra 7×7×13.
Hàm sai số (loss function): YOLO sử dụng hàm sai số bình phương giữa dự
đoán và kết quả thực để tính sai số cho mô hình. Cụ thể, sai số tổng là tổng của 3 sai số
cục bộ sau:
(1) Sai số của dự đoán loại đối tượng, hay sai số phân loại (classifycation loss).
(2) Sai số của dự đoán tọa độ và chiều dài, rộng của boundary box, hay sai số vị
trí (localization loss).
(3) Sai số của ô vuông có chứa đối tượng hay không có đối tượng, sai số lựa
chọn (confidenceloss).
Trong quá trình huấn luyện, mô hình nhìn vào những ô vuông có chứa đối
tượng, tăng điểm phân loại lớp đúng của đối tượng đó lên. Tìm boundary box tốt nhất
trong 2 hình chữ nhật được dự đoán, tăng điểm vị trí của boundary box đó lên, thay đổi
thông tin boundary box để gần đúng với kết quả thực. Đối với những ô vuông không
chứa đối tượng, giảm điểm lựa chọn và không quan tâm đến điểm phân loại và điểm vị
trí của những ô vuông này.
Sai số phân loại (classification loss) được tính cho những ô vuông được gán giá
trị là có đối tượng. Sai số phân loại tại những ô vuông đó được tính bằng sai số bình
phương giữa giá trị được dự đoán và giá trị đúng của nó.
Trong đó, obj
iI = 1 nếu ô vuông đang xét có đối tượng và ngược lại = 0, ˆ ( )ip c
là
xác suất có điều kiện của lớp c tại ô vuông tương ứng mà mô hình dự đoán
Hình 39: Sai số phân loại
75
Hình 39 minh họa 2 đối tượng tại ô vuông (dòng, cột) là (2,1) và (3,4), chứa đối
tượng là hình tam giác và hình tức giác đều. Sai số phân loại chỉ tính cho 2 đối tượng
này mà ko quan tâm đến những ô vuông khác.
Sai số vị trí (localization loss) dùng để tính giá trị sai số cho boundary box
được dự đoán bao gồm offset x, y và width, height so với giá trị đúng. Giá trị sai số
này không thể tính toán trực tiếp trên kích thước của ảnh mà cần chuẩn dưới kính
thước ảnh về đoạn [0,1] đối với tọa độ điểm tâm, và không dự đoán trực tiếp điểm tâm
mà phải dự đoán giá trị lệch offset x, y so với ô vuông tương ứng. Việc chuẩn hóa kích
thước ảnh và dự đoán offset làm cho mô hình nhanh hội tụ hơn so với việc dự đoán giá
trị mặc định.
Sai số vị trí được tính bằng tổng sai số bình phương của offsetx, offsety và
width, height trên tất cả các ô vuông có chứa đối tượng. Mỗi ô vuông đúng chọn 1
boundary box có IoU tốt nhất, sau đó tính sai số theo các boundary box này. Hình 32
minh họa 4 boundary box tại ô vuông đúng có viền màu đỏ, chọn 1 box tại mỗi ô
vuông để tính sai số, bỏ qua box xanh. Sai số vị trí là sai số quan trọng và có trọng số
cao hơn sai số khác.
Sai số lựa chọn (confidence loss) thể hiện sai số giữa dự đoán boundary box
chứa đối tượng so với giá trị đúng tại ô vuông tương ứng. Sai số này tính trên cả
những ô vuông chứa đối tượng và không chứa đối tượng. Nhưng, sai số tại ô vuông
chứa đối tượng quan trọng hơn là sai số tại ô vuông không chứa đối tượng, do vậy hệ
số lambda được sử dụng để cân bằng.
Tổng sai số của mô hình là tổng của 3 loại sai số:
5.4.3. Nhận xét, đánh giá và lựa chọn kỹ thuật áp dụng cho bài toán nhận
dạng phân loại đối tượng
76
Việc áp dụng công nghệ mạng nơ-ron tích chập trong trí tuệ nhân tạo (AI) để
nhận dạng và phân loại các đối tương được hỗ trợ trong bộ thư viện chương trình
OpenCV chủ yếu tập trung 3 kỹ thuật chính đó là:
(1) Thuật toán áp dụng mạng nơ-ron tích chập CNN và các biến thể của mạng
nơ-ron tích chập, bao gồm R-CNN, Fast R-CNN và Faster R – CNN.
(2) Thuật toán Single Shot Object Detectors (SSD).
(3) Thuật toán You Only Look Once (YOLO).
Đối với R-CNN là một trong những kỹ thuật dò tìm đối tượng dựa trên giải
thuật học sâu đầu tiên và là một ví dụ về kỹ thuật dò tìm đối tượng theo phương pháp
hai giai đoạn cụ thể đó là:
Giai đoạn 1: R-CNN bản đầu tiên chủ yếu hỗ trợ tính năng phát hiện đối tượng
và phân đoạn ngữ nghĩa (2013 của Girshick et al). Bản nâng cấp sau đó xử lý nhằm
phát hiện đối tượng theo yêu cầu thông qua thuật toán tìm kiếm chọn lọc (hoặc tương
đương) cụ thể để xác định và đề xuất các hộp giới hạn có thể chứa các đối tượng. Từ
đó, thực hiện thao tác chuyển các vùng phát hiện vào CNN để phân loại thông qua kỹ
thuật dò tìm đối tượng dựa trên giải thuật học sâu.
Vì vậy, Đối với bản đầu tiên của thuật toán R-CNN tiêu chuẩn là rất chậm và
đối tượng dò tìm chưa chính xác cao.
Giai đoạn 2: Năm 2015, tác giả Girshick et al cho xuất bản một bài báo có tựa
đề Fast R- CNN. Từ đó, thuật toán Fast R-CNN đã tạo ra những cải tiến đáng kể so với
phiên bản R-CNN ban đầu. Cụ thể là tăng độ chính xác và giảm thời gian cần thiết để
thực hiện chuyển tiếp. Tuy nhiên, thuật toán vẫn cần phài các thuật toán khác xử lý
khu vực bên ngoài đối tượng.
Do đó, Girshick Girshick et al và cộng sự cũng đã đề xuất thuật toán Faster R
–CNN đây là thuật toán tìm kiếm vị trí của vật thể trong ảnh và xử lý theo hướng phát
hiện đối tượng theo thời gian thực Từ đó, R-CNN đã trở thành một trình phát hiện đối
tượng bằng giải thuật học sâu và loại bỏ yêu cầu tìm kiếm có chọn lọc và thay vào đó
dựa vào mô hình mạng RPN đó là:
a) Tích chập hoàn toàn.
b) Có thể dự đoán các hộp giới hạn đối tượng và điểm số của đối tượng xác
định (nghĩa là điểm số định lượng khả năng đó trong khu vực của một hình ảnh có thể
77
chứa một hình ảnh). Đầu ra của mô hình mạng RPN tích hợp, được chuyển sang thành
phần R-CNN để phân loại và ghi gắn nhãn cuối cùng.
Theo đánh giá, R-CNN là thuật toán xử lý có độ chính xác rất cao, nhưng
ngược lại thì tốc độ xử lý chậm (chỉ đạt 5 FPS trên GPU).
Vì vậy, để giải quyết bài toán về tốc độ xử lý trên GPU và giúp làm tăng tốc độ
của các máy dò tìm đối tượng dựa trên giải thuật học sâu (deep learniing) có kết hợp
hỗ trợ giữa SSD và YOLO cho phát hiện đối tượng theo phương pháp một giai đoạn.
Trong khi SSD là giải thuật có thời gian thực hiện ngắn nhất, cho kết quả thấp nhất.
Ngược lại Yolo vừa đảm bảo về tốc độ xử lý vừa đảm bảo về độ chính xác và đáp ứng
nhu cầu ứng dụng thực tế.
78
Chương 2. Tổng quan về giao thông
1. Các khái niệm
1.1. Giao thông
Giao thông là tất cả các hoạt động, hình thức di chuyển, đi lại được thực hiện
một cách công khai.
1.2. Đối tượng tham gia giao thông
Đối tượng tham gia hoạt động giao thông là người đi bộ, người điều khiển
phương tiện xe cơ giới, các phương tiện tham gia giao thông, xe máy, ô tô, tàu điện
ngầm hay các phương tiện giao thông công cộng, xe dùng sức kéo…hình thức tham
gia giao thông có thể là đơn lẻ hay cùng lúc.
2. Tổng quan về thực trạng giao thông
Đã từ rất lâu rồi, tình trạng giao thông tại Việt Nam, đặc biệt là tại các thành
phố lớn như Hà Nội hay Hồ Chí Minh, ùn tắc giao thông luôn là vấn đề nhức nhối đối
với người dân sinh sống trong khu vực đó.
Ngày nay, tình trạng ùn tắc giao thông, tai nạn giao thông lại càng trở lên
nghiêm trọng hơn. Với việc chuyển hướng từ một đất nước có nền kình tế kế hoạch
hóa tập trung sang một nền kinh tế thị trường tạo điều kiện phát triển mạnh cho nền
kinh tế Việt Nam. Kinh tế phát triển, đời sống người dân được nâng cao kèm theo đó
là những vấn đề niên quan đến giao thông đường bộ, ùn tắc, tai nạn giao thông mà ít ai
nhận ra mối liên hệ giữa chúng. Đã có rất nhiều chỉ thị, chiến dịch được Bộ Giao
thông vận tải đề ra nhưng sẽ là không triệt để. Để nói đến nguyên nhân dẫn đến tình
trạng giao thông Việt Nam như hiện nay thì có nhiều phức tạp. Không tuân thủ luật
giao thông, do sự tăng nên một cách chóng mặt của các phương tiện xe cơ giới, ý
thức, văn hóa giao thông, kỹ năng tham gia giao thông của người dân là chưa cao,
thậm chí là do chất lượng các công trình giao thông không được tốt chứ chưa nói đến
là tồi tệ.
Hình 40: Hình ảnh mô tả phương tiện và người tham gia giao thông
79
Việc lấn chiếm vỉa hè, lòng đường làm điểm kinh doanh hoàng hóa, dịch vụ
khiến làm hạn chế tầm nhìn của người tham gia giao thông, diện tích lòng đường giảm,
người đi bộ không có vỉa hè đề tham gia giao thông bắt buộc họ phải đi dưới lòng
đường
Việc đặt quá nhiều các biển báo cấm, các biển báo hiệu giao thông trên cùng
một đoạn đường liệu có hiệu quả hay không hay nó còn đi ngược lại với những gì nó
muốn. Người điều khiển xe quá tập trung vào hệ thống biển báo giao thông để tránh bị
phạt…sẽ khiến họ mất đi sự tập trung khi lái xe.
Ngoài ra, việc người dân đua nhau bám đường cũng là một điều cần quan tâm.
Đất mặt đường bao giờ cũng có giá trị cao hơn. Bởi vậy là tại sao lại nói “ở đâu có
đường ở đó có nhà dân, nhà máy, xí nghiệp”. Họ coi việc bám đường là một lợi thế lớn
cho việc kinh doanh, di chuyển…khiến mật độ giao thông gần các tuyến đường trở lên
chật trội hơn.
Theo một số liệu thống kê khác, tình trạng không tuân thủ đúng luật giao thông
đường bộ ở Việt Nam thì có tời 90% người điều khiển xe cơ giới không biết cách,
không sử dụng đúng đèn chiếu xa, 85% sử dụng còi không đúng cách “còi một cách
điên đảo khi chờ đèn đỏ chẳng hạn”, 72% người tham gia giao thông không đội mũ
bảo hiểm trên các tuyến đường bắt buộc, 70% không có sử dụng phanh tay và có tới
50% không sử dụng đèn báo hiệu xin chuyển hướng khi có nhu cầu. Những trường
hợp này luôn tiềm ẩn các nguy cơ gây tại nạn giao thông. Ngoài ra còn tình trạng điều
khiển xe quá tốc độ, sử dụng rượu bia khi lái xe, vượt đèn đỏ…cũng là những nguyên
nhân xảy ra tai nạn giao thông mà các lực lượng chức năng rất khó để kiểm soát.
Hình 41: Hình ảnh mô tả tình trạng không tuân thủ Luật
80
Bà Rịa – Vũng Tàu được đánh giá là một trong những địa phương có kết cấu hạ
tầng giao thông hiện đại. Là đầu mối giao thông quan trọng với 3 tuyến quốc lộ chính
gồm QL51, QL55, QL56.
(1) Quốc lộ 51: là trục giao thông chính của vùng Kinh tế trọng điểm phía Nam,
nối liền 3 thành phố: TP. Hồ Chí Minh, TP. Biên Hòa và TP. Vũng Tàu, QL51 đạt tiêu
chuẩn đường cấp II đồng bằng với 04 làn xe cơ giới và 02 làn xe thô sơ, mới đây
QL51 được nâng cấp mở rộng lên 06 làn xe cơ giới và 02 làn xe hỗn hợp.
(2) Quốc lộ 55: Chạy từ TP. Bà Rịa đi TP. Phan Thiết nối với các tỉnh duyên
hải Đông Nam Bộ, có giá trị giao thông liên vùng, nối vùng Nam Trung Bộ với miền
Đông. QL55 đạt chuẩn đường cấp III và cấp IV đồng bằng với 02 làn xe hỗn hợp.
(3) Quốc lộ 56: Là trục đường giao thông nối TP. Bà Rịa tỉnh Bà Rịa – Vũng
Tàu và vùng kinh tế trọng điểm phía Nam với Tây Nguyên. Từ QL56 có thể đi thẳng
qua TX. Long Khánh để đi TP. Đà Lạt. QL56 đạt tiêu chuẩn đường cấp III miền núi
với 02 làn xe hỗn hợp.
(4) Ngoài ra tỉnh Bà Rịa – Vũng Tàu có rất nhiều tuyến đường tỉnh như: Đường
tỉnh 991C từ xã Hòa Long, TP. Bà Rịa đến xã Phước Tân, huyện Xuyên Mộc; Đường
tỉnh 992 nối phường Long Hương, TP. Bà Rịa đến xã Châu Pha, TX. Phú Mỹ; Đường
tỉnh 995A từ TP. Bà Rịa đi Long Hải, Long Điền; Đường tỉnh 995B từ TP. Bà Rịa đi
Phước Hải, Đất Đỏ; Đường tỉnh 995C từ TP. Bà Rịa qua Long Điền đi Châu Đức.
(5) Theo số liệu báo cáo từ Ban An toàn giao thông tỉnh Bà Rịa - Vũng Tàu,
năm 2019 toàn tỉnh xảy ra 759 vụ TNGT, làm chết 245 người và 857 người bị thương.
So với năm 2016, TNGT giảm 37 vụ, giảm 20 người chết và giảm 49 người bị thương.
6 tháng đầu năm 2020, toàn tỉnh xảy ra 91 vụ tai nạn giao thông (TNGT), làm chết 36
người, làm bị thương 94 người. Riêng trong bảy ngày nghỉ Tết Mậu Tuất, xảy ra mười
vụ TNGT, làm chết mười người, bị thương mười người. Địa bàn xảy ra tai nạn giao
thông nhiều tập trung chủ yếu thành phố Vũng Tàu, thị xã Phú Mỹ và các huyện Châu
Đức, Xuyên Mộc.
Nguyên nhân chủ yếu của các vụ TNGT được các cơ quan chức năng xác định
là do người điều khiển phương tiện chạy quá tốc độ; đi không đúng phần đường;
chuyển hướng không quan sát; sau khi uống rượu, bia vẫn lái xe; không nhường
đường…
81
Tuy số vụ TNGT, số người chết và bị thương đều giảm so với cùng kỳ nhưng
con số thống kê cho thấy vẫn ở mức cao và tiềm ẩn diễn biến phức tạp. Tình trạng một
bộ phận người tham gia giao thông chưa ý thức trong việc chấp hành pháp luật giao
thông đường bộ, còn đối phó, chưa tự giác, vi phạm về trật tự-an toàn giao thông (TT-
ATGT) vẫn còn phổ biến, nhất là các hành vi như: chạy quá tốc độ, người uống rượu,
bia điều khiển phương tiện, lưu thông sai phần đường, chở quá tải - quá khổ, quá số
lượng người quy định… Trên các tuyến đường nội đô, liên huyện hay quốc lộ tại Bà
Rịa - Vũng Tàu, nhất là ở những khu vực tập trung đông dân cư, trường học, hay các
khu công nghiệp, tình trạng vi phạm TT-ATGT diễn ra phổ biến [1].
3. Phương pháp phát hiện, nhận dạng đối tượng tham gia giao thông [1, 29-30]
3.1. Nhận dạng phân loại đối tượng tham gia giao thông
Phân loại đối tượng là quá trình phân lớp đối tượng chuyển động thuộc lớp sự
vật nào (ô tô, xe máy, xe lam, xe đạp, người đi bộ, các vật thể,…). Các vùng chuyển
động phát hiện được (trong bước phát hiện đối tượng chuyển động) trong hình ảnh
tương ứng với các đối tượng khác nhau như người bộ hành, phương tiện giao thông,
các vật thể, … Nhận biết kiểu (loại) của một đối tượng phát hiện được để theo dõi tin
cậy và phân tích hành động của nó một cách chính xác là rất quan trọng. Có 2 cách
tiếp cận phổ biến:
(1) Phương pháp dựa trên hình dạng (shape).
(2) Phương pháp dựa trên sự chuyển động (motion).
Các phương pháp dựa trên hình dạng sử dụng thông tin không gian hai chiều
của đối tượng, trong khi đó các phương pháp dựa trên sự chuyển động sử dụng các đặc
trưng thuộc thời gian đã được theo dõi của các đối tượng cho giải pháp phân loại.
Loại 1: Phân loại dựa theo hình dạng
Các đặc trưng chung được sử dụng trong phân chia các đối tượng theo hình
dạng là tạo các hình chữ nhật bao quanh, tạo các vùng, hình chiếu và độ nghiêng của
các vùng chứa đối tượng được phát hiện.
Hướng tiếp cận này sử dụng độ dài các đường nét của hình chiếu và vùng thông
tin để phân loại các đối tượng đã được phát hiện. Phương pháp này phụ thuộc vào các
giả định, chẳng hạn như, nếu là con người, vật thể thì sẽ nhỏ hơn phương tiện và có
bóng phức tạp. Mức độ rải rác (dispersedness) được dùng như là một ma trận phân
82
loại và nó được định nghĩa trong các giới hạn của các vùng của đối tượng và độ dài
đường viền (chu vi) như sau:
Chu vi2 Mức độ rải rác =
Vùng
Phương pháp phân loại này phát triển bởi Collins sử dụng cách nhìn dựa theo
các đặc trưng của thị giác để huấn luyện một mạng nơ-ron các đối tượng phân loại
thừa nhận các lớp. Đầu vào của mạng nơ-ron là mức độ rải rác, các miền, tỉ lệ tương
quan của các vùng đối tượng và độ phóng đại của các thiết bị ghi hình. Cũng như
phương pháp trước, việc phân loại được thực hiện trên mỗi frame và các kết quả được
đưa vào biểu đồ để duy trì sự phân loại theo thời gian.
Loại 2: Phương pháp dựa theo chuyển động
Một số phương pháp chỉ sử dụng các đặc trưng chuyển động theo thời gian của
các đối tượng để thừa nhận các lớp của chúng. Một cách tổng quát, chúng được dùng
để phân biệt các đối tượng cứng (như phương tiện giao thông) và không cứng (như
người, vật thể). Phương pháp này dựa trên cơ sở tính chất đặc biệt theo thời gian của 9
các đối tượng chuyển động. Với đối tượng được đưa ra ở chu kỳ chuyển động, đặc tính
của nó đo được cũng như hiển thị một chu kỳ chuyển động.
Phương pháp này khai thác đầu mối này để phân loại các đối tượng chuyển
động sử dụng chu kỳ. Phân tích luồng quang học (optical flow) cũng là hữu ích để
phân biệt các đối tượng “cứng” và đối tượng “mềm”. A.J. Lipton trình bày một
phương pháp được sử dụng phân tích optical flow cục bộ của các vùng đối tượng đã
được phát hiện. Nó được mong đợi cho các đối tượng mềm như là con người và sẽ đưa
ra giá trị flow trung bình, còn các đối tượng cứng như là phương tiện giao thông sẽ
được đưa ra giá trị flow nhỏ. Cũng vậy, phần còn lại trong chuyển động phát sinh của
con người sẽ có chu kỳ. Bằng cách sử dụng gợi ý này, chuyển động của con người và
cả con người có thể được phân biệt với vật thể, các đối tượng khác như là phương tiện
giao thông.
3.2 Khái niệm về hệ thống nhận dạng biển số xe
3.2.1 Khái niệm
Hệ thống nhận dạng biển số xe là hệ thống có khả năng phân tích hình ảnh và
xác định vùng chứa biển số trên xe, thông qua video, thiết bị ghi hình và hình ảnh.
83
3.2.2 Lịch sử và phát triển
Năm 1992, công nghệ ALPR (Automatic License Plate Number) hay còn gọi là
tự động nhận dạng biển số xe, được phát triển tại Đại học Cambridge ở Vương quốc
Anh để ứng phó với chủ nghĩa khủng bố. Đến năm 1996, công nghệ ALPR đã được
hoàn thiện tại mỗi cổng phía tây Vương quốc Anh để đọc tất cả các biển đăng ký xe từ
Ireland. Công nghệ ALPR tiếp tục được nghiên cứu và phát triển tại Anh. Kể từ tháng
ba năm 2006, hầu hết các con đường, các trung tâm thị trấn, cảng, trạm xăng của
London đã được lắp đặt camera chạy phần mềm ALPR.
Trên thế giới hiện nay, bài toán nhận dạng biển số xe được nghiên cứu và phát triển
một cách sâu rộng. Nhiều tác giả với các công trình nghiên cứu được công bố với tỉ lệ
nhận dạng ngày càng chính xác. Một số bài báo cáo nghiên cứu của các tác giả tiêu
biểu trong vài năm trở lại đây như:
Chirag N. Paunwala, 2010 với nội dung: rút trích vùng số xe trong ảnh. Ảnh
đầu vào được tiền xử lý bằng cách phương pháp nâng cao chất lượng ảnh, sau đó tìm
biên bằng Vertical Edge và xử lý một lần nữa bằng Opening và Closing. Các vùng ứng
viên sau đó được kiểm tra bằng thuật toán scan theo dòng để tìm được vùng chứa biển
số xe chính xác. Kết quả nhận dạng 750 ảnh trong các điều kiện khác nhau cho tỉ lệ
742/750 = 99.2.
Choo Kar Soon, 2012 với nội dung: nhận dạng biển số xe tại Malaysia, sử dụng
giải thuật Adaboots để training tập dữ liệu gồm gần 100 ảnh biển số. Các ký tự được
nhận dạng bằng phương pháp KNN. Kết quả nhận dạng biển số 98% và nhận dạng ký
tự 95% trên ảnh tĩnh.
Báo cáo này nghiên cứu cách nhận dạng biển số xe với sự kết hợp của phép
biến đổi Hough và giải thuật tìm Contour để cải thiện kết quả phát hiện. Vùng các ứng
viên sau đó tiếp tục được scan theo dòng để đếm số đối tượng bị cắt và so sánh với
ngưỡng, nhằm tìm ra vùng ứng viên thõa mãn. Kết quả nhận dạng đạt 98-99%.
Phần mềm nhận dạng biển số xe, đã được ứng dụng thực tế tại các trạm cân,
trạm gửi xe, các trụ đèn giao thông để phát hiện xe vi phạm.
3.2.3. Cách thức hoạt động của hệ thống nhận dạng biển số xe
Hệ thống ALPR (Automatic License Plate Recognition) gồm phần cứng và
phần mềm, trong đó phần cứng là camera thu nhận ảnh xe và phần mềm có chức năng
nhận dạng biển số xe từ ảnh chụp của camera. Camera thu nhận ảnh được đặt tại một
84
vị trí cố định sao cho có thể quét được hình ảnh xe một cách rõ ràng và chụp lại hình
ảnh đối tượng xe có chứa biển số. Ảnh này được đưa vào phần mềm nhận dạng để
trích ra chính xác biển số xe có trong ảnh, sau đó một thuật toán OCR (Optical
Character Recognition) được sử dụng để lấy từng ký tự và chuyển đổi thành định dạng
mà máy tính có thể phân biệt được các chữ và số như dạng text…Cùng với sự phát
triển của công nghệ, camera ngày nay đã có thể chụp một cách rõ nét trong điều kiện
xe chạy với tốc độ cao như ở các đường cao tốc.
Không có một hệ thống ALPR nào có thể nhận dạng chính xác 100%. Điều đó
phụ thuộc vào nhiều yếu tố như thời tiết, độ sáng, góc của camera tới xe,…Một số yếu
tố ảnh hưởng đến độ chính xác của hệ thống là:
(1) Độ phân giải của ảnh kém hoặc ảnh bị mờ.
(2) Điều kiện ánh sáng yếu, bị phản chiếu hoặc che bóng.
(3) Các đối tượng có dạng tương tự như biển số xe ở ngoại cảnh.
(4) Sự khác nhau về cấu trúc biển số xe của mỗi nước.
3.2.4. Phân loại các ứng dụng nhận dạng biển số xe
Có nhiều cách thức khác nhau để phân loại các ứng dụng nhận dạng biển số xe.
Một trong những cách đơn giản là phân loại ứng dụng nhận dạng biển số xe thông qua
mục đích sử dụng. Có thể chia ứng dụng nhận dạng biển số xe thành hai loại sau:
Loại 1: Giới hạn vùng nhìn
Đầu vào: Ảnh thu trực tiếp từ các thiết bị ghi nhận ảnh kỹ thuật số. Ảnh được
ghi nhận thường chỉ giới hạn trong vùng có biển số xe.
Nguyên lý hoạt động: Các phương tiện giao thông phải chạy với một tốc độ đủ chậm
để máy ghi nhận hình ảnh có thể thu được ảnh vùng biển số xe.
Ứng dụng: Những ứng dụng nhận dạng biển số xe loại này thường được dùng
tại các trạm kiểm soát, các trạm thu phí, các bãi gửi xe tự động, các trạm gác cổng.
Loại 2: Không giới hạn vùng nhìn
Đầu vào: Ảnh đầu vào thu được từ các thiết bị ghi hình tự động, không phụ
thuộc vào góc độ, các đối tượng xung quanh, ảnh không cần bắt buộc chỉ chụp vùng
chứa biển số xe, mà có thể ảnh tổng hợp như chứa thêm các đối tượng như người, cây
đường phố.., miễn là vùng biển số xe phải đủ rõ để có thể thực hiện nhận dạng được
ký tự trong vùng đó.
85
Nguyên lý hoạt động: Do đặc tính không giới hạn vùng nhìn mà ảnh đầu vào có
thể thu được từ một thiết bị ghi hình (camara, máy ảnh…). Và do đó, công việc đầu
tiên là dò tìm trong ảnh, để xác định đúng vùng nào là biển số xe. Sau đó, thực hiện
tách vùng và nhận dạng. Cuối cùng tùy thuộc vào mục đích sử dụng mà kết quả nhận
dạng được truyền đi hay lưu trữ để phục vụ nhu cầu của người dùng cuối.
Ứng dụng: Vì không phụ thuộc vào hình ảnh thu được nên có thể dùng ứng
dụng tại nhiều nơi như tại những nơi điều tiết giao thông, tại các vị trí nhạy cảm của
giao thông như ngã ba, ngã tư đường giao nhau. Phát hiện, nhận dạng hành vi vi phạm
an toàn giao thông.
3.2.5. Ứng dụng thực tiễn tại Việt Nam
Hệ thống nhận dạng biển số xe được xây dựng nhằm mục đích giám sát, kiểm
soát các phương tiện. Dưới đây chúng ta đề cập đến một số ứng dụng phổ biến đối với
hệ thống nhận dạng biển số xe:
(1) Thu phí giao thông: Lắp đặt hệ thống “Nhận dạng biển số xe” tại các trạm
thu phí nhằm hỗ trợ hoặc tự động hóa công tác thu phí.
(2) Kiểm soát xe tại các đường biên giới: Mỗi quốc gia đều có những quy định
riêng về biển số xe, để phục vụ cho công tác quản lý và phát hiện những phương tiện
giao thông (xe) vượt biên giới bất hợp pháp. Việc lắp hệ thống “Nhận dạng biển số xe”
tại các trạm kiểm soát sẽ góp phần hỗ trợ công tác kiểm tra và an ninh quốc gia.
(3) Các trạm gác cổng: Việc lắp đặt hệ thống “Nhận dạng biển số xe” sẽ hỗ trợ
hoặc tự động hóa công tác mở cổng cho xe vào. Ngoài ra, hệ thống còn được ứng dụng
vào công tác chống trộm xe, các bãi giữ xe tự động, điều tiết giao thông (chẳng hạn
như Thành phố Dublin đã ứng dụng công nghệ “Nhận dạng biển số xe tự động” trong
việc điều tiết giao thông theo dạng biển số chẵn/lẻ).
3.2.6. Phân loại biển số xe
3.2.6.1. Quy định về màu sắc và các ký tự trên biển số
(1) Biển trắng, biển vàng chữ đen dành cho dân sự.
(2) Màu trắng 2 chữ, 5 số là biển dành cho người nước ngoài.
(3) NG là xe ngoại giao.
(4) NN là xe của các tổ chức, cá nhân nước ngoài: Trong đó 3 số ở giữa là mã
quốc gia, 2 số tiếp theo là số thứ tự.
86
Ghi chú: Xe số 80 NG xxx-yy là biển cấp cho các đại sứ quán, thêm gạch đỏ ở giữa
và 2 số cuối là 01 là biển xe của tổng lãnh sự)
(5) Biển đỏ chữ trắng là dành cho quân đội.
Bảng 1: Quy định biển số cho quân đội
KÝ HIỆU TÊN ĐƠN VỊ
AT Binh đoàn 12
BB Bộ Binh
BH Binh chủng hóa học
BT Binh chủng thông tin liên lạc
HB Học viện lục quân
AT Binh đoàn 12
AD QĐ 4, Binh đoàn Cửu Long
BC Binh chủng công binh
BS Binh đoàn Trường Sơn
BP Bộ Tư lệnh biên phòng
HH Học viện quân y
AD QĐ 4, Binh đoàn Cửu Long
KA Quân khu 1
KC Quân khu 3
KV Quân khu 5
KK Quân khu 9
QH Quân chủng hải quân
TC Tổng cục chính trị
TK Tổng cục CN Quốc phong
TM Bộ tổng tham mưu
KB Quân khu 2
KD Quân khu 4
KP Quân khu 7
PP Các quân y viện
QK,QP QC phòng không không quân
TH Tổng cục hậu cần
TT Tổng cục kĩ thuật
VT Viettel
87
3.2.6.2 . Quy định về biển số cho các tỉnh thành
Bảng 2: Quy định biển số cho các tỉnh thành
STT ĐỊA DANH STT ĐỊA DANH STT ĐỊA DANH
11
12
14
15,16
17
18
19
21
22
23
24
25
26
27
Cao Bằng
Lạng Sơn
Quảng Ninh
Hải Phòng
Thái Bình
Nam định
Phú thọ
Yên bái
Tuyên quang
Hà giang
Lào cai
Lai châu
Sơn la
Điện biên
43
47
48
49
50-59
60-39
61
62
63
64
65
66
67
68
Đà Nẵng
Đắc Lắc
Đắc Nông
Lâm Đồng
TP.HCM
Đồng nai
Bình dương
Long an
Tiền giang
Vĩnh long
Cần thơ
Đồng tháp
An giang
Kiên giang
77
78
79
80
81
82
83
84
85
86
88
89
90
92
Bình Định
Phú Yên
Khánh Hòa
Các đơn vị TW
Gia Lai
Kon tum
Sóc trăng
Trà vinh
Ninh thuận
Bình thuận
Vĩnh phúc
Hưng yên
Hà nam
Quảng nam
28
29-32
33
34
35
36
37
38
Hòa bình
Hà nội
Hà tây
Hải dương
Ninh bình
Thanh hóa
Nghệ an
Hà tĩnh
69
70
71
72
73
74
75
76
Cà mau
Tây Ninh
Bến tre
BR-VT
Quảng bình
Quảng trị
Huế
Quảng ngãi
93
94
95
97
98
99
Bình phước
Bạc Liêu
Hậu giang
Bắc cạn
Bắc giang
Bắc ninh
(Các xe mang biển A: Xe của Công An - Cảnh Sát tương ứng với các tỉnh)
3.3. Phương pháp nhận dạng biển số xe từ ảnh chụp của thiết bị ghi hình
Có nhiều phương pháp để giải quyết vấn đề này nhưng đều quy về các phương
pháp chính sau đây:
- Phương pháp dùng chuyển đổi Hough: dựa vào đặc trưng cạnh biên trích
được, áp dụng các phương pháp xác định đường thẳng như phép biến đổi Hough để
phát hiện các cặp đường thẳng gần song song ghép thành một ảnh biển số. Giao điểm
của những đoạn thẳng này chính là vùng bao chứa biển số xe.
88
- Phương pháp hình thái học: dựa vào đặc trưng hình thái của biển số xe như
màu sắc, độ sáng, sự đối xứng… để xác định và trích ra ảnh biển số.
- Phương pháp khớp mẫu: xem biển số là một đối tượng có khung nền riêng và
sử dụng các cửa sổ dò để trích từng đối tượng đưa qua mạng noron (neural network),
trí tuệ nhân tạo (artificial intelligence) chẳng hạn để phân loại có phải là vùng biển số
hay không.
3.3.1. Phương pháp chuyển đổi Hough
Dò đặc trưng biên ngang, dọc: làm nổi bật các viền bao của tất cả các đối tượng
trong ảnh trong đó có viền bao biển số. Phương pháp sử dụng các bộ lọc gradient để
trích được các đặc trưng cạnh biên này. Nghiên cứu này sử dụng bộ lọc Sobel để tiến
hành dò. Dùng chuyển đổi Hough tìm các đoạn thẳng ngang dọc trên cở sở của ảnh nhị
phân biên cạnh thu được từ bước trên.
Tách các đoạn thẳng ngang, dọc có thể là cạnh của biển số.
Trích ứng viên biển số: thành lập các hình chữ nhật là ứng viên cho biển số với
tiêu chí cụ thể là các bộ 4 đoạn thẳng thu được sẽ qua đánh giá về kích thước, tỉ lệ
chiều rộng trên chiều cao so với một ngưỡng nào đó.
Ưu điểm: độ chính xác cao, không phụ thuộc vào màu sắc của biển số xe.
Nhược điểm: Độ phức tạp tính toán khá cao. Khi ảnh có thêm nhiêu đối tượng
khác thì khối lượng tính toán tăng lên rất nhiều do mục đích là phải xác định được
vùng con nào chứa biển số xe và phụ thuộc rất lớn vào bước trích đặc trưng biên cạnh
dẫn đến là các đoạn thẳng ứng viên thu được thường ngắn hơn nhiều so với chiều dọc
cũng như chiều ngang của biển số.
3.3.2. Phương pháp hình thái học
Nhóm tác giả Chirag N. Paunwala, 2012 đại diện cho phương pháp này, với kết
quả nhận dạng rất tốt 99.5%.
Nội dung của phương pháp: Dựa vào đặc trưng quan trọng là biển số xe máy có
độ sáng (tức mức xám khi chuyển bức ảnh về dạng xám) là tương đối khác so với các
vùng khác trong bức ảnh, cũng như sự phân bố mức xám là khá đồng đều trên biển số
và vì vậy khi được nhị phân hoá, vùng biển số là một đối tượng có đặc thù hình thái,
có thể phân biệt được với các vùng khác . Như vậy các bước thực hiện là:
(1) Xác định ngưỡng xám. Thực chất là không có phương pháp nào chọn cho
đúng ngưỡng xám để thực hiện. Thay vào đó, ngưỡng xám sẽ được quét trong một
89
khoảng nào đó. Thông qua lược đồ xám ta nhận thấy vùng biển số thường sẽ có độ
sáng tương đối lớn (từ 130-200EV) vì vậy ta sẽ xác định ngưỡng xám cần chọn sẽ
thuộc vùng này nhờ đó ta sẽ giảm được thời gian lặp tìm ngưỡng xám.
(2) Nhị phân hoá ảnh xám đầu vào với ngưỡng xám đã xác định.
(3) Lọc các nhiễu gây ảnh hưởng xấu tới đối tượng biển số.
(4) Gắn nhãn cho các đối tượng trong ảnh nhị phân thu được.
(5) Trích ra các đối tượng ứng viên biển số theo tiêu chí cụ thể của biển số xe
về chiều cao, chiều rộng, tỉ lệ các cạnh, diện tích, trọng tâm, số điểm cắt,…
Hình 42: Ảnh xám và lược đồ xám của ảnh
3.4. Phương pháp nhận dạng ký tự trong biển số xe
Phương pháp phổ biến nhất để nhận dạng ký tự là sử dụng mạng noron (hoặc
SVM, K-NN,…), tức là huấn luyện cho máy tính để nhận dạng các ký tự. Tuy nhiên
do số lượng ký tự trên biển số là không nhiều nên để đảm bảo tốc độ xử lý, chúng ta
cũng có thể sử dụng phương pháp Hình thái học để giải quyết khâu này bởi vì các ký
tự đều có những đặc điểm hình thái đặc biệt có thể phân biệt với nhau chẳng hạn như
“0” có lỗ trống ở giữa, “8” có 2 lỗ trống hay “X” đối xứng 2 trục dọc và ngang…Khâu
này được thực hiện trên cơ sở xây dựng cây nhị phân tối ưu của các đặc điểm hình thái
nên đảm bảo tính khoa học và tính chính xác cao. Thuật toán cơ bản của bước này như
sau:
- Quan sát chọn ra các đặc tính phân biệt ký tự để xây dựng ma trận đặc tính.
- Xây dựng cây nhị phân tối ưu từ ma trận đặc tính và tập ký tự thu được.
- Quan sát cây nhị phân, kiểm tra số đặc tính như vậy đã đủ để nhận dạng chưa,
thiếu (dư) thì phải bổ sung (bỏ đi) và quay lại bước đầu tiên.
- Tiến hành nhận dạng các ký tự trên cơ sở cây nhị phân tối ưu tìm được.
3.5. Một số đặc điểm để nhận dạng biển số xe tại Việt Nam
a) Tiêu chuẩn về kích thước (theo quy định của Bộ Giao thông vận tải):
90
Ở mỗi nước thường có tiêu chuẩn về kích thước nhất định. Đối với nước ta,
biển số xe qui định khá đồng đều cho mỗi loại xe, tỷ lệ chiều dài, rộng cho mỗi loại xe
là như nhau. Quy định về kích thước như sau:
(1) Biển ô tô:
- Chiều cao: 110 mm. Chiều rộng: 470 mm (biển dài).
- Chiều cao: 200 mm. Chiều rộng: 280 mm (biển vuông).
(2) Biển xe máy:
- Chiều cao: 140 mm. Chiều rộng: 190 mm.
Như vậy, tỉ lệ Chiều cao / Chiều rộng là:
- 0.18 < Chiều cao/Chiều rộng < 0.3 (biển số có 1 hàng).
- 0.6 < Chiều cao/Chiều rộng < 0.85 (biển số xe có 2 hàng).
Từ các đặc điểm này, ta có thể xác định được vùng nào có khả năng là biển số
theo ràng buộc về kích thước.
b) Tiêu chuẩn về ký tự:
Theo đo đạc trên biển số thực tế, mỗi ký tự thường có tỷ lệ kích thước về chiều
rộng, chiều cao tương ứng với chiều dài và rộng của biển số xe. Ví dụ, chiều cao của
mỗi ký tự luôn nhỏ hơn 85% chiều cao của biển số xe và luôn lớn hơn 60% chiều cao
của biến xe đối với biển số xe có một hàng, với biển số xe có hai hàng thì chiều cao
mỗi kí tự không quá 50% chiều cao của biển số xe. Chiều rộng của ký tự thường
không lớn hơn 20% chiều cao của mỗi ký tự. Mỗi ký tự của biển số xe được xem như
là một vùng liên thông con hay contour con (bao đóng). Do đó, chúng ta có thể đếm số
contours con thỏa mãn tính chất đó là ký tự. Ở nước ta chỉ có số ký tự trên mỗi biển số
xe nằm trong khoảng 6 đến 9 ký tự.
Từ những phân tích trên, có thể tóm tắt phương pháp thực hiện của chương
trình nhận dạng như sau:
Bước 1: Ảnh đầu vào là ảnh màu BGR, tiền xử lý bằng các thuật toán xử lý
ảnh.
Bước 2: Tìm các contour trên ảnh xe. (Mỗi contour là 1 vùng bao kín, do vùng
biển số là 1 vùng bao kín nên sẽ tương ứng với một contour).
Bước 3: Lọc các contour theo các tiêu chí như kích thước, góc, tỉ lệ, số kí tự,…
Bước 4: Xử lý kết quả đầu ra để lấy vùng biển số.
Bước 5: Tách ký tự trên vùng biển số tìm được.
91
Bước 6: Đưa tập ký tự đã tách vào mạng nơ-ron để nhận dạng.
Bước 7: Hiển thị kết quả lên giao diện chương trình.
92
Chương 3. Áp dụng Yolov3 cho bài toán phát hiện, nhận dạng đối tượng tham gia
giao thông vi phạm luật giao thông đường bộ
1. Kỹ thuật đề xuất áp dụng cho bài toán
Trí tuệ nhân tạo được ứng triển khai thí điểm tại Dự án giao thông thông minh
tại Bà Rịa - Vũng Tàu là công nghệ chủ chốt của công nghiệp 4.0 được nghiên cứu xây
dựng và làm chủ công nghệ. Đây là một Dự án sản xuất thử nghiệm (SXTN) cấp tỉnh
được triển khai áp dụng thí điểm tại 01 điểm giao lộ đường Huỳnh Minh Thạnh và
27/4 thị trấn Phước Bửu, huyện Xuyên Mộc đã và đang phát huy hiệu quả và độ chính
xác cao khi triển khai vào sử dụng thực tế tại Bà Rịa - Vũng Tàu. Điểm vượt trội của
công nghệ để nghiên cứu, thử nghiệm, nâng cấp và tinh chỉnh để phù hợp với tình hình
tham gia giao thông phức tạp, hỗn loạn như ở Bà Rịa – Vũng Tàu nói riêng, cả nước
nói chung. Luận văn áp dụng mạng nơ-ron tích chập (CNN) theo phương pháp nhìn
một lần (YOLO) có thể hoạt động theo thời gian thực với độ chính xác cao nhằm phát
hiện, nhận dạng và xử lý các hành vi vi phạm trật tự an toàn giao thông, góp phần
giảm thiểu ùn tắc, tai nạn cho người và phương tiện tham gia giao thông. Đồng thời
giúp công tác tuần tra kiểm soát trật tự, an ninh và phát hiện kịp thời, có chứng cứ
pháp lý về hình ảnh nhằm cung cấp cho lực lượng chức năng khi điều tra các vụ việc
xảy ra trên đường góp phần đảm bảo an ninh trật tự xã hội.
Trên cở sở đó, cá nhân đề xuất áp dụng công nghệ mạng nơ-ron tích chập
(CNN) theo phương pháp nhìn một lần (YOLO) nhằm nhận dạng và phân loại đối
tương chính cho bài toán được sử dụng kết hợp bộ công cụ thư viện mã nguồn mở
OPENCV, hỗ trợ bởi thư viện YOLO trên môi trường PYTHON và thiết bị ghi hình để
giai quyêt vân đê trên.
1.1. Kỹ thuật áp dụng mạng nơ-ron tích chập (Faster R-CNN)
Faster R-CNN là một thuật toán để tìm kiếm vị trí của vật thể trong ảnh. Thuật
toán này sẽ có đầu ra là những hình hộp, cùng với vật thể bên trong hộp đó là gì. Phiên
bản đầu tiên của Faster R-CNN là R-CNN với nguyên lý khá đơn giản. R-CNN sử
dụng một thuật toán (selective search) để đưa ra các đường viền bao quanh và nhãn
(tên gọi của vật thể bên trong hộp - bounding boxes) hay còn gọi vùng đề xuất (region
proposals) chứa các vùng có thể có vật thể ở trong. Tiếp theo RCNN sử dụng các
mạng đã được huấn luyện sẵn như Alex-net hoặc VGG-16 để tính toán (feed-forward)
đến các vùng (regions) thu được những đặc trưng trong ảnh (convolutional features)
93
của mỗi vùng (region), sau đó sử dụng kỹ thuật nhị phân (SVM) huấn luyện để xác
định được vật thể nào được chứa trong vùng đề xuất (region proposal). Để giảm độ lỗi
R-CNN sử dụng kỹ thuật (Linear Regression) để hiệu chỉnh các giá trị (vị trí các đỉnh)
của đối tượng trong vùng đề xuất.
Faster R-CNN sử dụng các mạng huấn luyện sẵn để tính toán (feed-forward)
trong các vùng đề xuất (region proposals), công việc này sẽ mất rất nhiều thời gian bởi
với mỗi ảnh đều sử dụng thuật toán (selective search) sẽ đưa ra kết quả là hàng nghìn
vùng đề xuất (region proposals). Từ đó, Faster R-CNN sử dụng mạng huấn luyện sẵn
để tính toán (feed-forward) một lần đối với ảnh gốc, sau đó thu được những đặc trưng
(convolutional features) của ảnh đó. Ví dụ với một hình ảnh có kích thước
600×600×3, ta sẽ thu được đặc trưng (convolutional features) với kích thước
37×37×512. Kích thước của đặc trưng (features) bị giảm nhỏ khoảng 16 lần. Faster R-
CNN dựa vào kích thước cùng vị trí của các vùng đề xuất (region proposals) đối với
ảnh gốc, ta sẽ tính toán được vị trí của những đặc trưng cụ thể trong vùng đề xuất.
Faster R-CNN sử dụng giá trị đặc trưng trong vùng đề xuất, ta dự đoán được vị trí các
đỉnh của đường viền bao quanh (bounding box) cũng như vật thể nằm trong đường
viền bao quanh đó là gì.
Đối với Faster R-CNN do chia sẻ tính toán giữa các vùng trong ảnh, tốc độ thực
thực thi của thuật toán đã được giảm từ 120 giây mỗi ảnh xuống 2 giây. Phần tính toán
gây ra nghẽn chính là phần đưa ra các vùng đề xuất (region proposal) đầu vào, chỉ có
thể thực thi tuần tự trên bộ xử lý (CPU).
Faster R-CNN không dùng thuật toán tìm kiếm vật thể trong ảnh (selective
search) để lấy ra các vùng đề xuất, từ đó có thêm một mạng CNN mới gọi là mạng đề
xuất khu vực (Region Proposal Network - RPN) để tìm trích xuất các đặc trưng từ
các vùng đề xuất để trả kết quả thông qua các đường viền bao quanh, sau đó gắn nhãn
cho đối tượng cần xem xét trong vùng đề xuất. Vì vậy sẽ giúp cải thiện hơn 10 lần về
tốc độ tính toán so với Faster R-CNN. Đối với mạng đề xuất khu vực (RPN) nhận đầu
vào là ảnh với kích thước bất kỳ và cho đầu ra là các vùng đề xuất (tập vị trí của các
hình chữ nhật có thể chứa vật thể), cùng với xác suất chứa vật thể của hình chữ nhật
tương ứng.
94
Hình 43: Kiến trúc Darknet-53
1.2. Kỹ thuật áp dụng nhìn một lần [32-34]
You Only Look Once – YOLO đó là thuật toán phat hiên đối tượng sử dụng các
tính năng được học sâu thông qua mạng nơ-ron tích chập nhằm phát hiện một đối
tượng.
Nhận dạng đối tượng giúp giảm công sức của con người trong nhiều lĩnh vực.
Trong lĩnh vực giao thông thông minh sử dụng YOLO phiên bản 3 để phát hiện đối
tượng là các phương tiện và người tham gia giao thông. Phiên bản này với darknet-53
bao gồm 53 lớp, là một mô hình mạnh để phát hiện đối tượng trong ảnh kể cả các đối
tượng nhỏ với độ chính xác cao.
Giải thuật YOLO thao tác bằng cách chia ảnh đầu vào bất kỳ thành hệ thống
lưới S × S. Mỗi ô lưới dự đoán số lượng “Khung ranh giới (Boundary Box)" cho một
đối tượng. Mỗi khung ranh giới gồm 5 giá trị: (x, y, w, h, confidence score).
Trong đó x, y là tọa độ đối tượng trong ảnh đầu vào, w và h lần lượt là chiều
rộng và chiều cao đối tượng “confidence score” là xác suất hộp chứa đối tượng và độ
chính xác của khung ranh giới. Hình 44 mô tả khung ranh giới xác định đối tượng
chim.
95
Hình 44: Khung ranh giới xác định đối tượng chim
Giải thuật YOLO phát hiện, định vị và phân loại đối tượng diễn là trong 1 lần
duy nhất. Do vậy, nên được áp dụng để phát hiện đối tượng thời gian thực. Hình 45
phân loại 3 đối tượng: cat, dog và duck
Hình 45: Phát hiện, định vị và phân loại nhiều đối tượng
You Only Look Once – YOLO có 3 phiên bản. Phiên bản đầu tiên (YOLOv1)
sử dụng kiến trúc Darknet được đào tạo trên tập ImageNet-1000. Kiến trúc này dẫn
đến những hạn chế như:
(1) Không thể tìm thấy các đối tượng nhỏ.
(2) Các đối tượng quá sát nhau.
(3) Không thể khái quát các đối tượng nếu hình ảnh có kích thước khác với hình
ảnh đào tạo.
Hình 46: YOLO phiên bản 1 có những hạn chế đối với phát hiện đối tượng nhỏ
96
Phiên bản thứ 2 của YOLO (YOLOv2) còn được gọi là YOLO9000 được cải
tiến tốt hơn, nhanh hơn, tiên tiến hơn để cạnh tranh với mô hình Faster R-CNN rất
mạnh ra đời với thời gian đó. Những cải tiến của YOLOv2 so với YOLOv1 đó là:
- Batch Normalization: chuẩn hóa hàng loạt ở các lớp tích chập, làm giảm sự
thay đổigiá trị trong các lớp ẩn, cải thiện tính ổn định của mạng lưới.
- Higher Resolution Classifier: kích thước đầu vào trong YOLOv2 đã được tăng
từ 224×224 lên 44×448. Việc tăng kích thước đầu vào của hình ảnh đã cải thiện hình
ảnh (độ chính xác trung bình trung bình) lên tới 4%.
- Anchor Boxes: một trong những thay đổi đáng chú ý nhất có thể nhìn thấy
trong YOLOv2 là giới thiệu các anchor box. YOLOv2 thực hiện phân loại và dự đoán
trong một khung duy nhất. Các anchor box này chịu trách nhiệm dự đoán boundary
box và các anchor box này được thiết kế cho một tập dữ liệu nhất định bằng cách sử
dụng thuật toán phân cụm (k-means clustering).
- Fine-Grained Features: một trong những hạn chế chính được đưa ra trong
YOLOv1 là phát hiện các vật thể nhỏ trên hình ảnh. Điều này đã được giải quyết trong
YOLOv2 bằng cách chia hình ảnh thành các ô lưới 13×13 nhỏ hơn so với phiên bản
trước đó. Điều này cho phép YOLOv2 xác định các đối tượng nhỏ hơn trong hình ảnh
và cũng hiệu quả với các đối tượng lớn hơn.
- Multi-Scale Training: trên YOLO v1 có một điểm yếu phát hiện các đối tượng
với các kích cỡ đầu vào khác nhau, nếu YOLO được đào tạo với các hình ảnh nhỏ của
một đối tượng cụ thể thì nó có vấn đề phát hiện cùng một đối tượng trên hình ảnh có
kích thước lớn hơn. Điều này đã được giải quyết rất tốt trong YOLOv2, nơi nó được
đào tạo với các hình ảnh ngẫu nhiên với các kích thước khác nhau trong khoảng từ
320×320 đến 608×608. Điều này cho phép mạng tìm hiểu và dự đoán các đối tượng từ
các kích thước đầu vào khác nhau với độ chính xác cao.
- Darknet 19: YOLOv2 sử dụng kiến trúc Darknet 19 với 19 lớp chập và 5 lớp
max-pooling và một lớp softmax cho việc phân loại đối tượng.
Điều đó chứng minh YOLOv2 đã cho thấy một sự cải tiến lớn trong việc phát
hiện các vật thể nhỏ hơn với độ chính xác cao hơn nhiềuso với phiên bản trước
(YOLOv1).
YOLO phiên bản mới nhất (YOLOv3) có tất cả những gì cần để phát hiện đối
tượng thời gian thực với độ chính xác cao. Cụ thể những cải tiến trong YOLOv3 đó là:
97
- Bounding Box Predictions: YOLOv3 cho điểm cho các đối tượng cho mỗi
boundarybox. Nó sử dụng hồi quy logistic để dự đoán điểm.
- Class Predictions: YOLOv3 sử dụng phân loại logistic cho mọi lớp thay vì
softmax đã được sử dụng trong YOLOv2 trước đó. Bằng cách làm như vậy YOLOv3
có thể có phân loại đa nhãn.
- Feature Pyramid Networks (FPN): YOLOv3 đưa ra các dự đoán tương tự như
FPN trong đó 3 dự đoán được thực hiện cho mọi vị trí hình ảnh đầu vào và các đặc
tính được trích xuất từ mỗi dự đoán. Bằng cách đó, YOLOv3 có khả năng tốt hơn ở
các kích thước đầu vào khác nhau.
- Darknet-53: YOLOv2 đã sử dụng Darknet-19 để trích xuất các đặc tính và
YOLOv3 sử dụng mạng Darknet-53 để trích xuất các đặc tính với 53 lớp chập. Nó sâu
hơn nhiều so với YOLOv2 và cũng có các kết nối tắt (shortcut connections). Darknet-
53 bao gồm chủ yếu các bộ lọc 3×3 và 1×1 với các kết nối tắt.
Hình 47: Kiến trúc Darknet-19
3. Mô hình và chức năng hệ thống đề xuất áp dụng cho bài toán
3.1 Địa điểm áp dụng thử nghiệm mô hình cho bài toán
Mô hình áp dụng thử nghiệm cho bài toán được lựa chọn xây dựng thí điểm cho
một ngã tư điểm giao lộ đường Huỳnh Minh Thạnh và đường 27/4 thị trấn Phước Bửu,
huyện Xuyên Mộc, tỉnh Bà Rịa - Vũng Tàu là cửa ngõ giao thông huyết mạch kết nối
98
giữa các địa phương trong tỉnh, cũng như ngoài tỉnh, và là một điểm giao lộ với mật độ
phương tiện tham gia giao thông cao, phức tạp và thường xuyên xảy ra tai nạn giao
thông.
3.2. Thiết kế mô hình lắp đặt hệ thống cho bài toán
Hình 48: Bản vẽ thiết kế mô hình lắp đặt hệ thống
3.3. Thiết kế hệ thống trụ đỡ
Kích thước trụ theo quy chuẩn kỹ thuật quy định Việt Nam. Trụ được mạ kẽm
nhúng nóng tránh tình trạng rỉ sét, sử dụng trụ tấm thép dày chắc chắn, tránh xe gây tai
nạn làm gãy, đổ. Với tình hình thực tế tiến hành lắp đặt 4 trụ đèn và đước lắp đặt cách
trụ đèn giao thông 5m.
- Thân trụ bát giác cao 6m
- Trụ thép tấm dày 5mm, đường kính chân D240 – Đỉnh D200
- Tay vươn thép dày 4mm, đường kính D120 – Đỉnh D100
- Hệ thống dùng cọc tiếp địa chống sét để hệ thống có thể hoạt động trong mọi
thời tiết mưa, bão.
- Tiến hành xây dựng trụ theo đúng thiết kế.
3.4. Hệ thống Camera
Vị trí camera phải đủ góc quay để có thể quan sát được tín hiệu đèn giao thông,
biển số xe, làn đường. để đảm bảo thiết kế và lắp đặt 4 Camera đảm ba3p thông số kỹ
thuật sau:
- Camera giám sát có độ phân giải cao đảm bảo ảnh chụp phương tiện vi phạm,
biển số xe vi phạm rõ nét để có thể tự động nhận dạng biển số xe vi phạm,
- Camera có trang bị đèn hồng ngoại để trong điều kiện thiếu ánh sáng, ngược
sáng vẫn quan sát rõ hình ảnh.
99
- Camera có khả năng bảo vệ chống bụi, nước để trong thời tiết mưa gió và bụi
camera không bị bám bẩn, nhòe vẫn đảm bảo được hình ảnh rõ nét.
- Camera có khả năng chống va đập nhằm tránh tình trạng phương tiện giao
thông va đập, đụng trúng cũng không gây ảnh hưởng tới camera.
3.5. Thiết kế mô hình kết nối hệ thống xử lý bài toán
Hình 49: Mô hình kết nối-truy xuất hệ thống
- Hệ thống hoạt động theo cơ chế sau: Các camera thực hiện giám sát liên tục
24/24 sau đó hình ảnh được đẩy lên hệ thống dữ liệu điện toán đám mây (Coud
Computing), tại đây hình ảnh được phân tích, xử lý:
+ Nhận dạng phương tiện tham gia giao thông.
+ Xác định các phương tiện vi phạm.
+ Phân tích và nhận dạng biển số của phương tiện vi phạm.
- Người dùng giám sát hệ thống thông qua các thiết bị di động hoặc máy tính,
tạo biên bản và in ấn các hình ảnh vi phạm khi cần.
Hình 50: Cấu trúc phần cứng cho hệ thống
100
Hình 51: Cấu trúc phần mềm xử lý cho hệ thống
- Các thành phần kết nối Trung tâm dữ liệu xử lý chính (DC) và Trung tâm dữ
liệu dự phòng (DR)
(1) Trung tâm dữ liệu xử lý chính - Data center (DC).
(2) Trung tâm dữ liệu dự phòng - Data Center Disaster Recovery (DR).
(3) Dữ liệu được đồng bộ giữa 2 site DC - DR bằng đường truyền tốc độ cao.
(4) Kết nối hệ thống WAN giữa 2 site DC – DR.
(5) Thiết bị và cấu hình hệ thống DR tương thích với thiết bị và cấu hình hệ
thống của DC.
(6) Đảm bảo khi Trung tâm dữ liệu xử lý chính có sự cố, Trung tâm dữ liệu dự
phòng sẵn sàng thay thế Trung tâm dữ liệu xử lý chính.
- Giải pháp khôi phục dữ liệu Disaster Recovery
(1) Trung tâm dữ liệu chính (Data center – DC): Bao gồm hệ thống các thiết bị
máy chủ, máy trạm, thiết bị lưu trữ – Backup, các thiết bị kết nối, kênh truyền dẫn Cáp
quang, hệ thống mạng LAN, SAN (Storage Area Network), v.v
(2) Trung tâm dữ liệu dự phòng thảm họa từ xa (Disaster Recovery – DR): Một
Data Center Disaster recovery từ xa với đầy đủ trang thiết bị như một hệ thống trung
tâm dữ liệu chính, sao lưu – Baclup, bảo vệ toàn bộ dữ liệu của hệ thống, duy trì tính
liên tục của hệ thống thông tin.
101
3.6. Sơ đồ tổng quan hệ thống áp dụng cho bài toán
Lưu đồ các bước cơ bản trong một hệ thống áp dụng cho bài toán
3.7. Hệ thống xử lý ảnh, phát hiện và nhận diện đối tượng
3.7.1. Quy trình xử lý ảnh áp dụng cho bài toán
Quá trình xử lý ảnh được xem như là quá trình thao tác ảnh đầu vào từ thiết bị
ghi hình nhằm tạo ra kết quả đầu ra theo mong muốn. Kết quả đầu ra của một quá trình
xử lý ảnh có thể là một hình ảnh tốt hơn hoặc nhận định đưa ra một kết luận nào đó
được thể hiện qua sơ đồ tổng thể của hệ thống.
3.7.1.1. Sơ đồ xử lý tổng quát
Tiền xử lý
dữ liệu đầu vào
Đào tạo mô hình
phát hiện, nhận dạng đối tượng
Phân loại đối tượng
qua ảnh
Phát hiện
hành vi vi
phạm
Trích xuất Video từ thiết bị camera giám sát
Đặt ID cho đối tượng
Cài đặt môi
trường hỗ trợ
Mô hình máy học kết học
giải thuật
YOLO
Theo dõi đối tượng xuất hiện
Định dạng và phân
vùng
Tổng hợp các lớp đối tượng vật
thể
Cài đặt các thông số cho mô
hình
Đọc hình ảnh từ Video
Xác định
hành vi vi
phạm
Huấn luện áp dụng
giải thuật
Phân loại đối tượng
Xác định đối
tượng vi
phạm
Thu nhận ảnh
(Scaner, Camera,..)
102
Quyết định
Lưu trữ
Lưu đồ các bước cơ bản trong một hệ thống áp dụng cho bài toán
3.7.1.2. Đặc tả lưu đồ xử lý ảnh của một hệ thống đề xuất
Bước 1: Thu nhận ảnh: Là quá trình tiếp nhận ảnh đầu vào thông qua các thiết
bị ghi hình trong hệ thống.
Bước 2: Tiền xử lý: Từ hình ảnh đầu vào thông qua quá trình thực hiện xử lý
hình ảnh nhằm nâng cao chất lượng hình ảnh như giảm nhiễu, phân vùng, tìm biên,…
Bước 3: Dự đoán: Sau công đoạn tiền xử lý để khắc phục một số lổi ảnh như
giản nhiễu, phân vùng, tìm biện từ đó hình ảnh được nâng cao chất lượng tốt hơn so
với hình ảnh lúc đầu vào. Từ đó thuật toán đưa ra dự đoán kết qủa cho bức ảnh để
chuyển tiếp vào công đoạn cho bước hậu xử lý và đưa ra quyết định.
Bước 4: Hậu xử lý: Là quá trình xử lý các kết quả của dự đoán để có thể lược
bỏ hoặc biến đổi các kết quả này phù hợp với các yêu cầu kỹ thuật cụ thể sử dụng
trong hệ quyết định.
Bước 5: Hệ quyết định và lưu trữ: Là công đoạn xử lý nhằm đưa ra quyết định
phân loại, phát hiện dựa trên dữ liệu đã được học.
Kết luận: Từ các cơ sở trên hệ thống đưa ra kết luận dựa vào quyết định của
khối quyết định. Tóm lại những vấn đề cơ bản trong hệ thống xử lý ảnh cần phải xem
xét, đề cập đến các yếu tố như: nắn chỉnh biến dạng; khử nhiễu; chỉnh số mức xám và
nén ảnh.
3.7.2. Quy trình phát hiện, nhận dạng và phân loại đối tượng
3.7.2.1. Đặc tả lưu đồ hệ thống
Các hệ thống phát hiện và nhận dạng đối tượng hiện nay thông thường được
tiến hành qua 3 bước xử lý chính trong một hệ thống đó là:
Bước 1: Sử dụng 1 mô hình hoặc 1 thuật toán để tạo ra các vùng ứng viên, các
khu vực quan tâm. Các vùng ứng viên này là 1 tập hợp lớn các hộp giới hạn để xác
định đối tượng.
Bước 2: Từ đó tiến hành việc trích xuất đặc trưng từ các hộp giới hạn tìm được,
chúng được đánh giá và xác định xem đối tượng nào có mặt trong hộp giới hạn đó hay
không.
Thu nhận ảnh
(Scanner, Camera,..)
Tiền xử
lý
Dự
đoán
Hậu xử
lý
Kết quả
103
Bước 3: Trong bước hậu xử lý cuối cùng, các hộp chồng chéo nhau được kết
hợp thành một hộp giới hạn thông qua việc áp dụng một số thuật toán như Non-
maximum suppression,…
3.7.2.2. Áp dụng thuật toán You Only Look Once – YOLO cho bài toán
phat hiên, phân loại đối tượng
Bước 1: Thu nhận hình ảnh từ các thiết bị ghi hình trong hệ thống (camera giao
thông) và thực hiện tiền xử lý dữ liệu đầu vào.
Bước 2: Sử dụng thuật toán phát hiện một lần (YOLOv3) đã được huấn luyện
(Deep learning) để phát hiện và trả về kết quả bao gồm hộp giới hạn và đối tượng xuất
hiện trong các hộp giới hạn đó.
Bước 3: Từ đó ta tiếp tục thực hiện quy trình hậu xử lý để loại bỏ các hộp
chồng chéo, theo dõi các phương tiện,…
Để đảm bảo kết quả xử lý cần điều kiện ràng buộc kèm theo như:
(1) Để thu được kết quả chính xác cao đòi hỏi việc thi công l;ắp đặt các thiết bị
ghi hình (camera giao thông) phải đặt ở vị trí phù hợp như giữa các làn xe để có góc
nhìn rộng tránh trường hợp các phương tiện bị che khuất và đảm bảo được vị trí ánh
sáng tốt.
(2) Đối với hệ thống xử lý trung tâm cần được hỗ trợ bởi các máy tính xử lý có
nhiều CPU hoặc GPU giúp cho việc phát hiện các phương tiện nhanh và chính xác
đảm bảo thời gian thực.
Kết luận:
YOLO (You only look once) là một mô hình học sâu dựa trên CNN để phát
hiện đối tượng. YOLO là một mô hình cân bằng nhằ đảm bảo được giữa tốc độ dự
đoán và độ chính xác so với các mô hình phát hiện đối tượng hiện đại như Faster
RCNN, SSD,… YOLO có thể hoạt động trên các thiết bị cấu hình thấp như Raspberry
Pi, NUC,… việc lựa chọn giải thuật YOLO là rất phù hợp cho các bài toán đòi hỏi tốc
độ xử lý theo thời gian thực như như trong đề xuất bài toán, giám sát giao thông, xe tự
lái, các hệ thống giám sát an ninh,...
Bên cạnh đó áp dụng giải thuật YOLOv3 cho bài toán phát hiện, nhận dạng
không chỉ xử lý việc phát hiện được đối tượng trong hình ảnh mà còn nhận dạng, phân
loại được đối tượng tham gia giao thông là người hay là xe..
3.7.2.3. Đặc tả lưu đồ xử lý các bước của giải thuật
104
Quyết định
Lưu trữ
Lưu đồ các bước nhận dạng đối tượng cho bài toán đề xuất
Dữ liệu đầu vào Áp dụng giải thuật YOLOv3 01 xe ô tô và 01 xe máy
Hình 52: Phát hiện đối tượng áp dụng giải thuật YOLOv3
3.7.2.4. Mô tả quy trình phát hiện và nhận dạng đối tượng
Mô hình hoạt động của YOLOv3 là chia ảnh thành nhiều box, mỗi box sẽ chịu
trách nhiệm xác định đối tượng có trong box đó. YOLO sử dụng toàn bộ thông tin của
bức ảnh và dự đoán toàn bộ các box chứa đối tượng. Như trong hình 40 bên dưới sẽ
được chia thành ma trận có kích thước 7x7, mỗi ô (cell) sẽ chứa thông tin về tọa độ và
kích thước của box, khả năng xuất hiện đối tượng của box và xác suất của các lớp có
thể xuất hiện trong box đó.
Hình 53: Các bước dự đoán áp dụng theo giải thuật YOLOv3
Mô hình hoạt động YOLOv3 còn được thực hiện với nhiều tỷ lệ khác nhau giúp
mô hình có thể phát hiện được các đối tượng có nhiều kích thước khác nhau như:
Thu nhận ảnh (Scaner,
camera,…)
Mô hình nhận
dạng
Kết quả
nhận dạng
105
Hình 54: Sơ đồ mô hình theo kến trúc áp dụng YOLOv3 theo tỷ lệ
Tại mỗi tỷ lệ mô hình sẽ cùng dự đoán các thông tin giống nhau sau đó sử dụng
thuật toán Non-Maximum Suppression(NMS) để xác kết quả cuối cùng áp dụng giải
thuật YOLOv3 với B là số box mà mỗi ô (cell) chịu trách nhiệm dự đoán
Hình 55: Kết quả dự đoán áp dụng giải thuật YOLOv3
Tóm lại: Họ các thuật toán về YOLO (You Only Look Once) nói chung và
thuật toán áp dụng YOLOv3 nói riêng cho bài toán đề xuất dùng để nhận dạng các đối
tượng, các vật thể theo thời gian thực.
3.7.2.5. Quy trình các bước triển khai mô hình thực hiện
106
Để triển khai việc cài đặt chương trình áp dụng các giải thuật cho bài toán phát
hiện, nhận dạng đảm bảo kết quả tất nhiên cần phải có môi trường, cụ thể là cài đặt bộ
mã nguồn thư viện hỗ trợ OpenCV cho hệ thống:
Bước 1: Tiến hành tạo môi trường và thực hiện cài đặt các thư viện cần thiết
liên quan cho hệ thống.
Bước 2: Thiết lập các tham số, hệ số cho các ngưỡng theo chương trình.
Bước 3: Tiến hành tải pretrained model và tiến hành cài đặt hệ thống theo mô
hình theo giải thuật YOLOv3 muốn chạy (Tải file .weights và file .cfg tương ứng; sau
đó thực hiện copy weights và file config vào thư mục tương ứng) và thực hiện thao tác
chạy chương trình đã mặc định.
Bước 4: Cho hiển thị giao diện kết nối mô hình theo giải thuật YOLOv3 đã mặc định.
Bước 5: Tổ chức huấn luyện theo phương pháp lựa chon và thiết lập các thông số liên quan.
Bước 6: Phát hiện, nhận dạng và phân loại xác định được đối tượng thông qua
giải thuật cho máy học (Deep learning) kết hợp giải thuật YOLOv3 với bộ dữ liệu
được huấn luyện nhiều đối tượng khác nhau.
Bước 7: Hiển thị kết quả phát hiện, nhận dạng và phân loại đối tượng thông qua
hình ảnh từ thiết bị ghi hình.
3.7.3. Quy trình phát hiện, nhận dạng biển số xe:
3.7.3.1. Đặc tả lưu đồ xử lý các bước của giải thuật:
Lưu trữ
Hệ quyết định
Lưu đồ các bước xử lý và nhận dạng
3.7.3.2. Quy trình các bước triển khai mô hình thực hiện
Bước 1: Thiết lập darknet và tiến hành Clone darknet cho máy.
Bước 2: Sửa tập tin (Makefile) trong hệ thống thư mục vừa clone về cho máy.
Bước 3: Thiết lập tập tin cho YOLO. Ví dụ: yolo-tinyv3-obj.cfg
Bước 4: Thiết lập và tạo tập tin như obj.names chứa tên của các class, sau đó
chuyển, lưu trong thư mục darknet/data.
CSDL đầu vào
Xử lý và áp dụng mô hình nhận
dạng
Kết quả nhận dạng
107
Bước 5: Thiết lập và tạo tập tin như obj.data, sau đó chuyển, lưu trong thư mục
darknet/data.
Bước 6: Đưa toàn bộ thư mục chứa ảnh và tập tin có chứa file annotation
chuyển vào thư mục darknet/data.
Bước 7: Download pre-trained weights của YOLO-Tinyv3 lưu trong thư mục
darknet.
Bước 8: Nén thư mục darknet thành file darknet.zip, sau đó đưa lên Google Drive.
108
Chương 4. Xây dựng chương trình thực nghiệm và đánh giá kết quả
1. Xây dựng chương trình thực nghiệm
1.1. Cài đặt chương trình chạy [35]
1.1.1 Cài đặt thư viện mã nguồn mở Opencv
OpenCV là một thư viện mã nguồn mở hàng đầu cho thị giác máy tính xử lý
ảnh và máy học, và các tính năng tăng tốc GPU trong hoạt động thời gian thực.
OpenCV được phát hành theo giấy phép BSD, do đó nó hoàn toàn miễn phí cho cả học
thuật và thương mại,. có các interface C++, C, Python, Java và hỗ trợ Windows,
Linux, Mac OS, iOS và Android. OpenCV được thiết kế để tính toán hiệu quả và với
sự tập trung nhiều vào các ứng dụng thời gian thực. Được viết bằng tối ưu hóa C/C++,
thư viện có thể tận dụng lợi thế của xử lý đa lõi.
1.1.2. Cài đặt thư viện CUDA
CUDA là từ viết tắt trong tiếng Anh của thuật ngữ Compute Unified Device
Architecture, tạm dịch là kiến trúc thiết bị hợp nhất cho tính toán và là một bộ công cụ
phát triển phần mềm dựa trên ngôn ngữ lập trình C, dựa trên kiến trúc điện toán GPU
của NVIDIA áp dụng cách tính toán song song sử dụng ngôn ngữ C/C++, Fortran,
Java, Python, v.v… sang dạng mã máy.
1.1.3. Cài đặt thư viện cuDNN
cuDNN hoặc thư viện Nvidia CUDA Deep Neural Network là một thư viện
tăng tốc GPU chuyên dành cho Deep Neural Network. cuDNN cung cấp các triển khai
được điều chỉnh cao cho các thói quen tiêu chuẩn như tích chập tiến và lùi, gộp chung,
chuẩn hóa và các lớp kích hoạt. Các nhà nghiên cứu sâu và các nhà phát triển khung
trên toàn thế giới dựa vào cuDNN để tăng tốc GPU hiệu suất cao và cho phép tập
trung vào việc đào tạo các neuron Network và phát triển các ứng dụng phần mềm thay
vì dành thời gian cho việc điều chỉnh hiệu suất GPU cấp thấp. cuDNN tăng tốc các
khung học sâu (Deep learning).
1.1.4. Mô tả cài đặt thư viện
Việc cài đặt cuDNN, CUDA, Opencv hỗ trợ môi trường linux, window. Với
môi trường window yêu cầu cài đặt darkflow, với linux yêu cầu cài đặt darknet. Trong
đó đối với bài toán lựa chọn giải thuật hỗ trợ YOLO yêu cầu cấu hình máy và sự tương
thích đồng bộ thiết bị.
109
Do vậy, nhằm thiết lập và cài đặc thiết bị đồng bộ tương thích cần sử dụng công
cụ Google Colab (máy ảo của google) với cách thức hoạt động theo mô hình Jupyter
notebook hỗ trợ Ram l2GB, Disk 312GB, GPU Tesla K80 hướng xử lý traning, bên
cạnh đó, colab là máy ảo đa môi trường phù hợp cho DarkNet và Darkflow.
1.2. Chạy chương trình
Bước 1: Tạo môi trường và thực hiện cài đặt các thư viện cần thiết
git clone https://github.com/detector.git
cd detector
pip install -r requirements.txt
Bước 2: Thiết lập các tham số, ngưỡng cho chương trình
#detector/yolo.py
...........
self.root_dir = '../models'
self.model_type = '' # model bạn muốn khơi chạy (yolov3, yolov3-tiny) mặc
định yolov3
self.label_file = '{}/config/coco.names'.format(self.root_dir)
self.weights_path = '{}/weights/yolov3{}.weights'.format(self.root_dir,
self.model_type)
self.config_path = '{}/config/yolov3{}.cfg'.format(self.root_dir,
self.model_type)
self.confidence = 0.5 # ngưỡng cho độ tin tưởng
self.threshold = 0.5 # ngưỡng cho thuật toán NMS
...........
Bước 3: Tải pretrained model và cấu trúc mô hình YOLO chạy. Tải
.weights và file .cfg tương ứng. Ta thực hiện copy weights và file config vào thư mục
tương ứng.
.
├── _models
│ ├──_config -> chứa file .cfg
110
│ └──_weights -> chứa file .weights
Bước 4: Thực hiện chạy chương trình
python main.py -v "Path video"
Bước 5: Phương pháp huấn luyện thông qua giải thuật YOLO sử nhằm đảm
bảo tốc độ xử lý và cân bằng được giữa độ chính xác và tốc độ. Các đối tượng là
phương tiện tham gia giao thông được thu thập thông qua giải thuật YOLO để phát
hiện, nhận dạng và phân loại.
1.3. Quy trình huấn luyện và nhận dạng đối tượng vật thể
Bước 1: Cho máy học thông qua bộ dữ liệu mẫu (500 hình) cho nhiều đối
tượng, với điều kiện môi trưởng thời tiết (mưa, nắng, sương mù,...) và thời gian (đêm,
ngày,...) nhằm huấn luyện xem xét, đánh giá kết quả nhận dạng và phân loại đối tượng
như sau:
111
112
Hình 56: Bộ dữ liệu gồm 22 hình ảnh trích xuất từ bộ dữ liệu mẫu
113
Từ bộ dữ liệu triển khai thực nghiệm được trích xuất đặc trưng theo đối tượng
áp dụng cho bài toán từ cho 22 hình ảnh được trích lộc theo điều kiện phù hợp cụ thể
theo hình 56 nhằm nhận dạng đối tượng vật thể phục vụ đánh giá kết quả.
Bước 2: Sử dụng thuật toán gán nhãn (tracking) nhằm hỗ trợ việc gán nhãn
theo 2 định dạng PASCAL VOC và YOLO với phần mở rộng file annotation tương
ứng là .xml và txt. Sau đó tiến hành khoanh vùng đối tượng mẫu và cho chạy huấn
luyện ta được kết quả tương ứng như sau:
114
115
Hình 57: Kết quả nhận dạng đối tượng tham gia giao thông được gán nhãn (tracking).
116
Bước 3: Tiến hành chạy giải thuật YOLOv3 áp dụng cho bài toán nhằm nhận
dạnh chính xác đối tượng tham gia giao thông và hiển thị cho kết quả
Đối
tượng
Số lượng
(bộ dữ liệu
mẫu 22
hình ảnh)
Nhận dạng đối tượng tham gia giao thông
Xe
đạp/
điện
Xe
máy
Xe ô
tô con
Xe tải Xe
bus
Người
đi bộ
Tỷ lệ
Xe
máy
185 180 97%
Xe ô
tô con
28 26 93%
Xe tải 6 5 83%
Xe
bus
1 1 100%
Người
đi bộ
4 4 100%
Xe
đạp/
điện
5 5 100%
Bảng 1: Kết quả nhận dạng các đối tượng, vật thể tham gia giao thông
Nhận xét và đánh giá kết quả: Kết quả nhận dạng đối tượng phương tiện xe
máy, xe ô tô và người đội mũ bảo hiểm là những đối tượng, vật thể được huấn luyện
khi tham gia giao thông cần phải nhận dạng trong bài toán đề xuất áp dụng thông qua
thiết bị ghi hình là camera đặt tại vị trí mô hình xây dựng chương trình thử nghiệm (dữ
liệu đầu vào video) với kết quả nhận được tương đối chính xác. Qua đó ta có thể thấy,
kết quả áp dụng giải thuật phát hiện và nhận dạng đối tượng cho bài toán là khá cao
trên cơ sở bộ dữ liệu hình ảnh mẫu đã được huấn luyện, một số đối tượng phương tiện
không nhận dạng được do không có trong tập dữ liệu huấn luyện hoặc do các tác động
khách quan như bị vật cản che khuất (trong ảnh dữ liệu đầu vào có xe máy bị che
khuất bởi xe ô tô nên không nhận được), gần nhau, cận thiết bị ghi hình, đối tượng
chưa được huấn luyện,...Có trường hợp nhận dạng sai do các vật thể đối tượng có hình
dạng giống ô tô hoặc xe máy.
117
1.4. Quy trình huấn luyện và nhận dạng hành vi vi phạm chở quá số người
quy định
Bước 1: Cho máy học thông qua bộ dữ liệu mẫu (500 hình) cho nhiều đối
tượng, với điều kiện môi trưởng thời tiết (mưa, nắng, sương mù,...) và thời gian (đêm,
ngày,...) nhằm huấn luyện xem xét, đánh giá kết quả nhận dạng đối tượng về hành vi
vi phạm chở quá số người theo quy định áp dụng cho đối tượng xe máy, xe đạp và xe
đạp điện cụ thể như sau:
118
Hình 58: Bộ dữ liệu gồm 10 hình ảnh trích xuất từ bộ dữ liệu mẫu
Bước 2: Sau khi áp dụng giải thuật nhận dạng được đối tượng đã được huấn
luyện nhận biết thông qua bộ dữ liệu mẫu kết hợp nhiều kịch bản khác nhau, ta tiến
hành giải thuật gán nhãn (tracking) những đối tượng (xe máy, xe đạp và xe đạp điện)
cần thiết để từ đó sàn lọc và tiến hành xác định lỗi cho các về hành vi vi phạm.
119
Hình 59: Kết quả nhận dạng đối tượng về hành vi vi phạm giao thông được gán nhãn
(tracking)về chở quá số người.
120
g
Bước 3: Thực hiện chạy chương trình và áp dụng giải thuật nhằm nhận dạng
được đối tượng (xe máy, xe đạp và xe đạp điện) tham gia giao thông và tiến hành nhận
lỗi về hành vi vi phạm chở quá số người theo quy định kết quả cụ thể sau:
Đối
tượng
Hành vi chở quá số người
quy định
Nhận dạng
đối tượng
Không nhận
dạng đối
tượng
Tỷ lệ
Xe máy 10 9 1 90%
Xe đạp/
điện
1 1 0 100%
Bảng 2: Kết quả nhận dạng đối tượng tham gia giao thông về hành vi vi phạm
chở quá số người theo quy định.
Nhận xét và đánh giá kết quả: Kết quả nhận dạng đối tượng phương tiện xe
máy, xe đạp và đạp điện là những đối tượng, vật thể được huấn luyện khi tham gia
giao thông cần phải nhận dạng trong bài toán đề xuất áp dụng để xác định hành vi vi
phạm Luật giao thông đường bộ về chở quá số người theo quy định thông qua thiết bị
ghi hình là camera đặt tại vị trí mô hình xây dựng chương trình thử nghiệm (dữ liệu
đầu vào video) với kết quả nhận được tương đối chính xác. Qua đó ta có thể thấy, kết
quả áp dụng giải thuật phát hiện và nhận dạng đối tượng cho bài toán là khá cao trên
cơ sở bộ dữ liệu hình ảnh mẫu đã được huấn luyện tham gia giao thông chở ba, chở
bốn,...Tỷ lệ không xác định được là do một số đối tượng không nhận dạng được do
không có trong tập dữ liệu huấn luyện hoặc do các tác động khách quan như bị vật cản
che khuất, đối tượng chưa được huấn luyện hoặc bị mờ tối, chạy gần sát nhau,....
1.5. Quy trình huấn luyện và nhận dạng hành vi vi phạm không đội mũ
bảo hiểm
Bước 1: Cho máy học thông qua bộ dữ liệu mẫu (500 hình) cho nhiều đối
tượng, với điều kiện môi trưởng thời tiết (mưa, nắng, sương mù,...) và thời gian (đêm,
ngày,...) nhằm huấn luyện xem xét, đánh giá kết quả nhận dạng đối tượng về hành vi
vi phạm không đội mũ bảo hiểm khi tham gia giao thông theo quy định áp dụng cho
đối tượng xe máy, xe đạp và xe đạp điện cụ thể như sau:
121
122
123
Hình 60: Bộ dữ liệu gồm 22 hình ảnh trích xuất từ bộ dữ liệu mẫu
Bước 2: Sau khi áp dụng giải thuật nhận dạng được đối tượng đã được huấn
luyện nhận biết thông qua bộ dữ liệu mẫu kết hợp nhiều kịch bản khác nhau, ta tiến
hành giải thuật gán nhãn (tracking) những đối tượng (xe máy, xe đạp và xe đạp điện)
cần thiết để từ đó sàn lọc và tiến hành xác định lỗi cho các về hành vi vi phạm.
124
125
126
Hình 61: Kết quả nhận dạng đối tượng về hành vi vi phạm giao thông được gán nhãn
(tracking) về không đội mũ bảo hiểm.
Bước 3: Thực hiện chạy chương trình và áp dụng giải thuật nhằm nhận dạng
được đối tượng (xe máy, xe đạp và xe đạp điện) tham gia giao thông và tiến hành nhận
lỗi về hành vi vi phạm không đội mũ bảo hiểm theo quy định kết quả cụ thể sau:
Đối
tượng
Hành vi không đội mũ bảo
hiểm theo quy định
Nhận dạng
đối tượng
Không nhận
dạng đối
tượng
Tỷ lệ
Chính
xác
Xe máy 17 14 3 82%
127
Xe đạp/
điện
11 5 6 46%
Bảng 3: Kết quả nhận dạng đối tượng tham gia giao thông về hành vi vi phạm
chở quá số người theo quy định.
Nhận xét và đánh giá kết quả: Kết quả nhận dạng đối tượng phương tiện xe
máy là những đối tượng, vật thể được huấn luyện khi tham gia giao thông cần phải
nhận dạng trong bài toán đề xuất áp dụng để xác định hành vi vi phạm Luật giao thông
đường bộ về chở quá số người theo quy định thông qua thiết bị ghi hình là camera đặt
tại vị trí mô hình xây dựng chương trình thử nghiệm (dữ liệu đầu vào video) với kết
quả nhận được tương đối chính xác. Qua đó ta có thể thấy, kết quả áp dụng giải thuật
phát hiện và nhận dạng đối tượng cho bài toán là khá cao trên cơ sở bộ dữ liệu hình
ảnh mẫu đã được huấn luyện kể cả đối tượng tham gia giao thông sử dụng mũ lưỡi trai
(nón vải), nón lá,... Tỷ lệ không xác định được là do một số đối tượng không nhận
dạng được do không có trong tập dữ liệu huấn luyện hoặc do các tác động khách quan
như bị vật cản che khuất, đối tượng chưa được huấn luyện hoặc bị mờ tối, điều kiện
thời tiết phức tạp,....
1.6. Quy trình huấn luyện và nhận diện biển số xe của đối tượng tham gia
giao thông:
Bước 1: Chuẩn bị bộ dữ liệu mẫu cho hệ thống yêu cầu biển số xe trong bộ dữ
liệu mẫu đòi hỏi phải đa dạng và nhiều trường hợp khác nhau
128
Hình 62: Bộ dữ liệu gồm 10 hình ảnh trích xuất từ bộ dữ liệu mẫu
Bước 2: Tiến hành áp dụng giải thuật thực hiện thao tác tinh chỉnh và điều
chỉnh để thay đổi độ sáng của ảnh.
Bước 3: Thực hiện xoay ảnh.
Bước 4: Tiến hành gán nhãn (tracking) ảnh dữ liệu.
Sử dụng thuật toán gán nhãn (tracking) nhằm hỗ trợ việc gán nhãn theo 2 định
dạng PASCAL VOC và YOLO với phần mở rộng file annotation tương ứng là .xml và
txt.
Mỗi dòng trong một file annotation bao gồm: <object-class> <x> <y> <width>
<height>. Trong đó: <x> <y> <width> <height> tương ứng là tọa độ trung tâm và kích
thước của đối tượng. Các giá trị này đã được chuẩn hóa lại, do vậy giá trị luôn nằm
trong đoạn [0,1]. object-class là chỉ số đánh dấu các classes. Sau khi gán nhãn xong
file annotation và ảnh tương ứng chuyển vào cùng một thư mục. Áp dụng giải thuật
YOLOv3/darknet hoặc YOLOv4 đây là những giải thuật Object Detection cho kết quả
theo thời gian thực khi chạy trên các nền tảng GPU cao cấp.
129
Bước 5: - Cấu hình darknet và tiến hành Clone darknet về máy.
Bước 6: Sửa file Makefile trong thư mục vừa clone về
Tiến hành điều chỉnh thay đổi cho phù hợp. Trong trường hợp huấn luyện mô
hình trên GPU có TensorCores thì có thể sửa “CUDNN_HALF=1” nhằm tăng tốc độ
huấn luyện. Trên Google Colab có hỗ trợ GPU Tesla T4, là GPU có kiến trúc mới nhất
trên Colab và có TensorCores. Vì vậy, trong trường hợp chắc chắn sẽ có được GPU
Tesla T4 cần điều chỉnh “CUDNN_HALF=1”.
Bước 7: Tạo file yolo-tinyv3-obj.cfg. Tạo file yolo-tinyv3-obg.cfg với nội dung
tương tự file yolov3-tiny.cfg trong thư mục darknet/cfg, sau đó chỉnh sử một số dòng:
(1) Dòng 6: Thay đổi batch=64. Nghĩa là: batch = số ảnh (cả file annotation)
được đưa vào huấn luyện trong một batch.
(2) Dòng 7: Thay đổi subdivisions=16. Trong một batch được chia thành nhiều
block, mỗi block chứa batch/subdivisions ảnh được đưa vào GPU xử lý tại một thời
điểm. Weights của mô hình được update sau mỗi batch.
(3) Dòng 20: Thay đổi max_batches=classes2000, không nhỏ hơn số ảnh trong
tập huấn luyện, và không nhỏ hơn 6000. VD: max_batches=6000.
(4) Dòng 22: Thay đổi steps= 80%, 90% max_batches. VD: steps=4800,5400.
Sau khi huấn luyện được 80%, 90% max_batches, learning_rate sẽ được nhân với một
tỷ lệ (dòng 23 trong file), mặc định là 0.1.
130
(5) Thay đổi classes=1 trong mỗi layer [yolo].
(6) Thay đổi filters trong mỗi layer [convolutional] trước layer [yolo] theo công
thức filters=(số class+5)*3. Trong bài toán này filters=18.
Bước 8: Tạo file obj.names chứa tên của các class, sau đó lưu trong thư mục
darknet/data (file obj.names)
Bước 9: Tạo file obj.data, sau đó lưu trong thư mục darknet/data (file obj.data).
Bước 10: Đưa toàn bộ thư mục chứa ảnh và file annotation ở trên vào thư mục
darknet/data.
Bước 11: Download pre-trained weights của YOLO-Tinyv3 lưu trong thư mục
darknet.
Bước 12: Nén thư mục darknet thành file darknet.zip, sau đó đưa lên Google
Drive.
Bước 13: Thực thi các lệnh command line trong colab sử dụng thêm trước mỗi
câu lệnh.
#Sau khi mount với drive. Chuyển đến thư mục chứa file darknet.zip vừa tải lên
#Ví dụ để ở thư mục gốc của Google Drive
cd drive/My\ Drive
#Giải nén file darknet.zip
!unzip darknet.zip
#Chuyển đến thư mục darknet
cd darknet
#Tạo thư mục backup để lưu lại weights khi huấn luyện
#Tên thư mục phải trùng với link folder backup trong file obj.data trên
!mkdir backup
#Tạo file train.txt, valid.txt theo đoạn code
import os
import numpy as np
#"obj" là tên thư mục chứa cả ảnh và file annotation.
lst_files = os.listdir("data/obj/")
lst_images = []
for file in lst_files:
131
if ".txt" not in file:
lst_images.append(file)
#Tách 200 ảnh ra làm tập validation
random_idx = np.random.randint(0, len(lst_images), 200)
#Tạo file train.txt được đặt trong thư mục darknet/data
with open("data/train.txt","w") as f:
for idx in range(len(lst_images)):
if idx not in random_idx:
f.write("data/obj/"+lst_images[idx]+"\n")
#Tạo file valid.txt được đặt trong thư mục darknet/data
with open("data/valid.txt","w") as f:
for idx in random_idx:
f.write("data/obj/"+lst_images[idx]+"\n")
#Biên dịch darknet (chỉ cần biên dịch một lần, lần sau dùng bỏ qua bước này)
!make
#Phân quyền thực thi module darknet
!chmod +x ./darknet
Bước 14: Bắt đầu quá trình huấn luyện sử dụng command line
!./darknet detector train data/obj.data yolo-tinyv4-obj.cfg yolov4-tiny.conv.29 -map \
-dont_show > yolotinv3_lisenceplate.log
Cú pháp tổng quát để huấn luyện:
!./darknet detector train [data config file] [model config file] [pre-trained weights]
-map > [file log saved]
-map: Dùng để hiển thị mAP được tính trên tập validation.
Nếu gặp lỗi:
CUDA Error: out of memory: File exists thì hãy quay lại sửa subdivisions=32 trong
file yolo-tinyv3-obj.cfg
Quá trình huấn luyện sẽ được lưu vào file yolotinv3_lisenceplate.log, ngoài ra
darknet tự động tạo ra ảnh chart.png lưu trong thư mục darknet và được cập nhật liên
tục để theo dõi trực tiếp thông số của quá trình huấn luyện.
132
Bước 15: Chạy chương trình dự đoán.
Sau khi huấn luyện xong, toàn bộ weights sẽ được lưu trong folder backup.
#Danh sách các weights được lưu
!ls backup/
Để dự báo một bức ảnh sử dụng cú pháp:
!./darknet detector test [data config file] [model config file] [best-weights]
[image path]
#cụ thể như sau
!./darknet detector test data/obj.data yolo-tinyv4-obj.cfg \
backup/yolo-tinyv4-obj_best.weights test1.jpg
Kết quả dự đoán được lưu thành file predictions.jpg
#Hàm sau được dùng để hiển thị kết quả dự đoán lên colab
def show(path):
import cv2
import matplotlib.pyplot as plt
image = cv2.imread(path)
original_width, original_height = image.shape[1], image.shape[0]
resized_image = cv2.resize(image, (2*original_width, 2*original_height)\
, interpolation = cv2.INTER_CUBIC)
resized_image = cv2.cvtColor(resized_image, cv2.COLOR_BGR2RGB)
plt.figure(figsize=(20,10))
plt.axis("off")
plt.imshow(resized_image)
plt.show()
show("predictions.jpg")
Bước 15: Phương pháp dự đoán từ ảnh bộ dữ liệu mẫu đầu vào áp dụng giải
thuật nhận dạng biển số chính xác theo bộ dữ liệu mẫu đầu vào hình 62.
133
Tiến hành chạy chương trình và được thực hiện qua các công đoạn như:
(1) Dùng cv2.THRESH_BINARY_INV đưa ảnh về trắng đen
(2) Dùng cv2.MORPH_DILATE
(3) Cuối cùng tìm và đếm theo thứ tự trên ảnh nhằm phân tích giải thuật thực
hiện: Sau khi hiển thị sẽ có 7 charater trên plate mà ta cần lấy, trong khi đó lại xuất
hiện một số contour nhiễu nên ta sẽ xem xét và tính area của contour từ đó ta tiến
hành sorted và loại bỏ 2 contour (dùng mode cv2.RETR_LIST) vì vậy ta có được 1
contour bao toàn bộ image và 1 contour bao đường biên plate và thực hiện thao tác
lấy 7 area lớn nhất.
(4) Công đoạn tiếp theo sau ta thực hiện predict ditgit của mỗi box.
(5) Kết quả thu nhận được là
(6) Từ đó ta tiếp tục xác định để phân loại biển số xe hiện có một hay hai dòng.
Hãy tưởng tượng mặt phẳng tọa độ xOy trong đó x là trục ngang, y là trục dọc. Nếu
biển số xe gồm một dòng thì tọa độ y (trục dọc) giữa các kí tự thu được sẽ nhỏ hơn một
ngưỡng. Còn nếu biển hai dòng thì tọa độ y giữa các kí tự sẽ lớn hơn ngưỡng. Sau đó ta
sử dụng giá trị x để xác định thứ tự trước sau sắp xếp các kí tự từ trái qua phải từ trên
xuống dưới.
134
Nhận xét và đánh giá kết quả: Kết quả nhận dạng chung từ khâu phát hiện
biển số, đến tách ký tự và nhận dạng ký tự đạt xấp xỉ 96% với dữ liệu có nhiều ảnh
không đạt tiêu chuẩn như bị bóng mờ, quá dơ, nhòe, thiếu ánh sáng,… Qua đó, ta thấp
việc áp dụng giải thuật trên được tiến hành cài đặt nhanh, tìm vùng biển số và cách ly
ký tự với tỉ lệ thành công cao (ở những biển số thông thường), tìm được ở những ảnh tự
nhiên, vùng biển số bị nghiêng. Bên cạnh đó, còn tồn tại một số điểm hạn chế chưa giải
quyết được như:
(1) Tỷ lệ nhận dạng còn phụ thuộc nhiều vào điều kiện thời tiết, khí hậu thấp
làm ảnh hưởng chất lượng ảnh của biển số (một số biển không tách đúng ký tự, chữ số
bị dính với các vật bên ngoài như đinh ốc, ký tự bị mờ nét, mất nét, loang lổ, biển số xe
đặc thủ như biển số quân đội, biển xanh,.... ).
(2) Với những biển số có đường viền phức tạp thì mức độ nhận dạng không cao.
135
6. KẾT LUẬN VÀ KIẾN NGHỊ
6.1. Kết luận
Trong đề tài nghiên cứu này, tôi đã đề cập, tìm hiếu rất nhiều các nghiên cứu về
phát hiện, nhận dạng và xử lý các hành vi vi phạm trật tự an toàn giao thông, mà đặc
biệt trong các nghiên cứu về giao thông thông minh tại các đô thị lớn trong nước và
thế giới nhằm tìm hiểu, đánh giá và tìm ra điểm chung công nghệ giữa các nghiên cứu.
Từ đó đề ra giải pháp tối ưu hơn bằng việc lựa chọn phương pháp nghiên cứu ứng
dụng kỹ thuật máy học (machine learning) trong Trí tuệ nhân tạo (AI) với mô hình
mạng nơ-ron tích chập theo phương pháp nhìn một lần (Convolutional Neural
Network for You Only Look Once - CNNs for YOLO Object Detection) là một trong
những giải thuật của mô hình hệ thống máy học tiên tiến giúp cho việc xây dựng đựợc
những hệ thống thông minh với độ chính xác cao như hiện nay. Việc triển khai thử
nghiệm một mô hình ứng dụng CMCN lần thứ tư trong thực tế tại địa phương mà cụ
thể xây dựng mô hình phục vụ theo dõi, giám sát tình trạng giao thông đường bộ, tự
động phát hiện, ghi nhận, phân tích hình ảnh đối tượng và nhận dạng phương tiện về
các hành vi vi phạm Luật giao thông đường bộ theo thời gian thực với độ chính xác
cao tại một nút giao lộ góp phần giảm thiểu ùn tắc, tai nạn cho người và phương tiện
tham gia giao thông. Đồng thời giúp công tác tuần tra kiểm soát trật tự, an ninh và phát
hiện kịp thời, có chứng cứ pháp lý về hình ảnh nhằm cung cấp cho lực lượng chức
năng khi điều tra các vụ việc xảy ra trên đường góp phần đảm bảo an ninh trật tự xã
hội. Với kết quả thực hiện đề tài của nhóm nghiên cứu sẽ tiếp tục đề xuất các ban,
ngành có liên quan xem xét đưa vào áp dụng nhân rộng trên địa bàn tỉnh Bà Rịa –
Vũng Tàu.
Kết quả thu nhận từ hình ảnh, video thông qua thiết bị ghi hình camera đặt tại vị
trí thử nghiệm và tiến hành áp dụng các giải thuật kết hợp một số công cụ hiện có, bộ
thư viện mã nguồn mở OpenCV và giải thuật nhìn một lần YOLO đã tiến hành phát
hiện, nhận dạng và phân loại tương đối đầy đủ và chính xác cao với các đối tượng
thông qua hình ảnh, video đã được huấn luyện với hai hành vi vi phạm Luật giao thông
đường bộ đó là: (1) Chở quá số người quy định khi tham gia giao thông; (2) Không đội
mũ bảo hiểm khi điều khiển xe mô tô, xe gắn máy. Tuy nhiên, Bên cạnh đó, còn tồn
tại một số điểm hạn chế chưa giải quyết được, có một vài trường hợp chưa nhận dạng
136
được, có chăng độ chính xác không cao. Việc này, có nhiều nguyên nhân khác nhau
nhưng phần lớn tập trung một số nguyên nhân sau:
(1) Thiếu dữ liệu đào tạo nên mô hình nhận dạng có hiệu suất không cao.
(2) Tỷ lệ nhận dạng còn phụ thuộc nhiều vào điều kiện thời tiết, khí hậu phức tạp
làm ảnh hưởng chất lượng hình ảnh, video,… và tình trạng mật độ tham gia giao thông
cao.
(3) Việc áp dụng thuật toán tính về tốc độ xử lý vẫn chưa tối ưu, hầu hết lệ thuộc
vào máy móc thiết bị trang bị cho hệ thống xử lý, lưu trữ và đặc biệt là hệ thống trang
thiết bị ghi hình (camera, sensor,…).
(4) Ngoài ra còn có các nguyên nhân khách quan khác như vật cản che khuất, đôi
khi vẫn bị nhầm lẫn giữa các đối tượng gần giống nhau như xe máy và xe đạp, hình
ảnh không theo chuẩn quy định,…
(5) Trong đề tài nghiên cứu đã đề xuất áp dụng các giải thuật mang tính ứng dụng
công nghệ tiên tiến, hiện đại hiện nay nên đòi hỏi hệ thống trang thiết bị máy móc
(máy tính) phải hỗ trợ tính năng GPU rất mạnh, trường hợp GPU yếu thì sẽ mất rất
nhiều thời gian để hệ thống xử lý nhằm hoàn thành quá trình nhận dạng và phân loại
đối tượng.
6.2. Kiến nghị và hướng phát triển
Để cải thiện, đảm bảo độ chính xác cao ta cần tiến hành xây dựng và đặt ra nhiều
tỉnh huống, kịch bản đa dạng nhằm thu thập thêm nhiều dữ liệu mẫu hơn, đa dạng
hành vi hơn. Từ đó, sẽ giúp mô hình nhận dạng xe chính xác cao. Ngoài ra để nhận
diện và tính toán vận tốc xử lý hiệu quả ta cũng cần xem xét, điều chỉnh thuật toán
nhận dạng, phân loại và tính toán.
Sau khi kết thúc nghiện cứu, đưa vào vận hành thử nghiệm nhằm hoàn thiện mô
hình hệ thống về theo dõi, giám sát tình trạng giao thông đường bộ, tự động phát hiện,
ghi nhận, phân tích hình ảnh đối tượng và nhận dạng phương tiện về các hành vi vi
phạm Luật giao thông đường bộ theo thời gian thực với độ chính xác từ đó có thể đề
xuất áp dụng cho những bài toán khác lớn hơn trong thực tế để giải quyết các vấn đề
về vấn nạn giao thông đường bộ hiện nay.
Trong đề tài nghiên cứu đã lựa chọn áp dụng các công nghệ tiên tiến, đặc biệt áp
dụng trong thực tế CMCN lần thứ tư là phù hợp với thực tế tại địa phương hiện nay.
137
Vì vậy, cần tính toán khả năng mở rộng, kết nối vào các hệ thống giao thông thông
minh chung trong tương lai của tỉnh Bà Rịa – Vũng Tàu đã, đang và sẽ triển khai.
138
TÀI LIỆU THAM KHẢO
[1] Trích dẫn bài đăng trên cổng thông tin điển tử Quốc Gia
(http://www2.chinhphu.vn/portal/page/portal/chinhphu/)” và trên các trang thông tin
điện tử của các báo mạng như: Vietnamnet, vnexpress, thanhnien, tuoitre,....
[2] Wikipedia – Bách khoa toàn thư mở - Lịch sử ngành Trí tuệ nhân tạo
http://en.wikipedia.org/wiki/Artificial_intelligence.
[3] Thủ tướng Nguyễn Xuân Phúc: Phát biểu tại Diễn đàn cấp cao và Triển lãm
quốc tế về công nghiệp 4.0 diễn ra tại Hà Nội ngày 13/7/2018 đã nhấn mạnh Việt Nam
cần “Chuyển mạnh từ nhận diện sâu sắc sang tầm nhìn chiến lược và hành động quyết
liệt, khẩn trương” để không bỏ lỡ cơ hội và lên kịp chuyến tàu Cách mạng công nghiệp
4.0 với các nước trong khu vực và thế giới.
[4] Đồng chí Nguyễn Văn Bình – Trưởng Ban kinh tế Trung ương: Phát biểu tại
Diễn đàn cấp cao công nghiệp 4.0 về chủ trương, chính sách của Việt Nam chủ động
tham gia cuộc cách mạng công nghiệp lần thứ 4 diễn ra tại Hà Nội ngày 3/10/2019.
[5] Đỗ Hữu Hiền: Bài viết đăng trên Đặc san Báo xuân của Ban Tuyên giáo tỉnh
ủy Bà Rịa – Vũng Tàu về một số vấn đề phát triển khoa học và công nghệ của tỉnh
trước tình hình cuộc cách mạng công nghiệp lần thứ 4.
[6] Nhâp môn Trí tuệ nhân tạo của Tiến sĩ Ngô Hữu Phúc - Học viện kĩ thuật
quân sự.
[7] Tài liệu giảng dạy môn Trí tuệ nhân tạo của GS.TSKH Võ Hoàng Kiếm –
nguyên Hiệu trưởng trường Đại học Bà Rịa – Vũng Tàu.
[8] Bùi Xuân Toại – Trương Gia Việt (Biên dịch) – Trí tuệ nhân tạo – Các cấu
trúc và chiến lược giải quyết vấn đề - NXB Thống kê, 2000 (Phần I).
[9] PTS. Nguyễn Thanh Thủy – Trí tuệ nhân tạo – Các phương pháp giải quyết
vấn đề và kỹ thuật xử lý tri thức – NXB Giáo dục, 1995 (Chương 1).
[10] Bộ Kế hoạch và Đầu tư (2018) Dự thảo: Chiến lược Cách mạng công
nghiệp 4.0: Đánh giá và đề xuất chính sách.
[11] Viện Hàn lâm Khoa học xã hội Việt Nam (2017), “Cuộc cách mạng công
nghiệp lần thứ tư: Đặc trưng, tác động và hàm ý chính sách”, Báo cáo Chính phủ.
[12] Dự án đầu tư hệ thống giao thông thông minh, giám sát tự động bằng
Camera trên địa bàn tỉnh Bà Rịa – Vũng Tàu.
139
[13] Số liệu báo cáo tình hình phat triển kinh tế-xã hội 9 tháng đầu năm 2019 và
phương hướng hoạt động 3 tháng cuối năm 2019 của UBND tỉnh Bà Rịa – Vũng Tàu.
[14] Báo cáo: Kết quả Nghiên cứu xây dựng hệ thống giám sát ngã tư thông
minh tại 01 điểm giao lộ đường Huỳnh Minh Thạnh và 27/4 thuộc thị trấn Phước Bửu,
huyện Xuyên Mộc, tỉnh Bà Rịa – Vũng Tàu.
[15] Tài liệu báo cáo thực hiện đề án phát triển đô thị thông minh tại TP. Hồ
Chí Minh, Đà Nẵng, Bình Dương,...
[16] https://www.quora.com/How-does-the-region-proposal-network-RPN-in-
Faster-R-CNN-work; http://neuralnetworksanddeeplearning.com/chap6.html
[17] http://neuralnetworksanddeeplearning.com/chap2.html
[18] https://hackernoon.com/understanding-yolo-f5a74bbc7967
[19] https://arxiv.org/pdf/1506.02640.pdf
[20] https://ai.hblab.vn/2017/10/intersection-over-union-iou-cho-object.ht
[21] Tran Duc Duan, Duong Anh Duc, Tran Le Hong Du, “Combining Hough
Transform and Contour Algorithm for detecting Vehicles License-Plates”, University
of Natural Sciences, 2004
[22] Các tài liệu về EmguCV tại www.emgucv.com OPenCV tại
www.opencv.com
[23] Yan S., Xia Y., Smith J.S., et al. (2017). Multiscale Convolutional Neural
Networks
[24] Patrice Y. Simard, Dave Steinkraus, John Platt, "Best Practices for
Convolutional Neural Networks Applied to Visual Document Analysis," International
Conference on Document Analysis and Recognition (ICDAR), IEEE
[25] Y. LeCun and Y. Bengio.“Convolutional networks for images, speech, and
time-series.” In M. A. Arbib, editor, The Handbook of Brain Theory and Neural
Networks. MIT Press, 1995.
[26]. Krizhevsky A., Sutskever I., and Hinton G.E. (2012). ImageNet
Classification with Deep Convolutional Neural Networks. Advances in Neural
Information Processing Systems 25. Curran Associates, Inc., 1097–1105.
[27]. Object detection based on HOG features: Faces and dual-eyes augmented
reality - IEEE Conference Publication.
<https://ieeexplore.ieee.org/document/6618716/>, accessed:05/20/2018.
140
[28]. Real-Time Hand Gesture Detection and Recognition Using Bag-of-
Features and Support Vector Machine Techniques - IEEE Journals & Magazine.
[29] Sinh viên thực hiện: Đỗ Xuân Sơn - Lớp: KHMT2-K10 - Khoa CNTT, Đại
học Công nghiệp Hà Nội.
[30] Sinh viên thực hiện: Đặng Thị Mỹ Nhàn - Khoa học máy tính tại Trường
Đại học Bách khoa Đà Nẵng.
[31] Nhập môn xử lý ảnh số của Ths. Lương Mạnh Bá và Ths. Nguyễn Thanh
Thủy, NXB KHKT 2003.
[32] https://docs.opencv.org/
[33] http://code.gurusvn.com/
[34] https://vi.wikipedia.org/wiki/Trang_Ch%C3%ADnh
[35] Learning openCV_computer vision whit the openCV Libraly_Gary breadki
& keabler.
[36]https://towardsdatascience.com/r-cnn-fast-r-cnn-faster-r-cnn-yolo-object-
detection-algorithms-36d53571365e.