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

Xây dựng ứng dụng tự động phát triển và nhận dạng biển báo giao thông đường bộ

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.36 MB, 26 trang )

ĐẠI HỌC ĐÀ NẴNG
TRƯỜNG ĐẠI HỌC BÁCH KHOA

TRẦN THU MAI

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Ộ

Chuyên ngành: Khoa học máy tính
Mã số: 60.48.01.01

TÓM TẮT LUẬN VĂN THẠC SĨ KỸ THUẬT

Đà Nẵng - Năm 2017


Cô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.


1

Chươ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


2

mộ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.
1.2.1.

Mục tiêu và nhiệm vụ của đề tài
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.
1.3.1.

Đối tượng và phạm vi nghiên cứu
Đối tượng nghiên cứu
Các báo hiệu giao thông đường bộ đang được sử dụng;


3

Cá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.
1.4.1.

Phương pháp nghiên cứu
Phương pháp lý thuyết
Nội dung các văn bản liên quan đến việc ban hành, quy
chuẩn và ý nghĩa báo hiệu giao thông đường bộ;
Đọc, phân tích, tổng hợp tài liệu từ những bài báo và những
nghiên cứu khoa học liên quan đã được công bố ở Việt Nam
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.


4

1.5.
1.5.1.

Mục đích và ý nghĩa của đề tài
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ả


5

Chươ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
được đánh số từ 201 đến 247;
 Biển hiệu lệnh: có dạng hình tròn, nền xanh với hình vẽ
màu trắng gồm 10 kiểu, được đánh số từ 301 đến 310;
 Biển chỉ dẫn trên đường ôtô không phải là đường cao
tốc: có dạng hình vuông hoặc hình chữ nhật, nền xanh,
hình vẽ màu trắng có 47 kiểu được đánh số từ 401 đến

447.


6

2.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.
Thu nhận
ảnh

Số hóa

Tiền xử


Phân
tích ảnh

Nhận
dạng ảnh

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
Ảnh và điểm ảnh
Mức xám của ảnh
Ảnh đen trắng
Ảnh nhị phân
Điểm biên
Đườ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.


7


2.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


8

đá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

(2.3)

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:
(0, 0, 0)

(C, X , 0)
(X, C, 0)
(R1 ,G1 ,B1 )=
(0, C, X)
(0, X, C)
(X, 0, C)
{ (C, 0, X)

nếu H chưa xác định
nếu 0nếu 1nếu 2nếu 3nếu 4nếu 5
(2.4)


9

Đặt m = V - C và ta có kết quả cuối cùng:
(R, G, B) = (R1 + m, G1 + m, G1 +m)
2.4. Lọc số ảnh
2.4.1. Lọc số ảnh là gì?
Một hệ thống dùng để làm biến dạng sự phân bố tần số của
các thành phần tín hiệu theo các chỉ tiêu đã cho được gọi là bộ lọc số.
Nguyê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): Idst= 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:
Idst (x,y)=Isrc (x,y)*M(u,v)= ∑nu=-n ∑nv=-n Isrc (x+u,y+v)*M(u,v)
(2.5)


10

n = (kích thước ma trận lọc - 1)/2
Tâm của ma trận lọc (Kernel) làm điểm gốc
2.4.3. Một số kỹ thuật lọc nhiễu
2.4.3.1. Lọc trung bình
Mỗi điểm ảnh được thay thế bằng trung bình trọng số của
các điểm trong vùng lân cận. Trong lọc trung bình, thường ưu tiên
cho các hướng để bảo vệ biên của ảnh khỏi bị mờ khi làm trơn ảnh.
Các kiểu ma trận lọc (Kernel) được sử dụng tùy theo các trường hợp

khác nhau. Các bộ lọc trên là bộ lọc tuyến tính theo nghĩa là điểm
ảnh ở tâm cửa sổ sẽ được thay bởi tổ hợp các điểm lân cận chập với
ma 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
Nếu n lẻ: Xtv =X( 2 +1)
(2.6)


11

Nếu n chẵn: Xtv =

n
2


n
2

X( )+ X( +1)

(2.7)

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:
M=

1 0 1
[1 2
8
0 1

1
1]
0

Hoặc
1 b
2
[
2 b b
(b+2) 1 b

2.4.3.4. Lọc thông cao
1

M=

1
b]
1

Là một bộ lọc phi tuyến tính. Thường dùng trong việc làm
trơn ảnh và tìm biên đối tượng có ở trong ảnh.
2.5. Các phép toán hình thái học
2.5.1.

Giới thiệu
Phần lớn các phép toán của "Hình thái" được định nghĩa từ

hai phép toán cơ bản là phép "giãn nở" (Dilation) và phép "co"
(Erosion).
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ở:
𝐴⨁𝐵 = {𝑐|𝑐 = 𝑎 + 𝑏, 𝑎 ∈ 𝐴, 𝑏 ∈ 𝐵}
Trong đó:
A: ma trận điểm ảnh của ảnh nhị phân


(2.8)


12

B: 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
đối tượng.
Công thức:
A⊖B= {c |(𝐵)𝑐 ⊆ 𝐴}

(2.9)

Trong đó:
A: ma trận điểm ảnh của ảnh nhị phân
B: phần tử cấu trúc
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:
Phép toán mở: 𝐴 ∘ 𝐵 = (𝐴 ⊖ 𝐵) ⊕ 𝐵
Phép toán đóng: 𝐴 ∙ 𝐵 = (𝐴⨁𝐵) ⊖ 𝐵

(2.10)
(2.11)

2.6. Phân vùng ảnh
Phân vùng ảnh là bước then chốt trong xử lý ảnh. Giai đoạn
này nhằm phân tích ảnh thành những thành phần có cùng tính chất
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
cùng độ nhám.


13

Phâ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:
UKi=1 Ri =X và Ri ∩Rj , ∀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.


14

2.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



15

2.9. Các hướng tiếp cận nhận dạng hình ảnh
2.9.1.

Giới thiệu

2.9.2.

Đặc trưng HOG

2.9.3.

Đặc trưng Sift (Scale invariant feature transform)

2.9.3.1. Xây dựng không gian tỉ lệ
2.9.3.2. Dò tìm cực trị cục bộ
2.9.3.3. Loại bỏ keypoint có độ tương phản (contrast) thấp
2.9.3.4. Loại bỏ keypoint nằm trên biên cạnh
2.9.3.5. Gán hướng cho keypoint
2.9.3.6. Miêu tả đặc trưng
2.9.4.

Đặc trưng Surf (Speed Up Robust Features)

2.9.4.1. Giới thiệu
Thuật toán của kỹ thuật Surf gồm những bước dưới đây:
 Sử dụng bộ dò Fast-Hessian để xác định các điểm
nổi bật;
 Gán hướng cho các điểm nổi bật và mô tả đặc trưng

SURF;
 So khớp đặc trưng.
2.9.4.2. Xác định điểm nổi bật
2.9.4.3. Gán hướng cho điểm nổi bật và mô tả đặc trưng Surf
2.9.4.4. Lập chỉ mục và so khớp


16

Chương 3. GIẢI PHÁP ĐỀ XUẤT XÂY DỰNG HỆ THỐNG
Sơ đồ tổng quát giải quyết bài toán

3.1.

Bài toán “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ộ” được giải quyết thông qua nhiều giai
đoạn, cụ thể như sau:
Thu
nhận
hình ảnh

Tiền xử


Phát
hiện
biển báo

Trích
xuất đặc

trưng

Nhận
dạng

Hình 3.1: Sơ đồ tổng quát giải quyết bài toán
3.2.

Thu thập dữ liệu
Hệ thống sẽ tìm hiểu và nhận dạng trên các nhóm biển báo

thường gặp. Với mỗi biển báo trong nhóm sẽ có ít nhất 10 hình chụp
với nhiều góc độ khác nhau để nhận dạng và mỗi hình sẽ được lưu
trong một thư mục riêng với tên thư mục là kí kiệu của biển báo đó.
Và với mỗi biển báo sẽ có video tương ứng để nhận dạng.
3.3.

Xử lý dữ liệu đầu vào
Trong giai đoạn này các hình ảnh sau khi số hóa sẽ được nâng

cao chất lượng hình ảnh. Sau đó sẽ chuyển về kênh màu HSV để tiến
hành phát hiện và nhận dạng đối tượng.
3.4.
3.4.1.

Phát hiện và nhận dạng đối tượng
Phát hiện và trích xuất vùng đặc trưng

3.4.1.1. Đặc trưng biển báo
Để phát hiện biển báo chúng ta dựa trên đặc trưng của biển

báo giao thông Việt Nam theo Quy chuẩn QCVN 41:2016/BGTVT
3.4.1.2. Phương pháp phát hiện biển báo
Dựa trên các đặc trưng của biển báo, nhóm sử dụng phương
pháp phát hiện biên kết hợp với đặc trưng màu để tìm ra biên ảnh của


17

biển báo, sau đó dùng đặc trưng nhận dạng hình học để giữ lại chính
xác các biên ảnh đúng, loại bỏ các biên giả.
 Phân đoạn màu
 Bước 1: chuyển ảnh từ không gian màu RGB sang không
gian màu HSV theo công thức (2.3) trình bày bên trên.

Hình 3.2: Kết quả chuyển từ mô hình RGB sang mô hình HSV
 Bước 2: so sánh giá trị các thành phần màu sắc với
ngưỡng màu muốn phân đoạn.

Hình 3.3: Minh họa kết quả phân đoạn màu đỏ

Hình 3.4: Minh họa kết quả phân đoạn màu xanh lơ


18

 Phát hiện vùng ứng viên
 Bước 1: kết quả phân đoạn màu ở giai đoạn trước được áp
dụng phép toán hình thái học giãn nở để tăng kích thước
cho đối tượng trước khi tìm biên.


Hình 3.5: Kết quả minh họa cho phép giãn nở
 Bước 2: sau khi thực hiện phép toán giãn nở, thuật toán
tìm biên được áp dụng để tìm biên cho đối tượng.

Hình 3.6: Minh họa cho kết quả tìm biên
 Bước 3: vẽ một đường bao hình chữ nhật màu trắng
quanh đối tượng được cho là biển báo ở đây gọi là vùng
ứng viên và cắt vùng biển báo này ra (ảnh binary).

ảnh binary

Hình 3.7: Minh họa kết quả vẽ đường bao định vị và cắt vùng ảnh binary


19

 Bước 4: cắt các vùng trên frame ảnh tương ứng với vị trí
các vùng ứng viên được phát hiện ở bước 3. Các vùng
này được trích đặc trưng Surf để thực hiện việc nhận
dạng.

ảnh ứng viên

Hình 3.8: Minh họa vùng ứng viên được cắt ra trên ảnh gốc
3.4.1.3. Trích xuất vùng đặc trưng
 Bước 1: các ảnh binary sau khi được cắt ra ở bước trước
đó được áp dụng phép lọc trung vị với ma trận lọc là 3x3
để loại bỏ bớt các nhiễu trên ảnh binary

Hình 3.9: Minh họa ảnh sau khi thực hiện phép lọc trung vị

 Bước 2: ảnh ứng viên sau khi được cắt ra sẽ so sánh với
ảnh binary sau khi lọc trung vị để bỏ bớt các điểm ảnh
bên ngoài biển báo bằng cách, duyệt qua lần lượt từng
điểm ảnh trên ảnh binary, tại vị trí có giá trị điểm ảnh


20

bằng 0 (màu đen) tương ứng ở ảnh ứng viên cũng tại vị trí
đó sẽ được gán giá trị 255 (màu trắng).

Hình 3.10: Hình minh họa kết quả sau khi loại bỏ vùng bên ngoài biển báo

 Bước 3: kết quả thu được ở bước 2 sẽ lưu vào thư mục
data và đưa vào rút trích đặc trưng Surf để nhận dạng.
3.4.2.

Nhận dạng đối tượng biển báo bằng đặc trưng Surf
Trong phần thu thập dữ liệu chúng ta có 2 tập dữ liệu. Tập

DataTest là tập dữ liệu dùng để kiểm tra, bên trong có nhiều tập con
tương ứng là ký hiệu của các biển báo. Tập dữ liệu thứ 2 là tập Data
chứa dữ liệu mẫu cho việc huấn luyện và nhận dạng (các ảnh này
được tạo ra trong bước trích xuất vùng biển báo và tự động lưu vào
thư mục Data). Để nhận dạng biển báo ta thực hiện các bước sau:
 Bước 1: các mẫu mới xuất hiện khi thực thi chương trình
được đưa vào SurfObj để trích xuất đặc trưng và nhận
dạng
 Bước 2: xác định các điểm nổi bật và gán hướng cho các
điểm nổi bật cho các mẫu mới phát hiện ở bước 1 và đưa

vào bộ mô tả descriptorObj.
 Bước 3: duyệt qua lần lượt từng ảnh trong tập dữ liệu
mẫu Data, với mỗi ảnh đưa vào SurfData phục vụ cho
việc trích xuất đặc trưng và nhận dạng bằng. Sau đó sẽ
được đưa vào máy học phục vụ cho việc nhận dạng.


21

 Bước 4: xác định các điểm nổi bật và gán hướng cho các
điểm nổi bật cho các mẫu Data ở bước 3 và đưa vào bộ
mô tả descriptorData.
 Bước 5: sau khi đã có 2 bộ mô tả việc tiếp theo là thực
hiện matching, so khớp mẫu giữa 2 bộ vừa mô tả, ảnh nào
trong Data có match lớn nhất sẽ được nhận dạng làm kết
quả
 Bước 6: nhận dạng và xuất kết quả

Hình 3.11: Hình minh họa kết quả nhận dạng biển báo
Chương 4. TRIỂN KHAI VÀ ĐÁNH GIÁ KẾT QUẢ
4.1.

Môi trường triển khai
- Cài đặt trên nền Window10;
- Phần mềm hỗ trợ là Visual Studio 2012;
- Ngôn ngữ sử dụng C++ và thư viện OpenCv 2.4.13.

4.2.

Kết quả thực nghiệm

Đối với tập dữ liệu ảnh kiểm tra: gồm 733 mẫu, số mẫu nhận

dạng đúng là 660 mẫu (chiếm khoảng 90%), số mẫu nhận dạng sai là
73 mẫu (chiếm khoảng 10%).


22

Bảng 4.1: Tập dữ liệu kiểm tra
Mẫu biển báo

Số lượng mẫu trong
tập kiểm tra

Số lượng mẫu nhận
dạng đúng

Số lượng mẫu nhận
dạng sai

13

12

1

10

10


0

19

17

2

12

12

0

25

23

2

26

23

3

36

34


2

10

8

2

47

43

4

45

38

7

44

42

2

36

34


2

38

32

6

10

9

1

21

18

3

34

30

4

72

68


4

77

70

7

10

8

2

12

11

1

66

63

3

10

10


0


23

Tổng

10

8

2

10

9

1

10

7

3

10

7

3


20

14

6

733

660

73

Đối với tập dữ dữ liệu video: gồm 20 video, do tập dữ liệu
huấn luyện lớn tốc độ CPU chậm nên việc nhận dạng với tập dữ liệu
video tương đối chậm, vẫn còn nhiều biển báo chưa được nhận dạng
và phát hiện trong các video.
4.3.

Đánh giá
Cơ sở dữ liệu của Surf thì không tốn nhiều cơ sở dữ liệu, xử

lý chủ yếu bằng thuật toán. Chỉ dùng một ảnh gốc thông qua Surf
trong OpenCV để so sánh với hình ảnh thực tế.
Thuật toán Surf có thể được dùng để nhận dạng ra những ảnh
có góc quay và tỉ lệ khác nhau (ảnh không nhất thiết phải vuông góc
với phương nhìn). Tuy nhiên thời gian tính toán khá lâu và khó áp
dụng trong thực tế nếu tập dữ liệu cần nhận dạng lớn.

KẾT LUẬN



Kết luận
Qua một thời gian dài nghiên cứu lý thuyết kết hợp với viết

chương trình, luận văn tốt nghiệp “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ộ” đã được hoàn
thành cơ bản và đạt được những kết quả sau:
o

Về mặt lý thuyết: trình bày được tổng quan về bài toán
phát hiện và nhận dạng biển báo giao thông đường bộ.


×