Nhưng để tham gia giao thông một cách an toàn, bên cạnh việc tuân thủ các luật giao thông đường bộ, thì một vấn đề quan trọng không kém đó là việc ghi nhớ hết ý nghĩa của các biển báo hi
Trang 2Công trình được hoàn thành tại TRƯỜNG ĐẠI HỌC BÁCH KHOA
Người hướng dẫn khoa học: TS Trần Thế Vũ
Phản biện 1: PGS.TS Nguyễn Tấn Khôi
Phản biện 2: PGS.TS Hoàng Xuân Hiệp
Luận văn được bảo vệ trước Hội đồng chấm Luận văn tốt nghiệp
Thạc sĩ kỹ thuật chuyên ngành Khoa học máy tính họp tại Trường
Đại học Trà Vinh vào ngày 16 tháng 9 năm 2017
* Có thể tìm hiểu luận văn tại:
- Trung tâm Học liệu, Đại học Đà Nẵng tại Trường Đại học
Bách khoa
- Thư viện Khoa Công nghệ thông tin, Trường Đại học Bách khoa – Đại học Đà Nẵng
Trang 3Chương 1 MỞ ĐẦU 1.1 Lý do chọn đề tài
1.1.1 Bối cảnh chung
Trong bối cảnh hiện nay song hành cùng với sự phát triển của các thành tựu khoa học kỹ thuật hiện đại, sự năng động trong cơ chế kinh tế thị trường, sự chăm chút bồi bổ nâng cao đời sống văn hóa thì vấn đề về giao thông cũng từng bước được cải thiện và phát triển mạnh mẽ góp phần vào sự phát triển chung của toàn xã hội
Giao thông luôn là một trong những vấn đề nóng của xã hội Nóng từ quy mô phát triển đến chất lượng cơ sở hạ tầng Nhưng để tham gia giao thông một cách an toàn, bên cạnh việc tuân thủ các luật giao thông đường bộ, thì một vấn đề quan trọng không kém đó là việc ghi nhớ hết ý nghĩa của các biển báo hiệu giao thông đường bộ Các biển báo hiệu này được dùng để thông báo, chỉ dẫn người tham giao thông điều khiển phương tiện lưu thông nhằm đảm bảo an toàn Hiện nay, số lượng biển báo hiệu ở nước ta rất nhiều, việc ghi nhớ hết ý nghĩa của các biển báo hiệu là điều không dễ Theo một số khảo sát cho thấy, sự mong muốn có một hệ thống có khả năng cảnh báo được trang bị trên xe giúp tài xế ý thức hơn về những nguy hiểm tiềm ẩn khi điều khiển phương tiện lưu thông đang là vấn đề cấp thiết Hơn nữa việc ứng dụng công nghệ cao trong việc tạo ra các loại xe tự điều khiển là xu hướng thiết yếu của xã hội phát triển
Để xe tự điều khiển được an toàn bên cạnh việc kiểm soát tay lái, tốc độ, phanh, phát hiện các xe đi trên đường, phát hiện các chướng ngại vật trên đường, nhận dạng con đường và làn đường xe chạy, … thì việc phát hiện và giải thích các tín hiệu giao thông hay đơn giản hơn là việc phát hiện và nhận dạng các biển báo hiệu giao thông đường bộ là rất quan trọng để giúp hệ thống vận chuyển với
Trang 4một đôi mắt robot hoặc một camera trong khi lái xe trên đường Việc phát hiện và nhận dạng được các biển báo sẽ cung cấp thông tin phản hồi cho hệ thống giúp xe tự điều khiển an toàn hơn và đúng theo các quy luật đã được ban hành
1.1.2 Phương pháp thực hiện
Vấn đề xây dựng một hệ thống nhận dạng biển báo giao thông là một vấn đề lớn và có nhiều hướng tiếp cận để giải quyết bài toán Vấn đề này được các quốc gia phát triển về ngành tự động hóa quan tâm từ sớm và cũng đã cho nhiều kết quả khả quan Với mong muốn góp phần vào việc ứng dụng các công nghệ tự động cho điều khiển giao thông Sau khi nghiên cứu, tìm hiểu các bài báo trong nước và quốc tế liên quan đến cùng mảng đề tài, tôi đã chọn đề tài
“Xây dựng ứng dụng tự động phát hiện và nhận dạng biển báo giao thông đường bộ”
1.2 Mục tiêu và nhiệm vụ của đề tài
1.2.1 Mục tiêu
Mục tiêu chính là thiết kế và xây dựng hệ thống dựa trên máy tính để có thể tự động phát hiện và nhận dạng các báo hiệu giao thông
1.2.2 Nhiệm vụ
Để thực hiện được mục tiêu của đề tài, nhiệm vụ cơ bản đặt ra
là phải nghiên cứu và nắm được ý nghĩa của các loại báo hiệu giao thông đường bộ hiện nay Tìm hiểu các phương pháp, thuật toán nhận dạng hình ảnh mà cụ thể là nhận dạng biển báo giao thông
1.3 Đối tượng và phạm vi nghiên cứu
1.3.1 Đối tượng nghiên cứu
Các báo hiệu giao thông đường bộ đang được sử dụng;
Trang 5Các lý thuyết xử lý ảnh Các phương pháp và giải thuật phát hiện hình ảnh Bên cạnh đó, còn nghiên cứu thêm về không gian màu, phương pháp phân đoạn màu, kỹ thuật phát hiện biên đối tượng, phân tích hình dáng và phương pháp trích đặc trưng ảnh Lý thuyết máy học;
Thư viện xử lý ảnh và thị giác máy tính nguồn mở OpenCV
1.3.2 Phạm vi nghiên cứu
Nghiên cứu các phương pháp đã được đề xuất để phát hiện
và nhận dạng các báo hiệu giao thông đường bộ;
Nghiên cứu các bài báo, các nghiên cứu khoa học trong nước
và thế giới liên quan tới đề tài
1.4 Phương pháp nghiên cứu
và trên thế giới Kế thừa những phương pháp đạt kết quả tốt
và phù hợp với nội dung cần đạt được của đề tài Phát triển
và cải tiến phương pháp đã có ở những đề tài trước để xây dựng chương trình hướng tới kết quả tốt hơn
1.4.2 Phương pháp thực nghiệm
Triển khai ứng dụng bắt đầu bằng việc thu thập dữ liệu (ảnh, video), thiết kế và xây dựng một hệ thống dựa trên máy tính để có thể tự động phát hiện và nhận dạng các báo hiệu giao thông
Trang 61.5 Mục đích và ý nghĩa của đề tài
1.5.1 Mục đích
Nghiên cứu, xây dựng một hệ thống dựa trên máy tính để có thể tự động phát hiện và nhận dạng các báo hiệu giao thông ứng dụng các công nghệ tự động cho điều khiển giao thông
1.5.2 Ý nghĩa khoa học và thực tiễn đề tài
Về khoa học: dựa vào các nghiên cứu khoa học, bài báo liên
quan đã được công bố trong nước và quốc tế, áp dụng và đề xuất phương pháp nhận dạng các biển báo giao thông
Về thực tiễn: mô phỏng thành công phương pháp phát hiện và
nhận dạng các báo hiệu giao thông đường bộ ứng dụng vào công nghệ tự động cho điều khiển giao thông
1.6 Bố cục luận văn
Bố cục luận văn gồm 4 chương như sau:
Chương 1 mở đầu
Chương 2 nghiên cứu tổng quan
Chương 3 giải pháp đề xuất xây dựng hệ thống
Chương 4 triển khai và đánh giá kết quả
Trang 7Chương 2 NGHIÊN CỨU TỔNG QUAN
2.1 Báo hiệu giao thông đường bộ
Biển báo giao thông đường bộ hay còn được gọi là hệ thống báo hiệu đường bộ là hệ thống rất nhiều biển báo giao thông được đặt ven đường cung cấp thông tin cụ thể cho người tham gia giao thông Theo Quy chuẩn QCVN 41:2016/BGTVT - Quy chuẩn kỹ thuật quốc gia về báo hiệu đường bộ, biển báo bao gồm 6 nhóm: biển báo cấm, biển báo nguy hiểm và cảnh báo, biển hiệu lệnh, biển chỉ dẫn trên đường ôtô không phải là đường cao tốc, biển phụ - biển viết bằng chữ, biển chỉ dẫn trên đường cao tốc Trong đề tài này chỉ nghiên cứu trên 4 nhóm chính sau:
Biển báo cấm: có dạng hình tròn (trừ biển số 122 "dừng
lại" có hình bát giác đều) Hầu hết các biển đều có viền
đỏ, nền màu trắng, trên nền có hình vẽ màu đen, biển báo cấm gồm 40 kiểu, đánh số từ 101 đến 140;
Biển báo nguy hiểm và cảnh báo: có dạng hình tam giác
đều, viền đỏ, nền vàng, hình vẽ màu đen gồm 47 kiểu
Trang 82.2 Tổng quan về xử lý ảnh
2.2.1 Xử lý ảnh là gì?
Quá trình xử lý ảnh được xem như là quá trình thao tác ảnh đầu vào nhằm cho ra kết quả mong muốn Kết quả đầu ra của một quá trình xử lý ảnh có thể là một ảnh “tốt hơn” hoặc một kết luận
Hình 2.1: Sơ đồ tổng quát của một hệ thống xử lý ảnh
2.2.2 Một số khái niệm trong xử lý ảnh
Đường biên (đường bao: boundary)
Ý nghĩa của đường biên
2.3 Các mô hình màu
2.3.1 Giới thiệu
Mô hình màu hay không gian màu là một mô hình toán học dùng để mô tả các màu sắc trong thực tế được biểu diễn dưới dạng số học Trên thực tế có rất nhiều không gian màu khác nhau như RGB, HSV, CMYK, HLS, IHLS
2.3.2 Mô hình màu RGB
Là không gian màu rất phổ biến được dùng trong đồ họa máy tính và nhiều thiết bị kĩ thuật số khác Ý tưởng chính của không gian màu này là sự kết hợp của 3 màu sắc cơ bản: màu đỏ (R, Red), xanh lục (G, Green) và xanh lơ (B, Blue) để mô tả tất cả các màu sắc khác
Nhận dạng ảnh
Trang 92.3.3 Mô hình màu HLS
Mô hình màu HLS xác định các màu bằng ba thông số: màu sắc (H - Hue), độ sáng (L - Lightness) và độ bão hòa (S - Saturation)
Có thể minh họa mô hình màu HLS bằng một hình nón lục giác đôi,
có màu trắng ở đỉnh đầu màu đen ở dưới
2.3.4 Mô hình màu IHLS
Mô hình màu IHLS được cải tiến từ mô hình màu HLS Mô hình màu này rất giống với mô hình màu HLS nhưng nó tránh được
sự bất tiện của các mô hình màu khác được thiết kế cho đồ họa máy tính hơn là xử lý ảnh
2.3.5 Mô hình màu HSV
Hệ không gian này dựa vào 3 thông số để mô tả màu sắc
H = Hue: màu sắc
S = Saturation: độ đậm đặc, sự bảo hòa
V = value: giá trị cường độ sáng
và thường được biểu diễn dưới dạng hình trụ hoặc hình nón
Hình 2.5: Mô hình màu HSV
Theo đó, đi theo vòng tròn từ 0-360 độ là trường biểu diễn màu sắc (Hue) Trường này bắt đầu từ màu đỏ đầu tiên, tới màu xanh lục đầu tiên nằm trong khoảng 0-120 độ, từ 120-240 độ là màu xanh lục tới xanh lơ Từ 240-360 là từ màu đen tới lại màu đỏ
Theo như cách biểu diễn không gian màu theo hình trụ như trên, đi từ giá trị độ sáng (V) được biểu diễn bằng cách đi từ dưới
Trang 10(2.4)
đáy hình trụ lên và nằm trong khoảng từ 0 -1 Ở đáy hình trụ V có
giá trị là 0, là tối nhất và trên đỉnh hình trụ là độ sáng lớn nhất (V =
1) Đi từ tâm hình trụ ra mặt trụ là giá trị bão hòa của màu sắc (S) S
có giá trị từ 0 - 1 0 ứng với tâm hình trụ là chỗ mà màu sắc là nhạt
nhất S = 1 ở ngoài mặt trụ, là nơi mà giá trị màu sắc là đậm đặc
nhất
Chuyển đổi từ RGB sang HSV
Giả sử ta có một điểm màu có giá trị trong hệ RGB là (R, G,
B) ta chuyển sang không gian HSV như sau:
Đặt M = max(R, G, B), m = Min(R, G, B) và C = M - m
Nếu M = R, H' = (G - B)/C mod 6
Nếu M = G, H' = (B - R)/C + 2
Nếu M = B, H' = (R - G)/C + 4
H = H' x 60 Trong trường hợp C = 0, H = 0,
V = M; S = C/V Trong trường hợp V hoặc C bằng 0, S = 0
Chuyển đổi từ HSV sang RGB
Giả sử ta có không gian màu HSV với
H = [0, 360], S = [0, 1], V = [0, 1]
Khi đó, ta tính: C = V x S; H' = H/60; X = C(1|H' mod 2
-1|)
Ta biểu diễn hệ (R1, G1, B1) như sau:
(R1,G1,B1)=
{
(0, 0, 0) nếu H chưa xác định
(C, X , 0) nếu 0<H'<1
(X, C, 0) nếu 1<H'<2
(0, C, X) nếu 2<H'<3
(0, X, C) nếu 3<H'<4
(X, 0, C) nếu 4<H'<5
(C, 0, X) nếu 5<H'<6
(2.3)
(2.3)
Trang 11Nguyên tắc chung của các phương pháp lọc là cho ma trận
ảnh nhân chập với một ma trận lọc (Kernel): I dst= M*Isrc
Isrc, Idst là ảnh gốc và ảnh sau khi thực hiện phép lọc ảnh bằng cách nhân với ma trận lọc M Với mỗi phép lọc ta có những ma trận lọc M khác nhau, không có quy định cụ thể nào cho việc xác định M, tuy nhiên ma trận này có một số đặc điểm như sau:
Kích thước của ma trận thường là một số lẻ chẳng hạn 3x3, 5x5 … Khi đó, tâm của ma trận sẽ nằm ở giao của hai đường chéo và là điểm áp đặt lên ảnh mà ta cần tính nhân chập
Tổng các phần tử trong ma trận thông thường bằng 1 Nếu tổng này lớn hơn 1, ảnh qua phép lọc sẽ có độ sáng lớn hơn ảnh ban đầu Ngược lại ảnh thu được sẽ tối hơn ảnh ban đầu
2.4.2 Nhân chập ảnh với phép lọc số ảnh
Để thực hiện một phép lọc số ảnh, ta tiến hành nhân chập ảnh đầu vào với một ma trận lọc Toàn bộ các điểm ảnh trên ảnh sẽ được tiến hành nhân chập với ma trận lọc, tâm của ma trận lọc sẽ được đặt trùng vào vị trí của điểm ảnh đang được tính nhân chập làm thay đổi các giá trị của điểm ảnh ban đầu
Công thức tính nhân chập:
I dst (x,y)=I src (x,y)*M(u,v)= ∑ ∑n I src (x+u,y+v)*M(u,v)
v=-n n
u=-n
Trang 12ma trận lọc
Ý tưởng của lọc trung bình là sử dụng một ma trận lọc (3x3) quét qua từng điểm ảnh của ảnh đầu vào Isrc Tại vị trí mỗi điểm ảnh lấy giá trị của các điểm ảnh tương ứng trong vùng (3x3) của ảnh gốc đặt vào ma trận lọc Giá trị điểm ảnh của ảnh đầu ra Idst là giá trị trung bình của tất cả các điểm trong ảnh trong ma trận lọc
2.4.3.2 Lọc trung vị
Lọc trung vị là lọc phi tuyến Một phép lọc phi tuyến là một kết quả không thể thu được từ một tổng trọng số của các điểm ảnh lân cận Sau khi đã định nghĩa kích thước vùng lân cận, giá trị điểm ảnh trung tâm được thay bằng trung vị tức là giá trị chính giữa của tất cả các giá trị của các điểm trong vùng lân cận
Lọc trung vị hiệu quả trong việc giảm đi điểm nhiễu trong
ma trận lọc lớn hay bằng một nửa số điểm trong ma trận lọc
Cho một dãy số X1, X2, X3, , Xn được sắp xếp theo thứ tự tăng dần hoặc giảm dần Khi đó Xtv được tính bởi công thức:
Nếu n lẻ: X tv =X( n
Trang 13Nếu n chẵn: X tv = X(
n
2 )+ X( n 2 +1) 2 2.4.3.3 Lọc thông thấp
Là một bộ lọc tuyến tính, thường được sử dụng để làm trơn nhiễu Trong kỹ thuật lọc nhiễu ảnh này, cần sử dụng một số ma trận lọc (Kernel) như sau:
2.5.2 Phép toán giãn nở (dilation)
Là một trong các hoạt động cơ bản trong hình thái toán học Phép toàn này có tác dụng làm cho đối tượng ban đầu trong ảnh tăng lên về kích thước (Giãn nở ra)
Công thức của phép toán giãn nở:
Trang 14B: phần tử cấu trúc
Phép giãn nở (dilation) ảnh sẽ cho ra một tập điểm ảnh c
thuộc D(i), hoàn toàn dễ dàng thấy rằng đây là một phép tổng giữa A
và B A sẽ là tập con của D(i)
2.5.3 Phép toán co (erosion)
Phép toán co (erosion) là một trong hai hoạt động cơ bản
trong hình thái học có ứng dụng trong việc giảm kích thước của đối
tượng, tách rời các đối tượng gần nhau, làm mảnh và tìm xương của
Phép co ảnh sẽ cho ra một tập điểm ảnh c thuộc A, nếu di
chuyển phần tử cấu trúc B theo c, thì B nằm trong đối tượng A E(i)
là một tập con của tập ảnh bị co A
2.5.4 Phép toán mở và đóng (opening, closing)
Phép toán mở (opening) và đóng (closing) là sự kết hợp của
phép co (erosion) và giản (dilation) chúng được định nghĩa như sau:
nào đó dựa theo biên hay các vùng liên thông Tiêu chuẩn để xác
định các vùng liên thông có thể là cùng mức xám, cùng màu hay
Trang 15Phân vùng có thể được tiếp cận từ hai quan điểm: bằng cách nhận dạng các đường biên (hoặc đường) hoặc bằng cách nhận ra các vùng (region, area) bên trong ảnh Các phép toán phân vùng có thể xem như là đối ngẫu của các phép toán tìm biên (hay tách cạnh), bởi
vì khi tìm biên được kết thúc, điều đó tương đương với việc tách một vùng làm hai Một cách lý tưởng, các phép toán tách cạnh và phân vùng sẽ cho cùng một kết quả phân đoạn, tuy nhiên trong thực tế ít khi đạt được như vậy
Vùng ảnh là tập hợp các điểm ảnh có thuộc tính tương tự (gần giống nhau) Ta có thể xem một ảnh X chính là một tập các điểm ảnh pi , ký hiệu X= { pi }, i∈ [1, N.M], với N.M là kích thước của hình ảnh Như vậy, phân vùng ảnh là quá trình tìm các tập con Ri
={ tập các điểm ảnh có thuộc tính tương tự} của các vùng ảnh sao cho:
U i=1 K R i =X và R i ∩R j , ∀i≠j,i,j=1…K, với K là số vùng của ảnh X
Phân vùng ảnh là quá trình xử lý một ảnh số thành một tập các vùng, mỗi vùng là một tập hợp các điểm ảnh Chính xác hơn, phân vùng ảnh là quá trình gán nhãn cho mỗi điểm ảnh trong ảnh sao cho các điểm ảnh có các thuộc tính tương tự nhau thì có cùng một nhãn Đường bao quanh một vùng ảnh được gọi là đường biên
Trang 162.6.1 Phân vùng theo ngưỡng biên độ
2.6.2 Phân vùng theo miền đồng nhất
2.6.2.1 Phương pháp tách cây tứ phân
2.6.2.2 Phương pháp cục bộ
2.6.2.3 Phương pháp tổng hợp
2.6.3 Phân vùng theo kết cấu bề mặt
2.6.4 Phân vùng dựa trên sự phân lớp điểm ảnh
2.6.4.1 Mô hình bài toán
2.6.4.2 Thuật toán
2.7 Phát hiện biên
2.7.1 Phát hiện biên trực tiếp
2.7.1.1 Kỹ thuật phát hiện biên Gradient
2.7.1.2 Kỹ thuật phát hiện biên Laplace
2.7.1.3 Kỹ thuật phát hiện biên Canny
2.7.2 Phát hiện biên gián tiếp
2.8 Máy học (machine learning)
2.8.1 Giới thiệu
2.8.2 Các loại giải thuật
Học có thầy
Học không có thầy