LỜI CẢM ƠN
Trước tiên, xin cảm ơn thầy TS Trương Đình Châu vì đã gợi mở, quan
tâm, giúp đỡ cho học viên trong suốt thời gian thực hiện đề tài tốt nghiệp này.
Bên cạnh đó, học viên cũng xin gởi lời cảm ơn đến tất cả những thầy cô
đã trực tiếp giảng dạy trong suốt khóa học; những người bạn đã quan tâm,
động viên và chia sẻ kiến thức cũng như kinh nghiệm chuyên ngành trong quá
trình học tập và rèn luyện vừa qua của học viên.
Cũng xin chân thành cảm ơn sự quan tâm hỗ trợ, tạo điều kiện và hết
lòng động viên về tinh thần lẫn vật chất của các thành viên trong gia đình
trong suốt thời gian qua.
Sau cùng, học viên gởi lời chúc sức khỏe, hạnh phúc đến quý thầy cô,
gia đình và bạn bè.
Trường Đại học Bách Khoa Tp. Hồ Chí Minh
Tháng 11 năm 2008
Học viên
Võ Hồng Phong
TÓM TẮT LUẬN VĂN THẠC SĨ
Trong thời đại của thế kỷ 21, với sự phát triển nhảy vọt của trình độ Khoa học
kỹ thuật, con người đã tạo nên và phát triển nhiều công trình khoa học mang tính
tầm cỡ. Với sự thay thế dần của máy móc cho con người trong các nhiệm vụ mang
tính chính xác và tập trung cao thì kết quả đạt được đã hoàn toàn được tin cậy và
đánh giá cao. Điều này thực sự có ý nghĩa to lớn và góp phần tăng thêm giá trị và
chất lượng cuộc sống.
Đề tài luận văn này, nhận dạng xe trên cơ sở thị giác máy tính, cũng không
nằm ngoài ý nghĩa đó. Đây là một dạng ứng dụng thú vị mà nhiều nhà khoa học đã,
đang và sẽ không ngừng nghiên cứu vì nhu cầu thực tiễn và đa dạng phương pháp
tiếp cận.
Trong đề tài này sẽ trình bày trong đó các vấn đề liên quan tới kiến thức nền
tảng xây dựng nên luận văn. Học viên đã sử dụng công cụ OpenCV ứng dụng các
đặc trưng Haar-like chạy trên nền tảng Visual C++.NET và thuật toán tăng tốc
AdaBoost nhằm nâng cao tốc độ phát hiện và nhận dạng các hình thái khác nhau
của xe. Kết quả thu được có đặc tính thời gian thực các diễn tiến của quá trình phát
hiện và nhận dạng xe.
Nội dung luận văn gồm 5 chương:
Chương 1: Giới thiệu tổng quan
Chương 2: Cơ sở lý thuyết
Chương 3: Xây dựng hệ thống
Chương 4: Kết quả - Nhận xét – Phân tích
Chương 5: Kết luận và hướng phát triển đề tầi
105 trang |
Chia sẻ: banmai | Lượt xem: 3046 | Lượt tải: 5
Bạn đang xem trước 20 trang tài liệu Nhận dạng xe trên cơ sở thị giác máy tính, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
1 ==
3. Lặp lại cho Mm ,...,1=
(a) Phù hợp hàm đệ quy ( )xfm bởi trọng số bình phương tối thiểu (least-
squares) của iy đối với ix với trọng số iw
(b) Đặt giá trị ( )( )imiii xfyww .exp. −← , i = 1,…,N và chuẩn hóa các
trọng số để ∑ =
i
iw 1
4. Ngõ ra của bộ phân loại ( )
∑
=
M
m
mm xfcsign
1
.
Trong ba phương pháp AdaBoost trên, học viên thực hiện luận văn đã chọn
phương pháp GAB làm phương pháp chính cho quá trình huấn luyện máy.
Trang 28
Võ Hồng Phong Luận văn tốt nghiệp
Bộ phân loại mạnh cuối cùng là sự kết hợp có trọng số của các bộ phân loại
yếu:
)(...)()()()( 332211 xhxhxhxhxH NNαααα ++++=
Quá trình học huấn luyện nhận dạng theo từng chuỗi cascade và các giai đoạn
stage được thể hiện như hình dưới đây, trong đó đối tượng cần được phát hiện là
đường cong đặc, kín, màu xanh da trời (được đặt tên là: Target Concept) [3]
Hình 2.7: Mô hình minh họa tác vụ phát hiện vật thể dùng chuỗi cascade
Trong thực tế, chuỗi cascade các bộ phân loại được triển khai nhằm tăng tốc
độ thực thi của thuật toán phát hiện. Trong giai đoạn đầu của quá trình huấn luyện,
ngưỡng của bộ phân loại yếu được điều chỉnh đủ thấp sao cho xấp xỉ 100% các đối
tượng đích có thể được dò ra trong khi vẫn giữ tỉ lệ nhận dạng sai mẫu không tích
cực gần bằng zero. Sự cân bằng của một ngưỡng thấp gắn liền với tỉ lệ phát hiện sai
mẫu tích cực cao hơn. Một mẫu tích cực ngõ ra từ bộ phân lớp đầu tiên là thông số
đặt ngõ vào cho bộ phân lớp thứ hai, cũng sẽ được điều chỉnh sao cho đạt được tỉ lệ
phát hiện rất cao. Tương tự như thế, một mẫu tích cực xuất ra từ bộ phân lớp thứ hai
lại tiếp tục là thông số đặt ngõ vào cho bộ phân lớp thứ ba, …[11].
Trang 29
Võ Hồng Phong Luận văn tốt nghiệp
Các cửa sổ con là tích cực (phù hợp, dò đúng đối tượng) nếu được cho qua tại
từng bộ phân lớp của chuỗi cascade đã được huấn luyện. Nếu không, một ngõ ra
trên chuỗi sẽ loại bất kì cửa sổ không phù hợp ngay lập tức (Hình 2.8); [9, trang 59]
[10] ; [link 1].
Hình 2.8: Dùng chuỗi cascade đã được huấn luyện để phát hiện cửa sổ con phù hợp
Bằng cách sử dụng cấu trúc gồm các chuỗi cascade song song, tốc độ phát
hiện đối tượng sẽ được cải thiện đáng kể (Hình 2.9) [link 1] .
Trang 30
Võ Hồng Phong Luận văn tốt nghiệp
Hình 2.9: Cấu trúc các chuỗi cascade song song
2.2.4 Giai đoạn huấn luyện của bộ phân loại (stage)
Thuật toán tăng tốc thích nghi được sử dụng làm phương pháp chính để phát
hiện và phát hiện đối tượng xe trong luận văn. Thuật toán tăng tốc là mô hình học
máy hiệu quả được sử dụng nhiều trong các đề tài về nhận dạng trước đây. Mô hình
này chỉ sử dụng các bộ phân loại yếu.
Tác vụ học được dựa trên N mẫu huấn luyện ( ) ( )NN yxyx ,,...,, 11 với
kx ℜ∈ và { }1,1−∈iy . ix và vectơ có thành tố k. Mỗi thành tố k có chức năng mã
hóa một đặc trưng có liên quan cho tác vụ học. Ngõ ra mong muốn sau khi mã hóa
có hai giá trị là -1 và 1. Trong trường hợp phát hiện đối tượng vật thể, thành tố ngõ
vào ix là một đặc trưng Haar-like. Các giá trị ngõ ra -1 và 1 cho biết ảnh xử lý có
chứa hay là không chứa đối tượng mong muốn.
2.2.5 Tầng phân loại (cascade)
Tầng (đợt) của bộ phân loại bao gồm các cây (tree) giá trị giảm dần sau mỗi
giai đoạn (stage) mà bộ phân loại được huấn luyện để nhận dạng hầu hết các đối
tượng vật thể mong muốn, đồng thời cũng loại bỏ các đối tượng không được huấn
luyện. Ví dụ, trong luận văn này, các bộ phân loại được huấn luyện qua ít nhất 20
giai đoạn (stage). Đến giai đoạn cuối cùng, giá trị false alarm = 076.95.0 20 −≈ e
và độ trùng khít (hit rate) khoảng 9047.0995.0 20 ≈ . (Hình 2.10) [4, phần 4]
Trang 31
Võ Hồng Phong Luận văn tốt nghiệp
h h h h h
. . . . .
1 - f 1 - f 1 - f 1 - f
hit-rate = hN
false-alarms = fN
stage 1 stage 2 stage 3 stage N
Hình 2.10: Cấu trúc các chuỗi cascade nối tiếp, với N giai đoạn học huấn luyện
Giả sử, thiết lập ban đầu với các giá trị
=−
=−
9 9 5.0
5.0
r a t eh i t
a l a r mf a l s e
Stage 1:
=
=
9 9 5.0
5.0
1
1
h
f
Stage 2:
=
=
2
2
2
2
9 9 5.0
5.0
h
f
Stage 3:
=
=
3
3
3
3
9 9 5.0
5.0
h
f
…
Stage N:
=
=
N
N
N
N
h
f
9 9 5.0
5.0
Trang 32
Võ Hồng Phong Luận văn tốt nghiệp
Tại mỗi giai đoạn huấn luyện stage, bộ phân loại tạo ra thông số hit-rate h và
false-alarm rate f mới làm ngõ vào thông số đặt cho giai đoạn huấn luyện kế tiếp
sau.
Ứng với mỗi giai đoạn được huấn luyện sử dụng một trong phương pháp tăng
tốc. Bộ tăng tốc có thể học huấn luyện bởi một một phân loại mạnh dựa trên một tập
hợp các bộ phân loại yếu bằng cách dò lại trọng số các mẫu huấn luyện. Bộ phân
loại yếu được dùng cho giai đoạn đầu của quá trình huấn luyện, dùng để tập hợp và
đúc kết các đặc trưng sơ của tập huấn luyện. Tại mỗi tầng huấn luyện, bộ phân loại
dựa theo các đại lượng đặc trưng vừa được cập nhật tại tầng kế trước (false-alarm,
hit-rate) được thêm vào nhằm tăng thêm tính chính xác trong quá trình tính toán
trọng số đặc trưng. Với việc tăng dần số giai đoạn huấn luyện và số lượng các bộ
phân loại yếu, sẽ là cần thiết để tính ra các thông số false-alarm rate ứng với mỗi
hit-rate đã tính được sẽ làm tăng tính chính xác cho tác vụ phát hiện đối tượng.
Trang 33
Võ Hồng Phong Luận văn tốt nghiệp
2.2.6 Đặc tính co giãn vùng đặc trưng đối tượng
2.2.6.1 Phát biểu bài toán
Không phải lúc nào đối tượng xuất hiện trong ảnh cũng xuất hiện với vị trí tọa
độ hoặc diện tích vị trí chiếm chỗ là không đổi, mà ngược lại, các đối tượng xuất
hiện tại rất nhiều vị trí khác nhau và diện tích chiếm chỗ khác nhau. Do đó, để có
thể phát hiện ra đặc trưng đối tượng trong ảnh với các diện tích chiếm chỗ khác
nhau thì cần một thuật toán phát hiện đối tượng bám theo tính co giãn của đặc trưng
đối tượng. Một trong những ưu điểm của phương pháp đặc trưng Haar-like là dễ
dàng co giãn cửa sổ đặc trưng. Thuật toán này phát hiện đặc trưng với các ảnh chia
nhỏ chứa các các đặc trưng tìm được trong ảnh bắt đầu từ phía trên bên trái và ảnh
chia nhỏ bắt đầu được lớn dần theo hướng qua phải và hướng xuống dưới. Giải
pháp thích hợp để khoanh vùng đặc trưng ảnh là khoanh vùng bao gồm tất cả các
ảnh chia nhỏ chứa đặc trưng vừa tìm được. Khi đối tượng trong ảnh có xu hướng
tăng dần diện tích chiếm chỗ trong ảnh (ví dụ trường hợp đối tượng tiến đến gần
camera) thì lượng ảnh chia nhỏ tăng nhiều hơn để chứa các đặc trưng.
2.2.6.2 Thuật toán
Thuật toán phát hiện đối tượng, đồng thời co giãn vùng cửa sổ đặc trưng sao cho
luôn bám theo đối tượng được viết trong Bảng 2.2.
Trang 34
Võ Hồng Phong Luận văn tốt nghiệp
Bảng 2.2: Thuật toán phát hiện đồng thời co giãn vùng đặc trưng đối tượng [3, trang
11]
window_size = window_size0
scale = 1
objects = {}
while (window_size ≤ image_size) do
classifier_cascade = classifier_cascade0 × scale
dX = scale
dY = scale
for (0 ≤ Y ≤ image_height – window_height) do
for (0 ≤ X ≤ image_height – window_height) do
region_to_test = { 0 ≤ x ≤ X + window_width ;
0 ≤ y ≤ Y + window_width }
if (classifier_cascade(region_to_test) = 1)
then objects = objects ∪ {region_to_test}
end if
X = X + dX
end for
Y = Y + dY
end for
scale = scale × C // C: constant; = 1.1 ; 1.2
end while
Trang 35
Võ Hồng Phong Luận văn tốt nghiệp
CHƯƠNG 3
XÂY DỰNG HỆ THỐNG
3.1 Ý TƯỞNG XÂY DỰNG VÀ HOẠT ĐỘNG CỦA HỆ THỐNG
Từ yêu cầu đặt ra của luận văn, học viên đề xuất và thực hiện hệ thống:
Một card thu hình nhận tín hiệu video trực tuyến từ camera (hoặc nhập một
file video) và gửi nó đến máy tính có phần mềm phát hiện và nhận dạng xe
được viết bằng ngôn ngữ lập trình thích hợp. Trong trường hợp không thể
cho hệ thống thực hiện tại thực địa cảnh quang giao thông thì có thể quay
video lại cảnh quang giao thông cho máy tính xử lý.
Sau thời gian tính toán, máy tính sẽ tiến hành phát hiện và nhận dạng xe xuất
hiện trong chuỗi hình ảnh và tiến hành khoanh vùng có chứa đặc trưng xe.
Trong quá trình nghiên cứu, học viên đã tích hợp thêm thuật toán ước lượng
khoảng cách từ camera đến xe, đếm phân loại các xe,… từ đó người khảo sát
có thể tính toán các thông số liên quan đến xe hoặc cảnh quang giao thông.
3.2 TIẾN HÀNH XÂY DỰNG CƠ SỞ DỮ LIỆU ẢNH XE
3.2.1 Xây dựng cơ sở dữ liệu
Trang 36
Võ Hồng Phong Luận văn tốt nghiệp
3.2.1.1 Thu thập hình ảnh xe
Nhờ vào việc sử dụng các công cụ tìm kiếm trên internet và từ các nguồn ảnh
tin cậy có sẵn, học viên đã sử dụng để sưu tầm các mẫu xe nhằm mục đích xây dựng
cơ sở dữ liệu các phân loại xe để phục vụ cho đề tài. Các nguồn ảnh tích cực đó
được học viên sưu tầm bao gồm các nguồn dữ liệu và địa chỉ:
Google Image
Flickr của Yahoo!
Photobucket.com (trang web chia sẻ ảnh)
Nguồn ảnh chia sẻ từ các kho ảnh của các trường đại học trên thế giới (MIT,
UIUC, Carnagie Mellon,…)
Ảnh do học viên chụp từ thực địa cảnh quang giao thông (chiếm phần lớn)
Việc sưu tầm và tìm kiếm ảnh mẫu phục vụ cho công tác học huấn luyện cho
máy tính đòi hỏi tiêu tốn nhiều thời gian. Các mẫu hình ảnh xe được tìm kiếm và
sưu tầm đòi hỏi có sự đồng nhất về tư thế chụp lấy mẫu và các kiểu dáng không quá
khác biệt, cũng như hình dáng không quá giống so với các mẫu xe còn lại. Các xe
được chọn làm ảnh mẫu học huấn luyện phải có vị trí rõ ràng trong ảnh, không bị
che khuất (nếu bị che ít hơn 4
1 diện tích pixel cũng tạm chấp nhận) và có tư thế
đối xứng, nghĩa là không quá nghiêng theo các hướng x, y, z (110% đối với hướng
x và y; 50% đối với hướng z).
Các ảnh không tích cực (không chứa hình đối tượng) được học viên
lấy từ nguồn dữ liệu có sẵn với các dạng hình phong cảnh thiên nhiên, hình
chân dung, động thực vật, nội thất, kiến trúc,…
Trang 37
Võ Hồng Phong Luận văn tốt nghiệp
3.2.1.2 Phân loại bằng tay cơ sở dữ liệu hình
Các ảnh sau khi được thu thập, sau đó được học viên phân loại riêng biệt theo
từng hình dáng khác nhau của xe (xe hơi du lịch cá nhân, xe buýt, xe tải,…).
Với mỗi cơ sở dữ liệu được tạo thành, học viên đã sử dụng hơn 550 hình tích
cực (hình có chứa đối tượng - positive image) và 6.000 hình không tích cực (không
chứa đối tượng - negative image) dùng cho huấn luyện.
Trong luận văn, các loại xe được phân nhóm tùy theo đặc trưng về hình dáng
cấu trúc bên ngoài và chức năng sử dụng như đã nói ở trên. Các nhóm hình sau khi
phân biệt được đặt riêng rẽ nhằm tạo thuận lợi cho việc huấn luyện xe trên cơ sở các
mẫu phân loại này.
Mẫu hình huấn luyện tiêu biểu cho từng nhóm phân loại xe trình bày trong
Bảng 3.1 a, b, c :
Bảng 3.1:
Bảng 3.1a: Mẫu xe hơi du lịch cá nhân
Bảng 3.1b: Mẫu xe buýt
Trang 38
Võ Hồng Phong Luận văn tốt nghiệp
Bảng 3.1c: Mẫu xe tải
Các ảnh không tích cực, không chứa đối tượng (negative image) được sưu
tầm dễ dàng từ các nguồn ảnh có sẵn.
3.2.1.3 Tiến hành lấy mẫu, tạo bộ cơ sở dữ liệu huấn luyện
Trong công cụ huấn luyện OpenCV 1.0 của Intel có sẵn lệnh Objectmarker.
Lệnh này dùng để đánh dấu vùng có chứa đặc trưng của đối tượng có trong ảnh
bằng cách dùng hình chữ nhật để đánh dấu khoanh vùng chứa đặc trưng. (Hình 3.1)
Trang 39
Võ Hồng Phong Luận văn tốt nghiệp
Hình 3.1: Minh họa quá trình lấy mẫu
Đường bao chữ nhật màu tím đánh dấu vùng đặc trưng đối tượng cần huấn luyện
3.2.1.4 Tiến hành học huấn luyện cho máy tính
Cũng sử dụng công cụ đã nói ở trên, sử dụng lệnh Createsamples và
Haartrainning để huấn luyện tạo cơ sở dữ liệu đặc trưng và xuất cơ sở dữ liệu đó
ra dạng file .xml phục vụ trong mã lệnh chương trình phần mềm nhận dạng của luận
văn.
Hai lệnh chuẩn, điển hình được học viên thực hiện trong luận văn:
Tạo file học vector “vector.vec” dùng lệnh:
Trang 40
Võ Hồng Phong Luận văn tốt nghiệp
Mẫu lệnh thi hành
createsamples.exe -info positive/info.txt -vec data/vector.vec
-num 466 –maxxangle 1.1 –maxyangle 1.1 –maxzangle 0.5 -w 20 -h
20
với,
-info positive/info.txt : file chứa thông tin tọa độ của khung chữ nhật bao
đặc trưng đối tượng trong ảnh mẫu.
-vec data/vector.vec : đường dẫn chứa file vector.vec tạo ra ở trên.
-num 466 : bộ huấn luyện gồm 466 ảnh tích cực (có chứa đối tượng).
-w 20 : chiều rộng mẫu ngõ ra (tính theo pixel).
-h 20 : chiều cao mẫu ngõ ra (tính theo pixel).
Các thông số maxxangle , maxyangle , maxzangle quy định các góc xoay tối
đa theo các hướng trong không gian của đối tượng mà đảm bảo đối tượng vẫn được
phát hiện.
Tiến hành học huấn luyện cho máy tính:
Mẫu lệnh thi hành
haartraining.exe -data data/cascade -vec data/vector.vec -bg
negative/infofile.txt -npos 466 -nneg 3125 -nstages 24 -mem
1200 -mode ALL -w 20 -h 20 –nonsym –minhitrate 0.995 –
maxfalsealarm 0.5 –weighttrimming 0.95
với,
-data data/cascade : đường dẫn chứa các file thông số ngõ ra được cập
nhật(false-alarm , hit-rate) của từng tầng huấn luyện (cascade).
Trang 41
Võ Hồng Phong Luận văn tốt nghiệp
-vec data/vector.vec : đường dẫn chứa file vector.vec đã tạo ra ở trên
-bg negative/infofile.txt : đường dẫn đến file chứa các ảnh không tích cực
-npos 466 : số lượng ảnh tích cực (giống khai báo ở phần trên)
-nneg 3125 : số lượng ảnh không tích cực (thông tin các file này được chứa trong
file infofile.txt)
-nstages 24 : số lượng giai đoạn (stage) huấn luyện
-mem 1200 : dung lượng bộ nhớ cần cho quá trình huấn luyện (MB). Máy tính có
bộ nhớ RAM càng nhiều thì quá trình huấn luyện xảy ra càng nhanh.
-nonsym : khai báo các đối tượng huấn luyện là không có tính đối xứng
–minhitrate 0.995 –maxfalsealarm 0.5 –weighttrimming 0.95: là các
thông số quy chuẩn về độ trùng khít (phù hợp – hit rate) tối thiểu, ngưỡng sai (false
alarm) và trọng số huấn luyện (Hình 3.2). Các giá trị trên là mặc định, hoặc có thể
thay đổi tùy theo “độ khó” của đối tượng và số lượng ảnh mẫu.
Hình 3.2: Hình minh họa quá trình học huấn luyện
Trang 42
Võ Hồng Phong Luận văn tốt nghiệp
Ghi chú: các lệnh trên được chạy trong môi trường hệ điều hành Windows và được
đóng gói trong các file thực thi lệnh định dạng “.bat” nhằm dễ chỉnh sửa và thao
tác.
Theo khuyến cáo của Intel [7], máy tính được dùng cho công tác huấn luyện này đòi
hỏi phải có cấu hình mạnh. Vì vậy, học viên thực hiện xây dựng cơ sở dữ liệu sử
dụng máy tính để bàn với CPU Intel Core 2 Duo E6320 2 x 1.86 GHz, RAM 2GB,
HDD 80GB. Với cấu hình máy này thì mỗi một cơ sở dữ liệu (mỗi một file .xml)
được tạo thành tiêu tốn thời gian liên tục hơn 42 tiếng đồng hồ (gần 2 ngày).
Cơ sở dữ liệu định dạng file .xml sau khi xây dựng có dạng như trong Bảng 3.2.
Bảng 3.2: Cấu trúc file cơ sở dữ liệu đặc trưng của đối tượng xe hơi cá nhân
20 20
11 11 1 8 -1.
11 11 1 4 2.
1
2.1753159817308187e-003
Trang 43
Võ Hồng Phong Luận văn tốt nghiệp
-0.7307692170143127
0.4051173031330109
12 7 12 1 -1.
12 7 6 1 2.
1
3.6706560058519244e-004
-0.7052155137062073
0.2407480031251907
…
…
3.2.2 Ghi nhận và thử mẫu cơ sở dữ liệu kết quả
Với mỗi cơ sở dữ liệu đã tạo ra, học viên tiến hành kiểm thử nhiều lần để đánh
giá độ tin cậy nhằm ngày càng nâng cao tỉ lệ phát hiện đúng đối tượng. Do đó, mỗi
một cơ sở dữ liệu có thể được xây dựng ít nhất một lần để đánh giá cơ sở dữ liệu
nào là tin cậy nhất để đưa vào hệ thống.
Trang 44
Võ Hồng Phong Luận văn tốt nghiệp
Quá trình thử cơ sở dữ liệu trên ảnh tĩnh nhằm đánh giá tỉ lệ phát hiện đúng
đối tượng tương ứng với đặc trưng chứa trong các file cơ sở dữ liệu “.xml” tương
ứng.
Để kiểm thử cơ sở dữ liệu, dùng lệnh:
objectdetect.exe --cascade="tên_sơ_sở_dữ_liệu" tên_file
3.2.2.1 Đối với xe hơi cá nhân
Thử nghiệm trên 1 ảnh
Hình 3.3: Minh họa quá trình kiểm thử cơ sở dữ liệu “car_back.xml”
Kết quả cho thấy xe hơi trong ảnh đã được phát hiện đúng, xe được hình chữ nhật màu
xanh bao quanh.
Thử nghiệm trên nhiều ảnh tĩnh
Bảng 3.3: Kết quả kiểm thử cơ sở dữ liệu đặc trưng xe hơi cá nhân
Trang 45
Võ Hồng Phong Luận văn tốt nghiệp
Trang 46
Võ Hồng Phong Luận văn tốt nghiệp
Trang 47
Võ Hồng Phong Luận văn tốt nghiệp
Trang 48
Võ Hồng Phong Luận văn tốt nghiệp
Trang 49
Võ Hồng Phong Luận văn tốt nghiệp
Tiến hành kiểm thử tập cơ sở dữ liệu với 150 ảnh tĩnh xe hơi. Kết quả là có
142 ảnh được phát hiện đúng đối tượng xe trong ảnh, đạt tỉ lệ ≈ 95%.
Trang 50
Võ Hồng Phong Luận văn tốt nghiệp
3.2.2.2 Đối với xe buýt
Thử nghiệm trên 1 ảnh
Hình 3.4: Minh họa quá trình kiểm thử cơ sở dữ liệu “bus_vn_full_22112008.xml”
Kết quả cho thấy xe buýt trong ảnh đã được phát hiện đúng
Thử nghiệm trên nhiều ảnh tĩnh
Trang 51
Võ Hồng Phong Luận văn tốt nghiệp
Bảng 3.4: Kết quả kiểm thử cơ sở dữ liệu đặc trưng xe buýt
Trang 52
Võ Hồng Phong Luận văn tốt nghiệp
Trang 53
Võ Hồng Phong Luận văn tốt nghiệp
Tiến hành kiểm thử tập cơ sở dữ liệu với 180 ảnh tĩnh xe buýt. Kết quả là có
173 ảnh được phát hiện đúng đối tượng xe trong ảnh, đạt tỉ lệ ≈ 96%.
3.2.2.3 Đối với xe tải
Thử nghiệm trên 1 ảnh
Hình 3.5: Minh họa quá trình kiểm thử cơ sở dữ liệu “truck_vn_26112008.xml”
Kết quả trên được đánh giá là thành công vì đối tượng xe tải trong ảnh đã được phát hiện
đúng.
Thử nghiệm trên nhiều ảnh tĩnh
Trang 54
Võ Hồng Phong Luận văn tốt nghiệp
Bảng 3.5: Kết quả kiểm thử cơ sở dữ liệu đặc trưng xe tải
Trang 55
Võ Hồng Phong Luận văn tốt nghiệp
Trang 56
Võ Hồng Phong Luận văn tốt nghiệp
Trang 57
Võ Hồng Phong Luận văn tốt nghiệp
Tiến hành kiểm thử cơ sở dữ liệu truck_vn_26112008.xml với hơn 120 ảnh
tĩnh. Kết quả có 115 ảnh được phát hiện đúng, tương ứng với tỉ lệ ≈ 96%.
Bảng 3.6: Tổng kết các kết quả kiểm thử CSDL đặc trưng xe
Loại xe
Số lượng ảnh
kiểm thử
Số lượng ảnh
phát hiện đúng
Tỉ lệ
Xe hơi cá nhân 150 142 95%
Xe buýt 180 173 96%
Xe tải 120 115 96%
3.3 TIẾN HÀNH XÂY DỰNG THUẬT TOÁN
3.3.1 Thuật toán phát hiện xe
Nhờ vào sự hỗ trợ của công cụ OpenCV version 1.0 (áp dụng thư viện mã
nguồn mở về thị giác máy tính trên nền .NET) do Intel phát triển, tác giả sử dụng
thuật toán phát hiện đặc trưng đối tượng là Haar-like với các lệnh
“HaarClassifierCascade” và “cvHaarDetectObjects” để thực hiện chức
năng phát hiện xe, sẵn sàng cho bước tiếp theo là tiến hành nhận dạng ra kiểu dáng
xe đó.
3.3.2 Thuật toán nhận dạng kiểu xe
Trong thực tế, khi con người quan sát một chiếc xe đang lưu thông trên đường,
thì ngay lập tức người đó sẽ nhận biết ngay rằng xe đó xe loại gì, có thể được liệt kê
như: xe hơi cá nhân, xe buýt, xe tải,… Đó là do qua kinh nghiệm, người đó đã chủ
động nhận biết được kiểu dáng xe đó từ các nguồn thông tin tin cậy khác nhau trong
quá khứ. Quá trình này có thể cũng được coi như là người đó đã được “huấn luyện
Trang 58
Võ Hồng Phong Luận văn tốt nghiệp
trước” hình dáng đặc trưng của chiếc xe đó. Vì vậy, khi quan sát chiếc xe, lập tức
người đó sẽ biết được loại xe đó là gì.
Tuy vậy, nhưng máy tính thì không thể giống con người, nghĩa là không thể
nhận biết ngay được là có đối tượng xe với hình dáng đặc trưng cần phát hiện trong
vùng thị trường hay không. Vì vậy, để cho máy tính biết được kiểu dáng của từng
loại xe, ta cần phải cho hệ thống biết được các kiểu dáng xe đó từ trước thông qua
quá trình huấn luyện dựa trên các bộ phân loại mà học viên đã thiết lập qua các mẫu
hình đã được chọn lọc kỹ càng. Mỗi một bộ phân loại các hình ảnh mẫu đối tượng
đó, học viên đã gắn một nhãn tương ứng với tên của cơ sở dữ liệu kiểu dáng xe (xe
hơi cá nhân, xe buýt, xe tải, …).
Bộ phân loại kiểu dáng xe này có chức năng như là một cơ sở dữ liệu chứa các
đặc trưng của từng loại xe. Vì vậy, sau này khi một chiếc xe bất kỳ được phát hiện
trong khung hình hay vùng thị trường của camera, thì lập tức nó được so sánh với
hình ảnh và đặc trưng đã có trong cơ sở dữ liệu này. Nếu các đặc trưng là phù hợp
với đặc trưng có trong cơ sở dữ liệu, thì từ đó mới có thể xuất ra được dòng thông
báo tên kiểu dáng xe được nhận dạng trên từng khung chữ nhật bao đối tượng.
Chương trình nhận dạng xe được thể hiện trong Hình 3.6, thể hiện một chu kỳ
làm việc của hệ thống.
Trang 59
Võ Hồng Phong Luận văn tốt nghiệp
BẮT ĐẦU
LOAD ẢNH TỪ
CAMERA
TIỀN XỬ LÝ
TIỀN LỌC ẢNH
& XỬ LÝ NHIỄU
LOAD CƠ SỞ DỮ LIỆU
DÒ TÌM ĐẶC TRƯNG
TRÍCH XUẤT THÔNG
TIN ĐỐI TƯỢNG
ĐẾM ĐỐI
TƯỢNG
ƯỚC LƯỢNG
KHOẢNG CÁCH
KẾT THÚC
NHẬN DẠNG
XE
KHOANH VÙNG
Hình 3.6: Sơ đồ khối của chương trình nhận dạng xe
Trang 60
Võ Hồng Phong Luận văn tốt nghiệp
Mã lệnh chương trình thực thi thuật toán nhận dạng được trình bày trong Bảng
3.7.
Bảng 3.7: Mã lệnh điển hình của thuật toán phát hiện và nhận dạng xe hơi
const char* cascade_name4 = "car_front_back.xml";
CvMemStorage* storage1 = cvCreateMemStorage(0);
cascade1 = (CvHaarClassifierCascade*)cvLoad(cascade_name4, 0, 0, 0);
CvSeq* object1 = cvHaarDetectObjects(gray7, cascade1, storage1, 1.05,
2, CV_HAAR_DO_CANNY_PRUNING, cvSize(20,16));
int i1;
for (i1 = 0; i1 total : 0); i1++)
{
CvRect* r1 = (CvRect*)cvGetSeqElem(object1, i1);
pt1.x = r1->x;
pt1.y = r1->y;
pt2.x = r1->x + r1->width;
pt2.y = r1->y + r1->height;
cvRectangle(display, pt1, pt2, CV_RGB(255,0,0), 2, 8, 0);
cvPutText(display, "car", cvPoint(pt1.x, pt1.y - 4), &font, ...
... CV_RGB(255, 0, 0));
}
3.3.3 Thuật toán ước lượng khoảng cách
Thuật toán này được học viên áp dụng trên từng đối tượng xe được nhận dạng,
và quá trình được diễn ra theo thời gian thực.
Trong thực tế, mắt người khi đang quan sát chiếc xe, thì người đó sẽ có thể
ước lượng được khoảng cách từ người đó đến chiếc xe dựa theo kinh nghiệm. Có
nghĩa là, mắt người bình thường khi quan sát một chiếc xe, thì dựa vào kích thước
của hình ảnh mà mắt thu nhận được sẽ ước lượng được khoảng cách từ người đó
Trang 61
Võ Hồng Phong Luận văn tốt nghiệp
đến chiếc xe. Ví dụ, với cùng một loại xe, với một chiếc ở xa thì hình ảnh quan sát
được sẽ nhỏ hơn so với hình ảnh của một chiếc xe ở gần (Hình 3.7). Chính vì vậy,
việc ước lượng khoảng cách là cần thiết để có thể áp dụng vào các hệ thống quan sát
giao thông thực tế. [1, phần 3.3]
Hình 3.7: Mô hình hóa thuật toán ước lượng khoảng cách
Chính vì lý do đó, nhằm nâng cao chức năng quan sát của camera trong cảnh
quang giao thông, học viên đã tích hợp vào hệ thống thuật toán ước lượng khoảng
cách giữa camera với chiếc xe đang được phát hiện. Thuật toán này được dùng để
ước lượng khoảng cách giữa camera và đối tượng xe hơi dựa vào thông số liên quan
như: chiều dài tiêu cự của camera, thông số quy đổi từ pixel ra milimet tại mặt
phẳng tiêu cự và độ lớn thực tế điển hình của xe. [2, trang 75, phần 4.5]
Hình 3.8: Mô hình camera quan sát trong không gian 3-D [6, trang 27]
Trang 62
Võ Hồng Phong Luận văn tốt nghiệp
Trong thực tế, ước lượng khoảng cách dựa trên cách tính của thị giác máy tính
được ứng dụng rộng rãi và có tầm quan trọng trong các hệ thống quan trắc trực
tuyến hệ thống giao thông nhằm giúp tăng thêm công cụ hỗ trợ cho hệ thống giám
sát giao thông.
Cụ thể, công thức ước lượng khoảng cách theo lý thuyết được tính theo công
thức: [6, trang 26÷ 28] [link 3, chapter 1-2]
Z
Xfx ×=−
x
XfZ
−
×=⇔
Với,
f : là chiều dài tiêu cự của camera
Z : là chiều dài ước lượng (cần tìm) giữa camera đến đối tượng
X : là kích thước thực tế của đối tượng (đơn vị chiều dài)
x : là kích thước ảnh của đối tượng (pixel)
Trong thực tế, khoảng cách ước lượng còn cần một thông số quy đổi đơn vị
pixel ra mm trong mặt phẳng tiêu cự chor hoặc cvert . [2, trang 75]
Công thức ước lượng khoảng cách được sử dụng trong luận văn là:
w
WfcZ horhor ××= (công thức được sử dụng chính)
hoặc h
HfcZ vertvert ××=
Do tính đồng nhất, ít biến đổi về mặt kích thước chiều ngang thực tế của mỗi
loại xe; nên trong luận văn, học viên chỉ thực hiện áp dụng công thức ước lượng
khoảng cách dựa theo chiều ngang horZ .
Với,
Z : (mm), là chiều dài ước lượng (cần tìm) giữa camera đến đối tượng.
Trang 63
Võ Hồng Phong Luận văn tốt nghiệp
chor , cvert : là tham số chuyển đổi từ pixel thành milimet, theo hướng ngang
hoặc thẳng đứng.
f : (mm), là chiều dài tiêu cự của camera.
W, H : (m), là chiều rộng ngang hoặc chiều cao thực tế điển hình của loại xe
quan sát.
w, h : (pixel) là chiều rộng ngang hoặc chiều cao trong ảnh quan sát của xe.
Trong quá trình thực hiện luận văn, học viên cũng đã tiến hành kiểm chứng
thực nghiệm lại công thức này và nhận được kết quả ước lượng khoảng cách camera
đến xe là khá chính xác, với mức độ sai số chấp nhận được.
Mã lệnh thực thi thuật toán ước lượng khoảng cách được ghi trong Bảng 3.8.
Bảng 3.8: Mã lệnh thực hiện thuật toán ước lượng khoảng cách
double Z1;
c_hor = m_chor; // m_chor nhap tu khung edit box
c_vert = m_cvert; // m_cvert nhap tu khung edit box
f = m_focal; // mm, focus length = 2m
W1 = m_car_width; // mm, typical car 's width
H1 = m_car_height;
w1 = pt2.x - pt1.x; // pixel, object 's width
Z1 = (c_hor * f * W1) / w1; // khoang cach tinh theo chieu ngang
CString dist1;
dist1.Format("%0.1f", Z1/1000);// chia 1000 doi mm->m
cvPutText(display, dist1 + "m", cvPoint(pt1.x, pt2.y + 14),&font, ...
... CV_RGB(255,0,0)); // đơn vị mét
Trang 64
Võ Hồng Phong Luận văn tốt nghiệp
Hình 3.9: Minh họa kết quả ước lượng khoảng cách
Chú thích: Khoảng cách của mỗi xe xuất hiện trong khung hình được ghi ngay bên dưới
khung hình chữ nhật bao đối tượng xe đó.
3.3.4 Thuật toán đếm số lượng đối tượng
Thuật toán này được học viên áp dụng cho từng khung hình quan sát cảnh
quang giao thông nhằm đếm số lượng từng loại mẫu xe đã được nhận dạng. Phương
pháp đếm này sẽ cho ra kết quả là số lượng các đối tượng tức thời có trong khung
hình nhằm đánh giá mức độ ổn định của thuật toán phát hiện đối tượng.
Mã lệnh thực thi thuật toán đếm số lượng đối tượng được ghi trong Bảng 3.9.
Trang 65
Võ Hồng Phong Luận văn tốt nghiệp
Bảng 3.9: Mã lệnh thực hiện thuật toán đếm xe
// mã lệnh thuật toán đếm xe theo phân loại
CString count1;
count1.Format("%d", object1->total);
cvPutText(display,count1+"cars",cvPoint(5,220),&font,CV_RGB(255,0,0));
Hình 3.10: Minh họa kết quả đếm số lượng xe có trong khung hình
Chú thích: Kết quả đếm số lượng mỗi loại xe được hiển thị trong mục “COUNTING
RESULTS”
Trang 66
Võ Hồng Phong Luận văn tốt nghiệp
3.4 TIẾN HÀNH XÂY DỰNG PHẦN MỀM
3.4.1 Chuẩn bị hệ thống và các công cụ lập trình thích hợp
Môi trường xây dựng chương trình phát hiện và nhận dạng là:
• Máy tính chạy trên hệ điều hành Windows XP.
• Máy tính có cài bộ Visual Studio 2003 Professional Edition, có tích hợp
.NET Framework version 1.1.
• Sử dụng ngôn ngữ lập trình Visual C++, Visual C#.
• Cài đặt bộ ngôn ngữ thị giác máy tính OpenCV 1.0 (C++) và SharperCV
(C#).
Các lệnh trong của Thị giác máy tính được tích hợp trong chương trình chạy
trên nền .NET Framework nhờ vào các thư viện headfile dạng thư viện .lib ; dạng
headfile .h và .hpp.
3.4.2 Tổ chức chương trình phần mềm hệ thống
GIAO TIẾP
CAMERA DÒ TÌM XE
TRÍCH XUẤT
THÔNG TIN
ƯỚC LƯỢNG
KHOẢNG CÁCH,
ĐẾM SỐ LƯỢNG,...
CHƯƠNG TRÌNH HỆ THỐNG
Hình 3.11: Sơ đồ khối tổ chức phần mềm hệ thống
Hệ thống chương trình thực hiện các tác vụ:
• Xử lý chuỗi ảnh video đầu vào.
Trang 67
Võ Hồng Phong Luận văn tốt nghiệp
• Thực thi thuật toán Haar để phát hiện xe.
• Tiến hành nhận dạng kiểu dáng xe dựa theo đặc trưng đã có trong cơ sở dữ
liệu.
• Thực thi các tác vụ bổ trợ khác (đếm thời gian phát hiện đối tượng, ước
lượng khoảng cách, đếm số lượng từng loại xe, …).
• Hiển thị thông tin và các thông số theo thời gian thực lên màn hình và giao
diện.
FILE VIDEO
.AVICAMERA
CHƯƠNG TRÌNH HỆ THỐNG
TRÍCH XUẤT THÔNG TIN
ĐỐI TƯỢNG XE
PHÁT HIỆN VÀ
NHẬN DẠNG XE
Mã lệnh Mã lệnh
Kết quả Kết quả
HIỂN THỊ DẠNG XE HIỂN THỊ THÔNG SỐLIÊN QUAN
Máy tính PC
hoặc laptop
Hình ảnh
Nguồn hình ảnh
đầu vào
Kết quả & thông
tin ngõ ra
Hình 3.12: Sơ đồ khối hệ thống hoàn chỉnh tổ chức phần mềm hệ thống
Hệ thống phần mềm được thực hiện dựa trên hai phần chính:
Trang 68
Võ Hồng Phong Luận văn tốt nghiệp
Xử lý chuỗi ảnh video nhận được và phát hiện đặc trưng đối tượng xe
dựa trên thuật toán Haar.
Trích xuất thông tin & dữ liệu của xe có trong ảnh để ước lượng các
thông số liên quan.
3.4.3 Sử dụng thuật toán Haar-like phối hợp với các mã lệnh trên Visual C++
Chương trình sử dụng công cụ OpenCV 1.0 chạy trên nền Visual C++.NET
2003 để phát hiện xe hơi trong ảnh được mô tả như trong Hình 3.13.
Hình 3.13: Mô tả hệ thống phát hiện xe dùng thuật toán Haar
Sau khi phát hiện xe, sẽ tiến hành nhận dạng và khoanh vùng đối tượng xe
được nhận dạng. Các xe được phát hiện sẽ được học viên thực hiện khoanh vùng
đối tượng trong hình chữ nhật để thuận tiện hơn trong các xử lý về sau.
3.4.4 Hoạt động của phần mềm
Trang 69
Võ Hồng Phong Luận văn tốt nghiệp
Các bước hoạt động của chương trình được trình bày tóm tắt như sau (xem
chương trình có ghi kèm trong đĩa CD để thêm thông tin chi tiết)
a) Thu nhận tín hiệu hình ảnh
• Từ camera
capture = cvCaptureFromCAM(CV_CAP_ANY);
• Từ file video
capture = cvCaptureFromFile("MVI_1324.AVI");
b) Phát hiện xe
Dùng lệnh CvHaarClassifierCascade để phát hiện xe
const char* cascade_name1 = "car_frontal_back.xml";
cascade1 = (CvHaarClassifierCascade*)cvLoad(cascade_name1,0,0,0);
CvSeq* object1 = cvHaarDetectObjects(gray4, cascade1, storage, ...
... 1.05, 2, CV_HAAR_DO_CANNY_PRUNING, cvSize(20,20));
CvRect* car = (CvRect*)cvGetSeqElem(object1, i);
Với “car_frontal_back.xml” là file cơ sở dữ liệu chứa các đặc trưng của
nhóm phân loại xe hơi cá nhân đã được huấn luyện của xe với góc nhìn ở phía đuôi
xe.
c) Dùng khung hình chữ nhật bao quanh đối tượng được phát hiện
Với mỗi dạng xe được phát hiện và nhận dạng, dùng hình chữ nhật bao bao
quanh đối tượng. Ứng với mỗi dạng xe thì có màu sắc hình chữ nhật khác nhau.
pt1.x = r1->x;
Trang 70
Võ Hồng Phong Luận văn tốt nghiệp
pt1.y = r1->y;
pt2.x = r1->x + r1->width;
pt2.y = r1->y + r1->height;
cvRectangle(display, pt1, pt2, CV_RGB(255,0,0), 2, 8, 0);
d) Hiển thị dòng chữ tên nhận dạng của phân loại xe được phát hiện
Tên của phân loại xe được nhận dạng được ghi ngay trên khung hình chữ nhật
bao quanh đối tượng để giúp người thực hiện dễ dàng theo dõi.
Tác vụ này là quan trọng giúp cho người tác giả thấy được kết quả nhận dạng
xe.
// hiển thị tên nhận dạng xe
cvPutText(display, "tên_phân_loại_xe", cvPoint(pt1.x, pt1.y), &font,
... CV_RGB(255,0,0));
e) Hiển thị khoảng cách của camera tới xe
Tương tự như bước hiển thị dòng chữ tên nhận dạng, khoảng cách từ camera
đến xe và vận tốc được ghi ngay trên khung hình chữ nhật bao đối tượng.
// hiển thị khoảng cách mỗi xe tới camera, đơn vị là mét
cvPutText(display, dist + "m", cvPoint(pt1.x, pt2.y),&font, ...
... CV_RGB(255, 0, 0));
Trang 71
Võ Hồng Phong Luận văn tốt nghiệp
f) Hiển thị số lượng các đối tượng xe riêng biệt
Thông tin về số lượng tức thời hiện có trong khung hình các loại xe được đếm
và hiển thị theo thời gian thực, được hiển thị tại một vị trí cố định trên cửa sổ
video.
// hiển thị số lượng từng loại xe
cvPutText(display, "obj. count = " + count, cvPoint(5,15), &font, ...
... CV_RGB(255, 0, 0));
3.4.5 Giao diện của chương trình phần mềm hệ thống
Giao diện của chương trình phát hiện, nhận dạng đối tượng xe như trong Hình 3.14.
Hình 3.14: Giao diện chương trình nhận dạng xe
Trang 72
Võ Hồng Phong Luận văn tốt nghiệp
Chú thích
- Mục “RECOGNITION”: thực hiện tác vụ dò tìm và nhận dạng xe.
- Mục “TASKS”: thực hiện các tác vụ đánh số thứ tự các xe cùng dạng, hiển thị thời gian
nhận dạng, thực hiện ước lượng khoảng cách, và thực hiện đếm số lượng từng loại xe xuất
hiện trong khung hình.
- Mục “COUNTING RESULTS”: hiển thị kết quả đếm xe đã nhận dạng.
- Mục “CAMERA PARAMETERS”: cho phép điều chỉnh thông số của camera hoặc thông
số của file video (.AVI).
- Mục “DIMENSIONS”: cho phép điều chỉnh độ rộng (hoặc cao) thực tế điển hình của
từng loại xe CAR, BUS, và TRUCK.
3.5 HỆ THỐNG PHẦN CỨNG VÀ CÁC CÔNG CỤ LIÊN QUAN
3.5.1 Camera
Camera sử dụng trong luận văn là camera kỹ thuật số Nikon E4300 (4 megapixel)
Hình 3.15: Mẫu camera được sử dụng trong luận văn
Camera này dùng để ghi hình cảnh quang giao thông nhằm hỗ trợ cho quá
trình thực hiện luận văn.
Ngoài ra, camera này cũng được học viên dùng để chụp ảnh tĩnh các xe dùng
làm mẫu huấn luyện.
Trang 73
Võ Hồng Phong Luận văn tốt nghiệp
3.5.2 Máy tính cá nhân và các công cụ phần mềm
• Máy tính sử dụng trong luận văn với mục đích làm nền tảng huấn luyện tạo
dựng cơ sở dữ liệu đặc trưng các đối tượng xe.
• Đồng thời, máy tính được cài đặt OpenCV, Visual Studio .NET và nền tảng
lập trình .NET Framework.
Trang 74
Võ Hồng Phong Luận văn tốt nghiệp
CHƯƠNG 4
KẾT QUẢ - NHẬN XÉT VÀ
PHÂN TÍCH
4.1 KẾT QUẢ
Về mặt ánh sáng
Trong môi trường ánh sáng ngoài trời tại thực địa cảnh quang giao thông,
bình thường với cường độ khoảng 300 ÷ 400 lux, hiệu quả phát hiện xe là
khá tốt.
Về mặt không gian
Các xe khi quan sát với nhiều góc độ khác nhau theo các phương x, y, z trong
khoảng ± 30o vẫn phát hiện tốt. (Bảng 4.1)
Kết quả thực thi hệ thống
Bảng 4.1: Các kết quả xử lý nhận dạng
Bảng 4.1a: Kết quả xử lý nhận dạng xe buýt
Trang 75
Võ Hồng Phong Luận văn tốt nghiệp
Trang 76
Võ Hồng Phong Luận văn tốt nghiệp
Trang 77
Võ Hồng Phong Luận văn tốt nghiệp
Trang 78
Võ Hồng Phong Luận văn tốt nghiệp
Trang 79
Võ Hồng Phong Luận văn tốt nghiệp
Trang 80
Võ Hồng Phong Luận văn tốt nghiệp
Trang 81
Võ Hồng Phong Luận văn tốt nghiệp
Trang 82
Võ Hồng Phong Luận văn tốt nghiệp
Trang 83
Võ Hồng Phong Luận văn tốt nghiệp
Bảng 4.1b: Kết quả xử lý nhận dạng xe hơi cá nhân
Trang 84
Võ Hồng Phong Luận văn tốt nghiệp
Trang 85
Võ Hồng Phong Luận văn tốt nghiệp
Trang 86
Võ Hồng Phong Luận văn tốt nghiệp
Trang 87
Võ Hồng Phong Luận văn tốt nghiệp
Trang 88
Võ Hồng Phong Luận văn tốt nghiệp
Trang 89
Võ Hồng Phong Luận văn tốt nghiệp
Trang 90
Võ Hồng Phong Luận văn tốt nghiệp
Bảng 4.1 c: Kết quả xử lý nhận dạng xe tải
Trang 91
Võ Hồng Phong Luận văn tốt nghiệp
Bảng 4.2: Kết quả xử lý nhận dạng xe tổng hợp
Chú thích các hình trong Bảng 4.1a, b, c và Bảng 4.2
• Mỗi xe hơi cá nhân được nhận dạng sẽ được khoanh vùng bằng hình chữ nhật màu
đỏ. Tương tự cho xe buýt với khung chữ nhật màu xanh, xe tải với khung chữ nhật
màu vàng.
• Các xe xuất hiện trong hình được đánh số thứ tự (0, 1, …) từ thấp đến cao phụ
thuộc vào thứ tự thời gian xuất hiện trước – sau trong khung hình.
• Mỗi một xe sau khi được phát hiện sẽ được ước lượng khoảng cách từ xe đó đến
camera ghi hình. Khoảng cách được ghi bên dưới mỗi khung chữ nhật bao đối
tượng (đơn vị mét).
• Tổng số lượng xe xuất hiện tức thời trong khung hình được đếm và ghi ngay lập
tức lên khung báo trên giao diện (Mục COUNTING RESULTS).
Do trong quá trình sưu tầm hình ảnh giao thông tại thực địa, ít có các tình
huống 2 hoặc 3 loại xe xuất hiện cùng lúc trong khung hình nên ảnh chụp màn hình
không thể có nhiều các tình huống đó được.
Trang 92
Võ Hồng Phong Luận văn tốt nghiệp
Kết quả đánh giá độ chính xác trong nhận dạng xe trong ảnh động (video)
dùng phần mềm của luận văn so với nhận định cảm quan của học viên (mắt người)
được ghi trong Bảng 4.3.
Bảng 4.3: Đánh giá độ chính xác trong nhận dạng của phần mềm luận văn
Loại xe
Số lượng xe
kiểm thử
Số lượng xe
nhận dạng đúng
Tỉ lệ
Xe hơi cá nhân 47 43 91.5%
Xe buýt 50 48 96%
Xe tải 7 5 71.4%
Hệ thống vẫn có thể phát hiện xe đến khi xe còn kích thước tối thiểu quy định
trong dòng mã lệnh phát hiện.
4.2 NHẬN XÉT
4.2.1 Ưu điểm
• Hệ thống vẫn hoạt động tốt ở điều kiện thử nghiệm cho phép.
• Trên cơ sở hệ thống đã hoàn tất, có thể phát triển, mở rộng thêm với nhiều
ứng dụng hữu ích và lý thú khác phục vụ công tác học tập, nghiên cứu sâu
hơn và ứng dụng thực tiễn.
4.2.2 Khuyết điểm
Trong quá trình thực hiện, luận văn cũng có những thiếu sót mang tính khách
quan và chủ quan:
4.2.2.1 Chủ quan
Trang 93
Võ Hồng Phong Luận văn tốt nghiệp
• Do khó khăn về cơ sở dữ liệu: Tư thế xe trong ảnh càng nghiêng theo các
hướng bất kỳ thì quá trình xây dựng cơ sở dữ liệu từ quá trình máy tính học
huấn luyện kết quả không tốt, khiến cho hệ thống hoạt động không ổn định.
• Hệ thống hiện tại chưa đáp ứng được tính chính xác và ổn định cao trong tác
vụ phát hiện đối tượng có sự biến chuyển của môi trường ngoại cảnh, ví dụ
như có sự thay đổi về thuộc tính về màu sắc, tư thế quan sát của đối tượng,
cường độ sáng, độ phức tạp của nền ảnh.
• Còn nhiều thiếu sót trong khâu chuẩn bị ảnh mẫu nhằm phục vụ tác vụ huấn
luyện.
• Tuy nhiên, hệ thống không tránh khỏi lỗi phát hiện sai đối tượng do bị chói
sáng, ngược sáng, xe bị che khuất bởi các đối tượng không mong muốn khác
(xe máy, một phần của xe khác, cây cối,…). Thực tế cho thấy, hình ảnh thí
nghiệm (tập tin video) được ghi hình trong thời gian từ 7 giờ sáng đến 4 giờ
chiều cho kết quả nhận dạng tốt hơn các thời gian còn lại. Điều này được giải
thích từ độ sáng đủ hoặc ánh nắng góp phần làm rõ đối tượng hơn so với nền
ảnh và làm tăng thêm đặc trưng để nhận dạng.
4.2.2.2 Khách quan
Yếu tố khách quan bao gồm các vấn đề khó khăn trong khi xây dựng hệ thống.
Trang 94
Võ Hồng Phong Luận văn tốt nghiệp
a) Các khó khăn về phương pháp
Đa số các hướng tiếp cận phát hiện vật thể, đặc biệt là xe một cách tự động
hiệu quả nhất hiện nay thường dựa vào việc tìm ra mô hình hoặc bộ phân lớp hoặc
một cơ sở dữ liệu đặc tả tốt nhất hình dáng một chiếc xe. Việc hệ thống có khả năng
hoạt động tốt trong bất kỳ tình huống, điều kiện thu nhận ảnh nào trong bất kỳ tình
huống nào với các tư thế quan sát xe khác nhau là cực kỳ khó khăn, mặc dù đối với
con người, việc này là hoàn toàn đơn giản trong đa số các trường hợp thông thường.
Từ định nghĩa cụ thể cho từng kiểu hình dáng của một chiếc xe cho đến cách
tiếp cận để phát hiện và nhận dạng được xuất phát từ nhiều đặc điểm, với các lý do
sau đây [9, trang 13÷ 15] [12, trang 410÷ 411]:
Hình dáng xe: hình dáng xe hơi có thể nói là đa dạng cũng như phức tạp đối
với người quan sát hoặc đối với thuật toán phát hiện và nhận dạng. Bên cạnh
đó sự đa dạng về màu sắc cũng là một thách thức đối với quá trình thực hiện
tác vụ phát hiện xe trong cảnh quang giao thông. Ngoài ra, xe còn có tính đa
dạng về hình dáng bên ngoài. Các xe có chức năng khác nhau thì có hình
dáng khác nhau. Ví dụ xe hơi cá nhân (4 hoặc 6 chỗ ngồi) có các đặc trưng
về nắp capô trước và sau (có thể một số dòng xe không có capô sau), xe buýt
thì có chiều cao đặc trưng và phía sau không có nắp capô cũng như là không
có gờ nổi đặc trưng giống như ở xe hơi cá nhân.
Trong một số trường hợp đặc biệt xe được thêm các chi tiết màu sơn, biển
quảng cáo gắn thêm trên xe, các xe bị biến đổi về mặt hình thức dẫn đến sự
biến dạng hoặc che lấp các đặc điểm đặc trưng của xe đều là những khó khăn
trong quá trình xử lý phát hiện.
Trang 95
Võ Hồng Phong Luận văn tốt nghiệp
Tư thế xe và góc độ quan sát: hệ thống có thể phát hiện ra đối tượng xe trong
cảnh quang giao thông hay không, còn phụ thuộc vào góc độ quan sát và vị
trí đặt camera quan sát xe đó. Xe được nhìn chính diện từ phía trước hoặc
phía sau là các vị trí chứa nhiều thông tin đặc trưng về xe nhất, từ đó camera
gắn với máy tính mới thu thập nhiều thông tin đặc trưng nhất về xe và được
xem là ảnh chuẩn khi huấn luyện để tạo lập cơ sở dữ liệu hoặc để áp dụng
cho tác vụ phát hiện sau này.
Các đặc điểm đặc trưng của xe hầu hết nằm ở phía trước – sau và bên hông
của chiếc xe, nơi mà các kính chắn gió, cửa sổ hông, đèn chiếu trước – sau
đều có mối tương quan tỉ lệ về kích thước, vị trí tương đối của chúng với
nhau.
Tuy nhiên, với tư thế quan sát xe nhìn nghiêng, nhìn từ trên xuống hoặc kết
hợp của các tư thế kể trên vẫn chứa được một phần thông tin đặc trưng của
đối tượng đủ để làm căn cứ cho quá trình phát hiện sau này.
Sự có mặt của đối tượng khác: các đối tượng xe cần quan sát khi xuất hiện
trong ảnh có thể bị các vật thể khác che chắn một phần hoặc toàn phần, ví dụ
như cây cối, các xe khác, con người,… làm thiếu thông tin đối tượng, kết quả
phân tích, và kết quả phát hiện xe sẽ bị ảnh hưởng ít nhiều.
Điều kiện ghi nhận ảnh: sự xuất hiện của xe trong các điều kiện chiếu sáng
khác nhau (bao gồm kiểu chiếu sáng, cường độ sáng và màu sắc của nguồn
sáng) cũng như các đặc tính của hệ thống thu thập dữ liệu ảnh (camera, máy
ảnh, hệ thống gương phản xạ, thấu kính, …) góp phần ảnh hưởng không nhỏ
đến kết quả phát hiện xe của hệ thống.
Trang 96
Võ Hồng Phong Luận văn tốt nghiệp
Nền ảnh và điều kiện của môi trường ghi nhận ảnh: hai vấn đề này là đáng
được qua tâm bởi sự ảnh hưởng của nó đến quá trình phát hiện là không nhỏ.
Khi nền ảnh càng chứa nhiều thành phần (bao gồm nhiều chi tiết rối rắm,
màu sắc, hình dáng phức tạp giống với đối tượng – nhưng không phải đối
tượng - , …) hoặc môi trường không đồng nhất về ánh sáng (ngược sáng, ảnh
bị bóng râm che một phần hoặc toàn phần lên đối tượng) hoặc sự biến đổi
liên tục, xuất hiện rồi biến mất quá nhanh, nhanh hơn tốc độ ghi hình của
camera, thì vấn đề phát hiện càng thêm khó khăn và phức tạp.
Những yếu tố nêu trên vẫn có giá trị với trường hợp “ảnh” thu được nhờ vào
các phương phát phát hiện khác với hướng tiếp cận khác để thu được kết quả
tin cậy. Khi đó, phụ thuộc và thuộc tính riêng của loại “nguồn sáng” này mà
người ta sẽ sử dụng thêm các phương pháp xử lý mới.
Sự biến đổi – xuất hiện liên tục và quá nhanh – nhanh hơn tốc độ ghi hình
của camera thì vấn đề phát hiện càng thêm khó khăn và phức tạp. Một số xe
đột ngột xuất hiện trong khung ảnh cũng như biết mất khỏi tầm thị trường
của camera là một trong những khó khăn khó có thể tránh khỏi trong quá
trình thực thi hệ thống. Trong trường hợp này, yêu cầu các xe quan sát phải
có thời gian xuất hiện trong tầm thị trường của camera ít nhất vài giây để
camera có thể quan sát tốt và thực hiện tác vụ phát hiện và nhận dạng.
b) Các khó khăn về tốc độ thực thi và tốc độ hệ thống
Việc lựa chọn cách giải quyết sao cho hệ thống phát hiện bám theo đối tượng
trong phạm vi thị trường của camera, điều kiện cho phép là tốt nhất là một thử thách
khi đã có nhiều cách và phương pháp tiếp cận khác nhau. Bên cạnh đó còn phải kể
đến sự trả giá cho công nghệ (hiệu quả cao nhưng bù lại tốc độ chậm và ngược lại).
Trang 97
Võ Hồng Phong Luận văn tốt nghiệp
4.3 PHÂN TÍCH KẾT QUẢ ĐẠT ĐƯỢC
Với các ưu điểm và khuyết điểm vừa nêu, sau đây là một số hướng giải quyết
khả thi:
Sau một thời gian tìm hiểu, một vài cách khắc phục lia góc máy (khi ghi hình
video) có thể được khắc phục bằng cách bổ sung các tính năng: cân chỉnh
biểu đồ màu histogram (xử lý cân bằng độ sáng) để có ảnh thích hợp rồi mới
cho chương trình xử lý phát hiện đối tượng trong ảnh. Nhưng nếu bổ sung
tính năng này thì tốc độ đáp ứng của hệ thống sẽ bị giảm rõ rệt. Đó có thể gọi
là sự trả giá để đổi lại cho tính năng tốt.
Về vấn đề tốc độ hoạt động chung của hệ thống, do phụ thuộc vào nhiều yếu
tố như: tốc độ của thiết bị thu nhận (tốt nếu như tiếp nhận được nhiều hơn 15
khung hình trong một giây); tốc độ phân tích ảnh; tốc độ xử lý và ra quyết
định và tốc độ dịch chuyển của của đối tượng cần phát hiện có trong ảnh…
nên nhìn chung sẽ có nhiều vấn đề cần xem xét thêm tùy vào hướng phát
triển và ứng dụng cụ thể của hệ thống.
Tính hiệu quả của hệ thống có thể được cải thiện tốt hơn bằng cách lập trình
linh hoạt hơn và tối ưu về mã code, có tính đến các ưu tiên và xử lý tốt các
tình huống sự cố ngoài ý muốn (ngoại cảnh,…), không loại trừ xét đến các số
liệu ghi nhận và thống kê để góp phần khắc phục và hoàn thiện hệ thống.
Trang 98
Võ Hồng Phong Luận văn tốt nghiệp
CHƯƠNG 5
KẾT LUẬN
5.1 KẾT QUẢ ĐẠT ĐƯỢC VÀ Ý NGHĨA
Qua quá trình nghiên cứu, thử nghiệm, và thực hiện đề tài trong thời gian cho
phép với những công cụ lập trình hỗ trợ, học viên đã hoàn thành hệ thống phát hiện
và nhận dạng đối tượng xe với các kết quả cụ thể.
5.1.1 Kết quả đạt được
• Lựa chọn và thực hiện thành công phương pháp phát hiện và nhận dạng xe
với nhiều phương pháp khác nhau đã và đang được nghiên cứu phát triển -
với Visual C++ là ngôn ngữ lập trình mới, theo xu hướng phát triển phần
mềm trên nền tảng .NET Framework phiên bản 1.1 và cao hơn.
• Phối hợp tương đối tốt giữa ngôn ngữ lập trình trên Visual C++ .NET của
Thị giác máy tính với lý thuyết Xử lý ảnh số.
• Tiếp cận thành công các thuật toán Xử lý quang học trong việc ước lượng và
định lượng các thông số trực tuyến của tình trạng giao thông.
Trang 99
Võ Hồng Phong Luận văn tốt nghiệp
• Là cơ hội tốt mà qua đó học viên đã có những tìm hiểu thêm về lĩnh vực xử
lý ảnh số, thị giác máy tính và cách ứng dụng vào thực tế quan sát đối tượng
xe trong cảnh quang giao thông.
5.1.2 Ý nghĩa
• Mô hình hóa được ở mức cơ sở hệ thống quan trắc trực tuyến hệ thống giao
thông sử dụng camera và các công cụ lập trình tiên tiến kèm theo. Từ đó,
người thực hiện có thể dễ dàng tiếp cận được phương thức quản lý và hiệu
chỉnh tình trạng giao thông ở mức hợp lý, phù hợp hơn với ngữ cảnh giao
thông trong nước.
• Hệ thống có thể được phát triển thêm ở cấp độ cao hơn với cách bố trí lệnh
code hợp lý hơn nhằm tăng tốc độ cho hệ thống, bên cạnh đó cũng phải đảm
bảo độ tin cậy và chính xác cho hệ thống, nhằm đáp ứng được nhu cầu
nghiên cứu học thuật và áp dụng nó trong thực tế.
• Hệ thống hóa phương pháp phát hiện và nhận dạng đối tượng nói chung và
đối tượng xe nói riêng sẽ tạo bước phát triển mới cho phương thức quan trắc
giao thông theo hướng hiện đại. Có thể triển khai ở điều kiện giao thông
trong nước, từ đó nâng cao khả năng điều tiết giao thông như các nước có
trình độ cao hơn đã và đang thực hiện.
5.2 HƯỚNG PHÁT TRIỂN
• Có những đối tượng khác nhau trong một số tình huống khác nhau mà ta có
thể chọn lựa phương pháp nhận biết sao cho phù hợp giữa hai phương pháp
nhận dạng dựa trên hình dáng của vật thể hoặc nhận biết theo màu sắc. Tuy
Trang 100
Võ Hồng Phong Luận văn tốt nghiệp
nhiên, có sự kết hợp phù hợp từ hai phương pháp trên dựa vào ảnh thu được
từ camera sẽ giúp hệ thống cải thiện đáng kể khả năng phát hiện đúng đối
tượng, từ đó nâng cao độ tin cậy cho hệ thống.
• Hệ thống cũng có thể phát triển theo hướng nhận dạng đối tượng (object
recognition), nghĩa là khi nhận dạng được hình dáng xe, sẽ tiếp tục “huấn
luyện” trực tuyến để tiếp tục trích xuất ra những đặc trưng chỉ có đối tượng
xe đó mới có (có thể dựa vào bảng số xe, vết lồi lõm riêng,…). Từ đó tiếp tục
quan sát và nhận dạng bám theo đối tượng xe đó. Việc nhận dạng bám theo
xe này trong môi trường giao thông “hỗn loạn” sẽ là một vấn đề thú vị có
nhiều ứng dụng.
• Hệ thống cũng có thể được lập trình theo hướng tích hợp trên vi mạch sử
dụng ngôn ngữ lập trình hệ thống nhúng, hệ thống tích hợp trên vi mạch
(SoC - System on Chip),… sẽ là một ứng dụng mang tính linh hoạt hơn. Bởi
vì khi đó hệ thống không còn nhất thiết phải chạy trên nền tảng máy tính
- .NET Frameworks và các máy tính nữa. Được như vậy, thì đề tài sẽ có tính
ứng dụng linh hoạt cao hơn vào các lĩnh vực thực tế cuộc sống và các hoạt
động đảm bảo an toàn giao thông cho cả hệ thống giao thông cũng như từng
cá thể xe riêng biệt đang tham gia lưu thông trên hệ thống giao thông đó.
• Theo nhận định của bản thân học viên, thì đây là một lĩnh vực hay, lý thú, có
nhiều ứng dụng thực tế và bên cạnh đó vẫn còn nhiều vấn đề cần hoàn thiện
thêm. Vì khả năng thực hiện có hạn và thời gian không nhiều cho luận văn
nên không tránh khỏi sơ sót và nhầm lẫn. Xin Quý Thầy Cô và các anh chị
học viên cũng như các bạn thông cảm. Mong rằng với những ai ham thích và
có hứng thú với hướng nghiên cứu này có thể chia sẻ với học viên để cùng
nhau tiếp tục tìm hiểu, phát triển thêm để nâng cao tính hữu dụng thực tế cho
Trang 101
Võ Hồng Phong Luận văn tốt nghiệp
đề tài. Đó cũng là một trong những mục tiêu chủ chốt và là lợi ích của ngành
học này.
Lời cuối cùng kết lại nội dung quyển luận văn này, học viên xin chân thành cám ơn
đến tất cả các thầy cô, các anh và các bạn đã quan tâm theo dõi.
Trang 102
Võ Hồng Phong Luận văn tốt nghiệp
PHẦN C
PHỤ LỤC
Trang 103
Võ Hồng Phong Luận văn tốt nghiệp
TÀI LIỆU THAM KHẢO VÀ TRÍCH DẪN
[1] Jaesik Choi. Realtime On-Road Vehicle Detection with Optical Flows and Haar-like
feature detector. Computer Science Department ‘s paper report, 2000.
[2] Margrit Betke, Esin Haritaoglu. Real Time Multiple Vehicle Detection and Tracking
from a moving vehicle. Machine Vision and Applications, Springer, 2000.
[3] Vadim Pisarevsky. OpenCV Object Detection Theory and Practice. Intel Corporation,
Software and Solutions Group.
[4] Rainer Lienhart, Alexander Kuranov, Vadim Pisarevsky. Empirical Analysis of
Detection Cascades of Boosted Classifiers for Rapid Object Detection. MRL
Technical Report, December 2002.
[5] Yali Amit. 2D Object Detection and Recognition, Models, Algorithms, and Networks.
The MIT Press, 306 pages, 2002.
[6] Emanuele Trucco, Alessandro Verri. Introductory for Techniques for 3-D Computer
Vision. Prentice Hall, 341 pages, 2002.
[7] Florian Adolf. How to build a cascade of boosted classifiers based on Haar-like
features. 2003.
[8] Intel Corporation. OpenCV with Visual C++.NET 2003. OpenCV user guide.
[9] Julien Meynet. Fast Face Detection Using AdaBoost. 95 pages, 16th July 2003.
[10] Paul Viola, Michael Jones. Rapid Object Detection using a Boosted Cascade of
Simple Features . 2001
[11] Qing Chen. Real-time Vision-based Hand Gesture Recognition Using Haar-like
Features - Technology Conference, IMTC 2007.
[12] David A. Forsyth & Jean Ponce. Computer Vision: A Modern Approach. Prentice
Hall, 693 pages, 2003.
Trang 104
Võ Hồng Phong Luận văn tốt nghiệp
CÁC WEBSITE THAM KHẢO
[link 1] Intel OpenCV Group
[link 2] SharperCV
[link 3] Camera Calibration
Introduction & Chapter 1: Camera Models and Calibration
Chapter 2: Calibration
Chapter 3: Undistortion
Chapter 4: Putting Calibration All Together
Chapter 5: Rodrigues Transform
Chapter 6: Exercises
Trang 105
Các file đính kèm theo tài liệu này:
- TH105.pdf