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

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.2 MB, 29 trang )

1

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN
THÔNG






Trần Thị Tuyết


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Ĩ


HÀ NỘI - 2013
2


Luận văn được hoàn thành tại:
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG



Người hướng dẫn khoa học: TS. NGUYỄN ĐỨC DŨNG


Phản biện 1:

Phản biện 2:




Luận văn sẽ được bảo vệ trước Hội đồng chấm luận văn
thạc sĩ tại Học viện Công nghệ Bưu chính Viễn thông
Vào lúc: giờ ngày tháng năm




Có thể tìm hiểu luận văn tại:
- Thư viện của Học viện Công nghệ Bưu chính Viễn thông

1

MỞ ĐẦU
 Lý do chọn đề tài
Ngày nay, khi tốc độ phát triển kinh tế, công
nghiệp và dịch vụ ngày càng tăng, nhu cầu giao thông đi
lại của con người càng trở thành vấn đề quan trọng. Tuy
nhiên, Việt Nam giao thông luôn là một vấn đề nóng của
xã hội. Từ quy mô phát triển đến cơ sở hạ tầng. Ý thức tự
giác và cảnh giác của người tham gia giao thông tại Việt

Nam lại chưa cao.
Theo số liệu thống kê của Ủy ban An toàn giao
thông Quốc gia, trong 9 tháng đầu năm 2013, cả nước đã
xảy ra 23.619 vụ tai nạn, làm chết 6.908 người và 25.002
người bị thương. Từ tình hình thực tế giao thông tại Việt
Nam, có nhiều nguyên nhân gây ra các vụ tai nạn giao
thông đường bộ, nhưng phần lớn là do tài xế không làm
chủ tốc độ, không quan sát hoặc không kịp nhận ra các
loại biển báo và tín hiệu giao thông. Đây là những nguy
hiểm đã được cảnh báo trước nhưng tai nạn vẫn thường
xuyên xảy ra, gây không ít thiệt hại về tính mạng và tài
sản của người tham gia giao thông.
2

Cho đến nay vấn đề này được nhiều nghiên cứu
trên thế giới quan tâm. Nhưng những biển báo giao thông
được nghiên cứu không phải dùng cho giao thông đường
bộ tại Việt Nam. Trong khi đó tình hình nghiên cứu biển
báo giao thông tại Việt Nam vẫn còn nhiều hạn chế và
chưa đầy đủ.
Vì vậy, luận văn đã chọn đề tài “Nhận dạng biển
báo giao thông đường bộ” để nghiên cứu với mục đích
hiểu được nền tảng công nghệ, các lý thuyết cơ bản trong
bài toán xử lý ảnh và áp dụng trong việc nhận dạng biển
báo giao thông một cách tự động.
 Mục đích nghiên cứu
- Nghiên cứu tìm hiểu các phương pháp nhận
dạng biển báo giao thông và cài đặt thử nghiệm chương
trình phát hiện và nhận dạng biển báo giao thông đường
bộ từ hình ảnh tĩnh và video thu về, sau đó hiển thị thông

tin cảnh báo dưới dạng hình ảnh.
 Đối tượng và phạm vi nghiên cứu
Biển báo giao thông đường bộ ở Việt Nam.
 Phương pháp nghiên cứu
3

- Tìm hiểu bộ ảnh biển báo giao thông đường bộ tại
Việt Nam, thu thập hình ảnh, video biển báo giao thông từ
các nguồn khác nhau (google image, tự chụp, …)
- Tìm hiểu phương pháp phát hiện biển báo giao
thông dựa trên trích chọn đặc trưng Haar-like kết hợp với
bộ tăng tốc Adaboost.
- Tìm hiểu phương pháp nhận dạng biển báo giao
thông đường bộ: Luận văn có sử dụng phương pháp phân
tích thành phần chính Principal Components Analysis
(PCA) và máy vector hỗ trợ Support Vector Machine
(SVM) để nhận dạng biển báo giao thông.
- Cài đặt chương trình thử nghiệm và đánh giá kết
quả nhận dạng.
 Bố cục luận văn
Luận văn chia thành ba phần chính: Phần mở đầu,
phần nội dung và phần kết luận.
Phần mở đầu: Nêu lên lý do chọn đề tài, đối tượng
và phạm vi nghiên cứu và phương pháp nghiên cứu của đề
tài.
Phần nội dung:
4

Chương 1: Tổng quan về xử lý ảnh. Chương này
trình bày những lý thuyết cơ bản về xử lý ảnh, tổng quát

các phương pháp phổ biến trong quá trình phát hiện và
nhận dạng đối tượng.
Chương 2: Phát hiện và nhận dạng ảnh. Phát
biểu bài toán nhận dạng biển báo giao thông và trình bày
nền tảng công nghệ, chi tiết các thuật toán hỗ trợ trong
việc phát hiện và nhận dạng biển báo bao gồm: Trích chọn
đặc trưng Haar-like, bộ tăng tốc Adaboost, phân tích thành
phần chính PCA và bộ phân lớp SVM.
Chương 3: Cài đặt và thử nghiệm. Tác giả sử
dụng ngôn ngữ VC++ MFC của bộ Visual Studio 2008, và
bộ thư viện xử lý ảnh mã nguồn mở OpenCV của Intel để
xây dựng chương trình. Sau đó phân tích và đánh giá kết
quả nhận dạng.
Cuối cùng là Phần kết luận và hướng phát triển
của đề tài.
5

Chương 1. TỔNG QUAN VỀ XỬ LÝ ẢNH
1.1 Một số khái niệm trong xử lý ảnh
1.1.1 Xử lý ảnh là gì?
1.1.2 Một số khái niệm
1.2 Một số phương pháp biểu diễn ảnh
1.2.1 Mã loạt dài
1.2.2 Mã xích
1.2.3 Mã tứ phân.
1.3 Các phương pháp phát hiện biên ảnh
1.3.1 Một số khái niệm
1.3.2 Kỹ thuật phát hiện biên trực tiếp
1.3.2.1 Phương pháp Gradient
1.3.2.2 Kỹ thuật phát hiện biên Laplace

1.3.2.3 Kỹ thuật phát hiện biên theo phương pháp Canny
1.3.3 Phát hiện biên gián tiếp
1.3.4 Phân vùng ảnh
1.3.4.1 Phân vùng ảnh theo ngưỡng biên độ
1.3.4.2 Phân vùng ảnh theo vùng đồng nhất
1.3.4.3 Phân vùng ảnh theo kết cấu bề mặt
1.4 Phương pháp trích chọn đặc trưng ảnh
Khái niệm.
Có thể hiểu trích chọn đặc trưng là quá trình rút
trích các đặc trưng đại diện cho ảnh, được gọi là các chi
tiết đặc trưng. Các chi tiết đặc trưng này yêu cầu phải có
6

thuộc tính là khả năng bảo toàn tính đặc thù để phân biệt
có trong ảnh, đồng thời phải có tính cô đọng, hỗ trợ chặt
chẽ cho quá trình đối sánh và ít bị tác động bởi nhiễu hoặc
sai lệch trong ảnh. Ngoài ra, còn yêu cầu phải dễ tính toán.
1.4.1 Đặc trưng Haar-like.
1.4.2 Đặc trưng Histogram of Oriented Gradients (HOG)
1.5 Các phương pháp nhận dạng đối tượng
1.5.1 Phương pháp Neural Networks (NN)
Mạng noron nhân tạo (Artifical Neural Networks)
mô phỏng lại mạng noron sinh học là một cấu trúc khối
gồm các đơn vị tính toán đơn giản được liên kết chặt chẽ
với nhau trong đó các liên kết giữa các noron quyết định
chức năng của mạng. Về cơ bản mạng Neural là một mạng
các phần tử (gọi là neural) kết nối với nhau thông qua các
liên kết (các liên kết này được gọi là trọng số liên kết) để
thực hiện một công việc cụ thể nào đó. Khả năng xử lý
của mạng neural được hình thành thông qua quá trình hiệu

chỉnh trọng số liên kết giữa các neural, nói cách khác là
học từ tập hợp các mẫu huấn luyện.
Ưu điểm: - Dễ cài đặt cùng với khả năng học và tổng
quát hoá rất cao.
7

- Tốc độ xử lý nhanh
- Linh hoạt và dễ bảo trì:
Nhược điểm: - Tính chậm và xác suất không cao không
có quy tắc tổng quát để xác định cấu trúc mạng và các
tham số học tối ưu cho một (lớp) bài toán nhất định.
- Tiêu chuẩn thu thập cơ sở dữ liệu huấn luyện còn
khắt khe.
- Đòi hỏi thời gian xử lý cao với mạng một mạng
Neural lớn.
1.5.2 Phương pháp Support Vector Machine (SVM)
Cho trước một tập huấn luyện, các ảnh được biểu
diễn dưới dạng vector. Trong không gian vector, mỗi
vertor được biểu diễn bởi một điểm. Phương pháp SVM sẽ
tìm một siêu phẳng quyết định để phân chia không gian
vector thành hai lớp. Chất lượng của siêu phẳng này phụ
thuộc vào khoảng cách giữa các vector, tức là phụ thuộc
vào các đặc trưng của ảnh.
Ưu điểm: - Cho kết quả nhận dạng với độ chính xác cao
- Bài toán huấn luyện SVM thực chất là bài toán
QP trên một tập lồi, do đó SVM luôn có nghiệm toàn cục
và duy nhất, đây chính là điểm khác biệt rõ nhất giữa
8

SVM so với phương pháp mạng Neural, vì mạng Neural

vốn tồn tại nhiều điểm cực trị địa phương.
Nhược điểm: - Hạn chế lớn nhất của SVM là tốc độ
phân lớp rất chậm, tùy thuộc vào số lượng các véc tơ hỗ
trợ.
- Giai đoạn huấn luyện SVM đòi hỏi bộ nhớ rất
lớn, do đó các bài toán huấn luyện với số lượng mẫu
lớn sẽ gặp trở ngại trong vấn đề lưu trữ. Hiệu quả
phân lớp của SVM phụ thuộc vào hai yếu tố: giải bài
toán QP và lựa chọn hàm nhân.
1.5.3 Phương pháp Linear Discriminant Analysis
Mục đích của LDA - Linear Discriminant
Analysis là tìm cách phân loại các đối tượng (người, sự
vật,…) vào một trong hai hay nhiều lớp đã được xác định
trước dựa vào các đặt trưng (feature) dùng để mô tả đối
tượng (ví dụ như các đặc trưng dùng để mô tả đối tượng
khách hàng là giới tính, tuổi, nghề nghiệp, thu nhập,…)
Ưu điểm: - Dễ dàng hơn để đào tạo, phương sai thấp,
hiệu quả hơn nếu mô hình là chính xác.
- LDA làm việc tốt khi số mẫu là lớn.
9

Nhược điểm: - LDA gặp phải vấn đề khi tổng số mẫu
huấn luyện ít hơn so với kích thước của không gian đặc
trưng.
1.5.4 Phương pháp Naive Bayes (NB)
Ý tưởng cơ bản của cách tiếp cận NB là sử dụng
xác suất có điều kiện.
Ưu điểm: Cho độ chính xác cao khi kết hợp với các
phương pháp khác.
Nhược điểm: - Chi phí thời gian để đếm mẫu

- Phải kết hợp với các phương pháp khác
1.5.5 Phương pháp Principal Component Analysis
PCA (Principal Component Analysis) là một thuật
toán được sử dụng để tạo ra một ảnh mới từ ảnh ban đầu.
Ảnh mới này có kích thước nhỏ hơn nhiều so với ảnh ban
đầu nhưng vẫn mang những đặc trưng cơ bản nhất của ảnh
cần nhận dạng. Nói một cách ngắn gọn, mục tiêu của
PCA là tìm một không gian mới (với số chiều nhỏ hơn
không gian cũ). Các trục tọa độ trong không gian mới
được xây dựng sao cho trên mỗi trục, độ biến thiên của dữ
liệu trên đó là lớn nhất có thể.
Ưu điểm:
10

- Tìm được các đặc tính tiêu biểu của đối tượng cần
nhận dạng mà không cần phải xác định các thành phần và
mối quan hệ giữa các thành phần đó.
- Thuật toán có thể thức hiện tốt với các ảnh có độ
phân giải cao, do PCA sẽ thu gọn ảnh thành một ảnh có
kích thước nhỏ hơn.
- PCA có thể kết hợp với các phương pháp khác để
mang lại hiệu quả nhận dạng cao hơn
Nhược điểm: - PCA chỉ làm việc với dữ liệu numeric
- PCA rất nhạy với nhiễu.
- Không phù hợp với các mô hình phi tuyến do
PCA hoàn toàn dựa trên các biến đổi tuyến tính.
- Cài đặt thuật toán phức tạp
Kết luận chương 1
11


Chương 2: PHÁT HIỆN VÀ NHẬN DẠNG ẢNH
2.1 Bài toán nhận dạng đối tượng
2.2 Các nghiên cứu liên quan đến nhận dạng đối tượng
2.3 Bài toán nhận dạng biển báo giao thông
2.3.1 Phương pháp phát hiện dựa trên màu sắc
2.3.2 Phương pháp phát hiện dựa trên hình dạng
2.3.3 Phương pháp phát hiện dựa trên máy học
2.4 Trích chọn đặc trưng ảnh biển báo giao thông
Đặc trưng Haar-like được sử dụng trong việc nhận
dạng đối tượng trong ảnh số được phát biểu bởi Viola và
Jones[5] gồm 4 đặc trưng cơ bản để xác định một đối
tượng trong ảnh. Mỗi đặc trưng Haar-like là sự kết hợp
gồm 2 hoặc 3 khối chữ nhật mang giá trị “đen” hoặc
“trắng”. Những khối chữ nhật này thể hiện sự liên hệ
tương quan giữa các bộ phận trong ảnh mà bản thân từng
giá trị pixel không thể diễn đạt được.

Hình 2.1 Đặc trưng Haar-like cơ bản
Đặc trưng haar-like được mở rộng ra và được chia
thành 3 tập đặc trưng như sau:
12


(1). Đặc trưng theo cạnh

(2). Đặc trưng theo đường

(3). Đặc trưng xung quanh tâm
Hinh 2.2 Đặc trưng Haar-like mở rộng
Dựa theo các đặc trưng trên, giá trị của đặc trưng

Haar-like: f(x) = Tổng
vùng đen
(các mức xám của pixel) -
Tổng
vùng trắng
(các mức xám của pixel)
“Integral Image” (ảnh chia nhỏ)
Integral Image tại vị trí (x,y) bằng tổng các giá trị
điểm ảnh phía trên và bên trái của (x,y). Tổng các điểm
ảnh trong một hình chữ nhật (kể cả trường hợp xoay 45º)
bất kì đều có thể được tính nhanh dựa trên integral image
tại 4 đỉnh của nó :
Sum (D ) = 4 + 1 – (2 + 3)
13


Hình 2.4 Ví dụ cách tính nhanh tổng các điểm ảnh của
vùng D trên ảnh
2.5 Phát hiện biển báo giao thông
2.5.1 Tiếp cận Boosting
Nguyên lý cơ bản của boosting là sự kết hợp các
phân lớp yếu (weak classification) thành một phân lớp
mạnh (strong classification). Trong đó, phân lớp yếu là
các bộ phân loại đơn giản chỉ cần có độ chính xác trên
50%. Bằng cách này, chúng ta nói bộ phân loại đã được
“boost”.
2.5.2 Thuật toán Adaboost
Thuật toán AdaBoost tuân theo các bước sau: [4]
1. Cho một tập gồm n mẫu có đánh dấu (x
1

, y
1
), (x
2
, y
2
),…
(x
n
, y
n
) với x
k
∈ (x
k1
, x
k2
, … , x
km
) là vector đặc trưng và
y
k
∈ (-1, 1) là nhãn của mẫu (1 ứng với object, -1 ứng với
background).
2. Khởi tạo trọng số ban đầu cho tất cả các mẫu:
A

C

B


D

P
1
P
2
P
3
P
4
14

với m là số mẫu đúng (ứng với object và y = 1) và l là số
mẫu sai (ứng với background và y = -1).

3. Xây dựng T phân loại yếu :
 Lặp t = 1, …, T. Với mỗi đặc trưng trong vector đặc
trưng, xây dựng một phân loại yếu h
j
với ngưỡng θ
j

lỗi ε
j
.


n
k

kkjktj
yxhw |)(|
,


 Chọn ra h
j
với ε
j
nhỏ nhất, ta được h
t
:
}1,1{: Xh
t

 Cập nhật lại trọng số:










kkt
kkt
t
kt

kt
yxhe
yxhe
Z
w
w
t
t
)(,
)(,
,
,1



 Trong đó:
)
1
ln(
2
1
j
j
t







Z
t
: Hệ số dùng để đưa W
t+1
về đoạn [0,1]
(normalization factor)
4. Phân loại mạnh được xây dựng :
))(()(
1



T
t
tt
xhsignxH


15

2.6 Nhận dạng biển báo giao thông
2.6.1 Phương pháp phân tích thành phần chính PCA
2.6.1.1 Giới thiệu phương pháp PCA.
2.6.1.2 Thuật toán PCA
Mục tiêu của phương pháp PCA là “giảm số
chiều” của 1 tập vector sao cho vẫn đảm bảo được “tối đa
thông tin quan trọng nhất”







Hình 2.9 Chuyển vector x ban đầu có N chiều thành
vector y còn K chiều
Tất nhiên, khi loại bỏ 1 số thành phần của x để thu được y
thì sẽ gây ra sai số (lỗi).  Phương pháp PCA sẽ cố gắng
tìm phép biến đổi tuyến tính T thỏa: y = T.x sao cho trung
bình bình phương lỗi (MSE) là bé nhất.
 Cách để tìm được T:
Không gian N chiều với
hệ cơ sở v
1,
v
2
,…,v
n

Không gian K chiều (K<<N)
với hệ cơ sở u
1,
u
2
,…,u
n
Ánh xạ tuyến
tính T cần tìm
(phép chiếu)
Vector
x


ban đầu có
N
chi
ều

Vector
y
ch
ỉ c
òn
K

chiều
16

Gọi M là vector trung bình của tất cả các vector x trong
tập mẫu. Gọi ma trận hiệp phương sai của các phần tử x
trong tập mẫu là C. C được tính theo công thức sau:

Người ta chứng minh được rằng: “Nếu T là ma trận m
hàng, mỗi hàng là 1 vector riêng của C, đồng thời m
vector riêng này phải ứng với m trị riêng lớn nhất. Khi
đó T chính là phép biến đổi thỏa MSE nhỏ nhất”.
 Nói tóm lại, phương pháp PCA quy về việc đi
tìm trị riêng (eigenvalues) và vector riêng (eigenvectors)
của ma trận hiệp phương sai C của tập mẫu X. Sau đó, ta
chỉ giữ lại K vector riêng ứng với K trị riêng lớn nhất để
làm cơ sở cho không gian mới này.
2.6.2 Nhận dạng biển báo giao thông bằng phương pháp

máy vecto hỗ trợ (Support Vector Machine)
2.6.2.1 SVM trong trường hợp tập mẫu phân hoạch tuyến
tính được.
a. Giai đoạn huấn luyện SVM. Ta có tập huấn luyện
gồm m điểm có dạng: (x
1
, y
1
), (x
2
, y
2
), , (x
m
, y
m
). Trong
17

đó mỗi x
i
là một vecto thực p chiều, x
i
 R
n
, còn y
i
 {1,
-1} là phân lớp của x
i

.
Ta cần xác định một siêu phẳng wx + b = 0 (nằm ở
càng xa các điểm dữ liệu của tất cả các lớp (gọi là lề) càng
tốt) mà có thể tách biệt được hai lớp trên. Bài toán quy về:
Cực tiểu hoá (theo w, b)
2
||||
2
1
w với điều kiện
y
i
(wx
i
+ b) -1 ≥ 0 (với mọi i = 1, 2, , m).
Chuyển qua giải bài toán đối ngẫu sau: Tìm cực đại của:
)(u

với u

R
m
, u ≥ 0, trong đó )(u

= inf{
2
||||
2
1
w -



m
i
i
u
1
[
y
i
(wx
i
+ b) – 1] : w

R
n
, b

R}
Để tính b, vận dụng điều kiện Karush – Kuhn –
Tucker (KKT) cho bài toán gốc. Vậy ta đã tính được b sau
đó tính w theo công thức



m
i
iii
xyuw
1

và xác định được
siêu phẳng phân hoạch.
b. Giai đoạn nhận dạng: Bây giờ giả sử có một mẫu dữ
liệu cần nhận dạng x* nào đó, thì phân lớp y* của x* (-1
hay 1) được xác định thông qua công thức:




m
i
iii
bxxyusignbwxsignxfy
1
)*()*(*)(*

18

2.6.2.2 SVM tuyến tính trong trường hợp tập mẫu không
phân hoạch tuyến tính được.
Phương pháp này sử dụng các biến bù 
i
dùng để
đo độ sai lệch của mẫu x
i
.
wx
i
+ b ≥ 1 -


i
với y
i
= 1; wx
i
+ b ≤ -1 +

i
với y
i
= -1;

i
≥ 0 , i = 1, 2, , m
Với cách đặt như vậy thì sai số thực nghiệm
Empirical Risk là:


m
i
i
1
2

. Tương tự cách trên ta có thể cực
tiểu biểu thức sau:



m

i
i
Cw
1
2
||||
2
1

trong đó C là một
hằng số dương tự chọn. Cách này được gọi là C-SVM do
dựa trên giá trị của khoảng cách lỗi.
Vậy bài toán có thể phát biểu như sau:
Cực tiểu:



m
i
i
Cwbwf
1
2
||||
2
1
),,(


Với y

i
(wx
i
+ b ) – 1 +

i
≥ 0 i = 1, 2, , m;

i
≥ 0
Như vậy bài toán đối ngẫu được viết lại thành:
Giải bài toán đối ngẫu của bài toán này ta tìm được u và từ
đó tính được w. Vậy đã tìm được siêu phẳng phân chia
một tập dữ liệu không thể phân hoạch tuyến tính. Siêu
phẳng như vậy được gọi là siêu phẳng lề mềm.
2.6.2.3 SVM phi tuyến
Kết luận chương 2
19

Chương 3. CÀI ĐẶT VÀ THỬ NGHIỆM
3.1 Thu thập dữ liệu
Biển báo giao thông ở Việt Nam được chia thành 5
nhóm: Nhóm biển chỉ dẫn, nhóm biển hiệu lệnh, nhóm
biển báo cấm, nhóm biển báo nguy hiểm, nhóm biển phụ.
Trong ứng dụng demo, tác giả chỉ nhận dạng 13
loại biển báo
Biển
báo
Số
hiệu

Biển
báo
Số
hiệu
Biển
báo
Số
hiệu
Biển
báo
Số
hiệu
102

201b

207a

201a
123a

202

207b

123b

203a

207c


130

131 221b

Bảng 3.1 Các biển báo nhận dạng trong ứng dụng.
3.2 Tổ chức dữ liệu
Ảnh được dùng trong quá trình huấn luyện phát
hiện biển báo gồm 2 loại: Positive, Negative
20

Bộ ảnh huấn luyện nhận dạng gồm 1100 ảnh, với
mỗi loại biển báo cần nhận dạng có số lượng tối thiểu
là 50 ảnh được lưu vào từng thư mục riêng và được đặt tên
theo thứ tự. Bộ ảnh mẫu là ảnh biển biển báo giao thông
chuẩn của Bộ Giao thông vận tải được lưu với định dạng
.bmp và kích thước 80x80 trong thư mục Data\Labels.
3.3 Thực nghiệm
3.3.1 Môi trường thực nghiệm
3.3.2 Dữ liệu đầu vào
Dữ liệu đầu vào cho chương trình là tập dữ liệu chủ
yếu là ảnh tự chụp, được lưu trong thư mục IMGTEST
bao gồm 762 ảnh tĩnh và 56 video có chứa biển báo giao
thông. Các ảnh được chụp trong các điều kiện thời tiết,
chiếu sáng khác nhau. Mỗi ảnh được chụp ở nhiều góc độ
khác nhau như xa, gần, nghiêng,
3.3.3 Xử lý dữ liệu
3.3.3.1 Huấn luyện phát hiện biển báo trong ảnh
a) Chuẩn bị dữ liệu ảnh huấn luyện
Tập ảnh Positive: “haarkit\temp\positive\rawdata”.

Tập ảnh Negative: “haarkit\temp\negative”.
21

Chạy file “create_list.bat” trong thư mục “negative” để tạo
ra file “infofile.txt” chứa tên tất cả các file ảnh Negative,
mỗi tên trên một dòng.
b) Lấy mẫu đối tượng từ bộ dữ liệu
Sử dụng chương trình ObjectMarker tạo ra file
“info.txt” chứa toàn bộ các thông tin các biển báo trong
tập ảnh Positive.
c) Huấn luyện máy học. Quá trình này gồm 2 bước :
Bước 1 : Tạo ra file “vector.vec” đưa vào huấn luyện ở
bước 2.
Bước 2: Học huấn luyện với HaarTraining
Sau khi giai đoạn này hoàn tất tác giả có được các phân
tầng đặc trưng của đối tượng theo thuật toán AdaBoost.
Để có thể sử dụng được các phân tầng này trong chương
trình, tác giả tiếp tục sử dụng trình “haarconv.exe” để tạo
ra file ““output.xml” chứa dữ liệu đã học được.
- Phát hiện biển báo trong ảnh. Để sử dụng file
“output.xml” cho việc phát hiện biển báo, trong ứng dụng
tác giả sử dụng các hàm
(CvHaarClassifierCascade*)cvLoad("output.xml") để
22

load dữ liệu đã được huấn luyện và hàm
cvHaarDetectObjects để phát hiện các biển báo trong ảnh.

Hình 3.19 Ví dụ về phát hiện một biển báo trong ảnh.


Hình 3.20 Ví dụ về phát hiện
hai biển báo trong ảnh.
Hình 3.21 Ví dụ về phát hiện thiếu
biển báo trong ảnh.
3.3.3.2 Huấn luyện nhận dạng biển báo trong ảnh
Các biển báo cần nhận dạng được đưa về cùng một
kích thước là 50x50 để tiến hành huấn luyện. Tác giả có
23

viết riêng một hàm ResizeImageTo50x50(const char*
filename) trong chương trình để thực hiện công việc này.
Sau khi xây dựng được bộ dữ liệu phục vụ huấn
luyện nhận dạng, tác giả sử dụng lớp đối tượng PCA của
bộ thư viện OpenCV để tiến hành tính ma trận trung bình,
trị riêng và véc tơ riêng của ma trận covariance được xây
dựng từ tập dữ liệu đầu vào theo phương pháp phân tích
thành phần chính (PCA) đã được trình bày chi tiết ở
chương 2, sau đó lưu các giá trị này vào các file
“pcamean.txt”, “pcaeigenvalues.txt” và
“pcaeigenvectors.txt” để phục vụ quá trình nhận dạng biển
báo sau này:
Để huấn luyện nhận dạng bằng phương pháp SVM,
tác giả sử dụng hàm: CvSVM svm(data, values, Mat(),
Mat(),CvSVMParams(CvSVM::C_SVC, CvSVM::LINEAR,
0, 0, 0, 2,0, 0, 0, cvTermCriteria(CV_TERMCRIT_EPS,0,
0.01))); để tạo bộ huấn luyện nhận dạng với dữ liệu đầu
vào là ma trận “data”, tương ứng với tên lớp được lưu
trong ma trận “values”. Nhằm mục đích sử dụng cho việc
nhận dạng biển báo sau này, dữ liệu sau khi huấn luyện

×