SlideShare a Scribd company logo
1 of 96
Download to read offline
TRƢỜNG ĐẠI HỌC LẠC HỒNG
KHOA CÔNG NGHỆ THÔNG TIN
----------
BÁO CÁO
NGHIÊN CỨU KHOA HỌC
ĐỀ TÀI:
XÂY DỰNG CHƢƠNG TRÌNH
PHÁT HIỆN VÀ NHẬN DẠNG
MỘT SỐ BIỂN BÁO GIAO
THÔNG ĐƢỜNG BỘ NGUY
HIỂM TẠI VIỆT NAM
LÊ CHÂN THIỆN TÂM
PHẠM HỒNG THÁI
BIÊN HÒA, THÁNG 11/2012
TRƢỜNG ĐẠI HỌC LẠC HỒNG
KHOA CÔNG NGHỆ THÔNG TIN
----------
BÁO CÁO
NGHIÊN CỨU KHOA HỌC
ĐỀ TÀI:
XÂY DỰNG CHƢƠNG TRÌNH
PHÁT HIỆN VÀ NHẬN DẠNG
MỘT SỐ BIỂN BÁO GIAO
THÔNG ĐƢỜNG BỘ NGUY
HIỂM TẠI VIỆT NAM
SVTH : LÊ CHÂN THIỆN TÂM
PHẠM HỒNG THÁI
GVHD : ThS. TRẦN TIẾN ĐỨC
BIÊN HÒA, THÁNG 11/2012
LỜI CÁM ƠN
Để hoàn thành đề tài này và có kiến thức như ngày hôm nay, đầu tiên chúng
em xin gửi lời cảm ơn đến Ban Giám Hiệu cùng toàn thể Thầy Cô Khoa Công Nghệ
Thông Tin – Trường Đại Học Lạc Hồng đã tận tình giảng dạy, truyền đạt kiến thức
cũng như những kinh nghiệm quý báu cho chúng em trong suốt quá trình học tập tại
trường.
Chúng em xin gửi những lời tri ân sâu sắc nhất đến thầy Ths Trần Tiến Đức,
người thầy đã tận tình hướng dẫn và quan tâm, động viên chúng em trong suốt quá
trình thực hiện đề tài.
Chúng em xin chân thành cảm ơn sự đóng góp ý kiến để góp phần hoàn thiện
đề tài các từ thầy Ths Huỳnh Cao Tuấn, thầy Ths Phan Mạnh Thường, thầy Ths
Nguyễn Phát Nhựt.
Chúng em cũng vô cùng cảm ơn sự nhiệt tình của các nhóm bạn đã hỗ trợ cho
nhóm nghiên cứu trong quá trình khảo sát thực tế, lấy mẫu thực nghiệm, đánh giá kết
quả cũng như hỗ trợ các thiết bị cần thiết để nhóm có thể hoàn thành đề tài.
Chúng em cũng bày tỏ lòng biết ơn đến những người thân trong gia đình đã
động viên và tạo mọi điều kiện giúp chúng em trong quá trình học tập cũng như
trong cuộc sống.
Mặc dù chúng em đã cố gắng hoàn thành tốt đề tài nhưng cũng không thể
tránh khỏi những sai sót nhất định, rất mong được sự thông cảm và chia sẻ cùng quý
Thầy Cô và bạn bè.
Chúng em xin gửi lời chúc sức khỏe và thành đạt tới tất cả quý thầy cô cùng các
bạn.
Nhóm sinh viên thực hiện đề tài
Lê Chân Thiện Tâm – Phạm Hồng Thái
Biên Hòa, Tháng 11 - 2012
NHẬN XÉT CỦA GIÁO VIÊN HƢỚNG DẪNPHẢN BIỆN
..............................................................................................................
..............................................................................................................
..............................................................................................................
..............................................................................................................
..............................................................................................................
..............................................................................................................
..............................................................................................................
..............................................................................................................
..............................................................................................................
..............................................................................................................
..............................................................................................................
..............................................................................................................
..............................................................................................................
..............................................................................................................
..............................................................................................................
..............................................................................................................
Biên Hòa, Ngày … tháng … năm 201…
Kí tên
Formatted: Vietnamese
MỤC LỤC
----------
Trang phụ bìa
Lời cám ơn
Mục lục
Danh mục viết tắt
Danh mục bảng và hình
PHẦN MỞ ĐẦU ............................................................................................................1
CHƢƠNG 1: TỔNG QUAN VỀ CÁC PHƢƠNG PHÁP PHÁT HIỆN BIỂN BÁO
GIAO THÔNG VÀ NỀN TẢNG OPENCV................................................................9
1.1. Các phương pháp phát hiện biển báo giao thông. ..................................................10
1.1.1, Phương pháp phát hiện dựa trên màu sắc ........................................................10
1.1.2, Phương pháp phát hiện dựa trên hình dạng......................................................11
1.1.3, Phương pháp phát hiện dựa trên máy học........................................................14
1.2. Giới thiệu thư viện mã nguồn mở OpenCV ...........................................................14
1.2.1, Lịch sử OpenCV...............................................................................................15
1.2.2, Kiến trúc của OpenCV.....................................................................................16
1.3. Tiểu kết ...................................................................................................................17
CHƢƠNG 2: GIỚI THIỆU PHƢƠNG PHÁP NHẬN DẠNG BIỂN BÁO GIAO
THÔNG ........................................................................................................................18
2.1. Khái quát phương pháp nhận dạng biển báo giao thông sử dụng trong đề tài. ......19
2.2. Xác định vùng đặc trưng chứa biển báo giao thông...............................................20
2.2.1, Đặc trưng Haar-like..........................................................................................20
2.2.2, Thuật toán tăng tốc Adaboost.......................................................................22
2.2.2.1, Tiếp cận Boosting ....................................................................................22
2.2.2.2, AdaBoost...................................................................................................23
2.3. Giới thiệu phương pháp phân tích thành phần chính (Principle Component
Analysis_PCA). .............................................................................................................25
2.3.1, Giới thiệu..........................................................................................................25
2.3.2, Thuật toán PCA................................................................................................27
2.4. Nhận dạng biển báo dùng bộ phân lớp Support Vector Machine (SVM)..............30
2.4.1, Phân lớp tuyến tính (Linear classifier).............................................................30
2.4.2, Phân lớp phi tuyến (Nonlinear classifier) ........................................................34
2.5. Tiểu kết ...................................................................................................................35
CHƢƠNG 3: THIẾT KẾ VÀ XÂY DỰNG CHƢƠNG TRÌNH.............................36
3.1. Chức năng của chương trình...................................................................................37
3.2. Xây dựng chương trình...........................................................................................37
3.2.1, Xây dựng cơ sở dữ liệu ảnh biển báo...............................................................37
3.2.1.1, Nguồn ảnh.................................................................................................37
3.2.1.2, Phân loại ảnh.............................................................................................38
3.2.2, Huấn luyện phát hiện biển báo trong ảnh ........................................................39
3.2.2.1, Chuẩn bị dữ liệu........................................................................................39
3.2.2.2, Lấy mẫu dữ liệu huấn luyện......................................................................40
3.2.2.3, Huấn luyện máy học (Machine Learning) ................................................42
3.2.3, Huấn luyện nhận dạng biển báo.......................................................................47
3.2.4, Chương trình nhận dạng...............................................................................5251
3.2.4.1, Sơ đồ hoạt động của chương trình ........................................................5251
3.2.4.2, Giao diện và cách sử dụng ....................................................................5453
3.3. Tiểu kết ...............................................................................................................5655
CHƢƠNG 4: ĐÁNH GIÁ KẾT QUẢ CHƢƠNG TRÌNH ..................................5756
4.1. Đánh giá kết quả.................................................................................................5857
4.1.1, Các môi trường thử nghiệm đánh giá...........................................................5857
4.1.2, Đánh giá các sai số.......................................................................................6564
4.2. Ưu và nhược điểm của chương trình..................................................................6665
4.2.1, Ưu điểm........................................................................................................6665
4.2.2, Nhược điểm..................................................................................................6665
4.3. Tiểu kết ...............................................................................................................6766
PHẦN KẾT LUẬN ..................................................................................................6867
TÀI LIỆU THAM KHẢO
DANH MỤC VIẾT TẮT
----------
Từ viết tắt Từ đầy đủ
AVI Audio Video Interleave
BMP Bitmap Portable
CPU Central Processing Unit
GB Gigabyte
HSI Hue – Saturation – Intensity
IPP Intergrated Performance Primitives
JPG Joint Photographic Experts Group
MB Megabyte
ML Machine Learning
OpenCV Open Computer Vision
ORC Optical Character Recognition
PCA Principle Components Analysis
PGM Portable Graymap
RGB Red – Green – Blue
SVM Support Vector Machine
DANH MỤC BẢNG VÀ HÌNH
----------
DANH MỤC HÌNH
Hình 1. Mô hình xử lý nhận dạng biển báo giao thông của bài báo “A Road Sign
Recognition System Based on Dynamic Visual Model” [10] . ........................................3
Hình 2. Mô hình xử lý nhận dạng biển báo giao thông của bài báo “A System for
Traffic Sign Detection, Tracking, and Recognition Using Color, Shape, and Motion
Information” [8]. .............................................................................................................4
Hình 3. Mô hình phát hiện biển báo giao thông của bài báo “Color-Based Road Sign
Detection and Tracking” [14]. ........................................................................................4
Hình 4. Mô hình tác giả đề nghị [5]................................................................................5
Hình 5. Tổng quan thuật toán [2]....................................................................................6
Hình 1. 1. Các vị trí của một đề cử điểm ảnh cho tâm đối tượng [13]. ........................11
Hình 1. 2. Nhân các góc gradient của một tam giác cho 3. ..........................................12
Hình 1. 3. Vùng kiểm soát. ...........................................................................................13
Hình 1. 4. Xây dựng ảnh biến đổi khoảng cách [9]......................................................14
Hình 1. 5. Lịch sử phát triển của OpenCV [12, Trang 7]. ............................................16
Hình 1. 6. Kiến trúc cơ bản của OpenCV [12, Trang 13].............................................17
Hình 2. 1. Đặc trưng theo cạnh.....................................................................................20
Hình 2. 2. Đặc trưng theo đường ..................................................................................20
Hình 2. 3. Đặc trưng theo xung quanh tâm...................................................................20
Hình 2. 4. Đặc trưng theo đường chéo..........................................................................20
Hình 2. 5. Cách tính Integral Image của ảnh ................................................................21
Hình 2. 6. Cách tính tổng giá trị pixel vùng cần tính....................................................22
Hình 2. 7. Boosting[ 3, Trang 16 ]................................................................................23
Hình 2. 8. Phép chiếu lên các trục tọa độ khác nhau có thể cho cách nhìn khác nhau về
cùng một dữ liệu. ...........................................................................................................26
Hình 2. 9. Tìm các trục tọa độ mới sao cho dữ liệu có độ biến thiên cao nhất.............26
Hình 2. 10. Tách hai phân lớp tuyến tính với một mặt siêu phẳng...............................31
Hình 2. 11. Tách hai phân lớp tuyến tính với hai mặt siêu phẳng................................31
Hình 2. 12. Ví dụ minh họa về độ lớn của lề (margin).................................................32
Hình 2. 13. Minh họa các mẫu được gọi là Support Vector. ........................................34
Hình 2. 14. Một mặt phân chia phi tuyến có thể trở thành một siêu phẳng trong không
gian lớn hơn...................................................................................................................34
Hình 3. 1. Tập ảnh Positive trong thư mục “rawdata”..................................................39
Hình 3. 2. Tập ảnh Negative trong thư mục “negative” ...............................................40
Hình 3. 3. Nội dung file “inforfile.txt” sau khi chạy file “create_list.bat”...................40
Hình 3. 4. Chương trình ObjectMaker trong thư mục “positive”.................................41
Hình 3. 5. Đánh dấu đối tượng trong trình ObjectMaker .............................................41
Hình 3. 6. Nội dung file “info.txt”................................................................................42
Hình 3. 7. Nội dung file “samples_creation.bat”..........................................................42
Hình 3. 8. Nội dung file “haarTraining.bat”.................................................................43
Hình 3. 9. Kết quả phân tầng ........................................................................................44
Hình 3. 10. Nội dung file “convert.bat”........................................................................45
Hình 3. 11. Cấu trúc của một tập tin XML...................................................................45
Hình 3. 12. Kết quả ảnh biển số 201a nhận được.........................................................46
Hình 3. 13. Kết quả ảnh biển số 210 nhận được...........................................................46
Hình 3. 16. Một phần nội dung file “psiTT.txt”. ..........................................................50
Hình 3. 17. Một phần nội dung file “svmtrained.xml”.................................................50
Hình 3. 18.Giao diện chính của chương trình...........................................................5453
Hình 4. 1. Một số kết quả thử nghiệm trong môi trường chuẩn. ..............................5857
Hình 4. 2. Một số kết quả thử nghiệm trong môi trường ban đêm. ..........................5958
Hình 4. 3. Một số kết quả thử nghiệm trong môi trường nhiều mây, yếu ánh sáng và có
mưa nhỏ .....................................................................................................................6059
Hình 4. 4. Kết quả thử nghiệm biển bị che khuất bởi cây ........................................6160
Hình 4. 5. Kết quả thử nghiệm với biển bị bong tróc sơn. .......................................6160
Hình 4. 6. Kết quả thử nghiệm với biển bị bẩn bởi sơn............................................6261
Hình 4. 7. Kết quả thử nghiệm với biển cũ bị phai màu...........................................6261
Hình 4. 8. Kết quả thử nghiệm với ảnh bị các tờ quảng cáo dán lên........................6362
Hình 4. 9. Kết quả thử nghiệm với biển báo nghiêng bên phải trên ảnh tĩnh...........6362
Hình 4. 10. Kết quả thử nghiệm với biển báo bị nghiêng bên trái trên ảnh tĩnh. .....6463
Hình 4. 11. Khoảng cách từ lúc nhận dạng đến biển báo. ........................................6463
DANH MỤC SƠ ĐỒ
Sơ đồ 2. 1. Trình tự các bước trong phương pháp nhận dạng biển báo giao thông nguy
hiểm. ..............................................................................................................................19
Sơ đồ 3. 1. Sơ đồ huấn luyện phát hiện biển báo trong ảnh..........................................47
Sơ đồ 3. 2. Sơ đồ huấn luyện nhận dạng biển báo ....................................................5251
Sơ đồ 3. 3. Sơ đồ hoạt động chương trình.................................................................5352
DANH MỤC BẢNG
Bảng 3. 1. Một số biển báo giao thông được bộ được nhóm nghiên cứu. ....................38
Bảng 4. 1. Kết quả nhận dạng biển báo giao thông ..................................................6564
Formatted: Space Before: 6 pt, After: 6 pt,
Line spacing: 1.5 lines
Formatted: Space Before: 6 pt, After: 6 pt,
Line spacing: 1.5 lines
Bảng 4. 1. Kết quả nhận dạng biển báo giao thông 64 Formatted: Default Paragraph Font, Font: No
Bold, Check spelling and grammar
Formatted: Normal, Justified, Tab stops: Not
15.98 cm
- 1 - Formatted: Font: 12 pt
Formatted: Font: Check spelling and gramm
Formatted: Font: 12 pt
Formatted: Font: Times New Roman, 12 pt
PHẦN MỞ ĐẦU
Lý do chọn đề tài
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 Việt Nam 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 và hơn hết chính tình hình tai nạn giao
thông đường bộ. Theo số liệu mới nhất từ Ủy ban An toàn giao thông quốc gia, chỉ
trong 8 tháng đầu năm 2012, Việt Nam có hơn 7000 vụ tai nạn giao thông [20], dân số
mất đi hơn 6000 người. Đây là những mất mát quá lớn xảy ra trong một đất nước hòa
bình đáng để mọi thành phần trong xã hội cùng quan tâm và suy xét.
Từ tình hình thực tế giao thông tại Việt Nam, nguyên nhân phần lớn các vụ tai
nạn giao thông đường bộ là do tài xế lái xe không làm chủ tốc độ, không chấp hành
hiệu lệnh giao thông, 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 có thể vì tài xế mệt mỏi, thiếu tập trung và chịu nhiều yếu tố tác động
khác.
Từ khảo sát thực tế của nhóm sinh viên nghiên cứu [Phụ lục 1] với các tài xế
mà thành phần chủ yếu là các tài xế taxi 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 họ ý 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.
Các hệ thống cảnh báo hỗ trợ tài xế hiện vẫn đang trong giai đoạn được các
trung tâm nghiên cứu của thế giới, các hãng xe ô tô thử nghiệm, đánh giá và vẫn chưa
chính thức đưa vào sử dụng trong thực 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ự hành là
xu hướng thiết yếu của xã hội phát triển.
Từ những lý do trên, nhóm sinh viên nghiên cứu với mong muốn góp phần hạn
chế những tai nạn giao thông và giảm thiểu hóa những hậu quả sau tai nạn. Sau quá
- 2 - Formatted: Font: 12 pt
Formatted: Font: Check spelling and gramm
Formatted: Font: 12 pt
Formatted: Font: Times New Roman, 12 pt
trình học tập và tìm hiểu những lợi ích từ những ứng dụng xử lý nhận dạng ảnh, nhóm
sinh viên chúng em lựa chọn đề tài: “Xây dựng chương trình phát hiện và nhận dạng
một số biển báo giao thông đường bộ nguy hiểm tại Việt Nam” làm đề tài tốt nghiệp.
Lịch sử nghiên cứu
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. Tuy nhiên hiện tất cả vẫn đang được tiếp tục đầu tư nghiên cứu nhằm mục đích
xây dựng một sản phẩm tối ưu và hoàn chỉnh hơn.
Trên thế giới
Bài báo “A Road Sign Recognition System Based on Dynamic Visual Model”
(C. Y. Yang, C. S. Fuh, S. W. Chen, P. S. Yen, CVPR'03 Proceedings of the 2003
IEEE computer society conference on Computer vision and pattern recognition, Pages
750-755, 2003). Nhóm tác giả nghiên cứu mong muốn thúc đẩy, thay đổi nhận thức,
cung cấp những thông tin cần thiết để hỗ trợ người lái xe và nâng cao độ an toàn trong
giao thông. Bài báo đề xuất một mô hình, gọi là mô hình trực quan động (Dynamic
Visual Model) để phát hiện và nhận dạng các biển báo giao thông trên đường. Đồng
thời cũng trình bày những khó khăn trong việc nhận dạng biển báo như: Màu sắc của
biển báo bị phai mờ dưới ảnh hưởng của ánh nắng mặt trời, sơn biển báo bị bong tróc,
mất đi những thông tin cần thiết của biển báo. Không khí bị ô nhiễm và các điều kiện
về thời tiết cũng làm giảm khả năng nhận dạng…
- 3 - Formatted: Font: 12 pt
Formatted: Font: Check spelling and gramm
Formatted: Font: 12 pt
Formatted: Font: Times New Roman, 12 pt
Hình 1. Mô hình xử lý nhận dạng biển báo giao thông của bài báo “A Road Sign
Recognition System Based on Dynamic Visual Model” [10] .
Bài báo “A System for Traffic Sign Detectiona, Tracking, and Recognition Using
Color, Shape, and Motion Information”, (C. Bahlmann, Y. Zhu, V. Ramesh, M.
Pellkofer, T. Koehler Proceedings. IEEE Intelligent Vehicles Symposium, 2005). Bài
báo mô tả một hệ thống thị giác máy tính (Computer Vision) xử lý việc phát hiện, theo
vết và nhận dạng các biển báo giao thông dựa trên màu sắc, hình dạng và thông tin
trong thời gian thực. Phương pháp tiếp cận được trình bày trong bài báo gồm hai thành
phần. Đầu tiên sử dụng các đặc trưng Haar kết hợp với bộ tăng tốc Adaboost để phát
hiện biển báo. Sau khi phát hiện và theo vết biển báo thì biển báo được phân loại bằng
mô hình Bayes. Kết quả được thực nghiệm theo bài báo là có thể phát hiện và phân loại
được một số biển báo giao thông với tỉ lệ chính xác cao trong điều kiện 10frames/1
giây.
- 4 - Formatted: Font: 12 pt
Formatted: Font: Check spelling and gramm
Formatted: Font: 12 pt
Formatted: Font: Times New Roman, 12 pt
Hình 2. Mô hình xử lý nhận dạng biển báo giao thông của bài báo “A System for
Traffic Sign Detection, Tracking, and Recognition Using Color, Shape, and Motion
Information” [8].
Bài báo “Color-Based Road Sign Detection and Tracking ” (Luis David Lopez
and Olac Fuentes,Computer Science Department University of Texas, El Paso 79902,
USA, 2007) bài báo trình bày một nền tảng chung cho việc nhận dạng và theo vết các
biển báo giao thông chỉ sử dụng duy nhất một thông tin màu sắc. Phương pháp tiếp cận
gồm hai thành phần. Phần đầu sử dụng một tập phân phối Gauss để phát hiện đường và
các biển báo giao thông. Phần thứ hai là theo vết đối tượng đã được xác định ở bước
trước đó. Kết quả thử nghiệm cho thấy rằng hệ thống đề xuất nhận dạng trung bình
97% trong thời gian thực với các đối tượng ở gần.
Hình 3. Mô hình phát hiện biển báo giao thông của bài báo “Color-Based Road Sign
Detection and Tracking” [14].
- 5 - Formatted: Font: 12 pt
Formatted: Font: Check spelling and gramm
Formatted: Font: 12 pt
Formatted: Font: Times New Roman, 12 pt
Trong nƣớc
Đề tài “Phát hiện và phân loại biển báo giao thông dựa trên SVM trong thời
gian thực” (Lê Thanh Tâm, Trần Thái Sơn, Seichii Mita, Tuyển tập Công trình Nghiên
cứu Công nghệ Thông tin và Truyền thông, 2009). Đây là một module nằm trong dự
án hệ thống lái xe tự động của học viện Công Nghệ Toyota được tài trợ bởi tập đoàn ô
tô Toyota. Cách tiếp cận được giới thiệu là sử dụng đặc trưng màu trên SVM (Support
Vector Machine) để phát hiện vùng ứng cử cho biển báo giao thông trong thời gian
thực (xem hình 4).
Hình 4. Mô hình tác giả đề nghị [5].
Đề tài “Phát hiện biển báo giao thông dùng đặc trưng cục bộ (local features)”
của tác giả Nguyễn Duy Khánh, Lê Đình Duy, Dương Anh Đức được báo cáo tại Hội
thảo Fair 2011 tại Trường đại học Lạc Hồng. Đề tài dùng đặc trưng cục bộ và bộ phân
lớp SVM (Support Vector Machine) để phát hiện biển báo giao thông. Tổng quan thuật
- 6 - Formatted: Font: 12 pt
Formatted: Font: Check spelling and gramm
Formatted: Font: 12 pt
Formatted: Font: Times New Roman, 12 pt
toán được tác giả trình bày như theo hình 5. Kết quả của đề tài dừng lại ở việc xác
định biển báo và phân lớp chúng thành các nhóm biển cấm, nguy hiểm, chỉ dẫn.
Hình 5. Tổng quan thuật toán [2].
Mục tiêu nghiên cứu
Xây dựng chương trình phát hiện và nhận dạng biển báo giao thông đường bộ
từ video thu về và hiển thị thông tin cảnh báo dưới dạng hình ảnh và âm thanh.
Đối tƣợng nghiên cứu và phạm vi nghiên cứu
- Đối tượng nghiên cứu : Biển báo giao thông đường bộ ở Việt Nam
- Phạm vi nghiên cứu : Nghiên cứu bộ biển báo giao thông đường bộ nguy
hiểm tại Việt Nam.
Phƣơng pháp nghiên cứu
- Khảo sát, tìm hiểu và thu thập tài liệu, hình ảnh về biển báo giao thông, đề tài
đã nghiên cứu trước đây.
- Tìm hiểu các bước phát hiện biển báo giao thông: gồm phương pháp máy học
dựa trên đặc trưng Haar-like kết hợp với bộ tăng tốc Adaboost.
- Tìm hiểu các bước nhận dạng biển báo giao thông: Gồm quá trình phân tích
thành phần chính Pricipal Components Analaysis (PCA), và huấn luyện Support
Vector Machine(SVM) để nhận dạng biển báo giao thông.
- 7 - Formatted: Font: 12 pt
Formatted: Font: Check spelling and gramm
Formatted: Font: 12 pt
Formatted: Font: Times New Roman, 12 pt
- 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.
- Tìm ra một hướng đi mới trong mỗi bước cần làm của đề tài, đặc biệt là trong
giải thuật nhận dạng.
Những đóng góp mới của đề tài - những vấn đề mà đề tài chƣa thực hiện đƣợc
- Đề tài đưa ra hướng mới là kết hợp phương pháp dựa trên đặc trưng Haar và
bộ tăng tốc Adaboost để nâng cao khả năng phát hiện đồng thời dùng thuật toán phân
tích thành phần chính PCA để làm giảm bớt số chiều của ảnh xám làm số liệu đầu vào
cho bước sử dụng thuật toán SVM để nhận dạng.
- Tạo tiền đề cho việc xây dựng hệ thống nhận dạng biển báo giao thông đầy đủ
và hoàn chỉnh hơn.
- Đề tài dừng lại ở mức độ nghiên cứu nên số lượng biển báo nhận dạng được
rất hạn chế.
Kết cấu của đề tài
Báo cáo này được trình bày 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
Giới thiệu sơ lược về lý do chọn đề tài, lịch sử nghiên cứu, mục tiêu nghiên
cứu, đối tượng và phạm vi nghiên cứu, phương pháp nghiên cứu, những đóng góp và
những vấn đề tồn tại của đề tài để từ đó đem lại cho mọi người một cái nhìn tổng quan
nhất về đề tài.
Phần nội dung
Chƣơng 1: Tổng quan về các phương pháp phát hiện biển báo giao thông và
nền tảng opencv.
- 8 - Formatted: Font: 12 pt
Formatted: Font: Check spelling and gramm
Formatted: Font: 12 pt
Formatted: Font: Times New Roman, 12 pt
Trình bày các phương pháp phổ biến trong viện phát hiện và nhận dạng biển
báo giao thông như dựa trên màu sắc, dựa trên hình dạng, và dựa trên phương pháp
máy học.
Trình bày nền tảng của thư viện hỗ trợ xử lý ảnh OpenCV.
Chƣơng 2: Giới thiệu phương pháp nhận dạng biển báo giao thông.
Trình bày nội dung về trình tự các bước trong quá trình phát hiện và nhận dạng
biển báo giao thông.
Trình bày chi tiết các thuật toán hỗ trợ trong việc phát hiện và nhận dạng gồm:
Đặc trưng Haar, 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: Thiết kế và xây dựng chương trình.
Trình bày các bước xây dựng chương trình phát hiện và nhận dạng biển báo
giao thông.
Chƣơng 4: Đánh giá kết quả chương trình.
Đánh giá độ chính xác của phương pháp.
Phần kết luận
- 9 - Formatted: Font: 12 pt
Formatted: Font: Check spelling and gramm
Formatted: Font: 12 pt
Formatted: Font: Times New Roman, 12 pt
CHƢƠNG 1: TỔNG QUAN VỀ CÁC PHƢƠNG PHÁP PHÁT
HIỆN BIỂN BÁO GIAO THÔNG VÀ NỀN TẢNG OPENCV
1.1 Các phƣơng pháp phát hiện biển báo giao thông.
1.2 Giới thiệu thƣ viện mã nguồn mở OpenCV.
1.3 Tiểu kết.
Nội dung chính Formatted: Font: Bold
Formatted: Centered
- 10 - Formatted: Font: 12 pt
Formatted: Font: Check spelling and gramm
Formatted: Font: 12 pt
Formatted: Font: Times New Roman, 12 pt
1.1. Các phƣơng pháp phát hiện biển báo giao thông.
Xác định một đối tượng chuyên biệt ví dụ như xác định người đi bộ, xe hơi, làn
đường, biển báo giao thông trong một quang cảnh giao thông đối với não và thị giác
của con người thì đây là một chuyện đơn giản. Tuy nhiên để xác định những đối tượng
đó có xuất hiện hay không trong những frame ảnh thu được thông qua camera với sự
trợ giúp của máy tính thì đây là một vấn đề mà các nhà khoa học đánh giá là thật sự
khó khăn. Bởi lẽ hệ thống xử lý thông tin ảnh không những đòi hỏi tính chính xác mà
còn phải đáp ứng một cách nhanh chóng trong thời gian thực và có thể hoạt động tốt
trong nhiều môi trường và hoàn cảnh tự nhiên khác nhau. Do vậy hai lĩnh vực xử lý
ảnh (Image Processing) và thị giác máy tính (Computer Vision) phải luôn phát triển
song hành và bổ sung chặt chẽ cho nhau.
Có nhiều phương pháp và hướng tiếp cận của vấn đề xác định biển báo giao
thông. Nhưng các phương pháp phổ biến hiện nay được áp dụng là phương pháp dựa
trên màu sắc (color-based detection methods), phương pháp dựa trên hình dạng
(shape-based methods), và phương pháp dựa trên máy học (methods based on machine
learning).
1.1.1, Phƣơng pháp phát hiện dựa trên màu sắc
Cách tiếp cận phổ biến trong vấn đề xác định biển báo giao thông dựa trên màu
sắc là tìm một vùng ảnh có chứa màu sắc đặc trưng, sử dụng phương pháp phân
ngưỡng đơn giản hoặc phân ngưỡng ảnh cao cấp. Kết quả của vùng ảnh sau đó sẽ ngay
lập tức được xem như là biển báo giao thông hoặc thông qua giai đoạn tiếp theo xem
như là vùng cần quan tâm.
Khuyết điểm chính của phương pháp này là trong thực tế màu sắc có xu hướng
không đáng tin cậy, mà phụ thuộc vào các thời điểm trong ngày, điều kiện thời tiết,
bóng râm…Không gian màu RGB được đánh giá là rất nhạy cảm với ánh sáng , do đó
nhiều nhà nghiên cứu đã chọn phân ngưỡng dựa trên màu sắc trong các không gian
màu khác như HSI.
- 11 - Formatted: Font: 12 pt
Formatted: Font: Check spelling and gramm
Formatted: Font: 12 pt
Formatted: Font: Times New Roman, 12 pt
1.1.2, Phƣơng pháp phát hiện dựa trên hình dạng
Phát hiện biển báo giao thông dựa trên hình dạng có nhiều cách tiếp cận đã
được công bố trong nhiều tài liệu hiện nay.Tuy nhiên có lẽ phương pháp dựa trên hình
dạng phổ biến nhất là sử dụng phép biến đổi Hough.
Phép biến đổi Hough là một kĩ thuật dùng để xác định một hình dạng ngẫu
nhiên trong ảnh.Ý tưởng cơ bản là sử dụng một cạnh của ảnh, mỗi điểm ảnh của cạnh
ảnh có khả năng là tâm của đối tượng nếu như điểm ảnh đó nằm trên biên. Kĩ thuật này
sớm ra đời trong lịch sử thị giác máy tính (computer vision). Nó đã được mở rộng và
thay đổi nhiều lần với nhiều biến thể khác nhau. Ở đây chúng ta chỉ trình bày về
nghiên cứu của Loy và Barnes, và nó được xem là phương pháp hiệu quả cho việc
nhận dạng biển báo giao thông. Loy và Barnes [13] đã đề xuất bộ phát hiện đa giác
đều tổng quát và chỉ sử dụng nó để phát hiện biển báo giao thông. Bộ phát hiện dựa
trên phép biến đổi đối xứng xuyên tâm nhanh, về mặt tổng quan nó tương tự như phép
biến đổi Hough. Đầu tiên ta tính đạo hàm cấp một của ảnh từ ảnh gốc. Ảnh đạo hàm
cấp một sau đó được phân ngưỡng để cho các điểm có biên độ thấp bị loại bỏ. Các
điểm ảnh còn lại có khả năng là vị trí của tâm đa giác đều. Một điểm ảnh đóng vai trò
là điểm có khả năng được chọn trên nhiều vị trí được phân bổ dọc theo đường trực
giao với đạo hàm cấp một của điểm ảnh và có khoảng cách đến các điểm ảnh là tương
đương với các bán kính của đa giác đều (Xem hình 1.1). Lưu ý rằng thật sự có tới hai
đường thẳng có thể thỏa mãn yêu cầu này, một là cùng hướng với đạo hàm và một là
theo hướng ngược lại. Cả hai đều có thể sử dụng nếu chúng ta không thể biết trước liệu
biển báo này sáng hơn hay tối hơn so với quang cảnh nền.
Hình 1. 1. Các vị trí của một đề cử điểm ảnh cho tâm đối tượng [13].
Chiều dài của đường biểu quyết được bao bởi bán kính của đa giác đều. Các
điểm ảnh được chọn ở cuối đường thẳng có trọng số tiêu cực, để tối thiểu hóa ảnh
- 12 - Formatted: Font: 12 pt
Formatted: Font: Check spelling and gramm
Formatted: Font: 12 pt
Formatted: Font: Times New Roman, 12 pt
hưởng của các đường thẳng trong ảnh mà dài quá để có thể xem như là một cạnh của
đa giác. Kết quả ảnh đề cử (vote image) được gán nhãn là .
Ngoài ảnh đề cử (vote image) ra, một ảnh khác được gọi là ảnh đẳng giác
(equiangular image) được tạo. Thủ tục được đề xuất như sau: Nếu góc đạo hàm của
các điểm ảnh trên cạnh của một đa giác đều mặt ( –sided) được nhân với , thì kết
quả các góc sẽ bằng nhau (Xem hình 1.2). Ví dụ, xét một tam giác đẳng giác và thử
một giá trị góc đạo hàm tại mỗi bên. Giả sử chúng ta có được các giá trị đạo hàm của
730
, 1930
, và 3130
. Các đạo hàm được cách nhau một khoảng 3600
/ = 1200
. Sau đó
730
x 3 = 2190
và 1930
x 3 = 5790
, 5790
– 3600
= 2190
. Tương tự như vậy 3130
x 3 =
9390
, 9390
– 2 x 3600
= 2190
. Với từng điểm ảnh được chọn là tâm của đa giác, một
vector đơn vị được tạo ra. Độ dốc (slope) của vector đơn vị được cho bằng với góc đạo
hàm của điểm ảnh nhân với số mặt của đa gia đều. Các điểm ảnh sau đó một lần nữa
được chọn trên những vị trí được mô tả bằng một đường thẳng đề cử, ngoại trừ đề cử
mang dạng của một vector đơn vị. Các điểm được chọn được biểu diễn trong một ảnh
mới gọi là ảnh đẳng giác. Từng điểm trong ảnh đại diện cho một vector là tổng của các
điểm được chọn đóng góp. Các điểm được chọn từ các cạnh của đa giác đẳng giác sẽ
có cùng độ dốc (slope), do đó độ lớn của các vector được chọn trong trọng tâm đa giác
đẳng giác sẽ là lớn nhất.
Hình 1. 2. Nhân các góc gradient của một tam giác cho 3.
Kết quả các góc sẽ bằng nhau.
Cuối cùng, ảnh đề cử và định mức của ảnh đẳng giác được kết hợp để tạo ra đáp
ứng tổng thể. Độ phức tạp của phương thức này là , trong đó là độ dài cực đại
của đường thẳng được chọn, là số lượng điểm ảnh có trong ảnh và là số lượng bán
kính đang được xem xét.
- 13 - Formatted: Font: 12 pt
Formatted: Font: Check spelling and gramm
Formatted: Font: 12 pt
Formatted: Font: Times New Roman, 12 pt
Khuyết điểm chính của hướng tiếp cận này là bán kính của đa giác phải được
biết trước, và đây không bao giờ là điều dễ thực hiện. Ở đây có thể được giải quyết
bằng cách thử nhiều bán kính nhưng nó tiêu tốn quá nhiều thời gian xử lý.
Một hướng tiếp cận khác là tìm hình dạng đặc trưng được sử dụng là bộ phát
hiện góc và sau đó giả thiết là vị trí của đa giác đều bằng cách quan sát quan sát mối
liên hệ giữa các góc. Paulo và Correia [9] xác định biển báo tam giác và tứ giác bằng
cách áp dụng bộ phát hiện góc Haaris để xác định vùng đặc trưng, và sau đó tìm kiếm
phần còn lại của góc trong sáu khu vực kiểm soát được định nghĩa trước đó của vùng
này. Hình dạng được xác định dựa trên hình của vùng kiểm soát mà góc được tìm thấy.
Vùng kiểm soát được biểu diễn như trong hình 1.3.
Hình 1. 3. Vùng kiểm soát.
Gavrila [11] sử dụng biến đổi khoảng cách dựa trên mẫu phù hợp để xác định
hình dạng. Đầu tiên, các cạnh trong ảnh gốc được tìm thấy. Tiếp theo, một ảnh biến
đổi khoảng cách (Distance Transform _DT) được xây dựng (nhƣ hình 1.4). Ảnh DT là
ảnh mà điểm ảnh đại diện cho khoảng cách tới cạnh gần nhất. Để tìm thấy hình dạng
đặc trưng, một ý tưởng cơ bản là dựa trên một mẫu phù hợp (ví dụ là một tam giác
đều) so với ảnh DT. Để tìm ra mẫu phù hợp tối ưu, sử dụng các phép biến đổi cơ bản
như phép xoay, phép tỉ lệ, phép dời. Trong phần mở rộng của ý tưởng Gavrila, các
cạnh phải khác nhau theo hướng, để các ảnh DT riêng biệt được tính toán cho các
hướng của cạnh riêng biệt và các mẫu được chia thành từng phần dựa trên hướng của
chúng. Biện pháp tổng thể phù hợp là tổng hợp các biện pháp kết hợp giữa ảnh DT và
các mẫu của hướng đặc biệt. Garvila cũng đã sử dụng một mẫu phân cấp với ý tưởng
là các mẫu tương đương nhau được nhóm với nhau thành một prototype, và một khi
- 14 - Formatted: Font: 12 pt
Formatted: Font: Check spelling and gramm
Formatted: Font: 12 pt
Formatted: Font: Times New Roman, 12 pt
prototype được tìm thấy, tiến trình tìm mẫu tốt nhất trong các prototype sẽ tiết kiệm
được chi phí.
Hình 1. 4. Xây dựng ảnh biến đổi khoảng cách [9].
Từ trái sang: Ảnh gốc; Ảnh cạnh và ảnh biến đổi khoảng cách;
Mẫu cho ảnh DT được tìm kiếm là một tam giác đơn giản.
1.1.3, Phƣơng pháp phát hiện dựa trên máy học
Với hai phương pháp tiếp cận bên trên (tiếp cận dựa trên màu sắc và hình
dạng) thì để giải quyết bài toán phải tự giải quyết bằng tay (manually). Tuy nhiên, với
kiến thức này cũng có thể được phát hiện bằng cách dùng máy học (machine learning).
Nghiên cứu của Viola và Jones [16] là một cột mốc quan trong trong lĩnh vực
thị giác máy tính (computer vision). Viola và Jones đã phát triển một thuật toán có khả
năng xác định một đối tượng trong thời gian thực. Bộ phát hiện được huấn luyện bằng
cách sử dụng một tập các mẫu tích cực (positive) vả tiêu cực (negative). Nghiên cứu
gốc chỉ dành cho việc phát hiện khuôn mặt, tuy nhiên nhiều nhà nghiên cứu khác cũng
đã ứng dụng thành công bộ phát hiện cho nhiều đối tượng khác. Trong số đó, biển báo
giao thông cũng được phát hiện thành công.
Bộ phát hiện của Viola và Jones kết hợp giữa hai khái niệm Adaboost và bộ
phân lớp Haar-like. Đây cũng là phương pháp được nhóm sử dụng trong luận văn và
được trình bày chi tiết trong phần 2.2.1 và 2.2.2.
1.2. Giới thiệu thƣ viện mã nguồn mở OpenCV
OpenCV là thư viện xử lý thị giác máy tính (computer vision) mã nguồn mở.
Thư viện này được viết bằng ngôn ngữ C và C++ và có thể chạy trên các nền tảng
- 15 - Formatted: Font: 12 pt
Formatted: Font: Check spelling and gramm
Formatted: Font: 12 pt
Formatted: Font: Times New Roman, 12 pt
Linux, Windows và Mac OS X. Ngoài ra còn được phát triển một cách mạnh mẽ trên
các ngôn ngữ Python, Ruby, Matlab và một số ngôn ngữ khác.
OpenCV được thiết kế cho việc xử lý tính toán tối ưu và tập trung mạnh vào các
ứng dụng thời gian thực. Do OpenCV được viết tối ưu hóa bằng ngôn ngữ C nên có
thể tận dụng ưu điểm của bộ vi xử lý đa luồng. Ngoài ra Intel còn cung cấp thêm một
thư viện Intel’s Intergrated Performance Primitives (IPP) nhằm mục đích tự động tối
ưu hơn nữa trên kiến trúc của Intel. Tuy nhiên thư viện này là bản thương mại của
Intel.
Một trong những mục tiêu của OpenCV là đơn giản hóa những gì có thể trong lĩnh
vực thị giác máy tính để hỗ trợ người dùng xây dựng nên những ứng dụng mạnh mẽ,
tinh vi một cách nhanh chóng. Thư viện OpenCV có hơn 500 hàm và được chia thành
nhiều lĩnh vực thị giác máy như trong an ninh, y tế, robot…[12, trang 1].
1.2.1, Lịch sử OpenCV
OpenCV ra đời là một sáng kiến nghiên cứu của Intel nhằm mục đích đẩy mạnh
các ứng dụng của CPU chuyên sâu. Hướng tới mục tiêu này, Intel đã đưa ra nhiều dự
án bao gồm theo vết thời gian thực, và những bức tường hiển thị ảnh 3D. Một trong
những tác giả làm việc cho Intel thời gian này đã đến thăm một số trường đại học và
nhận thấy rằng một số nhóm trường đại học hàng đầu nhưng MIT Media Lab, đã phát
triển rất tốt với một nền tảng thị giác máy tính mở (open computer vision) được truyền
tay nhau nội bộ giữa các sinh viên. Thay vì phải xây dựng lại những chức năng cơ bản
từ đầu thì một sinh viên mới có thể bắt đầu bằng cách xây dựng tiếp dựa trên những gì
đã có sẵn.
Do đó OpenCV được Intel chú ý và đầu tư nghiên cứu phát triển. Những mục
tiêu ban đầu của OpenCV là:
 Nâng cao nghiên cứu xử lý thị giác không chỉ là nguồn mở mà còn phải tối ưu
hóa mã lệnh (code) cho nền tảng xử lý thị giác cơ bản.
 Phổ biến kiến thức xử lý thị giác bằng cách cung cấp những nền tảng chung để
các nhà phát triển có thể xây dựng trên nó, vì vậy mà code sẽ có thể dễ dàng đọc được
cũng như trong chuyển nhượng.
- 16 - Formatted: Font: 12 pt
Formatted: Font: Check spelling and gramm
Formatted: Font: 12 pt
Formatted: Font: Times New Roman, 12 pt
 Thúc đẩy ứng dụng thương mại dựa trên thị giác máy tính bằng cách làm cho
nó linh hoạt, di động (portable), tối ưu hóa hiệu suất của mã lệnh, cung cấp giấy phép
miễn phí mà không yêu cầu các ứng dụng thương mại sẽ mở (open) hoặc miễn phí.
Kể từ khi dự án đầu tiên vào năm 1999 (Hình 1.5) thì đến nay thư viện
OpenCV là một lĩnh vực tích cực quan trọng của một số tổ chức phát triển cũng như
thu hút trên 20.000 thành viên sử dụng trên khắp thế giới , do đó OpenCV được mong
đợi có sẽ có nhiều bản cập nhật tốt hơn trong các vấn đề về xử lý thị giác máy tính,
robot…[12, Trang 1-3].
Hình 1. 5. Lịch sử phát triển của OpenCV [12, Trang 7].
1.2.2, Kiến trúc của OpenCV
OpenCV có cấu trúc gồm 5 thành phần chính, 4 thành phần trong số đó được
thể hiện như trong hình 1.6. Các thành phần CV chứa thuật toán xử lý ảnh cơ bản và
các thuật toán cao cấp trong xử lý thị giác máy tính; ML là thư viện phục vụ trong lĩnh
vực máy học bao gồm nhiều phân lớp thống kê và các công cụ phân cụm. HighGUI
chứa những thành phần nhập xuất và các hàm cho việc lưu trữ và truy xuất hình ảnh,
video, và CXCore chứa nội dung và các cấu trúc dữ liệu cơ bản.
- 17 - Formatted: Font: 12 pt
Formatted: Font: Check spelling and gramm
Formatted: Font: 12 pt
Formatted: Font: Times New Roman, 12 pt
Hình 1. 6. Kiến trúc cơ bản của OpenCV [12, Trang 13].
Trên hình 1.6 không mô tả thành phần CvAux, thành phần này chứa các hàm
đã ngừng phát triển, hoặc đang thử nghiệm. CvAux bao gồm:
 Stereo vision.
 Theo vết 3D.
 Theo vết mắt và miệng.
 Xác định khung xương của đối tượng trong cảnh.
1.3. Tiểu kết
Chương này trình bày một số phương pháp tiếp cận cơ bản trong việc phát hiện,
nhận dạng biển báo giao thông đã được áp dụng trong nhiều đề tài nghiên cứu và nền
tảng thư viện OpenCV hỗ trợ trong việc xử lý ảnh. Thông qua đó nhóm đã chọn lựa và
xác định những thuật toán, công nghệ phù hợp để xây dựng đề tài.
- 18 - Formatted: Font: 12 pt
Formatted: Font: Check spelling and gramm
Formatted: Font: 12 pt
Formatted: Font: Times New Roman, 12 pt
CHƢƠNG 2: GIỚI THIỆU PHƢƠNG PHÁP NHẬN DẠNG
BIỂN BÁO GIAO THÔNG
2.1 Khái quát phƣơng pháp nhận dạng biển báo giao thông đƣợc sử
dụng trong đề tài.
2.2 Xác định vùng đặc trƣng chứa biển báo giao thông.
2.3 Giới thiệu phƣơng pháp phân tích thành phần chính (Principle
Components Analysis_PCA).
2.4 Nhận dạng biển báo dùng bộ phân lớp Support Vector Machine
(SVM).
2.5Tiểu kết.
Nội dung chính
- 19 - Formatted: Font: 12 pt
Formatted: Font: Check spelling and gramm
Formatted: Font: 12 pt
Formatted: Font: Times New Roman, 12 pt
2.1. Khái quát phƣơng pháp nhận dạng biển báo giao thông sử dụng trong đề tài.
Từ ảnh RGB đầu vào ta xác định vùng ảnh chứa biển báo giao thông nguy hiểm
và tách vùng ảnh này ra khỏi ảnh đầu vào. Sau đó trích riêng biển báo và so sánh với
cơ sở dữ liệu mẫu trong bộ phân loại để nhận dạng biển báo giao thông nguy hiểm.
Chi tiết các bước của phương pháp nhận dạng theo quy trình như sau:
Sơ đồ 2. 1. Trình tự các bước trong phương pháp nhận dạng biển báo giao thông nguy
hiểm.
Ảnh RGB đầu
vào
Xác định vùng
đặc trưng chứa
biển giao thông
Tách vùng ảnh
này ra để xử lý
Cân bằng
Histogram vùng
ảnhLoại bỏ
những thông tin
thừa trong ảnh
Trích riêng biển
báo giao thông
khỏi vùng
ảnhChuyển ảnh
biển báo về ảnh
xám
Resize ảnh biển
báo về Size
50x50
Dùng PCA để
giảm bớt số
chiều của ảnh
xám
Dùng SVM để
nhận dạng biển
báo
Cân bằng
Histogram vùng
ảnhLoại bỏ
những thông tin
thừa trong
ảnhCân bằng
histogram ảnh
Formatted: Caption, Left, Space Before: 0 p
After: 0 pt, Line spacing: single
- 20 - Formatted: Font: 12 pt
Formatted: Font: Check spelling and gramm
Formatted: Font: 12 pt
Formatted: Font: Times New Roman, 12 pt
2.2. Xác định vùng đặc trƣng chứa biển báo giao thông
2.2.1, Đặc trƣng Haar-like
Đặ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[16] 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 theo cạnh
Hình 2. 2. Đặc trưng theo đường
Hình 2. 3. Đặc trưng theo xung quanh tâm
Hình 2. 4. Đặc trưng theo đường chéo
- 21 - Formatted: Font: 12 pt
Formatted: Font: Check spelling and gramm
Formatted: Font: 12 pt
Formatted: Font: Times New Roman, 12 pt
Dựa theo các đặc trưng trên, giá trị của đặc trưng Haar-like được xây dựng bởi
độ chênh lệch giữa tổng các pixel của các vùng đen so với tổng các pixel của các vùng
trắng.
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)
(2.1)
Như vậy để tính giá trị đặc trưng Haar-like cần phải thực hiện tính toán tổng các
vùng pixel trên ảnh. Điều này làm cho chi phí bài toán lớn không thể đáp ứng các tính
năng yêu cầu thời gian thực. Do vậy Viola và Jones đã đề xuất ra khái niệm “Integral
Image” (ảnh chia nhỏ) để giảm thiểu chi phí cho bài toán tính giá trị của đặc trưng
Haar-like để bài toán có thể xử lý với thời gian thực.
Tính “Integral Image” bằng cách sử dụng mảng 2 chiều với kích thước bằng
kích thước của ảnh cần tính giá trị đặc trưng Haar-like. Ảnh chia nhỏ ở vị trí (x,y)
được tính bằng tổng các giá trị pixel của vùng từ vị trí (0,0) đến vị trí (x-1, y-1). Việc
tính toán đơn giản là thực hiện phép cộng số nguyên nên tốc độ thực hiện được tối ưu
hóa.
Hình 2. 5. Cách tính Integral Image của ảnh
(2.2)
Kết quả có được sau khi tính Integral Image, việc tính tổng giá trị pixel trong
vùng cần tính thực hiện như sau:
Gọi vùng cần tính tổng các giá trị pixel là vùng “A4”.
P1(x1,y1) = A1; P2(x2,y2) = A1+A2;
P3(x3,y3) = A1+A3; P4(x4,y4) = A1+A2+A3+A4;
A4 = P4 + P1 – P2 –P3; (2.3)
Formatted: Font: Italic
Formatted: Font: Italic
Formatted: Font: Italic
Formatted: Font: Italic
Formatted: Font: Italic
Formatted: Font: Italic
Formatted: Font: Italic
Formatted: Font: Italic
Formatted: Font: Italic
Formatted: Font: Italic
Formatted: Font: Italic
Formatted: Font: Italic
Formatted: Font: Italic
Formatted: Font: Italic
Formatted: Font: Italic
Formatted: Font: Italic
Formatted: Font: Italic
Formatted: Font: Italic
Formatted: Font: Italic
Formatted: Font: Italic
Formatted: Font: Italic
Formatted: Font: Italic
Formatted: Subscript
Formatted: Font: Italic
Formatted: Font: Italic
Formatted: Font: Italic
Formatted: Font: Italic
Formatted: Subscript
Formatted: Font: Italic
Formatted: Subscript
Formatted: Font: Italic
Formatted: Subscript
- 22 - Formatted: Font: 12 pt
Formatted: Font: Check spelling and gramm
Formatted: Font: 12 pt
Formatted: Font: Times New Roman, 12 pt
Hình 2. 6. Cách tính tổng giá trị pixel vùng cần tính.
2.2.2, Thuật toán tăng tốc Adaboost
Thuật toán tăng tốc Adaboost là thuật toán máy học được cải tiến từ thuật toán
Boosting. Với ưu điểm khả năng giải quyết bài toán nhanh chóng, cài đặt đơn giản và
dễ dàng, không có các tham số để điều chỉnh và không cần tri thức về bộ học yếu do
đó thuật toán tăng tốc Adaboost được sử dụng nhiều trong các ứng dụng về nhận
dạng.
2.2.2.1, Tiếp cận Boosting
Boosting là kĩ thuật nâng cao độ chính xác cho các thuật toán máy học. Năm
1989, Schaire đã đưa ra các chứng minh đầu tiên về thuật toán boosting. Và một năm
sau đó Freund đã phát triển thuật toán boosting một cách hiệu quả hơn rất nhiều, mặc
dù vẫn còn nhiều hạn chế trong thực tế và chỉ tối ưu trong một số trường hợp. Các thực
nghiệm đầu tiên với thuật toán boosting được thực hiện bởi Drucker, Schapire và
Simard trong chương trình nhận dạng ký tự quang học (OCR_Optical Character
Recognition). Mãi đến năm 1995 thuật toán AdaBoost mới chính thức được công bố
bởi Freund và Schapire [17].
Nguyên lý cơ bản của thuật toán Boosting là kết hợp các bộ phân loại yếu
(weak classifiers) thành một bộ phân loại mạnh (strong classifier). Trong đó bộ phân
loại yếu là các bộ phát hiện đơ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át hiện đã được “boost”.
Xét một bài toán phát hiện 2 lớp (mẫu cần nhận dạng sẽ được phân vào 1 trong
2 lớp) với D là tập huấn luyện gồm có n mẫu. Trước tiên, chúng ta sẽ chọn ngẫu nhiên
ra n1 mẫu từ tập D (n1<n) để tạo tập D1. Sau đó, chúng ta sẽ xây dựng “weak
classifier” đầu tiên C1 từ tập D1. Tiếp theo, chúng ta xây dựng tập D2 để huấn luyện
bộ phân loại C2. D2 sẽ được xây dựng sao cho một nửa số mẫu của nó được phân loại
- 23 - Formatted: Font: 12 pt
Formatted: Font: Check spelling and gramm
Formatted: Font: 12 pt
Formatted: Font: Times New Roman, 12 pt
đúng bởi C1 và nửa còn lại bị phân loại sai bởi C1. Bằng cách này, D2 chứa đựng
những thông tin bổ sung cho C1. Bây giờ chúng ta sẽ xây huấn luyện C2 từ D2.
Tiếp theo, chúng ta sẽ xây dựng tập D3 từ những mẫu không được phân loại tốt
bởi sự kết hợp giữa C1 và C2: những mẫu còn lại trong D mà C1 và C2 cho kết quả
khác nhau. Như vậy, D3 sẽ gồm những mẫu mà C1 và C2 hoạt động không hiệu quả.
Sau cùng, chúng ta sẽ huấn luyện bộ phân loại C3 từ D3.
Bây giờ chúng ta đã có một “strong classifier”: sự kết hợp C1, C2 và C3. Khi
tiến hành nhận dạng một mẫu X, kết quả sẽ được quyết định bởi sự thỏa thuận của 3
bộ C1, C2 và C3: Nếu cả C1 và C2 đều phân X vào cùng một lớp thì lớp này chính là
kết quả phân loại của X; ngược lại, nếu C1 và C2 phân X vào 2 lớp khác nhau, C3 sẽ
quyết định X thuộc về lớp nào [ 3, Trang 14-15 ].
Hình 2. 7. Boosting[ 3, Trang 16 ].
2.2.2.2, AdaBoost
AdaBoost (Adaptive Boost) là một bộ phân loại phi tuyến mạnh cải tiến từ thuật
toán Boosting, giúp đẩy nhanh việc tạo ra bộ phân loại mạnh (strong classifier) bằng
cách chọn các đặc trưng tốt Haar-Like trong bộ phân loại yếu (weak classifier) và kết
- 24 - Formatted: Font: 12 pt
Formatted: Font: Check spelling and gramm
Formatted: Font: 12 pt
Formatted: Font: Times New Roman, 12 pt
hợp chúng lại tuyến tính để hình thành một bộ phân loại mạnh (strong classifier) bằng
cách sử dụng các trọng số (Weight) để đánh dấu các mẫu khó nhận dạng.
Cho trước một vài thuật toán học yếu, người ta áp dụng kỹ thuật tăng cường để
tạo ra thuật toán học mạnh hơn. Adaboost là thuật toán cho phép ta có thể làm được
điều trên. Gồm có 2 giai đoạn chính như sau: [18]
Giai đoạn 1: Tạo ra các giả định yếu (weak hypotheses) từ các thuật toán học yếu.
Giai đoạn 2: Tạo ra các thuật toán học mạnh từ các giả định yếu.
Với một tập dữ liệu huấn luyện, một giả định yếu được khởi tạo như sau:
Đầu vào(Input): Cho một tập dữ liệu huấn luyện, N cặp (xi, yi), xi là các vector
đặc trưng Haar, yi là giá trị đầu ra mong muốn luôn luôn mang giá trị bằng +1 hoặc -1
(trong đó +1 là đối tượng (object), -1 không phải là đối tượng( background)), và số
lượng vòng lặp là T.
Đầu ra(Output): Tồn tại một hàm có thể được sử dụng để phân lớp các
đặc trưng của vector x.
Nếu thì x được phân lớp là -1.
Nếu thì x được phân lớp là +1.
Khởi tạo(Initialization): Cho trọng số
Lặp(Iterate): tính giả định (hypothesis) , trọng số tốt
(goodness) , và đồng thời cập nhật lại các trọng số theo các bước sau:
Bước 1: Chọn ngẫu nhiên một tập con trong tập dữ liệu huấn luyện. Trong
trường hợp này chính là trọng số .
Bước 2: Tính toán giả định bằng cách sử dụng bộ phân lớp yếu cho
Bước 3: Tính toán sai số của trọng số huấn luyện của .
(2.4)
Bước 3.1: Nếu thì quay lại bước lặp.
- 25 - Formatted: Font: 12 pt
Formatted: Font: Check spelling and gramm
Formatted: Font: 12 pt
Formatted: Font: Times New Roman, 12 pt
Bước 3.2: Nếu thì đây không phải là một phân lớp yếu. Khi đó nên tăng
thêm số lượng mẫu huấn luyện.
Bước 4: Tính toán trọng số tốt của
(2. 5)
Bước 5: Cập nhật lại trọng số
Với
Và :
Trong đó là thừa số chuẩn hóa sao cho
Kết thúc (Termination):
(2. 6)
Tính chất quan trọng nhất của thuật toán Adaboost là có tốt hơn .
Để đánh giả hiệu quả của thuật toán ta định nghịa hàm sai số sau:
Khi đó tổng sai số trên N mẫu là:
(2.7)
2.3. Giới thiệu phƣơng pháp phân tích thành phần chính (Principle Component
Analysis_PCA).
2.3.1, Giới thiệu.
Mục đích của phương pháp PCA là loại bỏ đi một số hướng thành phần trong
không gian dữ liệu, và chỉ giữ lại các thành phần đặc trưng nhất.
- 26 - Formatted: Font: 12 pt
Formatted: Font: Check spelling and gramm
Formatted: Font: 12 pt
Formatted: Font: Times New Roman, 12 pt
PCA giúp làm giảm số chiều của dữ liệu. Hay nói theo cách khác thay vì sử
dụng các trục tọa độ của không gian cũ, PCA xây dựng một không gian mới có số
chiều ít hơn, nhưng lại có thể biểu diễn dữ liệu tốt tương đương không gian cũ, nghĩa
là đảm bảo độ biến thiên (variability) của dữ liệu trên mỗi chiều mới [19].
Hình 2.8 là một ví dụ kinh điển hình ảnh của một con lạc đà. Cùng một con
nhưng với hai góc nhìn khác nhau thì sẽ có được hai thông tin khác nhau.
Hình 2. 8. Phép chiếu lên các trục tọa độ khác nhau có thể cho cách nhìn khác nhau về
cùng một dữ liệu.
Hoặc một ví dụ khác như hình 2.9 với một tập dữ liệu ban đầu (tập điểm màu
xanh) được quan sát trong không gian 3 chiều (trục màu đen), ta dễ dàng nhận thấy 3
trục này không mô tả được dữ liệu một cách tốt nhất. PCA sẽ tìm một hệ trục tọa độ
mới ( là trục màu đỏ), với không gian mới dữ liệu được mô tả rõ ràng hơn (hình bên
phải màu đỏ). Rõ ràng hình bên phải chỉ cần 2 trục tọa độ nhưng cách thể hiện dữ liệu
tốt hơn so với hệ trục ban đầu.
Hình 2. 9. Tìm các trục tọa độ mới sao cho dữ liệu có độ biến thiên cao nhất
- 27 - Formatted: Font: 12 pt
Formatted: Font: Check spelling and gramm
Formatted: Font: 12 pt
Formatted: Font: Times New Roman, 12 pt
2.3.2, Thuật toán PCA
Thuật toán PCA được trình bày lần lượt theo các bước dưới đây[7]:
Bƣớc 1: Chuyển đổi ảnh
Biểu diễn M ảnh trong không gian 2D thành 1D. Tạo vector có kích thước N (số
hàng của ảnh xám x số cột của ảnh xám) như mô tả sau:
(2.8)
Với: ai là giá trị pixel của ảnh
T là chuyển vị của ma trận Si
Kết quả chuyển cho M ảnh đưa vào ma trận như sau:
Mỗi ảnh là một ma trận cột, ghép M ma trận cột ứng với M ảnh thành một ma
trận có kích thước NxM
(2. 9)
Chỉ số đầu là thành phần của vector, chỉ số sau là thứ tự của ảnh.
Bƣớc 2: Tính ảnh trung bình
(2.10)
Chi tiết công thức trên:
(2.11)
Bƣớc 3: Trừ mỗi ảnh cho ảnh trung bình
Nhằm mục đích tạo ra sự co giãn tương đối giá trị pixel của các ảnh.
- 28 - Formatted: Font: 12 pt
Formatted: Font: Check spelling and gramm
Formatted: Font: 12 pt
Formatted: Font: Times New Roman, 12 pt
(2.12)
Xây dựng ma trận từ các vừa tìm được
Đặt: sẽ được ma trận kích thước NxM
Bƣớc 4: Xây dựng ma trận Covariance
Nhằm mục đích thể hiện sự tương quan của từng vector đối với các vector còn lại
trong không gian.
cov = AxAT
(2.13)
Tính trị riêng (eigenvalue: ) và vector riêng (eigenvector: ) của ma trận
Covariance này. Đó chính là thành phần đặc trưng thành phần thiết yếu của ảnh.
Trong thực tế, giả sử tồn tại một ảnh có kích thước 200x230 (độ rộng và độ cao
của ảnh) thì khi đó kích thước của ma trận cov là 46000x46000 (N2
). Kích thước quá
lớn do đó không thể tính trực tiếp trị riêng và vector riêng theo cách này. Vì vậy áp
dụng lý thuyết đại số tuyến tính: , có thể tính bằng cách giải quyết trị riêng, vector
riêng của ma trận AT
A (kích thước MxM nhỏ hơn nhiều so với NxN).
Đặt và là các trị riêng và vector riêng của ma trận AT
A. Kết quả như sau:
(2.14)
Nhân mỗi vế của (2.14) cho A sẽ được:
với X= (2.15)
Điều này cho thấy: M vector riêng của và M trị riêng của đầu tiên tương ứng
chính là tích ( A với vector riêng của ) và .
Các vector riêng là không gian đặc trưng của các biển báo trong cơ sở dữ liệu
ảnh ban đầu. Các vector riêng được sắp xếp theo thứ tự từ cao đến thấp theo trị riêng
tương ứng. Vector riêng có trị riêng càng cao sẽ mang nhiều đặc trưng thiết yếu nhất
- 29 - Formatted: Font: 12 pt
Formatted: Font: Check spelling and gramm
Formatted: Font: 12 pt
Formatted: Font: Times New Roman, 12 pt
trong không gian các biển báo. Ở đây chỉ với M hướng đặc trưng mang giá trị riêng
lớn nhất trong không gian NxN không gian đặc trưng.
Bƣớc 5: Phép chiếu
Chiếu lần lượt các ảnh trong cơ sở dữ liệu đến không gian đặc trưng M, để sinh
ra các biển báo đặc trưng trong không gian mới này.
(2.16)
Với
Với là các ma trận đặc trưng các biển báo đã rút
trích ra được (gọi là các eigensignal).
là vector ảnh thứ i trừ đi ảnh trung bình.
Bƣớc 6: Ảnh cần nhận dạng
Chuyển đổi ảnh cần nhận dạng thành vector 1 chiều:
(2.17)
Tính sự sai số của ảnh cần nhận dạng với ảnh trung bình của các ảnh trong cơ
sở dữ liệu.
Được vector sai số sau:
(2.18)
Chiếu sai số này lên không gian đặc trưng của các biển báo.
(2.19)
Bƣớc 7: Nhận dạng biển báo
- 30 - Formatted: Font: 12 pt
Formatted: Font: Check spelling and gramm
Formatted: Font: 12 pt
Formatted: Font: Times New Roman, 12 pt
Như vậy dựng đặc trưng của ảnh cần nhận dạng và đặc trưng các biển báo
trong cơ sở dữ liệu đã được xây dựng.
Phân loại biển báo các đơn giản nhất là dùng khoảng cách Euclide.
(2.20)
2.4. Nhận dạng biển báo dùng bộ phân lớp Support Vector Machine (SVM)
Support Vector Machine (SVM) là phương pháp phân lớp dựa trên lý thuyết
thống kê của Vapnik và Alexei Chervonenkis xây dựng vào năm 1960 [7]. Và được sử
dụng nhiều trong các ứng dụng nhận dạng chữ viết tay, nhận dạng khuôn mặt, phân
loại tài liệu, tin sinh học…So với các phương pháp phân loại khác, khả năng phân loại
của SVM là tương đương hoặc tốt hơn đáng kể [7]. Trong luận văn, nhóm nghiên cứu
đã biểu diễn biển báo giao thông nguy hiểm dưới dạng vector và áp dụng phương pháp
phân loại SVM để phân loại các biển báo giao thông nguy hiểm.
2.4.1, Phân lớp tuyến tính (Linear classifier)
Ý tưởng của thuật toán SVM là xây dựng một mô hình để phân loại một đối
tượng có thuộc hay không thuộc vào nhóm đối tượng cần quan tâm. Thuật toán SVM
sẽ biểu diễn các điểm trong không gian và xác định ranh giới giữa hai nhóm đối tượng
sao cho khoảng cách giữa tập dữ liệu được huấn luyện tới ranh giới là xa nhất có thể.
Tiến hành xét một bài toán đơn giản là tách hai lớp với tập dữ liệu mẫu đã được
huấn luyện. Và sau đó ta có thể mở rộng phương pháp cho nhiều trường hợp tổng quát
mà dữ liệu thậm chí không thể tách được phân lớp.
Với xi, i = 1, 2 ,.., N là tập các vector đặc trưng của bộ huấn luyện X. Và nó sẽ
thuộc về một trong hai lớp w1,w2 và được giả sử rằng tập dữ liệu sẽ được phân lớp
tuyến tính. Với mục tiêu là sẽ xây dựng mặt siêu phẳng(hyperplane) để tách chính xác
các phân lớp mẫu được huấn luyện được cho bởi phương trình sau:
g(x) = wT
x + w0 =0 (2.21)
Trong đó w là vector trọng số, w0 là độ dịch.
Với phương trình (2.21) ta sẽ xác định được mặt siêu phẳng theo như mô tả trong
hình 2.10. Trong trường hợp này mặt siêu phẳng là đường thẳng đậm đen liền nét tách
- 31 - Formatted: Font: 12 pt
Formatted: Font: Check spelling and gramm
Formatted: Font: 12 pt
Formatted: Font: Times New Roman, 12 pt
hai phân lớp tuyến tính. Mặt siêu phẳng giúp dễ dàng tách được hai phân lớp w1,w2.
Tuy nhiên trong thực tế mặt siêu phẳng sẽ có nhiều hơn một như trong hình 2.11, ở
đây ta có thể dựng được hai mặt siêu phẳng được đánh dấu lần lượt là h1 và h2. Vấn
đề cần giải quyết được đặt ra là sẽ chọn mặt siêu phẳng nào để dùng làm ranh giới tách
hai phân lớp dữ liệu.
Hình 2. 10. Tách hai phân lớp tuyến tính với một mặt siêu phẳng.
Hình 2. 11. Tách hai phân lớp tuyến tính với hai mặt siêu phẳng
Trong trường hợp hình 2.11 thuật toán SVM sẽ xác định mặt siêu phẳng dùng
để tách phân lớp dựa theo khoảng cách cực đại giữa hai mẫu dữ liệu đã được huấn
luyện. Theo hình 2.11 có thể dễ dàng thấy được khoảng cách z2 > z1 do đó mặt siêu
phẳng h2 sẽ được SVM chọn dùng làm ranh giới để tách hai bộ phân lớp. Và khoảng
cách cực đại này còn được gọi là lề(margin), mặt siêu phẳng này còn được gọi là mặt
siêu phẳng lề tối đa.
- 32 - Formatted: Font: 12 pt
Formatted: Font: Check spelling and gramm
Formatted: Font: 12 pt
Formatted: Font: Times New Roman, 12 pt
Độ lớn của lề (margin) được cho như sau:
(2.22)
Từ phương trình (2.21) khi thay đổi w và w0 hướng và khoảng cách từ gốc tọa
độ tới mặt siêu phẳng. Bộ phân loại SVM được định nghĩa như sau:
f(x) = sign(wT
x + w0 ) (2.23)
Nếu f(x) = +1 thì x thuộc về phân lớp đang cần quan tâm, và ngược lại nếu f(x)
= -1 thì x thuộc về lớp khác.
Phương pháp máy học SVM là tập các mặt siêu phẳng phụ thuộc vào các tham
số w và w0. Mục tiêu của phương pháp SVM là ước lượng hai giá trị này để có thể cực
đại hóa lề(margin). Với giá trị của lề càng lớn thì mặt siêu phẳng phân lớp càng tốt.
Theo hình 2.12 thấy được với độ lớn của lề nhỏ hơn thì khả năng cho kết quả sai sẽ
cao hơn.
Hình 2. 12. Ví dụ minh họa về độ lớn của lề (margin)
Nếu tập dữ liệu huấn luyện là khả tách tuyến tính ta có các ràng buộc sau:
wT
xi + w0 ≥ +1 nếu yi = +1 (2. 24)
wT
xi + w0 ≤ -1 nếu yi = -1 (2.25)
Hai mặt siêu phẳng có phương trình wT
xi + w0 = ± 1 được gọi là mặt siêu phẳng
hỗ trợ. Theo hình 2.11 thì mặt siêu phẳng hỗ trợ chính là những đường thẳng nằm song
song với mặt siêu phẳng h1, h2.
- 33 - Formatted: Font: 12 pt
Formatted: Font: Check spelling and gramm
Formatted: Font: 12 pt
Formatted: Font: Times New Roman, 12 pt
Phương pháp có thể tìm được giá trị w và w0 để xây dựng được mặt siêu phẳng
lề tối ưu là phải giải bài toán tối ưu toàn phương (Quadratic Programming).
Cực đại hóa:
(2. 26)
Với các ràng buộc sau:
(2. 27)
(2.28)
Trong đó các hệ số Lagrange là các biến số cần phải tối ưu
hóa.
Vector w sẽ được tính từ các nghiệm của bài toán toàn phương như sau:
(2.29)
Để xác định độ dịch w0, ta chọn xi sao cho , sau đó sử dụng điều kiện
Karush-Kuhn-Tucker (KKT) như sau:
(2.30)
Với là những mẫu nằm gần mặt siêu phẳng nhất và được gọi là các
vector hỗ trợ (Support Vector). Theo hình 2.13 những mẫu được gọi là Support Vector
là các mẫu xanh hoặc đỏ được khoanh tròn và nằm trên mặt siêu phẳng hỗ trợ (do dấu
của bất đẳng thức bằng +1 nếu đây là mẫu cần quan tâm và bằng -1 với các mẫu còn
lại).
- 34 - Formatted: Font: 12 pt
Formatted: Font: Check spelling and gramm
Formatted: Font: 12 pt
Formatted: Font: Times New Roman, 12 pt
Hình 2. 13. Minh họa các mẫu được gọi là Support Vector.
2.4.2, Phân lớp phi tuyến (Nonlinear classifier)
Thực tế trong trường hợp tổng quát, mặt phân hoạch có thể là một mặt phi
tuyến bất kì (Hình 2.14). Và ta chỉ cần ánh xạ vector dữ liệu vào không gian đặc trưng
có số chiều cao hơn nhiều.
Ví dụ theo hình 2.14 giả sử các mẫu xi thuộc không gian Rn
, không gian này
được gọi là không gian giả thiết (hypothesis space). Để tìm mặt phi tuyến trong không
gian này, ta ánh xạ các vector mẫu xi từ Rn
vào một không gian Rd
có số chiều lớn hơn
(d > n, d có thể bằng ∞). Rd
được gọi là không gia đặc trưng (feature space). Sau đó
áp dụng phương pháp SVM tuyến tính để tìm ra một siêu phẳng phân hoạch trong
không gian đặc trưng Rd
. Siêu phẳng này sẽ là ứng với mặt phi tuyến trong không gian
Rd
.[ 6 ]
Hình 2. 14. Một mặt phân chia phi tuyến có thể trở thành một siêu phẳng trong không
gian lớn hơn
- 35 - Formatted: Font: 12 pt
Formatted: Font: Check spelling and gramm
Formatted: Font: 12 pt
Formatted: Font: Times New Roman, 12 pt
Trong không gian đặc trưng (feature space) này, các điểm dữ liệu trở thành khả
tách tuyến tính, hoặc có thể phân tích với ít lỗi hơn so với trường hợp sử dụng không
gian ban đầu. Khi đó, bài toán quy hoạch toàn phương ban đầu trở thành như sau:
Cực đại hóa:
(2.31)
với các ràng buộc sau:
(2.32)
(2.33)
Trong đó k là một hàm nhân (kernel function) thỏa mãn:
(2.34)
Với việc sử dùng hàm nhân (kernel function), thì ta không cần quan tâm về ánh
xạ . Bằng cách chọn một hàm nhân phù hợp, ta sẽ xây dựng được nhiều bộ phân loại
khác nhau. Ví dụ, chọn nhân đa thức dẫn đến bộ phân loại đa
thức, nhân Gaussian dẫn đến bộ phân loại RBF
(Radial Basis Functions)[1].
2.5. Tiểu kết
Chương này nhóm nghiên cứu trình bày phương pháp tổng quát được sử dụng
trong đề tài. Nhóm cũng nêu ra những cơ sở lý thuyết về thuật toán trích xuất đặc
trưng Haar-like, bộ tăng tốc Adadboost, phương pháp rút đặc trưng Principle
Components Analysis, phương pháp nhận dạng biển báo giao thông dùng thuật toán
Support Vector Machine.
- 36 - Formatted: Font: 12 pt
Formatted: Font: Check spelling and gramm
Formatted: Font: 12 pt
Formatted: Font: Times New Roman, 12 pt
CHƢƠNG 3: THIẾT KẾ VÀ XÂY DỰNG CHƢƠNG TRÌNH
3.1 Chức năng của chƣơng trình.
3.2 Xây dựng chƣơng trình.
3.3 Tiểu kết
Nội dung chính
- 37 - Formatted: Font: 12 pt
Formatted: Font: Check spelling and gramm
Formatted: Font: 12 pt
Formatted: Font: Times New Roman, 12 pt
3.1. Chức năng của chƣơng trình
Chương trình được viết bằng ngôn ngữ lập trình C++ trong bộ phần mềm
Visual Studio 2010 của Microsoft, cùng với sự hỗ trợ của bộ thư viện xử lý ảnh
OpenCV của Intel.
 Chương trình được xây dựng với 3 chức năng chính:
o Phát hiện và nhận dạng biển báo qua ảnh tĩnh.
o Phát hiện và nhận dạng biển báo qua video clip quay sẵn với định
dạng AVI.
o Phát hiện và nhận dạng biển báo qua camera gắn trực tiếp với hệ
thống.
 Ngoài ra còn có một số chức năng phụ như:
o Tạo bộ cơ sở dữ liệu cho quá trình học nhận dạng.
o Huấn luyện nhận dạng biển báo cho chương trình.
3.2. Xây dựng chƣơng trình
3.2.1, Xây dựng cơ sở dữ liệu ảnh biển báo
Ả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:
o Ảnh Positive: là những ảnh có chứa đối tượng cần được phát hiện, cụ thể
là ảnh có chứa biển báo.
o Ảnh Negative: là ảnh không chứa đối tượng biển báo.
3.2.1.1, Nguồn ảnh
Quá trình thu thập ảnh cho mục đích huấn luyện, nhóm đồng thời sử dụng nhiều
phương pháp khác nhau để có được bộ dữ liệu ảnh.
Các nguồn ảnh được nhóm sử dụng:
o Google image.
o Ảnh trích xuất từ video clip tự quay hoặc sưu tầm từ YouTube.
o Ảnh tự chụp từ thực tế.
Quá trình huấn luyện của máy học đòi hỏi hàng ngàn tấm ảnh ở những điều
kiện ánh sáng, tương phản khác nhau, để tạo được bộ ảnh như vậy tốn khá nhiều thời
- 38 - Formatted: Font: 12 pt
Formatted: Font: Check spelling and gramm
Formatted: Font: 12 pt
Formatted: Font: Times New Roman, 12 pt
gian nên nhóm đưa ra ý tưởng quay các đoạn video của biển báo sau đó viết một
chương trình nhỏ để tách thành các frame ảnh từ đó khiến cho việc sưu tập bộ dữ liệu
được nhanh chóng hơn và đặc biệt là có được những tấm ảnh với những đặc trưng đa
dạng.
Từ những phương pháp trên nhóm xây dựng được bộ dữ liệu ảnh gồm 1848 ảnh
Positive và 2805 ảnh Negative dùng cho việc huấn luyện máy học. Các ảnh được lưu
trữ ở định dạng BMP.
3.2.1.2, Phân loại ảnh
Theo thông tư số 22TCN 237-01 biển báo nguy hiểm gồm 46 kiểu được đánh
số từ 201 đến 246. Dựa theo tình hình khảo sát thực tế [Phụ lục 1] tại thành phố Biên
Hòa, nhóm đã phân loại ra các loại biển báo nguy hiểm phổ biến để tiến hành nghiên
cứu như theo bảng 3.1.
Bảng 3.1. Một số biển báo giao thông đƣợc bộ đƣợc nhóm nghiên cứu.
Bảng 3. 1. Một số biển báo giao thông được bộ được nhóm nghiên cứu.
Biển Báo Ý Nghĩa
- Biển báo số 201a “Chỗ ngoặt nguy hiểm vòng bên trái”.
- Biển báo số 201b “Chỗ ngoặt nguy hiểm vòng bên phải”.
- Biển báo số 202 “Nhiều chỗ ngoặt nguy hiểm liên tiếp”.
- Biển báo 205e “Đường giao nhau”.
- Biển báo 207a “Giao nhau với đường không ưu tiên”.
- Biển báo 207b “Giao nhau với đường không ưu tiên”.
- Biển báo 207c “Giao nhau với đường không ưu tiên”.
- Biển báo 209 “Giao nhau có tín hiệu đèn”.
- Biển báo 210 “Giao nhau với đường sắt có rào chắn”.
Formatted: Font: Bold
Formatted: Centered
Formatted: Font: Bold
- 39 - Formatted: Font: 12 pt
Formatted: Font: Check spelling and gramm
Formatted: Font: 12 pt
Formatted: Font: Times New Roman, 12 pt- Biển báo 225 “Trẻ em”.
3.2.2, Huấn luyện phát hiện biển báo trong ảnh
Để thực hiện quá trình huấn luyện phát hiện các biển báo nguy hiểm trong ảnh,
nhóm sử dụng bộ công cụ HaarKit. Bộ công cụ HaarKit bao gồm các chương trình hỗ
trợ cho việc huấn luyện máy học.
Quá trình huấn luyện trải qua 3 bước:
- Chuẩn bị dữ liệu ảnh huấn luyện.
- Lấy mẫu đối tượng từ bộ dữ liệu.
- Huấn luyện máy học.
3.2.2.1, Chuẩn bị dữ liệu
Tập ảnh Positive có chứa đối tượng biển báo được đặt tên theo thứ tự và chép
vào trong thư mục “rawdata” có đường dẫn “haarkittemppositiverawdata”.
Hình 3. 1. Tập ảnh Positive trong thư mục “rawdata”
Tập ảnh Negative không chứa đối tượng biển báo được đặt tên theo thứ tự và
chép vào trong thư mục “negative” có đường dẫn “haarkittempnegative”.
- 40 - Formatted: Font: 12 pt
Formatted: Font: Check spelling and gramm
Formatted: Font: 12 pt
Formatted: Font: Times New Roman, 12 pt
Hình 3. 2. Tập ảnh Negative trong thư mục “negative”
Chạy file “create_list.bat” trong thư mục “negative” để tạo ra file “inforfile.txt”
chứa tên tất cả các file ảnh Negative mỗi tên trên một dòng.
Hình 3. 3. Nội dung file “inforfile.txt” sau khi chạy file “create_list.bat”
3.2.2.2, Lấy mẫu dữ liệu huấn luyện
Sử dụng chương trình ObjectMaker trong thư mục “positive” để đánh dấu vùng
chứa đặc trưng của đối tượng biển báo.
- 41 - Formatted: Font: 12 pt
Formatted: Font: Check spelling and gramm
Formatted: Font: 12 pt
Formatted: Font: Times New Roman, 12 pt
Hình 3. 4. Chương trình ObjectMaker trong thư mục “positive”.
Trình ObjectMaker lần lượt duyệt qua từng ảnh trong thư mục “rawdata” hiện
lên màn hình để đánh dấu đối tượng.
Hình 3. 5. Đánh dấu đối tượng trong trình ObjectMaker
Sau khi đã hoàn thành đánh dấu đối tượng, trình ObjectMaker tạo ra file
“info.txt” chứa thông tin đối tượng biển báo trong ảnh.
- 42 - Formatted: Font: 12 pt
Formatted: Font: Check spelling and gramm
Formatted: Font: 12 pt
Formatted: Font: Times New Roman, 12 pt
Hình 3. 6. Nội dung file “info.txt”.
Cấu trúc file “info.txt” :
o Cột đầu tiên là tên ảnh.
o Cột thứ hai là số lượng đối tượng trong ảnh.
o Cột thứ ba và tư là tọa độ đỉnh trên bên trái của đối tượng trong ảnh.
o Cột thứ năm là độ rộng của đối tượng.
o Cột thứ sáu là độ cao của đối tượng.
3.2.2.3, Huấn luyện máy học (Machine Learning)
Quá trình này gồm 2 bước :
Bƣớc 1 : Tạo ra file vector đưa vào huấn luyện ở bước 2.
Ở bước này nhóm sử dụng trình “createsamples.exe” của bộ HaarKit tạo ra file
“vector.vec” từ các pixel của ảnh.
Để gọi trình “createsamples.exe” nhóm sử dụng file “samples_creation.bat”
được cung cấp kèm theo bộ HaarKit với những tham số phù hợp.
Hình 3. 7. Nội dung file “samples_creation.bat”
- 43 - Formatted: Font: 12 pt
Formatted: Font: Check spelling and gramm
Formatted: Font: 12 pt
Formatted: Font: Times New Roman, 12 pt
Giải thích ý nghĩa tham số được nhóm sử dụng:
o “-info positive/info.txt” chỉ đến file “info.txt” là file chứa thông tin về tọa
độ đối tượng đã được tạo ở trên.
o “-vec data/vector.vec” đường dẫn để lưu file “vector.vec” ở trong thư
mục “data”.
o “-num 1848” là số lượng ảnh Positive có chứa đối tượng.
o “-w 24 -h 24” là kích thước của mẫu.
Vì quá trình huấn luyện đòi hỏi các mẫu cần có kích thước giống nhau cụ thể ở
đây nhóm sử dụng là 24x24 nên ảnh gốc sẽ được thay đổi kích thước và đóng gói
thành file vec. Giá trị kích thước này có thể là bất kì phụ thuộc vào tỉ lệ của đối tượng
cần phát hiện nhưng đối tượng có kích thước nhỏ hơn sẽ không được phát hiện. Về cơ
bản thì file vec này được sử dụng để tăng tốc quá trình máy học. Sau bước này nhóm
có được file “vector.vec”.
Bƣớc 2: Học huấn luyện với HaarTraining
Ở bước này nhóm tiếp tục sử dụng các chương trình trong bộ HaarKit để tạo ra
file “xml” gồm dữ liệu các đặc trưng của đối tượng dùng trong chương trình nhận dạng
sau này. Đầu tiên nhóm sử dụng trình “haartraining.exe” để tạo ra các phân tầng. Để
gọi trình “haartraining.exe” nhóm cũng sử dụng file “haarTraining.bat” được cung cấp
kèm theo với những thay đổi tham số phù hợp.
Hình 3. 8. Nội dung file “haarTraining.bat”
Ý nghĩa các tham số:
o “-data data/cascade” đường dẫn đến thư mục lưu trữ các phân tầng.
o “-vec data/vector.vec” đường dẫn đến file “vector.vec” đã tạo ở bước 1.
o “-bg negative/infofile.txt” đường dẫn đến file bao gồm các mẫu ảnh
Negative.
o “-npos 1848” là số lượng ảnh Positive.
o “-nneg 2805” là số lượng ảnh Negative.
- 44 - Formatted: Font: 12 pt
Formatted: Font: Check spelling and gramm
Formatted: Font: 12 pt
Formatted: Font: Times New Roman, 12 pt
o “-nstages 25” là số giai đoạn phân tầng.
o “-mem 1000” là dung lượng bộ nhớ mà chương trình có thể dùng trong
quá trình huấn luyện tính bằng MB.
o “-mode ALL” giá trị mặc định.
o “-w 24 –h 24” là kích thước của mẫu, giá trị này trùng với giá trị được sử
dụng khi tạo file “vector.vec”.
o “-nonsym” khai báo mẫu không đối xứng.
Quá trình huấn luyện này, với cấu hình máy tính được nhóm sử dụng là:
o CPU Core 2 Duo E7400 2.8GHz.
o Ram 2 GB.
Thì thời gian huấn luyện là xấp xỉ 340 giờ liên tục.
Sau khi giai đoạn này hoàn tất nhóm có được các phân lớp đặc trưng của đối
tượng.
Hình 3. 9. Kết quả phân tầng
Để có thể xử dụng được trong chương trình, nhóm tiếp tục sử dụng trình
“haarconv.exe” để tạo ra file xml chứa dữ liệu đã học được.
Tương tự như các bước trước, để dễ dàng thực hiện lệnh nhóm sử dụng file
“convert.bat” với những tham số thay đổi phù hợp.
- 45 - Formatted: Font: 12 pt
Formatted: Font: Check spelling and gramm
Formatted: Font: 12 pt
Formatted: Font: Times New Roman, 12 pt
Hình 3. 10. Nội dung file “convert.bat”
Ý nghĩa các tham số:
o “data” là thư mục chứa các phân lớp vừa tạo được ở bước trên được đánh số từ 0
đến n.
o “output.xml” là tên file xml được tạo ra.
o “24 24” là kích thước của mẫu.
Chạy trình “haarconv.exe” với các tham số như trên nhóm thu được file xml cần thiết.
Hình 3. 11. Cấu trúc của một tập tin XML
- 46 - Formatted: Font: 12 pt
Formatted: Font: Check spelling and gramm
Formatted: Font: 12 pt
Formatted: Font: Times New Roman, 12 pt
Hình 3. 12. Kết quả ảnh biển số 201a nhận được.
Hình 3. 13
Hình 3. 14. Kết quả ảnh biển số 210 nhận được.
Quá trình huấn luyện phát hiện biển báo được thể hiện trong sơ đồ 3.1 như sau: Formatted: Font: Not Bold
Formatted: Font: Not Bold
- 47 - Formatted: Font: 12 pt
Formatted: Font: Check spelling and gramm
Formatted: Font: 12 pt
Formatted: Font: Times New Roman, 12 pt
Sơ đồ 3. 1. Sơ đồ huấn luyện phát hiện biển báo trong ảnh.
3.2.3, Huấn luyện nhận dạng biển báo
Quá trình huấn luyện nhận dạng biển báo sử dụng 2 thuật toán PCA và SVM.
Bộ ảnh dùng cho huấn luyện nhận dạng được nhóm tận dụng lại một phần ảnh đã sử
dụng cho bước huấn luyện phát hiện biển báo ở trên đồng thời bổ sung thêm một số
ảnh cho đa dạng. Ảnh dùng trong quá trình này cần có độ đa dạng về điều kiện môi
trường, góc chụp, ánh sáng khác nhau nhằm giúp cho việc nhận dạng sau này được tốt
hơn.
File
“TrafficSignThaiTam.xml”
File
“vector.vec”
Trình “CreateSample.exe”
với tham số file “info.txt”
File “info.txt”
Ảnh Positive trong thư mục
“haarkittemppositiverawdata”
Trình
“ObjectMaker” lấy
mẫu đối tượng
Ảnh Negative trong thư mục
“haarkittempnegative”
File “inforfile.txt” chứa tên tất
cả các file ảnh Negative
Trình “haartraining.exe”
với tham số file
“vector.vec”
Các phân lớp
đặc trưng
Trình
“haarconv.exe”
Formatted: Normal, Centered, Space Before:
pt, After: 0 pt, Add space between paragraph
of the same style, Line spacing: single
Formatted: Font: Bold
Formatted: Centered
Formatted: Centered
Formatted: Centered
Formatted: Centered
Formatted: Centered
Formatted: Centered
Formatted: Centered
Formatted: Centered
Formatted: Centered
Formatted: Centered
Formatted: Centered
- 48 - Formatted: Font: 12 pt
Formatted: Font: Check spelling and gramm
Formatted: Font: 12 pt
Formatted: Font: Times New Roman, 12 pt
Bộ ảnh huấn luyện nhận dạng gồm 500 ả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ự.
Hình 3. 15. Một số mẫu huấn luyện nhận dạng.
Bước đầu là chuẩn bị cho dữ liệu học, nhóm sử dụng hàm TaoCSDLHoc nhằm
lấy được biển báo ra khỏi ảnh, loại bỏ những thông tin thừa, đưa ảnh về kích thước
50x50 pixels và chuyển sang ảnh xám.
Tiếp theo sử dụng hàm HuanLuyenNhanDang để tạo ra các tập tin dữ liệu cần
thiết cho việc nhận dạng.
- 49 - Formatted: Font: 12 pt
Formatted: Font: Check spelling and gramm
Formatted: Font: 12 pt
Formatted: Font: Times New Roman, 12 pt
Bƣớc 1: Hàm tạo ra ma trận gamma gồm K dòng và M cột với K = 50x50 và M là
tổng số lượng biển báo huấn luyện. Ma trận “gamma” chứa thông tin của tất cả các
biển báo huấn luyện, mỗi biển báo là một cột.
Bƣớc 2: Tính giá trị trung bình lưu vào ma trận “psi” gồm K dòng và 1 cột.
Bƣớc 3: Lấy ảnh trong ma trận “gamma” trừ đi ảnh trung bình trong ma trận “psi”.
Bƣớc 4: Nhân ma trận “gamma” với ma trận chuyển vị của nó tạo thành ma trận “L”
gồm M dòng M cột.
Bƣớc 5: Sử dụng hàm cvEigenVV(L,evects,evals) của bộ thư viện OpenCV để tính
giá trị riêng lưu vào ma trận “evals” và vector riêng lưu vào ma trận “evects”.
Bƣớc 6: Xây dựng ma trận covariance “eigenTT” gồm K dòng, M1 cột, với M1 =
M/2.
Bƣớc 7: Tạo ma trận “omega” gồm M dòng, M1 cột dùng làm dữ liệu cho huấn luyện
SVM.
Bƣớc 8: Sử dụng hàm KhoiTaoSVMOpenCV(CvSVM* svm, CvMat* trainData) để
tạo file huấn luyện SVM.
Bƣớc 9: Ghi dữ liệu đã học ra file để sử dụng lại trong chương trình.
Sau khi hoàn thành giai đoạn huấn luyện nhận dạng, nhóm thu được các tập tin
dữ liệu cần thiết để có thể lập trình chương trình nhận dạng biển báo. Các tập tin được
tạo ra bao gồm “eigenTT.txt”, “psiTT.txt”, “svmtrained.xml”.
Hình 3. 16. Một phần nội dung file “eigenTT.txt”.
- 50 - Formatted: Font: 12 pt
Formatted: Font: Check spelling and gramm
Formatted: Font: 12 pt
Formatted: Font: Times New Roman, 12 pt
Hình 3. 17. Một phần nội dung file “psiTT.txt”.
Hình 3. 18. Một phần nội dung file “svmtrained.xml”
- 51 - Formatted: Font: 12 pt
Formatted: Font: Check spelling and gramm
Formatted: Font: 12 pt
Formatted: Font: Times New Roman, 12 pt
Quá trình huấn luyện nhận dạng biển báo được thể hiện trong sơ đồ 3.2 như sau:
Lấy ảnh trong “gamma”
trừ đi ảnh trung bình
Xây dựng ma trận
covariance “eigenTT”
Tạo ma trận “omega”
làm tham số cho SVM
Hàm
“KhoiTaoSVMOpenCV”
Hàm
“HuanLuyenNhanDang”
Chuyển các ảnh xám thành
ma trận vector “gamma”
Tính ảnh trung bình
“psi”
Dữ liệu huấn
luyện
Hàm
“TaoCSDL”
Ảnh xám, 50x50, bỏ
thông tin thừa
File “eigenTT.txt” File “psiTT.txt”
File
“svmtrained.xml”
Formatted: Vietnamese
- 52 - Formatted: Font: 12 pt
Formatted: Font: Check spelling and gramm
Formatted: Font: 12 pt
Formatted: Font: Times New Roman, 12 pt
Sơ đồ 3. 2. Sơ đồ huấn luyện nhận dạng biển báo
3.2.4, Chƣơng trình nhận dạng.
3.2.4.1, Sơ đồ hoạt động của chƣơng trình
Lấy ảnh trong “gamma”
trừ đi ảnh trung bình
Xây dựng ma trận
covariance “eigenTT”
Tạo ma trận “omega” làm
tham số cho SVM
Hàm “KhoiTaoSVMOpenCV”
Hàm
“HuanLuyenNhanDang”
Chuyển các ảnh xám thành ma
trận vector “gamma”
Tính ảnh trung bình “psi”
Dữ liệu huấn
luyện
Hàm
“TaoCSDL”
Ảnh xám, 50x50, bỏ
thông tin thừa
File “eigenTT.txt” File “psiTT.txt”
File
“svmtrained.xml”
- 53 - Formatted: Font: 12 pt
Formatted: Font: Check spelling and gramm
Formatted: Font: 12 pt
Formatted: Font: Times New Roman, 12 pt
Sơ đồ 3. 3. Sơ đồ hoạt động chương trình.
Bắt đầu
Load các dữ liệu
cần thiết
Nhập ảnh đầu
vào
Có biển báo
K
N
CY
Tách biển báo và
chuyển thành ảnh xám
Xử lý nhận dạng
Hiển thị kết quả
Kết thúc
Formatted: Centered
Formatted: Centered
Formatted: Centered
Formatted: Centered
Formatted: Centered
Formatted: Centered
Formatted: Centered
Formatted: Centered
- 54 - Formatted: Font: 12 pt
Formatted: Font: Check spelling and gramm
Formatted: Font: 12 pt
Formatted: Font: Times New Roman, 12 pt
3.2.4.2, Giao diện và cách sử dụng
 Giao diện chính của chương trình có 7 nút chức năng
Hình 3. 19.Giao diện chính của chương trình
 Nút Start : dùng khởi động chương trình và tải các dữ liệu cần thiết.
 Nút Detect from IMAGE: sử dụng khi muốn nhận dạng trên ảnh tĩnh.
 Nút Detect from AVI: sử dụng khi muốn nhận dạng trên video định dạng
AVI.
 Nút Detect from CAM: sử dụng khi lắp đặt chương trình với camera bên
ngoài.
 Nút Help: Giới thiệu và hướng dẫn sử dụng.
 Nút Power: Đóng chương trình.
 Nút Learn: Gồm 2 chức năng là tạo cơ sở dữ liệu cho việc học nhận dạng và
huấn luyện nhận dạng bằng PCA và SVM.
 Sử dụng chương trình:
 Khởi động chương trình bằng cách chạy file “NCKHThaiTam.exe”.
 Bấm nút Start để tải các dữ liệu cần thiết cho chương trình hoạt động.
 Lựa chọn hình thức muốn dùng:
o Detect from IMAGE: chọn một ảnh tĩnh có chứa biển báo cần nhận
dạng.
- 55 - Formatted: Font: 12 pt
Formatted: Font: Check spelling and gramm
Formatted: Font: 12 pt
Formatted: Font: Times New Roman, 12 pt
Hình 3.19. Giao diện chọn ảnh.
o Detect from AVI: chọn một file video định dạng AVI.
Hình 3.20. Giao diện chọn video clip.
- 56 - Formatted: Font: 12 pt
Formatted: Font: Check spelling and gramm
Formatted: Font: 12 pt
Formatted: Font: Times New Roman, 12 pt
o Detect from CAM: chương trình sẽ tự động dò tìm và sử dụng camera
tích hợp.
3.3. Tiểu kết
Chương này nhóm trình bày chi tiết về quy trình xây dựng và cách sử dụng
toolkit hỗ trợ cho chương trình phát hiện và nhận dạng biển báo giao thông của nhóm.
- 57 - Formatted: Font: 12 pt
Formatted: Font: Check spelling and gramm
Formatted: Font: 12 pt
Formatted: Font: Times New Roman, 12 pt
CHƢƠNG 4: ĐÁNH GIÁ KẾT QUẢ CHƢƠNG TRÌNH
4.1Đánh giá kết quả.
4.2Ƣu và nhƣợc điểm của chƣơng trình.
4.3 Tiểu kết.
Nội dung chính
Luan van
Luan van
Luan van
Luan van
Luan van
Luan van
Luan van
Luan van
Luan van
Luan van
Luan van
Luan van
Luan van
Luan van
Luan van
Luan van
Luan van
Luan van
Luan van
Luan van
Luan van
Luan van
Luan van
Luan van
Luan van
Luan van
Luan van

More Related Content

What's hot

Bài giảng an toàn ứng dụng web và csdl PTIT
Bài giảng an toàn ứng dụng web và csdl PTITBài giảng an toàn ứng dụng web và csdl PTIT
Bài giảng an toàn ứng dụng web và csdl PTITNguynMinh294
 
4 - Phan lop du lieu-Final.pptx
4 - Phan lop du lieu-Final.pptx4 - Phan lop du lieu-Final.pptx
4 - Phan lop du lieu-Final.pptxMUyn25
 
Báo cáo quản lý cửa hàng máy tính
Báo cáo quản lý cửa hàng máy tínhBáo cáo quản lý cửa hàng máy tính
Báo cáo quản lý cửa hàng máy tínhthuvienso
 
Báo cáo đồ án môn công nghệ phần mềm
Báo cáo đồ án môn công nghệ phần mềmBáo cáo đồ án môn công nghệ phần mềm
Báo cáo đồ án môn công nghệ phần mềmRiTa15
 
Bài gảng cơ sở an toàn thông tin PTIT
Bài gảng cơ sở an toàn thông tin PTITBài gảng cơ sở an toàn thông tin PTIT
Bài gảng cơ sở an toàn thông tin PTITNguynMinh294
 
Giáo trình Quản trị mạng
Giáo trình Quản trị mạngGiáo trình Quản trị mạng
Giáo trình Quản trị mạngTran Tien
 
Giáo trình phân tích thiết kế hệ thống thông tin
Giáo trình phân tích thiết kế hệ thống thông tinGiáo trình phân tích thiết kế hệ thống thông tin
Giáo trình phân tích thiết kế hệ thống thông tinVõ Phúc
 
Đề tài: Hoàn thiện công tác kế toán doanh thu, chi phí và xác định kết quả ki...
Đề tài: Hoàn thiện công tác kế toán doanh thu, chi phí và xác định kết quả ki...Đề tài: Hoàn thiện công tác kế toán doanh thu, chi phí và xác định kết quả ki...
Đề tài: Hoàn thiện công tác kế toán doanh thu, chi phí và xác định kết quả ki...Viết thuê trọn gói ZALO 0934573149
 
Đề tài: Xây dựng phần mềm thi, đánh giá câu hỏi, đề thi trắc nghiệm khách quan
Đề tài: Xây dựng phần mềm thi, đánh giá câu hỏi, đề thi trắc nghiệm khách quanĐề tài: Xây dựng phần mềm thi, đánh giá câu hỏi, đề thi trắc nghiệm khách quan
Đề tài: Xây dựng phần mềm thi, đánh giá câu hỏi, đề thi trắc nghiệm khách quanViết thuê trọn gói ZALO 0934573149
 
Bài giảng an toàn ứng dụng web và csdl PTIT
Bài giảng an toàn ứng dụng web và csdl PTITBài giảng an toàn ứng dụng web và csdl PTIT
Bài giảng an toàn ứng dụng web và csdl PTITNguynMinh294
 
SIFT Algorithm Introduction
SIFT Algorithm IntroductionSIFT Algorithm Introduction
SIFT Algorithm IntroductionTruong LD
 

What's hot (20)

Luận văn: Học máy cho bài toán trích xuất thông tin quan điểm, 9đ
Luận văn: Học máy cho bài toán trích xuất thông tin quan điểm, 9đLuận văn: Học máy cho bài toán trích xuất thông tin quan điểm, 9đ
Luận văn: Học máy cho bài toán trích xuất thông tin quan điểm, 9đ
 
Luận văn: Bài toán nhận dạng biển số xe, HAY
Luận văn: Bài toán nhận dạng biển số xe, HAYLuận văn: Bài toán nhận dạng biển số xe, HAY
Luận văn: Bài toán nhận dạng biển số xe, HAY
 
Bài giảng an toàn ứng dụng web và csdl PTIT
Bài giảng an toàn ứng dụng web và csdl PTITBài giảng an toàn ứng dụng web và csdl PTIT
Bài giảng an toàn ứng dụng web và csdl PTIT
 
4 - Phan lop du lieu-Final.pptx
4 - Phan lop du lieu-Final.pptx4 - Phan lop du lieu-Final.pptx
4 - Phan lop du lieu-Final.pptx
 
Báo cáo quản lý cửa hàng máy tính
Báo cáo quản lý cửa hàng máy tínhBáo cáo quản lý cửa hàng máy tính
Báo cáo quản lý cửa hàng máy tính
 
Báo cáo đồ án môn công nghệ phần mềm
Báo cáo đồ án môn công nghệ phần mềmBáo cáo đồ án môn công nghệ phần mềm
Báo cáo đồ án môn công nghệ phần mềm
 
Đề tài: Nhận dạng mặt người trên matlab, HOT, 9đ
Đề tài: Nhận dạng mặt người trên matlab, HOT, 9đĐề tài: Nhận dạng mặt người trên matlab, HOT, 9đ
Đề tài: Nhận dạng mặt người trên matlab, HOT, 9đ
 
Bài gảng cơ sở an toàn thông tin PTIT
Bài gảng cơ sở an toàn thông tin PTITBài gảng cơ sở an toàn thông tin PTIT
Bài gảng cơ sở an toàn thông tin PTIT
 
Giáo trình Quản trị mạng
Giáo trình Quản trị mạngGiáo trình Quản trị mạng
Giáo trình Quản trị mạng
 
Giáo trình phân tích thiết kế hệ thống thông tin
Giáo trình phân tích thiết kế hệ thống thông tinGiáo trình phân tích thiết kế hệ thống thông tin
Giáo trình phân tích thiết kế hệ thống thông tin
 
Kỹ thuật giấu tin văn bản trong hình ảnh dựa trên hàm modulus
Kỹ thuật giấu tin văn bản trong hình ảnh dựa trên hàm modulusKỹ thuật giấu tin văn bản trong hình ảnh dựa trên hàm modulus
Kỹ thuật giấu tin văn bản trong hình ảnh dựa trên hàm modulus
 
Luận văn tốt nghiệp: Khai phá dữ liệu với R, HAY
Luận văn tốt nghiệp: Khai phá dữ liệu với R, HAYLuận văn tốt nghiệp: Khai phá dữ liệu với R, HAY
Luận văn tốt nghiệp: Khai phá dữ liệu với R, HAY
 
Đề tài: Hoàn thiện công tác kế toán doanh thu, chi phí và xác định kết quả ki...
Đề tài: Hoàn thiện công tác kế toán doanh thu, chi phí và xác định kết quả ki...Đề tài: Hoàn thiện công tác kế toán doanh thu, chi phí và xác định kết quả ki...
Đề tài: Hoàn thiện công tác kế toán doanh thu, chi phí và xác định kết quả ki...
 
Đề tài: Xây dựng phần mềm thi, đánh giá câu hỏi, đề thi trắc nghiệm khách quan
Đề tài: Xây dựng phần mềm thi, đánh giá câu hỏi, đề thi trắc nghiệm khách quanĐề tài: Xây dựng phần mềm thi, đánh giá câu hỏi, đề thi trắc nghiệm khách quan
Đề tài: Xây dựng phần mềm thi, đánh giá câu hỏi, đề thi trắc nghiệm khách quan
 
Bài giảng an toàn ứng dụng web và csdl PTIT
Bài giảng an toàn ứng dụng web và csdl PTITBài giảng an toàn ứng dụng web và csdl PTIT
Bài giảng an toàn ứng dụng web và csdl PTIT
 
SIFT Algorithm Introduction
SIFT Algorithm IntroductionSIFT Algorithm Introduction
SIFT Algorithm Introduction
 
luan van thac si tim hieu ngon ngu lap trinh python du bao gia chung khoan
luan van thac si tim hieu ngon ngu lap trinh python du bao gia chung khoanluan van thac si tim hieu ngon ngu lap trinh python du bao gia chung khoan
luan van thac si tim hieu ngon ngu lap trinh python du bao gia chung khoan
 
05 Edge Detection - VN.pdf
05 Edge Detection - VN.pdf05 Edge Detection - VN.pdf
05 Edge Detection - VN.pdf
 
Đề tài: Nhận dạng, phân loại, xử lý ảnh biển số xe bằng phần mềm
Đề tài: Nhận dạng, phân loại, xử lý ảnh biển số xe bằng phần mềmĐề tài: Nhận dạng, phân loại, xử lý ảnh biển số xe bằng phần mềm
Đề tài: Nhận dạng, phân loại, xử lý ảnh biển số xe bằng phần mềm
 
Đề tài: Tiêu chuẩn IEEE 802.11 và công nghệ Wifi, HAY
Đề tài: Tiêu chuẩn IEEE 802.11 và công nghệ Wifi, HAYĐề tài: Tiêu chuẩn IEEE 802.11 và công nghệ Wifi, HAY
Đề tài: Tiêu chuẩn IEEE 802.11 và công nghệ Wifi, HAY
 

Similar to Luan van

Đề tài: Đánh giá công tác huy động vốn tín dụng tại ngân hàng nông nghiệp, 9 ...
Đề tài: Đánh giá công tác huy động vốn tín dụng tại ngân hàng nông nghiệp, 9 ...Đề tài: Đánh giá công tác huy động vốn tín dụng tại ngân hàng nông nghiệp, 9 ...
Đề tài: Đánh giá công tác huy động vốn tín dụng tại ngân hàng nông nghiệp, 9 ...Viết thuê trọn gói ZALO 0934573149
 
NÂNG CAO CHẤT LƯỢNG DỊCH VỤ NGÂN HÀNG ĐIỆN TỬ TẠI NGÂN HÀNG TMCP ĐẦU TƯ VÀ PH...
NÂNG CAO CHẤT LƯỢNG DỊCH VỤ NGÂN HÀNG ĐIỆN TỬ TẠI NGÂN HÀNG TMCP ĐẦU TƯ VÀ PH...NÂNG CAO CHẤT LƯỢNG DỊCH VỤ NGÂN HÀNG ĐIỆN TỬ TẠI NGÂN HÀNG TMCP ĐẦU TƯ VÀ PH...
NÂNG CAO CHẤT LƯỢNG DỊCH VỤ NGÂN HÀNG ĐIỆN TỬ TẠI NGÂN HÀNG TMCP ĐẦU TƯ VÀ PH...lamluanvan.net Viết thuê luận văn
 
Đề tài Hoàn thiện công tác tuyển dụng nhân sự tại công ty tnhh đông lâm dolac...
Đề tài Hoàn thiện công tác tuyển dụng nhân sự tại công ty tnhh đông lâm dolac...Đề tài Hoàn thiện công tác tuyển dụng nhân sự tại công ty tnhh đông lâm dolac...
Đề tài Hoàn thiện công tác tuyển dụng nhân sự tại công ty tnhh đông lâm dolac...Thư viện Tài liệu mẫu
 
Luận Văn Quản Lý Thuế Thu Nhập Cá Nhân Từ Chuyển Nhượng Vốn, Cổ Phần
Luận Văn  Quản Lý Thuế Thu Nhập Cá Nhân Từ Chuyển Nhượng Vốn, Cổ PhầnLuận Văn  Quản Lý Thuế Thu Nhập Cá Nhân Từ Chuyển Nhượng Vốn, Cổ Phần
Luận Văn Quản Lý Thuế Thu Nhập Cá Nhân Từ Chuyển Nhượng Vốn, Cổ PhầnHỗ Trợ Viết Đề Tài luanvanpanda.com
 
Nâng Cao Chất Lượng Dịch Vụ Lữ Hành Nội Địa Tại Công Ty Du Lịch Travel.docx
Nâng Cao Chất Lượng Dịch Vụ Lữ Hành Nội Địa Tại Công Ty Du Lịch Travel.docxNâng Cao Chất Lượng Dịch Vụ Lữ Hành Nội Địa Tại Công Ty Du Lịch Travel.docx
Nâng Cao Chất Lượng Dịch Vụ Lữ Hành Nội Địa Tại Công Ty Du Lịch Travel.docxNhận Viết Đề Tài Trọn Gói ZALO 0932091562
 
Đề tài Nâng cao hiệu quả sản xuất kinh doanh tại công ty cổ phần cảng hải phò...
Đề tài Nâng cao hiệu quả sản xuất kinh doanh tại công ty cổ phần cảng hải phò...Đề tài Nâng cao hiệu quả sản xuất kinh doanh tại công ty cổ phần cảng hải phò...
Đề tài Nâng cao hiệu quả sản xuất kinh doanh tại công ty cổ phần cảng hải phò...Thư viện Tài liệu mẫu
 
Nghiên cứu các yếu tố ảnh hưởng đến quyết định mua bất động sản của khách hàn...
Nghiên cứu các yếu tố ảnh hưởng đến quyết định mua bất động sản của khách hàn...Nghiên cứu các yếu tố ảnh hưởng đến quyết định mua bất động sản của khách hàn...
Nghiên cứu các yếu tố ảnh hưởng đến quyết định mua bất động sản của khách hàn...Dịch vụ Làm Luận Văn 0936885877
 
Giải pháp tài chính nhằm nâng cao hiệu quả sản xuất kinh doanh của công ty cổ...
Giải pháp tài chính nhằm nâng cao hiệu quả sản xuất kinh doanh của công ty cổ...Giải pháp tài chính nhằm nâng cao hiệu quả sản xuất kinh doanh của công ty cổ...
Giải pháp tài chính nhằm nâng cao hiệu quả sản xuất kinh doanh của công ty cổ...https://www.facebook.com/garmentspace
 
Giải pháp tài chính nhằm nâng cao hiệu quả sản xuất kinh doanh của công ty cổ...
Giải pháp tài chính nhằm nâng cao hiệu quả sản xuất kinh doanh của công ty cổ...Giải pháp tài chính nhằm nâng cao hiệu quả sản xuất kinh doanh của công ty cổ...
Giải pháp tài chính nhằm nâng cao hiệu quả sản xuất kinh doanh của công ty cổ...NOT
 
Giải pháp tài chính nhằm nâng cao hiệu quả sản xuất kinh doanh của công ty cổ...
Giải pháp tài chính nhằm nâng cao hiệu quả sản xuất kinh doanh của công ty cổ...Giải pháp tài chính nhằm nâng cao hiệu quả sản xuất kinh doanh của công ty cổ...
Giải pháp tài chính nhằm nâng cao hiệu quả sản xuất kinh doanh của công ty cổ...NOT
 
Đề tài tăng cường huy động vốn tại công ty cổ phần xây dựng, RẤT HAY, ĐIỂM 8
Đề tài  tăng cường huy động vốn tại công ty cổ phần xây dựng, RẤT HAY, ĐIỂM 8Đề tài  tăng cường huy động vốn tại công ty cổ phần xây dựng, RẤT HAY, ĐIỂM 8
Đề tài tăng cường huy động vốn tại công ty cổ phần xây dựng, RẤT HAY, ĐIỂM 8Dịch Vụ Viết Bài Trọn Gói ZALO 0917193864
 
Tăng cường huy động vốn tại công ty cổ phần xây dựng đất việt
Tăng cường huy động vốn tại công ty cổ phần xây dựng đất việtTăng cường huy động vốn tại công ty cổ phần xây dựng đất việt
Tăng cường huy động vốn tại công ty cổ phần xây dựng đất việthttps://www.facebook.com/garmentspace
 
Tăng cường huy động vốn tại công ty cổ phần xây dựng đất việt 2
Tăng cường huy động vốn tại công ty cổ phần xây dựng đất việt 2Tăng cường huy động vốn tại công ty cổ phần xây dựng đất việt 2
Tăng cường huy động vốn tại công ty cổ phần xây dựng đất việt 2https://www.facebook.com/garmentspace
 
CÁC NHÂN TỐ ẢNH HƯỞNG ĐẾN HÀNH VI CHUYỂN ĐỔI NGÂN HÀNG CỦA KHÁCH HÀNG TRÊN ĐỊ...
CÁC NHÂN TỐ ẢNH HƯỞNG ĐẾN HÀNH VI CHUYỂN ĐỔI NGÂN HÀNG CỦA KHÁCH HÀNG TRÊN ĐỊ...CÁC NHÂN TỐ ẢNH HƯỞNG ĐẾN HÀNH VI CHUYỂN ĐỔI NGÂN HÀNG CỦA KHÁCH HÀNG TRÊN ĐỊ...
CÁC NHÂN TỐ ẢNH HƯỞNG ĐẾN HÀNH VI CHUYỂN ĐỔI NGÂN HÀNG CỦA KHÁCH HÀNG TRÊN ĐỊ...lamluanvan.net Viết thuê luận văn
 
NÂNG CAO CHẤT LƯỢNG NGUỒN NHÂN LỰC TẠI TỔNG CÔNG TY XUẤT NHẤP KHẨU TỔNG HỢP ...
NÂNG CAO CHẤT LƯỢNG NGUỒN NHÂN LỰC TẠI TỔNG  CÔNG TY XUẤT NHẤP KHẨU TỔNG HỢP ...NÂNG CAO CHẤT LƯỢNG NGUỒN NHÂN LỰC TẠI TỔNG  CÔNG TY XUẤT NHẤP KHẨU TỔNG HỢP ...
NÂNG CAO CHẤT LƯỢNG NGUỒN NHÂN LỰC TẠI TỔNG CÔNG TY XUẤT NHẤP KHẨU TỔNG HỢP ...lamluanvan.net Viết thuê luận văn
 
Hoàn thiện phân tích tài chính tại công ty cổ phần đầu tư và công nghệ xây dự...
Hoàn thiện phân tích tài chính tại công ty cổ phần đầu tư và công nghệ xây dự...Hoàn thiện phân tích tài chính tại công ty cổ phần đầu tư và công nghệ xây dự...
Hoàn thiện phân tích tài chính tại công ty cổ phần đầu tư và công nghệ xây dự...https://www.facebook.com/garmentspace
 

Similar to Luan van (20)

Đề tài: Đánh giá công tác huy động vốn tín dụng tại ngân hàng nông nghiệp, 9 ...
Đề tài: Đánh giá công tác huy động vốn tín dụng tại ngân hàng nông nghiệp, 9 ...Đề tài: Đánh giá công tác huy động vốn tín dụng tại ngân hàng nông nghiệp, 9 ...
Đề tài: Đánh giá công tác huy động vốn tín dụng tại ngân hàng nông nghiệp, 9 ...
 
NÂNG CAO CHẤT LƯỢNG DỊCH VỤ NGÂN HÀNG ĐIỆN TỬ TẠI NGÂN HÀNG TMCP ĐẦU TƯ VÀ PH...
NÂNG CAO CHẤT LƯỢNG DỊCH VỤ NGÂN HÀNG ĐIỆN TỬ TẠI NGÂN HÀNG TMCP ĐẦU TƯ VÀ PH...NÂNG CAO CHẤT LƯỢNG DỊCH VỤ NGÂN HÀNG ĐIỆN TỬ TẠI NGÂN HÀNG TMCP ĐẦU TƯ VÀ PH...
NÂNG CAO CHẤT LƯỢNG DỊCH VỤ NGÂN HÀNG ĐIỆN TỬ TẠI NGÂN HÀNG TMCP ĐẦU TƯ VÀ PH...
 
Đề tài Hoàn thiện công tác tuyển dụng nhân sự tại công ty tnhh đông lâm dolac...
Đề tài Hoàn thiện công tác tuyển dụng nhân sự tại công ty tnhh đông lâm dolac...Đề tài Hoàn thiện công tác tuyển dụng nhân sự tại công ty tnhh đông lâm dolac...
Đề tài Hoàn thiện công tác tuyển dụng nhân sự tại công ty tnhh đông lâm dolac...
 
Đề tài: Hoàn thiện công tác tuyển dụng nhân sự tại công ty sứ, 9đ
Đề tài: Hoàn thiện công tác tuyển dụng nhân sự tại công ty sứ, 9đĐề tài: Hoàn thiện công tác tuyển dụng nhân sự tại công ty sứ, 9đ
Đề tài: Hoàn thiện công tác tuyển dụng nhân sự tại công ty sứ, 9đ
 
Đề tài: Xây dựng trang Web bán hàng điện tử bằng Opencart, HOT
Đề tài: Xây dựng trang Web bán hàng điện tử bằng Opencart, HOTĐề tài: Xây dựng trang Web bán hàng điện tử bằng Opencart, HOT
Đề tài: Xây dựng trang Web bán hàng điện tử bằng Opencart, HOT
 
Luận Văn Quản Lý Thuế Thu Nhập Cá Nhân Từ Chuyển Nhượng Vốn, Cổ Phần
Luận Văn  Quản Lý Thuế Thu Nhập Cá Nhân Từ Chuyển Nhượng Vốn, Cổ PhầnLuận Văn  Quản Lý Thuế Thu Nhập Cá Nhân Từ Chuyển Nhượng Vốn, Cổ Phần
Luận Văn Quản Lý Thuế Thu Nhập Cá Nhân Từ Chuyển Nhượng Vốn, Cổ Phần
 
Nâng Cao Chất Lượng Dịch Vụ Lữ Hành Nội Địa Tại Công Ty Du Lịch Travel.docx
Nâng Cao Chất Lượng Dịch Vụ Lữ Hành Nội Địa Tại Công Ty Du Lịch Travel.docxNâng Cao Chất Lượng Dịch Vụ Lữ Hành Nội Địa Tại Công Ty Du Lịch Travel.docx
Nâng Cao Chất Lượng Dịch Vụ Lữ Hành Nội Địa Tại Công Ty Du Lịch Travel.docx
 
Đề tài Nâng cao hiệu quả sản xuất kinh doanh tại công ty cổ phần cảng hải phò...
Đề tài Nâng cao hiệu quả sản xuất kinh doanh tại công ty cổ phần cảng hải phò...Đề tài Nâng cao hiệu quả sản xuất kinh doanh tại công ty cổ phần cảng hải phò...
Đề tài Nâng cao hiệu quả sản xuất kinh doanh tại công ty cổ phần cảng hải phò...
 
Nghiên cứu các yếu tố ảnh hưởng đến quyết định mua bất động sản của khách hàn...
Nghiên cứu các yếu tố ảnh hưởng đến quyết định mua bất động sản của khách hàn...Nghiên cứu các yếu tố ảnh hưởng đến quyết định mua bất động sản của khách hàn...
Nghiên cứu các yếu tố ảnh hưởng đến quyết định mua bất động sản của khách hàn...
 
Giải pháp tài chính nhằm nâng cao hiệu quả sản xuất kinh doanh của công ty cổ...
Giải pháp tài chính nhằm nâng cao hiệu quả sản xuất kinh doanh của công ty cổ...Giải pháp tài chính nhằm nâng cao hiệu quả sản xuất kinh doanh của công ty cổ...
Giải pháp tài chính nhằm nâng cao hiệu quả sản xuất kinh doanh của công ty cổ...
 
Đề tài hiệu quả sản xuất kinh doanh công ty cơ khí, ĐIỂM 8
Đề tài hiệu quả sản xuất kinh doanh công ty cơ khí, ĐIỂM 8Đề tài hiệu quả sản xuất kinh doanh công ty cơ khí, ĐIỂM 8
Đề tài hiệu quả sản xuất kinh doanh công ty cơ khí, ĐIỂM 8
 
Giải pháp tài chính nhằm nâng cao hiệu quả sản xuất kinh doanh của công ty cổ...
Giải pháp tài chính nhằm nâng cao hiệu quả sản xuất kinh doanh của công ty cổ...Giải pháp tài chính nhằm nâng cao hiệu quả sản xuất kinh doanh của công ty cổ...
Giải pháp tài chính nhằm nâng cao hiệu quả sản xuất kinh doanh của công ty cổ...
 
Giải pháp tài chính nhằm nâng cao hiệu quả sản xuất kinh doanh của công ty cổ...
Giải pháp tài chính nhằm nâng cao hiệu quả sản xuất kinh doanh của công ty cổ...Giải pháp tài chính nhằm nâng cao hiệu quả sản xuất kinh doanh của công ty cổ...
Giải pháp tài chính nhằm nâng cao hiệu quả sản xuất kinh doanh của công ty cổ...
 
Đề tài tăng cường huy động vốn tại công ty cổ phần xây dựng, RẤT HAY, ĐIỂM 8
Đề tài  tăng cường huy động vốn tại công ty cổ phần xây dựng, RẤT HAY, ĐIỂM 8Đề tài  tăng cường huy động vốn tại công ty cổ phần xây dựng, RẤT HAY, ĐIỂM 8
Đề tài tăng cường huy động vốn tại công ty cổ phần xây dựng, RẤT HAY, ĐIỂM 8
 
Tăng cường huy động vốn tại công ty cổ phần xây dựng đất việt
Tăng cường huy động vốn tại công ty cổ phần xây dựng đất việtTăng cường huy động vốn tại công ty cổ phần xây dựng đất việt
Tăng cường huy động vốn tại công ty cổ phần xây dựng đất việt
 
Tăng cường huy động vốn tại công ty cổ phần xây dựng đất việt 2
Tăng cường huy động vốn tại công ty cổ phần xây dựng đất việt 2Tăng cường huy động vốn tại công ty cổ phần xây dựng đất việt 2
Tăng cường huy động vốn tại công ty cổ phần xây dựng đất việt 2
 
CÁC NHÂN TỐ ẢNH HƯỞNG ĐẾN HÀNH VI CHUYỂN ĐỔI NGÂN HÀNG CỦA KHÁCH HÀNG TRÊN ĐỊ...
CÁC NHÂN TỐ ẢNH HƯỞNG ĐẾN HÀNH VI CHUYỂN ĐỔI NGÂN HÀNG CỦA KHÁCH HÀNG TRÊN ĐỊ...CÁC NHÂN TỐ ẢNH HƯỞNG ĐẾN HÀNH VI CHUYỂN ĐỔI NGÂN HÀNG CỦA KHÁCH HÀNG TRÊN ĐỊ...
CÁC NHÂN TỐ ẢNH HƯỞNG ĐẾN HÀNH VI CHUYỂN ĐỔI NGÂN HÀNG CỦA KHÁCH HÀNG TRÊN ĐỊ...
 
NÂNG CAO CHẤT LƯỢNG NGUỒN NHÂN LỰC TẠI TỔNG CÔNG TY XUẤT NHẤP KHẨU TỔNG HỢP ...
NÂNG CAO CHẤT LƯỢNG NGUỒN NHÂN LỰC TẠI TỔNG  CÔNG TY XUẤT NHẤP KHẨU TỔNG HỢP ...NÂNG CAO CHẤT LƯỢNG NGUỒN NHÂN LỰC TẠI TỔNG  CÔNG TY XUẤT NHẤP KHẨU TỔNG HỢP ...
NÂNG CAO CHẤT LƯỢNG NGUỒN NHÂN LỰC TẠI TỔNG CÔNG TY XUẤT NHẤP KHẨU TỔNG HỢP ...
 
Đề tài: Nâng cao hiệu quả sử dụng vốn tại Công ty Vận tải biển
Đề tài: Nâng cao hiệu quả sử dụng vốn tại Công ty Vận tải biểnĐề tài: Nâng cao hiệu quả sử dụng vốn tại Công ty Vận tải biển
Đề tài: Nâng cao hiệu quả sử dụng vốn tại Công ty Vận tải biển
 
Hoàn thiện phân tích tài chính tại công ty cổ phần đầu tư và công nghệ xây dự...
Hoàn thiện phân tích tài chính tại công ty cổ phần đầu tư và công nghệ xây dự...Hoàn thiện phân tích tài chính tại công ty cổ phần đầu tư và công nghệ xây dự...
Hoàn thiện phân tích tài chính tại công ty cổ phần đầu tư và công nghệ xây dự...
 

Luan van

  • 1. TRƢỜNG ĐẠI HỌC LẠC HỒNG KHOA CÔNG NGHỆ THÔNG TIN ---------- BÁO CÁO NGHIÊN CỨU KHOA HỌC ĐỀ TÀI: XÂY DỰNG CHƢƠNG TRÌNH PHÁT HIỆN VÀ NHẬN DẠNG MỘT SỐ BIỂN BÁO GIAO THÔNG ĐƢỜNG BỘ NGUY HIỂM TẠI VIỆT NAM LÊ CHÂN THIỆN TÂM PHẠM HỒNG THÁI BIÊN HÒA, THÁNG 11/2012
  • 2. TRƢỜNG ĐẠI HỌC LẠC HỒNG KHOA CÔNG NGHỆ THÔNG TIN ---------- BÁO CÁO NGHIÊN CỨU KHOA HỌC ĐỀ TÀI: XÂY DỰNG CHƢƠNG TRÌNH PHÁT HIỆN VÀ NHẬN DẠNG MỘT SỐ BIỂN BÁO GIAO THÔNG ĐƢỜNG BỘ NGUY HIỂM TẠI VIỆT NAM SVTH : LÊ CHÂN THIỆN TÂM PHẠM HỒNG THÁI GVHD : ThS. TRẦN TIẾN ĐỨC BIÊN HÒA, THÁNG 11/2012
  • 3. LỜI CÁM ƠN Để hoàn thành đề tài này và có kiến thức như ngày hôm nay, đầu tiên chúng em xin gửi lời cảm ơn đến Ban Giám Hiệu cùng toàn thể Thầy Cô Khoa Công Nghệ Thông Tin – Trường Đại Học Lạc Hồng đã tận tình giảng dạy, truyền đạt kiến thức cũng như những kinh nghiệm quý báu cho chúng em trong suốt quá trình học tập tại trường. Chúng em xin gửi những lời tri ân sâu sắc nhất đến thầy Ths Trần Tiến Đức, người thầy đã tận tình hướng dẫn và quan tâm, động viên chúng em trong suốt quá trình thực hiện đề tài. Chúng em xin chân thành cảm ơn sự đóng góp ý kiến để góp phần hoàn thiện đề tài các từ thầy Ths Huỳnh Cao Tuấn, thầy Ths Phan Mạnh Thường, thầy Ths Nguyễn Phát Nhựt. Chúng em cũng vô cùng cảm ơn sự nhiệt tình của các nhóm bạn đã hỗ trợ cho nhóm nghiên cứu trong quá trình khảo sát thực tế, lấy mẫu thực nghiệm, đánh giá kết quả cũng như hỗ trợ các thiết bị cần thiết để nhóm có thể hoàn thành đề tài. Chúng em cũng bày tỏ lòng biết ơn đến những người thân trong gia đình đã động viên và tạo mọi điều kiện giúp chúng em trong quá trình học tập cũng như trong cuộc sống. Mặc dù chúng em đã cố gắng hoàn thành tốt đề tài nhưng cũng không thể tránh khỏi những sai sót nhất định, rất mong được sự thông cảm và chia sẻ cùng quý Thầy Cô và bạn bè. Chúng em xin gửi lời chúc sức khỏe và thành đạt tới tất cả quý thầy cô cùng các bạn. Nhóm sinh viên thực hiện đề tài Lê Chân Thiện Tâm – Phạm Hồng Thái Biên Hòa, Tháng 11 - 2012
  • 4. NHẬN XÉT CỦA GIÁO VIÊN HƢỚNG DẪNPHẢN BIỆN .............................................................................................................. .............................................................................................................. .............................................................................................................. .............................................................................................................. .............................................................................................................. .............................................................................................................. .............................................................................................................. .............................................................................................................. .............................................................................................................. .............................................................................................................. .............................................................................................................. .............................................................................................................. .............................................................................................................. .............................................................................................................. .............................................................................................................. .............................................................................................................. Biên Hòa, Ngày … tháng … năm 201… Kí tên Formatted: Vietnamese
  • 5. MỤC LỤC ---------- Trang phụ bìa Lời cám ơn Mục lục Danh mục viết tắt Danh mục bảng và hình PHẦN MỞ ĐẦU ............................................................................................................1 CHƢƠNG 1: TỔNG QUAN VỀ CÁC PHƢƠNG PHÁP PHÁT HIỆN BIỂN BÁO GIAO THÔNG VÀ NỀN TẢNG OPENCV................................................................9 1.1. Các phương pháp phát hiện biển báo giao thông. ..................................................10 1.1.1, Phương pháp phát hiện dựa trên màu sắc ........................................................10 1.1.2, Phương pháp phát hiện dựa trên hình dạng......................................................11 1.1.3, Phương pháp phát hiện dựa trên máy học........................................................14 1.2. Giới thiệu thư viện mã nguồn mở OpenCV ...........................................................14 1.2.1, Lịch sử OpenCV...............................................................................................15 1.2.2, Kiến trúc của OpenCV.....................................................................................16 1.3. Tiểu kết ...................................................................................................................17 CHƢƠNG 2: GIỚI THIỆU PHƢƠNG PHÁP NHẬN DẠNG BIỂN BÁO GIAO THÔNG ........................................................................................................................18 2.1. Khái quát phương pháp nhận dạng biển báo giao thông sử dụng trong đề tài. ......19 2.2. Xác định vùng đặc trưng chứa biển báo giao thông...............................................20 2.2.1, Đặc trưng Haar-like..........................................................................................20 2.2.2, Thuật toán tăng tốc Adaboost.......................................................................22 2.2.2.1, Tiếp cận Boosting ....................................................................................22
  • 6. 2.2.2.2, AdaBoost...................................................................................................23 2.3. Giới thiệu phương pháp phân tích thành phần chính (Principle Component Analysis_PCA). .............................................................................................................25 2.3.1, Giới thiệu..........................................................................................................25 2.3.2, Thuật toán PCA................................................................................................27 2.4. Nhận dạng biển báo dùng bộ phân lớp Support Vector Machine (SVM)..............30 2.4.1, Phân lớp tuyến tính (Linear classifier).............................................................30 2.4.2, Phân lớp phi tuyến (Nonlinear classifier) ........................................................34 2.5. Tiểu kết ...................................................................................................................35 CHƢƠNG 3: THIẾT KẾ VÀ XÂY DỰNG CHƢƠNG TRÌNH.............................36 3.1. Chức năng của chương trình...................................................................................37 3.2. Xây dựng chương trình...........................................................................................37 3.2.1, Xây dựng cơ sở dữ liệu ảnh biển báo...............................................................37 3.2.1.1, Nguồn ảnh.................................................................................................37 3.2.1.2, Phân loại ảnh.............................................................................................38 3.2.2, Huấn luyện phát hiện biển báo trong ảnh ........................................................39 3.2.2.1, Chuẩn bị dữ liệu........................................................................................39 3.2.2.2, Lấy mẫu dữ liệu huấn luyện......................................................................40 3.2.2.3, Huấn luyện máy học (Machine Learning) ................................................42 3.2.3, Huấn luyện nhận dạng biển báo.......................................................................47 3.2.4, Chương trình nhận dạng...............................................................................5251 3.2.4.1, Sơ đồ hoạt động của chương trình ........................................................5251 3.2.4.2, Giao diện và cách sử dụng ....................................................................5453 3.3. Tiểu kết ...............................................................................................................5655 CHƢƠNG 4: ĐÁNH GIÁ KẾT QUẢ CHƢƠNG TRÌNH ..................................5756
  • 7. 4.1. Đánh giá kết quả.................................................................................................5857 4.1.1, Các môi trường thử nghiệm đánh giá...........................................................5857 4.1.2, Đánh giá các sai số.......................................................................................6564 4.2. Ưu và nhược điểm của chương trình..................................................................6665 4.2.1, Ưu điểm........................................................................................................6665 4.2.2, Nhược điểm..................................................................................................6665 4.3. Tiểu kết ...............................................................................................................6766 PHẦN KẾT LUẬN ..................................................................................................6867 TÀI LIỆU THAM KHẢO
  • 8. DANH MỤC VIẾT TẮT ---------- Từ viết tắt Từ đầy đủ AVI Audio Video Interleave BMP Bitmap Portable CPU Central Processing Unit GB Gigabyte HSI Hue – Saturation – Intensity IPP Intergrated Performance Primitives JPG Joint Photographic Experts Group MB Megabyte ML Machine Learning OpenCV Open Computer Vision ORC Optical Character Recognition PCA Principle Components Analysis PGM Portable Graymap RGB Red – Green – Blue SVM Support Vector Machine
  • 9. DANH MỤC BẢNG VÀ HÌNH ---------- DANH MỤC HÌNH Hình 1. Mô hình xử lý nhận dạng biển báo giao thông của bài báo “A Road Sign Recognition System Based on Dynamic Visual Model” [10] . ........................................3 Hình 2. Mô hình xử lý nhận dạng biển báo giao thông của bài báo “A System for Traffic Sign Detection, Tracking, and Recognition Using Color, Shape, and Motion Information” [8]. .............................................................................................................4 Hình 3. Mô hình phát hiện biển báo giao thông của bài báo “Color-Based Road Sign Detection and Tracking” [14]. ........................................................................................4 Hình 4. Mô hình tác giả đề nghị [5]................................................................................5 Hình 5. Tổng quan thuật toán [2]....................................................................................6 Hình 1. 1. Các vị trí của một đề cử điểm ảnh cho tâm đối tượng [13]. ........................11 Hình 1. 2. Nhân các góc gradient của một tam giác cho 3. ..........................................12 Hình 1. 3. Vùng kiểm soát. ...........................................................................................13 Hình 1. 4. Xây dựng ảnh biến đổi khoảng cách [9]......................................................14 Hình 1. 5. Lịch sử phát triển của OpenCV [12, Trang 7]. ............................................16 Hình 1. 6. Kiến trúc cơ bản của OpenCV [12, Trang 13].............................................17 Hình 2. 1. Đặc trưng theo cạnh.....................................................................................20 Hình 2. 2. Đặc trưng theo đường ..................................................................................20 Hình 2. 3. Đặc trưng theo xung quanh tâm...................................................................20 Hình 2. 4. Đặc trưng theo đường chéo..........................................................................20 Hình 2. 5. Cách tính Integral Image của ảnh ................................................................21 Hình 2. 6. Cách tính tổng giá trị pixel vùng cần tính....................................................22
  • 10. Hình 2. 7. Boosting[ 3, Trang 16 ]................................................................................23 Hình 2. 8. Phép chiếu lên các trục tọa độ khác nhau có thể cho cách nhìn khác nhau về cùng một dữ liệu. ...........................................................................................................26 Hình 2. 9. Tìm các trục tọa độ mới sao cho dữ liệu có độ biến thiên cao nhất.............26 Hình 2. 10. Tách hai phân lớp tuyến tính với một mặt siêu phẳng...............................31 Hình 2. 11. Tách hai phân lớp tuyến tính với hai mặt siêu phẳng................................31 Hình 2. 12. Ví dụ minh họa về độ lớn của lề (margin).................................................32 Hình 2. 13. Minh họa các mẫu được gọi là Support Vector. ........................................34 Hình 2. 14. Một mặt phân chia phi tuyến có thể trở thành một siêu phẳng trong không gian lớn hơn...................................................................................................................34 Hình 3. 1. Tập ảnh Positive trong thư mục “rawdata”..................................................39 Hình 3. 2. Tập ảnh Negative trong thư mục “negative” ...............................................40 Hình 3. 3. Nội dung file “inforfile.txt” sau khi chạy file “create_list.bat”...................40 Hình 3. 4. Chương trình ObjectMaker trong thư mục “positive”.................................41 Hình 3. 5. Đánh dấu đối tượng trong trình ObjectMaker .............................................41 Hình 3. 6. Nội dung file “info.txt”................................................................................42 Hình 3. 7. Nội dung file “samples_creation.bat”..........................................................42 Hình 3. 8. Nội dung file “haarTraining.bat”.................................................................43 Hình 3. 9. Kết quả phân tầng ........................................................................................44 Hình 3. 10. Nội dung file “convert.bat”........................................................................45 Hình 3. 11. Cấu trúc của một tập tin XML...................................................................45 Hình 3. 12. Kết quả ảnh biển số 201a nhận được.........................................................46 Hình 3. 13. Kết quả ảnh biển số 210 nhận được...........................................................46 Hình 3. 16. Một phần nội dung file “psiTT.txt”. ..........................................................50 Hình 3. 17. Một phần nội dung file “svmtrained.xml”.................................................50
  • 11. Hình 3. 18.Giao diện chính của chương trình...........................................................5453 Hình 4. 1. Một số kết quả thử nghiệm trong môi trường chuẩn. ..............................5857 Hình 4. 2. Một số kết quả thử nghiệm trong môi trường ban đêm. ..........................5958 Hình 4. 3. Một số kết quả thử nghiệm trong môi trường nhiều mây, yếu ánh sáng và có mưa nhỏ .....................................................................................................................6059 Hình 4. 4. Kết quả thử nghiệm biển bị che khuất bởi cây ........................................6160 Hình 4. 5. Kết quả thử nghiệm với biển bị bong tróc sơn. .......................................6160 Hình 4. 6. Kết quả thử nghiệm với biển bị bẩn bởi sơn............................................6261 Hình 4. 7. Kết quả thử nghiệm với biển cũ bị phai màu...........................................6261 Hình 4. 8. Kết quả thử nghiệm với ảnh bị các tờ quảng cáo dán lên........................6362 Hình 4. 9. Kết quả thử nghiệm với biển báo nghiêng bên phải trên ảnh tĩnh...........6362 Hình 4. 10. Kết quả thử nghiệm với biển báo bị nghiêng bên trái trên ảnh tĩnh. .....6463 Hình 4. 11. Khoảng cách từ lúc nhận dạng đến biển báo. ........................................6463 DANH MỤC SƠ ĐỒ Sơ đồ 2. 1. Trình tự các bước trong phương pháp nhận dạng biển báo giao thông nguy hiểm. ..............................................................................................................................19 Sơ đồ 3. 1. Sơ đồ huấn luyện phát hiện biển báo trong ảnh..........................................47 Sơ đồ 3. 2. Sơ đồ huấn luyện nhận dạng biển báo ....................................................5251 Sơ đồ 3. 3. Sơ đồ hoạt động chương trình.................................................................5352 DANH MỤC BẢNG Bảng 3. 1. Một số biển báo giao thông được bộ được nhóm nghiên cứu. ....................38 Bảng 4. 1. Kết quả nhận dạng biển báo giao thông ..................................................6564 Formatted: Space Before: 6 pt, After: 6 pt, Line spacing: 1.5 lines Formatted: Space Before: 6 pt, After: 6 pt, Line spacing: 1.5 lines
  • 12. Bảng 4. 1. Kết quả nhận dạng biển báo giao thông 64 Formatted: Default Paragraph Font, Font: No Bold, Check spelling and grammar Formatted: Normal, Justified, Tab stops: Not 15.98 cm
  • 13. - 1 - Formatted: Font: 12 pt Formatted: Font: Check spelling and gramm Formatted: Font: 12 pt Formatted: Font: Times New Roman, 12 pt PHẦN MỞ ĐẦU Lý do chọn đề tài 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 Việt Nam 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 và hơn hết chính tình hình tai nạn giao thông đường bộ. Theo số liệu mới nhất từ Ủy ban An toàn giao thông quốc gia, chỉ trong 8 tháng đầu năm 2012, Việt Nam có hơn 7000 vụ tai nạn giao thông [20], dân số mất đi hơn 6000 người. Đây là những mất mát quá lớn xảy ra trong một đất nước hòa bình đáng để mọi thành phần trong xã hội cùng quan tâm và suy xét. Từ tình hình thực tế giao thông tại Việt Nam, nguyên nhân phần lớn các vụ tai nạn giao thông đường bộ là do tài xế lái xe không làm chủ tốc độ, không chấp hành hiệu lệnh giao thông, 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 có thể vì tài xế mệt mỏi, thiếu tập trung và chịu nhiều yếu tố tác động khác. Từ khảo sát thực tế của nhóm sinh viên nghiên cứu [Phụ lục 1] với các tài xế mà thành phần chủ yếu là các tài xế taxi 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 họ ý 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. Các hệ thống cảnh báo hỗ trợ tài xế hiện vẫn đang trong giai đoạn được các trung tâm nghiên cứu của thế giới, các hãng xe ô tô thử nghiệm, đánh giá và vẫn chưa chính thức đưa vào sử dụng trong thực 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ự hành là xu hướng thiết yếu của xã hội phát triển. Từ những lý do trên, nhóm sinh viên nghiên cứu với mong muốn góp phần hạn chế những tai nạn giao thông và giảm thiểu hóa những hậu quả sau tai nạn. Sau quá
  • 14. - 2 - Formatted: Font: 12 pt Formatted: Font: Check spelling and gramm Formatted: Font: 12 pt Formatted: Font: Times New Roman, 12 pt trình học tập và tìm hiểu những lợi ích từ những ứng dụng xử lý nhận dạng ảnh, nhóm sinh viên chúng em lựa chọn đề tài: “Xây dựng chương trình phát hiện và nhận dạng một số biển báo giao thông đường bộ nguy hiểm tại Việt Nam” làm đề tài tốt nghiệp. Lịch sử nghiên cứu 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. Tuy nhiên hiện tất cả vẫn đang được tiếp tục đầu tư nghiên cứu nhằm mục đích xây dựng một sản phẩm tối ưu và hoàn chỉnh hơn. Trên thế giới Bài báo “A Road Sign Recognition System Based on Dynamic Visual Model” (C. Y. Yang, C. S. Fuh, S. W. Chen, P. S. Yen, CVPR'03 Proceedings of the 2003 IEEE computer society conference on Computer vision and pattern recognition, Pages 750-755, 2003). Nhóm tác giả nghiên cứu mong muốn thúc đẩy, thay đổi nhận thức, cung cấp những thông tin cần thiết để hỗ trợ người lái xe và nâng cao độ an toàn trong giao thông. Bài báo đề xuất một mô hình, gọi là mô hình trực quan động (Dynamic Visual Model) để phát hiện và nhận dạng các biển báo giao thông trên đường. Đồng thời cũng trình bày những khó khăn trong việc nhận dạng biển báo như: Màu sắc của biển báo bị phai mờ dưới ảnh hưởng của ánh nắng mặt trời, sơn biển báo bị bong tróc, mất đi những thông tin cần thiết của biển báo. Không khí bị ô nhiễm và các điều kiện về thời tiết cũng làm giảm khả năng nhận dạng…
  • 15. - 3 - Formatted: Font: 12 pt Formatted: Font: Check spelling and gramm Formatted: Font: 12 pt Formatted: Font: Times New Roman, 12 pt Hình 1. Mô hình xử lý nhận dạng biển báo giao thông của bài báo “A Road Sign Recognition System Based on Dynamic Visual Model” [10] . Bài báo “A System for Traffic Sign Detectiona, Tracking, and Recognition Using Color, Shape, and Motion Information”, (C. Bahlmann, Y. Zhu, V. Ramesh, M. Pellkofer, T. Koehler Proceedings. IEEE Intelligent Vehicles Symposium, 2005). Bài báo mô tả một hệ thống thị giác máy tính (Computer Vision) xử lý việc phát hiện, theo vết và nhận dạng các biển báo giao thông dựa trên màu sắc, hình dạng và thông tin trong thời gian thực. Phương pháp tiếp cận được trình bày trong bài báo gồm hai thành phần. Đầu tiên sử dụng các đặc trưng Haar kết hợp với bộ tăng tốc Adaboost để phát hiện biển báo. Sau khi phát hiện và theo vết biển báo thì biển báo được phân loại bằng mô hình Bayes. Kết quả được thực nghiệm theo bài báo là có thể phát hiện và phân loại được một số biển báo giao thông với tỉ lệ chính xác cao trong điều kiện 10frames/1 giây.
  • 16. - 4 - Formatted: Font: 12 pt Formatted: Font: Check spelling and gramm Formatted: Font: 12 pt Formatted: Font: Times New Roman, 12 pt Hình 2. Mô hình xử lý nhận dạng biển báo giao thông của bài báo “A System for Traffic Sign Detection, Tracking, and Recognition Using Color, Shape, and Motion Information” [8]. Bài báo “Color-Based Road Sign Detection and Tracking ” (Luis David Lopez and Olac Fuentes,Computer Science Department University of Texas, El Paso 79902, USA, 2007) bài báo trình bày một nền tảng chung cho việc nhận dạng và theo vết các biển báo giao thông chỉ sử dụng duy nhất một thông tin màu sắc. Phương pháp tiếp cận gồm hai thành phần. Phần đầu sử dụng một tập phân phối Gauss để phát hiện đường và các biển báo giao thông. Phần thứ hai là theo vết đối tượng đã được xác định ở bước trước đó. Kết quả thử nghiệm cho thấy rằng hệ thống đề xuất nhận dạng trung bình 97% trong thời gian thực với các đối tượng ở gần. Hình 3. Mô hình phát hiện biển báo giao thông của bài báo “Color-Based Road Sign Detection and Tracking” [14].
  • 17. - 5 - Formatted: Font: 12 pt Formatted: Font: Check spelling and gramm Formatted: Font: 12 pt Formatted: Font: Times New Roman, 12 pt Trong nƣớc Đề tài “Phát hiện và phân loại biển báo giao thông dựa trên SVM trong thời gian thực” (Lê Thanh Tâm, Trần Thái Sơn, Seichii Mita, Tuyển tập Công trình Nghiên cứu Công nghệ Thông tin và Truyền thông, 2009). Đây là một module nằm trong dự án hệ thống lái xe tự động của học viện Công Nghệ Toyota được tài trợ bởi tập đoàn ô tô Toyota. Cách tiếp cận được giới thiệu là sử dụng đặc trưng màu trên SVM (Support Vector Machine) để phát hiện vùng ứng cử cho biển báo giao thông trong thời gian thực (xem hình 4). Hình 4. Mô hình tác giả đề nghị [5]. Đề tài “Phát hiện biển báo giao thông dùng đặc trưng cục bộ (local features)” của tác giả Nguyễn Duy Khánh, Lê Đình Duy, Dương Anh Đức được báo cáo tại Hội thảo Fair 2011 tại Trường đại học Lạc Hồng. Đề tài dùng đặc trưng cục bộ và bộ phân lớp SVM (Support Vector Machine) để phát hiện biển báo giao thông. Tổng quan thuật
  • 18. - 6 - Formatted: Font: 12 pt Formatted: Font: Check spelling and gramm Formatted: Font: 12 pt Formatted: Font: Times New Roman, 12 pt toán được tác giả trình bày như theo hình 5. Kết quả của đề tài dừng lại ở việc xác định biển báo và phân lớp chúng thành các nhóm biển cấm, nguy hiểm, chỉ dẫn. Hình 5. Tổng quan thuật toán [2]. Mục tiêu nghiên cứu Xây dựng chương trình phát hiện và nhận dạng biển báo giao thông đường bộ từ video thu về và hiển thị thông tin cảnh báo dưới dạng hình ảnh và âm thanh. Đối tƣợng nghiên cứu và phạm vi nghiên cứu - Đối tượng nghiên cứu : Biển báo giao thông đường bộ ở Việt Nam - Phạm vi nghiên cứu : Nghiên cứu bộ biển báo giao thông đường bộ nguy hiểm tại Việt Nam. Phƣơng pháp nghiên cứu - Khảo sát, tìm hiểu và thu thập tài liệu, hình ảnh về biển báo giao thông, đề tài đã nghiên cứu trước đây. - Tìm hiểu các bước phát hiện biển báo giao thông: gồm phương pháp máy học dựa trên đặc trưng Haar-like kết hợp với bộ tăng tốc Adaboost. - Tìm hiểu các bước nhận dạng biển báo giao thông: Gồm quá trình phân tích thành phần chính Pricipal Components Analaysis (PCA), và huấn luyện Support Vector Machine(SVM) để nhận dạng biển báo giao thông.
  • 19. - 7 - Formatted: Font: 12 pt Formatted: Font: Check spelling and gramm Formatted: Font: 12 pt Formatted: Font: Times New Roman, 12 pt - 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. - Tìm ra một hướng đi mới trong mỗi bước cần làm của đề tài, đặc biệt là trong giải thuật nhận dạng. Những đóng góp mới của đề tài - những vấn đề mà đề tài chƣa thực hiện đƣợc - Đề tài đưa ra hướng mới là kết hợp phương pháp dựa trên đặc trưng Haar và bộ tăng tốc Adaboost để nâng cao khả năng phát hiện đồng thời dùng thuật toán phân tích thành phần chính PCA để làm giảm bớt số chiều của ảnh xám làm số liệu đầu vào cho bước sử dụng thuật toán SVM để nhận dạng. - Tạo tiền đề cho việc xây dựng hệ thống nhận dạng biển báo giao thông đầy đủ và hoàn chỉnh hơn. - Đề tài dừng lại ở mức độ nghiên cứu nên số lượng biển báo nhận dạng được rất hạn chế. Kết cấu của đề tài Báo cáo này được trình bày 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 Giới thiệu sơ lược về lý do chọn đề tài, lịch sử nghiên cứu, mục tiêu nghiên cứu, đối tượng và phạm vi nghiên cứu, phương pháp nghiên cứu, những đóng góp và những vấn đề tồn tại của đề tài để từ đó đem lại cho mọi người một cái nhìn tổng quan nhất về đề tài. Phần nội dung Chƣơng 1: Tổng quan về các phương pháp phát hiện biển báo giao thông và nền tảng opencv.
  • 20. - 8 - Formatted: Font: 12 pt Formatted: Font: Check spelling and gramm Formatted: Font: 12 pt Formatted: Font: Times New Roman, 12 pt Trình bày các phương pháp phổ biến trong viện phát hiện và nhận dạng biển báo giao thông như dựa trên màu sắc, dựa trên hình dạng, và dựa trên phương pháp máy học. Trình bày nền tảng của thư viện hỗ trợ xử lý ảnh OpenCV. Chƣơng 2: Giới thiệu phương pháp nhận dạng biển báo giao thông. Trình bày nội dung về trình tự các bước trong quá trình phát hiện và nhận dạng biển báo giao thông. Trình bày chi tiết các thuật toán hỗ trợ trong việc phát hiện và nhận dạng gồm: Đặc trưng Haar, 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: Thiết kế và xây dựng chương trình. Trình bày các bước xây dựng chương trình phát hiện và nhận dạng biển báo giao thông. Chƣơng 4: Đánh giá kết quả chương trình. Đánh giá độ chính xác của phương pháp. Phần kết luận
  • 21. - 9 - Formatted: Font: 12 pt Formatted: Font: Check spelling and gramm Formatted: Font: 12 pt Formatted: Font: Times New Roman, 12 pt CHƢƠNG 1: TỔNG QUAN VỀ CÁC PHƢƠNG PHÁP PHÁT HIỆN BIỂN BÁO GIAO THÔNG VÀ NỀN TẢNG OPENCV 1.1 Các phƣơng pháp phát hiện biển báo giao thông. 1.2 Giới thiệu thƣ viện mã nguồn mở OpenCV. 1.3 Tiểu kết. Nội dung chính Formatted: Font: Bold Formatted: Centered
  • 22. - 10 - Formatted: Font: 12 pt Formatted: Font: Check spelling and gramm Formatted: Font: 12 pt Formatted: Font: Times New Roman, 12 pt 1.1. Các phƣơng pháp phát hiện biển báo giao thông. Xác định một đối tượng chuyên biệt ví dụ như xác định người đi bộ, xe hơi, làn đường, biển báo giao thông trong một quang cảnh giao thông đối với não và thị giác của con người thì đây là một chuyện đơn giản. Tuy nhiên để xác định những đối tượng đó có xuất hiện hay không trong những frame ảnh thu được thông qua camera với sự trợ giúp của máy tính thì đây là một vấn đề mà các nhà khoa học đánh giá là thật sự khó khăn. Bởi lẽ hệ thống xử lý thông tin ảnh không những đòi hỏi tính chính xác mà còn phải đáp ứng một cách nhanh chóng trong thời gian thực và có thể hoạt động tốt trong nhiều môi trường và hoàn cảnh tự nhiên khác nhau. Do vậy hai lĩnh vực xử lý ảnh (Image Processing) và thị giác máy tính (Computer Vision) phải luôn phát triển song hành và bổ sung chặt chẽ cho nhau. Có nhiều phương pháp và hướng tiếp cận của vấn đề xác định biển báo giao thông. Nhưng các phương pháp phổ biến hiện nay được áp dụng là phương pháp dựa trên màu sắc (color-based detection methods), phương pháp dựa trên hình dạng (shape-based methods), và phương pháp dựa trên máy học (methods based on machine learning). 1.1.1, Phƣơng pháp phát hiện dựa trên màu sắc Cách tiếp cận phổ biến trong vấn đề xác định biển báo giao thông dựa trên màu sắc là tìm một vùng ảnh có chứa màu sắc đặc trưng, sử dụng phương pháp phân ngưỡng đơn giản hoặc phân ngưỡng ảnh cao cấp. Kết quả của vùng ảnh sau đó sẽ ngay lập tức được xem như là biển báo giao thông hoặc thông qua giai đoạn tiếp theo xem như là vùng cần quan tâm. Khuyết điểm chính của phương pháp này là trong thực tế màu sắc có xu hướng không đáng tin cậy, mà phụ thuộc vào các thời điểm trong ngày, điều kiện thời tiết, bóng râm…Không gian màu RGB được đánh giá là rất nhạy cảm với ánh sáng , do đó nhiều nhà nghiên cứu đã chọn phân ngưỡng dựa trên màu sắc trong các không gian màu khác như HSI.
  • 23. - 11 - Formatted: Font: 12 pt Formatted: Font: Check spelling and gramm Formatted: Font: 12 pt Formatted: Font: Times New Roman, 12 pt 1.1.2, Phƣơng pháp phát hiện dựa trên hình dạng Phát hiện biển báo giao thông dựa trên hình dạng có nhiều cách tiếp cận đã được công bố trong nhiều tài liệu hiện nay.Tuy nhiên có lẽ phương pháp dựa trên hình dạng phổ biến nhất là sử dụng phép biến đổi Hough. Phép biến đổi Hough là một kĩ thuật dùng để xác định một hình dạng ngẫu nhiên trong ảnh.Ý tưởng cơ bản là sử dụng một cạnh của ảnh, mỗi điểm ảnh của cạnh ảnh có khả năng là tâm của đối tượng nếu như điểm ảnh đó nằm trên biên. Kĩ thuật này sớm ra đời trong lịch sử thị giác máy tính (computer vision). Nó đã được mở rộng và thay đổi nhiều lần với nhiều biến thể khác nhau. Ở đây chúng ta chỉ trình bày về nghiên cứu của Loy và Barnes, và nó được xem là phương pháp hiệu quả cho việc nhận dạng biển báo giao thông. Loy và Barnes [13] đã đề xuất bộ phát hiện đa giác đều tổng quát và chỉ sử dụng nó để phát hiện biển báo giao thông. Bộ phát hiện dựa trên phép biến đổi đối xứng xuyên tâm nhanh, về mặt tổng quan nó tương tự như phép biến đổi Hough. Đầu tiên ta tính đạo hàm cấp một của ảnh từ ảnh gốc. Ảnh đạo hàm cấp một sau đó được phân ngưỡng để cho các điểm có biên độ thấp bị loại bỏ. Các điểm ảnh còn lại có khả năng là vị trí của tâm đa giác đều. Một điểm ảnh đóng vai trò là điểm có khả năng được chọn trên nhiều vị trí được phân bổ dọc theo đường trực giao với đạo hàm cấp một của điểm ảnh và có khoảng cách đến các điểm ảnh là tương đương với các bán kính của đa giác đều (Xem hình 1.1). Lưu ý rằng thật sự có tới hai đường thẳng có thể thỏa mãn yêu cầu này, một là cùng hướng với đạo hàm và một là theo hướng ngược lại. Cả hai đều có thể sử dụng nếu chúng ta không thể biết trước liệu biển báo này sáng hơn hay tối hơn so với quang cảnh nền. Hình 1. 1. Các vị trí của một đề cử điểm ảnh cho tâm đối tượng [13]. Chiều dài của đường biểu quyết được bao bởi bán kính của đa giác đều. Các điểm ảnh được chọn ở cuối đường thẳng có trọng số tiêu cực, để tối thiểu hóa ảnh
  • 24. - 12 - Formatted: Font: 12 pt Formatted: Font: Check spelling and gramm Formatted: Font: 12 pt Formatted: Font: Times New Roman, 12 pt hưởng của các đường thẳng trong ảnh mà dài quá để có thể xem như là một cạnh của đa giác. Kết quả ảnh đề cử (vote image) được gán nhãn là . Ngoài ảnh đề cử (vote image) ra, một ảnh khác được gọi là ảnh đẳng giác (equiangular image) được tạo. Thủ tục được đề xuất như sau: Nếu góc đạo hàm của các điểm ảnh trên cạnh của một đa giác đều mặt ( –sided) được nhân với , thì kết quả các góc sẽ bằng nhau (Xem hình 1.2). Ví dụ, xét một tam giác đẳng giác và thử một giá trị góc đạo hàm tại mỗi bên. Giả sử chúng ta có được các giá trị đạo hàm của 730 , 1930 , và 3130 . Các đạo hàm được cách nhau một khoảng 3600 / = 1200 . Sau đó 730 x 3 = 2190 và 1930 x 3 = 5790 , 5790 – 3600 = 2190 . Tương tự như vậy 3130 x 3 = 9390 , 9390 – 2 x 3600 = 2190 . Với từng điểm ảnh được chọn là tâm của đa giác, một vector đơn vị được tạo ra. Độ dốc (slope) của vector đơn vị được cho bằng với góc đạo hàm của điểm ảnh nhân với số mặt của đa gia đều. Các điểm ảnh sau đó một lần nữa được chọn trên những vị trí được mô tả bằng một đường thẳng đề cử, ngoại trừ đề cử mang dạng của một vector đơn vị. Các điểm được chọn được biểu diễn trong một ảnh mới gọi là ảnh đẳng giác. Từng điểm trong ảnh đại diện cho một vector là tổng của các điểm được chọn đóng góp. Các điểm được chọn từ các cạnh của đa giác đẳng giác sẽ có cùng độ dốc (slope), do đó độ lớn của các vector được chọn trong trọng tâm đa giác đẳng giác sẽ là lớn nhất. Hình 1. 2. Nhân các góc gradient của một tam giác cho 3. Kết quả các góc sẽ bằng nhau. Cuối cùng, ảnh đề cử và định mức của ảnh đẳng giác được kết hợp để tạo ra đáp ứng tổng thể. Độ phức tạp của phương thức này là , trong đó là độ dài cực đại của đường thẳng được chọn, là số lượng điểm ảnh có trong ảnh và là số lượng bán kính đang được xem xét.
  • 25. - 13 - Formatted: Font: 12 pt Formatted: Font: Check spelling and gramm Formatted: Font: 12 pt Formatted: Font: Times New Roman, 12 pt Khuyết điểm chính của hướng tiếp cận này là bán kính của đa giác phải được biết trước, và đây không bao giờ là điều dễ thực hiện. Ở đây có thể được giải quyết bằng cách thử nhiều bán kính nhưng nó tiêu tốn quá nhiều thời gian xử lý. Một hướng tiếp cận khác là tìm hình dạng đặc trưng được sử dụng là bộ phát hiện góc và sau đó giả thiết là vị trí của đa giác đều bằng cách quan sát quan sát mối liên hệ giữa các góc. Paulo và Correia [9] xác định biển báo tam giác và tứ giác bằng cách áp dụng bộ phát hiện góc Haaris để xác định vùng đặc trưng, và sau đó tìm kiếm phần còn lại của góc trong sáu khu vực kiểm soát được định nghĩa trước đó của vùng này. Hình dạng được xác định dựa trên hình của vùng kiểm soát mà góc được tìm thấy. Vùng kiểm soát được biểu diễn như trong hình 1.3. Hình 1. 3. Vùng kiểm soát. Gavrila [11] sử dụng biến đổi khoảng cách dựa trên mẫu phù hợp để xác định hình dạng. Đầu tiên, các cạnh trong ảnh gốc được tìm thấy. Tiếp theo, một ảnh biến đổi khoảng cách (Distance Transform _DT) được xây dựng (nhƣ hình 1.4). Ảnh DT là ảnh mà điểm ảnh đại diện cho khoảng cách tới cạnh gần nhất. Để tìm thấy hình dạng đặc trưng, một ý tưởng cơ bản là dựa trên một mẫu phù hợp (ví dụ là một tam giác đều) so với ảnh DT. Để tìm ra mẫu phù hợp tối ưu, sử dụng các phép biến đổi cơ bản như phép xoay, phép tỉ lệ, phép dời. Trong phần mở rộng của ý tưởng Gavrila, các cạnh phải khác nhau theo hướng, để các ảnh DT riêng biệt được tính toán cho các hướng của cạnh riêng biệt và các mẫu được chia thành từng phần dựa trên hướng của chúng. Biện pháp tổng thể phù hợp là tổng hợp các biện pháp kết hợp giữa ảnh DT và các mẫu của hướng đặc biệt. Garvila cũng đã sử dụng một mẫu phân cấp với ý tưởng là các mẫu tương đương nhau được nhóm với nhau thành một prototype, và một khi
  • 26. - 14 - Formatted: Font: 12 pt Formatted: Font: Check spelling and gramm Formatted: Font: 12 pt Formatted: Font: Times New Roman, 12 pt prototype được tìm thấy, tiến trình tìm mẫu tốt nhất trong các prototype sẽ tiết kiệm được chi phí. Hình 1. 4. Xây dựng ảnh biến đổi khoảng cách [9]. Từ trái sang: Ảnh gốc; Ảnh cạnh và ảnh biến đổi khoảng cách; Mẫu cho ảnh DT được tìm kiếm là một tam giác đơn giản. 1.1.3, Phƣơng pháp phát hiện dựa trên máy học Với hai phương pháp tiếp cận bên trên (tiếp cận dựa trên màu sắc và hình dạng) thì để giải quyết bài toán phải tự giải quyết bằng tay (manually). Tuy nhiên, với kiến thức này cũng có thể được phát hiện bằng cách dùng máy học (machine learning). Nghiên cứu của Viola và Jones [16] là một cột mốc quan trong trong lĩnh vực thị giác máy tính (computer vision). Viola và Jones đã phát triển một thuật toán có khả năng xác định một đối tượng trong thời gian thực. Bộ phát hiện được huấn luyện bằng cách sử dụng một tập các mẫu tích cực (positive) vả tiêu cực (negative). Nghiên cứu gốc chỉ dành cho việc phát hiện khuôn mặt, tuy nhiên nhiều nhà nghiên cứu khác cũng đã ứng dụng thành công bộ phát hiện cho nhiều đối tượng khác. Trong số đó, biển báo giao thông cũng được phát hiện thành công. Bộ phát hiện của Viola và Jones kết hợp giữa hai khái niệm Adaboost và bộ phân lớp Haar-like. Đây cũng là phương pháp được nhóm sử dụng trong luận văn và được trình bày chi tiết trong phần 2.2.1 và 2.2.2. 1.2. Giới thiệu thƣ viện mã nguồn mở OpenCV OpenCV là thư viện xử lý thị giác máy tính (computer vision) mã nguồn mở. Thư viện này được viết bằng ngôn ngữ C và C++ và có thể chạy trên các nền tảng
  • 27. - 15 - Formatted: Font: 12 pt Formatted: Font: Check spelling and gramm Formatted: Font: 12 pt Formatted: Font: Times New Roman, 12 pt Linux, Windows và Mac OS X. Ngoài ra còn được phát triển một cách mạnh mẽ trên các ngôn ngữ Python, Ruby, Matlab và một số ngôn ngữ khác. OpenCV được thiết kế cho việc xử lý tính toán tối ưu và tập trung mạnh vào các ứng dụng thời gian thực. Do OpenCV được viết tối ưu hóa bằng ngôn ngữ C nên có thể tận dụng ưu điểm của bộ vi xử lý đa luồng. Ngoài ra Intel còn cung cấp thêm một thư viện Intel’s Intergrated Performance Primitives (IPP) nhằm mục đích tự động tối ưu hơn nữa trên kiến trúc của Intel. Tuy nhiên thư viện này là bản thương mại của Intel. Một trong những mục tiêu của OpenCV là đơn giản hóa những gì có thể trong lĩnh vực thị giác máy tính để hỗ trợ người dùng xây dựng nên những ứng dụng mạnh mẽ, tinh vi một cách nhanh chóng. Thư viện OpenCV có hơn 500 hàm và được chia thành nhiều lĩnh vực thị giác máy như trong an ninh, y tế, robot…[12, trang 1]. 1.2.1, Lịch sử OpenCV OpenCV ra đời là một sáng kiến nghiên cứu của Intel nhằm mục đích đẩy mạnh các ứng dụng của CPU chuyên sâu. Hướng tới mục tiêu này, Intel đã đưa ra nhiều dự án bao gồm theo vết thời gian thực, và những bức tường hiển thị ảnh 3D. Một trong những tác giả làm việc cho Intel thời gian này đã đến thăm một số trường đại học và nhận thấy rằng một số nhóm trường đại học hàng đầu nhưng MIT Media Lab, đã phát triển rất tốt với một nền tảng thị giác máy tính mở (open computer vision) được truyền tay nhau nội bộ giữa các sinh viên. Thay vì phải xây dựng lại những chức năng cơ bản từ đầu thì một sinh viên mới có thể bắt đầu bằng cách xây dựng tiếp dựa trên những gì đã có sẵn. Do đó OpenCV được Intel chú ý và đầu tư nghiên cứu phát triển. Những mục tiêu ban đầu của OpenCV là:  Nâng cao nghiên cứu xử lý thị giác không chỉ là nguồn mở mà còn phải tối ưu hóa mã lệnh (code) cho nền tảng xử lý thị giác cơ bản.  Phổ biến kiến thức xử lý thị giác bằng cách cung cấp những nền tảng chung để các nhà phát triển có thể xây dựng trên nó, vì vậy mà code sẽ có thể dễ dàng đọc được cũng như trong chuyển nhượng.
  • 28. - 16 - Formatted: Font: 12 pt Formatted: Font: Check spelling and gramm Formatted: Font: 12 pt Formatted: Font: Times New Roman, 12 pt  Thúc đẩy ứng dụng thương mại dựa trên thị giác máy tính bằng cách làm cho nó linh hoạt, di động (portable), tối ưu hóa hiệu suất của mã lệnh, cung cấp giấy phép miễn phí mà không yêu cầu các ứng dụng thương mại sẽ mở (open) hoặc miễn phí. Kể từ khi dự án đầu tiên vào năm 1999 (Hình 1.5) thì đến nay thư viện OpenCV là một lĩnh vực tích cực quan trọng của một số tổ chức phát triển cũng như thu hút trên 20.000 thành viên sử dụng trên khắp thế giới , do đó OpenCV được mong đợi có sẽ có nhiều bản cập nhật tốt hơn trong các vấn đề về xử lý thị giác máy tính, robot…[12, Trang 1-3]. Hình 1. 5. Lịch sử phát triển của OpenCV [12, Trang 7]. 1.2.2, Kiến trúc của OpenCV OpenCV có cấu trúc gồm 5 thành phần chính, 4 thành phần trong số đó được thể hiện như trong hình 1.6. Các thành phần CV chứa thuật toán xử lý ảnh cơ bản và các thuật toán cao cấp trong xử lý thị giác máy tính; ML là thư viện phục vụ trong lĩnh vực máy học bao gồm nhiều phân lớp thống kê và các công cụ phân cụm. HighGUI chứa những thành phần nhập xuất và các hàm cho việc lưu trữ và truy xuất hình ảnh, video, và CXCore chứa nội dung và các cấu trúc dữ liệu cơ bản.
  • 29. - 17 - Formatted: Font: 12 pt Formatted: Font: Check spelling and gramm Formatted: Font: 12 pt Formatted: Font: Times New Roman, 12 pt Hình 1. 6. Kiến trúc cơ bản của OpenCV [12, Trang 13]. Trên hình 1.6 không mô tả thành phần CvAux, thành phần này chứa các hàm đã ngừng phát triển, hoặc đang thử nghiệm. CvAux bao gồm:  Stereo vision.  Theo vết 3D.  Theo vết mắt và miệng.  Xác định khung xương của đối tượng trong cảnh. 1.3. Tiểu kết Chương này trình bày một số phương pháp tiếp cận cơ bản trong việc phát hiện, nhận dạng biển báo giao thông đã được áp dụng trong nhiều đề tài nghiên cứu và nền tảng thư viện OpenCV hỗ trợ trong việc xử lý ảnh. Thông qua đó nhóm đã chọn lựa và xác định những thuật toán, công nghệ phù hợp để xây dựng đề tài.
  • 30. - 18 - Formatted: Font: 12 pt Formatted: Font: Check spelling and gramm Formatted: Font: 12 pt Formatted: Font: Times New Roman, 12 pt CHƢƠNG 2: GIỚI THIỆU PHƢƠNG PHÁP NHẬN DẠNG BIỂN BÁO GIAO THÔNG 2.1 Khái quát phƣơng pháp nhận dạng biển báo giao thông đƣợc sử dụng trong đề tài. 2.2 Xác định vùng đặc trƣng chứa biển báo giao thông. 2.3 Giới thiệu phƣơng pháp phân tích thành phần chính (Principle Components Analysis_PCA). 2.4 Nhận dạng biển báo dùng bộ phân lớp Support Vector Machine (SVM). 2.5Tiểu kết. Nội dung chính
  • 31. - 19 - Formatted: Font: 12 pt Formatted: Font: Check spelling and gramm Formatted: Font: 12 pt Formatted: Font: Times New Roman, 12 pt 2.1. Khái quát phƣơng pháp nhận dạng biển báo giao thông sử dụng trong đề tài. Từ ảnh RGB đầu vào ta xác định vùng ảnh chứa biển báo giao thông nguy hiểm và tách vùng ảnh này ra khỏi ảnh đầu vào. Sau đó trích riêng biển báo và so sánh với cơ sở dữ liệu mẫu trong bộ phân loại để nhận dạng biển báo giao thông nguy hiểm. Chi tiết các bước của phương pháp nhận dạng theo quy trình như sau: Sơ đồ 2. 1. Trình tự các bước trong phương pháp nhận dạng biển báo giao thông nguy hiểm. Ảnh RGB đầu vào Xác định vùng đặc trưng chứa biển giao thông Tách vùng ảnh này ra để xử lý Cân bằng Histogram vùng ảnhLoại bỏ những thông tin thừa trong ảnh Trích riêng biển báo giao thông khỏi vùng ảnhChuyển ảnh biển báo về ảnh xám Resize ảnh biển báo về Size 50x50 Dùng PCA để giảm bớt số chiều của ảnh xám Dùng SVM để nhận dạng biển báo Cân bằng Histogram vùng ảnhLoại bỏ những thông tin thừa trong ảnhCân bằng histogram ảnh Formatted: Caption, Left, Space Before: 0 p After: 0 pt, Line spacing: single
  • 32. - 20 - Formatted: Font: 12 pt Formatted: Font: Check spelling and gramm Formatted: Font: 12 pt Formatted: Font: Times New Roman, 12 pt 2.2. Xác định vùng đặc trƣng chứa biển báo giao thông 2.2.1, Đặc trƣng Haar-like Đặ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[16] 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 theo cạnh Hình 2. 2. Đặc trưng theo đường Hình 2. 3. Đặc trưng theo xung quanh tâm Hình 2. 4. Đặc trưng theo đường chéo
  • 33. - 21 - Formatted: Font: 12 pt Formatted: Font: Check spelling and gramm Formatted: Font: 12 pt Formatted: Font: Times New Roman, 12 pt Dựa theo các đặc trưng trên, giá trị của đặc trưng Haar-like được xây dựng bởi độ chênh lệch giữa tổng các pixel của các vùng đen so với tổng các pixel của các vùng trắng. 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) (2.1) Như vậy để tính giá trị đặc trưng Haar-like cần phải thực hiện tính toán tổng các vùng pixel trên ảnh. Điều này làm cho chi phí bài toán lớn không thể đáp ứng các tính năng yêu cầu thời gian thực. Do vậy Viola và Jones đã đề xuất ra khái niệm “Integral Image” (ảnh chia nhỏ) để giảm thiểu chi phí cho bài toán tính giá trị của đặc trưng Haar-like để bài toán có thể xử lý với thời gian thực. Tính “Integral Image” bằng cách sử dụng mảng 2 chiều với kích thước bằng kích thước của ảnh cần tính giá trị đặc trưng Haar-like. Ảnh chia nhỏ ở vị trí (x,y) được tính bằng tổng các giá trị pixel của vùng từ vị trí (0,0) đến vị trí (x-1, y-1). Việc tính toán đơn giản là thực hiện phép cộng số nguyên nên tốc độ thực hiện được tối ưu hóa. Hình 2. 5. Cách tính Integral Image của ảnh (2.2) Kết quả có được sau khi tính Integral Image, việc tính tổng giá trị pixel trong vùng cần tính thực hiện như sau: Gọi vùng cần tính tổng các giá trị pixel là vùng “A4”. P1(x1,y1) = A1; P2(x2,y2) = A1+A2; P3(x3,y3) = A1+A3; P4(x4,y4) = A1+A2+A3+A4; A4 = P4 + P1 – P2 –P3; (2.3) Formatted: Font: Italic Formatted: Font: Italic Formatted: Font: Italic Formatted: Font: Italic Formatted: Font: Italic Formatted: Font: Italic Formatted: Font: Italic Formatted: Font: Italic Formatted: Font: Italic Formatted: Font: Italic Formatted: Font: Italic Formatted: Font: Italic Formatted: Font: Italic Formatted: Font: Italic Formatted: Font: Italic Formatted: Font: Italic Formatted: Font: Italic Formatted: Font: Italic Formatted: Font: Italic Formatted: Font: Italic Formatted: Font: Italic Formatted: Font: Italic Formatted: Subscript Formatted: Font: Italic Formatted: Font: Italic Formatted: Font: Italic Formatted: Font: Italic Formatted: Subscript Formatted: Font: Italic Formatted: Subscript Formatted: Font: Italic Formatted: Subscript
  • 34. - 22 - Formatted: Font: 12 pt Formatted: Font: Check spelling and gramm Formatted: Font: 12 pt Formatted: Font: Times New Roman, 12 pt Hình 2. 6. Cách tính tổng giá trị pixel vùng cần tính. 2.2.2, Thuật toán tăng tốc Adaboost Thuật toán tăng tốc Adaboost là thuật toán máy học được cải tiến từ thuật toán Boosting. Với ưu điểm khả năng giải quyết bài toán nhanh chóng, cài đặt đơn giản và dễ dàng, không có các tham số để điều chỉnh và không cần tri thức về bộ học yếu do đó thuật toán tăng tốc Adaboost được sử dụng nhiều trong các ứng dụng về nhận dạng. 2.2.2.1, Tiếp cận Boosting Boosting là kĩ thuật nâng cao độ chính xác cho các thuật toán máy học. Năm 1989, Schaire đã đưa ra các chứng minh đầu tiên về thuật toán boosting. Và một năm sau đó Freund đã phát triển thuật toán boosting một cách hiệu quả hơn rất nhiều, mặc dù vẫn còn nhiều hạn chế trong thực tế và chỉ tối ưu trong một số trường hợp. Các thực nghiệm đầu tiên với thuật toán boosting được thực hiện bởi Drucker, Schapire và Simard trong chương trình nhận dạng ký tự quang học (OCR_Optical Character Recognition). Mãi đến năm 1995 thuật toán AdaBoost mới chính thức được công bố bởi Freund và Schapire [17]. Nguyên lý cơ bản của thuật toán Boosting là kết hợp các bộ phân loại yếu (weak classifiers) thành một bộ phân loại mạnh (strong classifier). Trong đó bộ phân loại yếu là các bộ phát hiện đơ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át hiện đã được “boost”. Xét một bài toán phát hiện 2 lớp (mẫu cần nhận dạng sẽ được phân vào 1 trong 2 lớp) với D là tập huấn luyện gồm có n mẫu. Trước tiên, chúng ta sẽ chọn ngẫu nhiên ra n1 mẫu từ tập D (n1<n) để tạo tập D1. Sau đó, chúng ta sẽ xây dựng “weak classifier” đầu tiên C1 từ tập D1. Tiếp theo, chúng ta xây dựng tập D2 để huấn luyện bộ phân loại C2. D2 sẽ được xây dựng sao cho một nửa số mẫu của nó được phân loại
  • 35. - 23 - Formatted: Font: 12 pt Formatted: Font: Check spelling and gramm Formatted: Font: 12 pt Formatted: Font: Times New Roman, 12 pt đúng bởi C1 và nửa còn lại bị phân loại sai bởi C1. Bằng cách này, D2 chứa đựng những thông tin bổ sung cho C1. Bây giờ chúng ta sẽ xây huấn luyện C2 từ D2. Tiếp theo, chúng ta sẽ xây dựng tập D3 từ những mẫu không được phân loại tốt bởi sự kết hợp giữa C1 và C2: những mẫu còn lại trong D mà C1 và C2 cho kết quả khác nhau. Như vậy, D3 sẽ gồm những mẫu mà C1 và C2 hoạt động không hiệu quả. Sau cùng, chúng ta sẽ huấn luyện bộ phân loại C3 từ D3. Bây giờ chúng ta đã có một “strong classifier”: sự kết hợp C1, C2 và C3. Khi tiến hành nhận dạng một mẫu X, kết quả sẽ được quyết định bởi sự thỏa thuận của 3 bộ C1, C2 và C3: Nếu cả C1 và C2 đều phân X vào cùng một lớp thì lớp này chính là kết quả phân loại của X; ngược lại, nếu C1 và C2 phân X vào 2 lớp khác nhau, C3 sẽ quyết định X thuộc về lớp nào [ 3, Trang 14-15 ]. Hình 2. 7. Boosting[ 3, Trang 16 ]. 2.2.2.2, AdaBoost AdaBoost (Adaptive Boost) là một bộ phân loại phi tuyến mạnh cải tiến từ thuật toán Boosting, giúp đẩy nhanh việc tạo ra bộ phân loại mạnh (strong classifier) bằng cách chọn các đặc trưng tốt Haar-Like trong bộ phân loại yếu (weak classifier) và kết
  • 36. - 24 - Formatted: Font: 12 pt Formatted: Font: Check spelling and gramm Formatted: Font: 12 pt Formatted: Font: Times New Roman, 12 pt hợp chúng lại tuyến tính để hình thành một bộ phân loại mạnh (strong classifier) bằng cách sử dụng các trọng số (Weight) để đánh dấu các mẫu khó nhận dạng. Cho trước một vài thuật toán học yếu, người ta áp dụng kỹ thuật tăng cường để tạo ra thuật toán học mạnh hơn. Adaboost là thuật toán cho phép ta có thể làm được điều trên. Gồm có 2 giai đoạn chính như sau: [18] Giai đoạn 1: Tạo ra các giả định yếu (weak hypotheses) từ các thuật toán học yếu. Giai đoạn 2: Tạo ra các thuật toán học mạnh từ các giả định yếu. Với một tập dữ liệu huấn luyện, một giả định yếu được khởi tạo như sau: Đầu vào(Input): Cho một tập dữ liệu huấn luyện, N cặp (xi, yi), xi là các vector đặc trưng Haar, yi là giá trị đầu ra mong muốn luôn luôn mang giá trị bằng +1 hoặc -1 (trong đó +1 là đối tượng (object), -1 không phải là đối tượng( background)), và số lượng vòng lặp là T. Đầu ra(Output): Tồn tại một hàm có thể được sử dụng để phân lớp các đặc trưng của vector x. Nếu thì x được phân lớp là -1. Nếu thì x được phân lớp là +1. Khởi tạo(Initialization): Cho trọng số Lặp(Iterate): tính giả định (hypothesis) , trọng số tốt (goodness) , và đồng thời cập nhật lại các trọng số theo các bước sau: Bước 1: Chọn ngẫu nhiên một tập con trong tập dữ liệu huấn luyện. Trong trường hợp này chính là trọng số . Bước 2: Tính toán giả định bằng cách sử dụng bộ phân lớp yếu cho Bước 3: Tính toán sai số của trọng số huấn luyện của . (2.4) Bước 3.1: Nếu thì quay lại bước lặp.
  • 37. - 25 - Formatted: Font: 12 pt Formatted: Font: Check spelling and gramm Formatted: Font: 12 pt Formatted: Font: Times New Roman, 12 pt Bước 3.2: Nếu thì đây không phải là một phân lớp yếu. Khi đó nên tăng thêm số lượng mẫu huấn luyện. Bước 4: Tính toán trọng số tốt của (2. 5) Bước 5: Cập nhật lại trọng số Với Và : Trong đó là thừa số chuẩn hóa sao cho Kết thúc (Termination): (2. 6) Tính chất quan trọng nhất của thuật toán Adaboost là có tốt hơn . Để đánh giả hiệu quả của thuật toán ta định nghịa hàm sai số sau: Khi đó tổng sai số trên N mẫu là: (2.7) 2.3. Giới thiệu phƣơng pháp phân tích thành phần chính (Principle Component Analysis_PCA). 2.3.1, Giới thiệu. Mục đích của phương pháp PCA là loại bỏ đi một số hướng thành phần trong không gian dữ liệu, và chỉ giữ lại các thành phần đặc trưng nhất.
  • 38. - 26 - Formatted: Font: 12 pt Formatted: Font: Check spelling and gramm Formatted: Font: 12 pt Formatted: Font: Times New Roman, 12 pt PCA giúp làm giảm số chiều của dữ liệu. Hay nói theo cách khác thay vì sử dụng các trục tọa độ của không gian cũ, PCA xây dựng một không gian mới có số chiều ít hơn, nhưng lại có thể biểu diễn dữ liệu tốt tương đương không gian cũ, nghĩa là đảm bảo độ biến thiên (variability) của dữ liệu trên mỗi chiều mới [19]. Hình 2.8 là một ví dụ kinh điển hình ảnh của một con lạc đà. Cùng một con nhưng với hai góc nhìn khác nhau thì sẽ có được hai thông tin khác nhau. Hình 2. 8. Phép chiếu lên các trục tọa độ khác nhau có thể cho cách nhìn khác nhau về cùng một dữ liệu. Hoặc một ví dụ khác như hình 2.9 với một tập dữ liệu ban đầu (tập điểm màu xanh) được quan sát trong không gian 3 chiều (trục màu đen), ta dễ dàng nhận thấy 3 trục này không mô tả được dữ liệu một cách tốt nhất. PCA sẽ tìm một hệ trục tọa độ mới ( là trục màu đỏ), với không gian mới dữ liệu được mô tả rõ ràng hơn (hình bên phải màu đỏ). Rõ ràng hình bên phải chỉ cần 2 trục tọa độ nhưng cách thể hiện dữ liệu tốt hơn so với hệ trục ban đầu. Hình 2. 9. Tìm các trục tọa độ mới sao cho dữ liệu có độ biến thiên cao nhất
  • 39. - 27 - Formatted: Font: 12 pt Formatted: Font: Check spelling and gramm Formatted: Font: 12 pt Formatted: Font: Times New Roman, 12 pt 2.3.2, Thuật toán PCA Thuật toán PCA được trình bày lần lượt theo các bước dưới đây[7]: Bƣớc 1: Chuyển đổi ảnh Biểu diễn M ảnh trong không gian 2D thành 1D. Tạo vector có kích thước N (số hàng của ảnh xám x số cột của ảnh xám) như mô tả sau: (2.8) Với: ai là giá trị pixel của ảnh T là chuyển vị của ma trận Si Kết quả chuyển cho M ảnh đưa vào ma trận như sau: Mỗi ảnh là một ma trận cột, ghép M ma trận cột ứng với M ảnh thành một ma trận có kích thước NxM (2. 9) Chỉ số đầu là thành phần của vector, chỉ số sau là thứ tự của ảnh. Bƣớc 2: Tính ảnh trung bình (2.10) Chi tiết công thức trên: (2.11) Bƣớc 3: Trừ mỗi ảnh cho ảnh trung bình Nhằm mục đích tạo ra sự co giãn tương đối giá trị pixel của các ảnh.
  • 40. - 28 - Formatted: Font: 12 pt Formatted: Font: Check spelling and gramm Formatted: Font: 12 pt Formatted: Font: Times New Roman, 12 pt (2.12) Xây dựng ma trận từ các vừa tìm được Đặt: sẽ được ma trận kích thước NxM Bƣớc 4: Xây dựng ma trận Covariance Nhằm mục đích thể hiện sự tương quan của từng vector đối với các vector còn lại trong không gian. cov = AxAT (2.13) Tính trị riêng (eigenvalue: ) và vector riêng (eigenvector: ) của ma trận Covariance này. Đó chính là thành phần đặc trưng thành phần thiết yếu của ảnh. Trong thực tế, giả sử tồn tại một ảnh có kích thước 200x230 (độ rộng và độ cao của ảnh) thì khi đó kích thước của ma trận cov là 46000x46000 (N2 ). Kích thước quá lớn do đó không thể tính trực tiếp trị riêng và vector riêng theo cách này. Vì vậy áp dụng lý thuyết đại số tuyến tính: , có thể tính bằng cách giải quyết trị riêng, vector riêng của ma trận AT A (kích thước MxM nhỏ hơn nhiều so với NxN). Đặt và là các trị riêng và vector riêng của ma trận AT A. Kết quả như sau: (2.14) Nhân mỗi vế của (2.14) cho A sẽ được: với X= (2.15) Điều này cho thấy: M vector riêng của và M trị riêng của đầu tiên tương ứng chính là tích ( A với vector riêng của ) và . Các vector riêng là không gian đặc trưng của các biển báo trong cơ sở dữ liệu ảnh ban đầu. Các vector riêng được sắp xếp theo thứ tự từ cao đến thấp theo trị riêng tương ứng. Vector riêng có trị riêng càng cao sẽ mang nhiều đặc trưng thiết yếu nhất
  • 41. - 29 - Formatted: Font: 12 pt Formatted: Font: Check spelling and gramm Formatted: Font: 12 pt Formatted: Font: Times New Roman, 12 pt trong không gian các biển báo. Ở đây chỉ với M hướng đặc trưng mang giá trị riêng lớn nhất trong không gian NxN không gian đặc trưng. Bƣớc 5: Phép chiếu Chiếu lần lượt các ảnh trong cơ sở dữ liệu đến không gian đặc trưng M, để sinh ra các biển báo đặc trưng trong không gian mới này. (2.16) Với Với là các ma trận đặc trưng các biển báo đã rút trích ra được (gọi là các eigensignal). là vector ảnh thứ i trừ đi ảnh trung bình. Bƣớc 6: Ảnh cần nhận dạng Chuyển đổi ảnh cần nhận dạng thành vector 1 chiều: (2.17) Tính sự sai số của ảnh cần nhận dạng với ảnh trung bình của các ảnh trong cơ sở dữ liệu. Được vector sai số sau: (2.18) Chiếu sai số này lên không gian đặc trưng của các biển báo. (2.19) Bƣớc 7: Nhận dạng biển báo
  • 42. - 30 - Formatted: Font: 12 pt Formatted: Font: Check spelling and gramm Formatted: Font: 12 pt Formatted: Font: Times New Roman, 12 pt Như vậy dựng đặc trưng của ảnh cần nhận dạng và đặc trưng các biển báo trong cơ sở dữ liệu đã được xây dựng. Phân loại biển báo các đơn giản nhất là dùng khoảng cách Euclide. (2.20) 2.4. Nhận dạng biển báo dùng bộ phân lớp Support Vector Machine (SVM) Support Vector Machine (SVM) là phương pháp phân lớp dựa trên lý thuyết thống kê của Vapnik và Alexei Chervonenkis xây dựng vào năm 1960 [7]. Và được sử dụng nhiều trong các ứng dụng nhận dạng chữ viết tay, nhận dạng khuôn mặt, phân loại tài liệu, tin sinh học…So với các phương pháp phân loại khác, khả năng phân loại của SVM là tương đương hoặc tốt hơn đáng kể [7]. Trong luận văn, nhóm nghiên cứu đã biểu diễn biển báo giao thông nguy hiểm dưới dạng vector và áp dụng phương pháp phân loại SVM để phân loại các biển báo giao thông nguy hiểm. 2.4.1, Phân lớp tuyến tính (Linear classifier) Ý tưởng của thuật toán SVM là xây dựng một mô hình để phân loại một đối tượng có thuộc hay không thuộc vào nhóm đối tượng cần quan tâm. Thuật toán SVM sẽ biểu diễn các điểm trong không gian và xác định ranh giới giữa hai nhóm đối tượng sao cho khoảng cách giữa tập dữ liệu được huấn luyện tới ranh giới là xa nhất có thể. Tiến hành xét một bài toán đơn giản là tách hai lớp với tập dữ liệu mẫu đã được huấn luyện. Và sau đó ta có thể mở rộng phương pháp cho nhiều trường hợp tổng quát mà dữ liệu thậm chí không thể tách được phân lớp. Với xi, i = 1, 2 ,.., N là tập các vector đặc trưng của bộ huấn luyện X. Và nó sẽ thuộc về một trong hai lớp w1,w2 và được giả sử rằng tập dữ liệu sẽ được phân lớp tuyến tính. Với mục tiêu là sẽ xây dựng mặt siêu phẳng(hyperplane) để tách chính xác các phân lớp mẫu được huấn luyện được cho bởi phương trình sau: g(x) = wT x + w0 =0 (2.21) Trong đó w là vector trọng số, w0 là độ dịch. Với phương trình (2.21) ta sẽ xác định được mặt siêu phẳng theo như mô tả trong hình 2.10. Trong trường hợp này mặt siêu phẳng là đường thẳng đậm đen liền nét tách
  • 43. - 31 - Formatted: Font: 12 pt Formatted: Font: Check spelling and gramm Formatted: Font: 12 pt Formatted: Font: Times New Roman, 12 pt hai phân lớp tuyến tính. Mặt siêu phẳng giúp dễ dàng tách được hai phân lớp w1,w2. Tuy nhiên trong thực tế mặt siêu phẳng sẽ có nhiều hơn một như trong hình 2.11, ở đây ta có thể dựng được hai mặt siêu phẳng được đánh dấu lần lượt là h1 và h2. Vấn đề cần giải quyết được đặt ra là sẽ chọn mặt siêu phẳng nào để dùng làm ranh giới tách hai phân lớp dữ liệu. Hình 2. 10. Tách hai phân lớp tuyến tính với một mặt siêu phẳng. Hình 2. 11. Tách hai phân lớp tuyến tính với hai mặt siêu phẳng Trong trường hợp hình 2.11 thuật toán SVM sẽ xác định mặt siêu phẳng dùng để tách phân lớp dựa theo khoảng cách cực đại giữa hai mẫu dữ liệu đã được huấn luyện. Theo hình 2.11 có thể dễ dàng thấy được khoảng cách z2 > z1 do đó mặt siêu phẳng h2 sẽ được SVM chọn dùng làm ranh giới để tách hai bộ phân lớp. Và khoảng cách cực đại này còn được gọi là lề(margin), mặt siêu phẳng này còn được gọi là mặt siêu phẳng lề tối đa.
  • 44. - 32 - Formatted: Font: 12 pt Formatted: Font: Check spelling and gramm Formatted: Font: 12 pt Formatted: Font: Times New Roman, 12 pt Độ lớn của lề (margin) được cho như sau: (2.22) Từ phương trình (2.21) khi thay đổi w và w0 hướng và khoảng cách từ gốc tọa độ tới mặt siêu phẳng. Bộ phân loại SVM được định nghĩa như sau: f(x) = sign(wT x + w0 ) (2.23) Nếu f(x) = +1 thì x thuộc về phân lớp đang cần quan tâm, và ngược lại nếu f(x) = -1 thì x thuộc về lớp khác. Phương pháp máy học SVM là tập các mặt siêu phẳng phụ thuộc vào các tham số w và w0. Mục tiêu của phương pháp SVM là ước lượng hai giá trị này để có thể cực đại hóa lề(margin). Với giá trị của lề càng lớn thì mặt siêu phẳng phân lớp càng tốt. Theo hình 2.12 thấy được với độ lớn của lề nhỏ hơn thì khả năng cho kết quả sai sẽ cao hơn. Hình 2. 12. Ví dụ minh họa về độ lớn của lề (margin) Nếu tập dữ liệu huấn luyện là khả tách tuyến tính ta có các ràng buộc sau: wT xi + w0 ≥ +1 nếu yi = +1 (2. 24) wT xi + w0 ≤ -1 nếu yi = -1 (2.25) Hai mặt siêu phẳng có phương trình wT xi + w0 = ± 1 được gọi là mặt siêu phẳng hỗ trợ. Theo hình 2.11 thì mặt siêu phẳng hỗ trợ chính là những đường thẳng nằm song song với mặt siêu phẳng h1, h2.
  • 45. - 33 - Formatted: Font: 12 pt Formatted: Font: Check spelling and gramm Formatted: Font: 12 pt Formatted: Font: Times New Roman, 12 pt Phương pháp có thể tìm được giá trị w và w0 để xây dựng được mặt siêu phẳng lề tối ưu là phải giải bài toán tối ưu toàn phương (Quadratic Programming). Cực đại hóa: (2. 26) Với các ràng buộc sau: (2. 27) (2.28) Trong đó các hệ số Lagrange là các biến số cần phải tối ưu hóa. Vector w sẽ được tính từ các nghiệm của bài toán toàn phương như sau: (2.29) Để xác định độ dịch w0, ta chọn xi sao cho , sau đó sử dụng điều kiện Karush-Kuhn-Tucker (KKT) như sau: (2.30) Với là những mẫu nằm gần mặt siêu phẳng nhất và được gọi là các vector hỗ trợ (Support Vector). Theo hình 2.13 những mẫu được gọi là Support Vector là các mẫu xanh hoặc đỏ được khoanh tròn và nằm trên mặt siêu phẳng hỗ trợ (do dấu của bất đẳng thức bằng +1 nếu đây là mẫu cần quan tâm và bằng -1 với các mẫu còn lại).
  • 46. - 34 - Formatted: Font: 12 pt Formatted: Font: Check spelling and gramm Formatted: Font: 12 pt Formatted: Font: Times New Roman, 12 pt Hình 2. 13. Minh họa các mẫu được gọi là Support Vector. 2.4.2, Phân lớp phi tuyến (Nonlinear classifier) Thực tế trong trường hợp tổng quát, mặt phân hoạch có thể là một mặt phi tuyến bất kì (Hình 2.14). Và ta chỉ cần ánh xạ vector dữ liệu vào không gian đặc trưng có số chiều cao hơn nhiều. Ví dụ theo hình 2.14 giả sử các mẫu xi thuộc không gian Rn , không gian này được gọi là không gian giả thiết (hypothesis space). Để tìm mặt phi tuyến trong không gian này, ta ánh xạ các vector mẫu xi từ Rn vào một không gian Rd có số chiều lớn hơn (d > n, d có thể bằng ∞). Rd được gọi là không gia đặc trưng (feature space). Sau đó áp dụng phương pháp SVM tuyến tính để tìm ra một siêu phẳng phân hoạch trong không gian đặc trưng Rd . Siêu phẳng này sẽ là ứng với mặt phi tuyến trong không gian Rd .[ 6 ] Hình 2. 14. Một mặt phân chia phi tuyến có thể trở thành một siêu phẳng trong không gian lớn hơn
  • 47. - 35 - Formatted: Font: 12 pt Formatted: Font: Check spelling and gramm Formatted: Font: 12 pt Formatted: Font: Times New Roman, 12 pt Trong không gian đặc trưng (feature space) này, các điểm dữ liệu trở thành khả tách tuyến tính, hoặc có thể phân tích với ít lỗi hơn so với trường hợp sử dụng không gian ban đầu. Khi đó, bài toán quy hoạch toàn phương ban đầu trở thành như sau: Cực đại hóa: (2.31) với các ràng buộc sau: (2.32) (2.33) Trong đó k là một hàm nhân (kernel function) thỏa mãn: (2.34) Với việc sử dùng hàm nhân (kernel function), thì ta không cần quan tâm về ánh xạ . Bằng cách chọn một hàm nhân phù hợp, ta sẽ xây dựng được nhiều bộ phân loại khác nhau. Ví dụ, chọn nhân đa thức dẫn đến bộ phân loại đa thức, nhân Gaussian dẫn đến bộ phân loại RBF (Radial Basis Functions)[1]. 2.5. Tiểu kết Chương này nhóm nghiên cứu trình bày phương pháp tổng quát được sử dụng trong đề tài. Nhóm cũng nêu ra những cơ sở lý thuyết về thuật toán trích xuất đặc trưng Haar-like, bộ tăng tốc Adadboost, phương pháp rút đặc trưng Principle Components Analysis, phương pháp nhận dạng biển báo giao thông dùng thuật toán Support Vector Machine.
  • 48. - 36 - Formatted: Font: 12 pt Formatted: Font: Check spelling and gramm Formatted: Font: 12 pt Formatted: Font: Times New Roman, 12 pt CHƢƠNG 3: THIẾT KẾ VÀ XÂY DỰNG CHƢƠNG TRÌNH 3.1 Chức năng của chƣơng trình. 3.2 Xây dựng chƣơng trình. 3.3 Tiểu kết Nội dung chính
  • 49. - 37 - Formatted: Font: 12 pt Formatted: Font: Check spelling and gramm Formatted: Font: 12 pt Formatted: Font: Times New Roman, 12 pt 3.1. Chức năng của chƣơng trình Chương trình được viết bằng ngôn ngữ lập trình C++ trong bộ phần mềm Visual Studio 2010 của Microsoft, cùng với sự hỗ trợ của bộ thư viện xử lý ảnh OpenCV của Intel.  Chương trình được xây dựng với 3 chức năng chính: o Phát hiện và nhận dạng biển báo qua ảnh tĩnh. o Phát hiện và nhận dạng biển báo qua video clip quay sẵn với định dạng AVI. o Phát hiện và nhận dạng biển báo qua camera gắn trực tiếp với hệ thống.  Ngoài ra còn có một số chức năng phụ như: o Tạo bộ cơ sở dữ liệu cho quá trình học nhận dạng. o Huấn luyện nhận dạng biển báo cho chương trình. 3.2. Xây dựng chƣơng trình 3.2.1, Xây dựng cơ sở dữ liệu ảnh biển báo Ả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: o Ảnh Positive: là những ảnh có chứa đối tượng cần được phát hiện, cụ thể là ảnh có chứa biển báo. o Ảnh Negative: là ảnh không chứa đối tượng biển báo. 3.2.1.1, Nguồn ảnh Quá trình thu thập ảnh cho mục đích huấn luyện, nhóm đồng thời sử dụng nhiều phương pháp khác nhau để có được bộ dữ liệu ảnh. Các nguồn ảnh được nhóm sử dụng: o Google image. o Ảnh trích xuất từ video clip tự quay hoặc sưu tầm từ YouTube. o Ảnh tự chụp từ thực tế. Quá trình huấn luyện của máy học đòi hỏi hàng ngàn tấm ảnh ở những điều kiện ánh sáng, tương phản khác nhau, để tạo được bộ ảnh như vậy tốn khá nhiều thời
  • 50. - 38 - Formatted: Font: 12 pt Formatted: Font: Check spelling and gramm Formatted: Font: 12 pt Formatted: Font: Times New Roman, 12 pt gian nên nhóm đưa ra ý tưởng quay các đoạn video của biển báo sau đó viết một chương trình nhỏ để tách thành các frame ảnh từ đó khiến cho việc sưu tập bộ dữ liệu được nhanh chóng hơn và đặc biệt là có được những tấm ảnh với những đặc trưng đa dạng. Từ những phương pháp trên nhóm xây dựng được bộ dữ liệu ảnh gồm 1848 ảnh Positive và 2805 ảnh Negative dùng cho việc huấn luyện máy học. Các ảnh được lưu trữ ở định dạng BMP. 3.2.1.2, Phân loại ảnh Theo thông tư số 22TCN 237-01 biển báo nguy hiểm gồm 46 kiểu được đánh số từ 201 đến 246. Dựa theo tình hình khảo sát thực tế [Phụ lục 1] tại thành phố Biên Hòa, nhóm đã phân loại ra các loại biển báo nguy hiểm phổ biến để tiến hành nghiên cứu như theo bảng 3.1. Bảng 3.1. Một số biển báo giao thông đƣợc bộ đƣợc nhóm nghiên cứu. Bảng 3. 1. Một số biển báo giao thông được bộ được nhóm nghiên cứu. Biển Báo Ý Nghĩa - Biển báo số 201a “Chỗ ngoặt nguy hiểm vòng bên trái”. - Biển báo số 201b “Chỗ ngoặt nguy hiểm vòng bên phải”. - Biển báo số 202 “Nhiều chỗ ngoặt nguy hiểm liên tiếp”. - Biển báo 205e “Đường giao nhau”. - Biển báo 207a “Giao nhau với đường không ưu tiên”. - Biển báo 207b “Giao nhau với đường không ưu tiên”. - Biển báo 207c “Giao nhau với đường không ưu tiên”. - Biển báo 209 “Giao nhau có tín hiệu đèn”. - Biển báo 210 “Giao nhau với đường sắt có rào chắn”. Formatted: Font: Bold Formatted: Centered Formatted: Font: Bold
  • 51. - 39 - Formatted: Font: 12 pt Formatted: Font: Check spelling and gramm Formatted: Font: 12 pt Formatted: Font: Times New Roman, 12 pt- Biển báo 225 “Trẻ em”. 3.2.2, Huấn luyện phát hiện biển báo trong ảnh Để thực hiện quá trình huấn luyện phát hiện các biển báo nguy hiểm trong ảnh, nhóm sử dụng bộ công cụ HaarKit. Bộ công cụ HaarKit bao gồm các chương trình hỗ trợ cho việc huấn luyện máy học. Quá trình huấn luyện trải qua 3 bước: - Chuẩn bị dữ liệu ảnh huấn luyện. - Lấy mẫu đối tượng từ bộ dữ liệu. - Huấn luyện máy học. 3.2.2.1, Chuẩn bị dữ liệu Tập ảnh Positive có chứa đối tượng biển báo được đặt tên theo thứ tự và chép vào trong thư mục “rawdata” có đường dẫn “haarkittemppositiverawdata”. Hình 3. 1. Tập ảnh Positive trong thư mục “rawdata” Tập ảnh Negative không chứa đối tượng biển báo được đặt tên theo thứ tự và chép vào trong thư mục “negative” có đường dẫn “haarkittempnegative”.
  • 52. - 40 - Formatted: Font: 12 pt Formatted: Font: Check spelling and gramm Formatted: Font: 12 pt Formatted: Font: Times New Roman, 12 pt Hình 3. 2. Tập ảnh Negative trong thư mục “negative” Chạy file “create_list.bat” trong thư mục “negative” để tạo ra file “inforfile.txt” chứa tên tất cả các file ảnh Negative mỗi tên trên một dòng. Hình 3. 3. Nội dung file “inforfile.txt” sau khi chạy file “create_list.bat” 3.2.2.2, Lấy mẫu dữ liệu huấn luyện Sử dụng chương trình ObjectMaker trong thư mục “positive” để đánh dấu vùng chứa đặc trưng của đối tượng biển báo.
  • 53. - 41 - Formatted: Font: 12 pt Formatted: Font: Check spelling and gramm Formatted: Font: 12 pt Formatted: Font: Times New Roman, 12 pt Hình 3. 4. Chương trình ObjectMaker trong thư mục “positive”. Trình ObjectMaker lần lượt duyệt qua từng ảnh trong thư mục “rawdata” hiện lên màn hình để đánh dấu đối tượng. Hình 3. 5. Đánh dấu đối tượng trong trình ObjectMaker Sau khi đã hoàn thành đánh dấu đối tượng, trình ObjectMaker tạo ra file “info.txt” chứa thông tin đối tượng biển báo trong ảnh.
  • 54. - 42 - Formatted: Font: 12 pt Formatted: Font: Check spelling and gramm Formatted: Font: 12 pt Formatted: Font: Times New Roman, 12 pt Hình 3. 6. Nội dung file “info.txt”. Cấu trúc file “info.txt” : o Cột đầu tiên là tên ảnh. o Cột thứ hai là số lượng đối tượng trong ảnh. o Cột thứ ba và tư là tọa độ đỉnh trên bên trái của đối tượng trong ảnh. o Cột thứ năm là độ rộng của đối tượng. o Cột thứ sáu là độ cao của đối tượng. 3.2.2.3, Huấn luyện máy học (Machine Learning) Quá trình này gồm 2 bước : Bƣớc 1 : Tạo ra file vector đưa vào huấn luyện ở bước 2. Ở bước này nhóm sử dụng trình “createsamples.exe” của bộ HaarKit tạo ra file “vector.vec” từ các pixel của ảnh. Để gọi trình “createsamples.exe” nhóm sử dụng file “samples_creation.bat” được cung cấp kèm theo bộ HaarKit với những tham số phù hợp. Hình 3. 7. Nội dung file “samples_creation.bat”
  • 55. - 43 - Formatted: Font: 12 pt Formatted: Font: Check spelling and gramm Formatted: Font: 12 pt Formatted: Font: Times New Roman, 12 pt Giải thích ý nghĩa tham số được nhóm sử dụng: o “-info positive/info.txt” chỉ đến file “info.txt” là file chứa thông tin về tọa độ đối tượng đã được tạo ở trên. o “-vec data/vector.vec” đường dẫn để lưu file “vector.vec” ở trong thư mục “data”. o “-num 1848” là số lượng ảnh Positive có chứa đối tượng. o “-w 24 -h 24” là kích thước của mẫu. Vì quá trình huấn luyện đòi hỏi các mẫu cần có kích thước giống nhau cụ thể ở đây nhóm sử dụng là 24x24 nên ảnh gốc sẽ được thay đổi kích thước và đóng gói thành file vec. Giá trị kích thước này có thể là bất kì phụ thuộc vào tỉ lệ của đối tượng cần phát hiện nhưng đối tượng có kích thước nhỏ hơn sẽ không được phát hiện. Về cơ bản thì file vec này được sử dụng để tăng tốc quá trình máy học. Sau bước này nhóm có được file “vector.vec”. Bƣớc 2: Học huấn luyện với HaarTraining Ở bước này nhóm tiếp tục sử dụng các chương trình trong bộ HaarKit để tạo ra file “xml” gồm dữ liệu các đặc trưng của đối tượng dùng trong chương trình nhận dạng sau này. Đầu tiên nhóm sử dụng trình “haartraining.exe” để tạo ra các phân tầng. Để gọi trình “haartraining.exe” nhóm cũng sử dụng file “haarTraining.bat” được cung cấp kèm theo với những thay đổi tham số phù hợp. Hình 3. 8. Nội dung file “haarTraining.bat” Ý nghĩa các tham số: o “-data data/cascade” đường dẫn đến thư mục lưu trữ các phân tầng. o “-vec data/vector.vec” đường dẫn đến file “vector.vec” đã tạo ở bước 1. o “-bg negative/infofile.txt” đường dẫn đến file bao gồm các mẫu ảnh Negative. o “-npos 1848” là số lượng ảnh Positive. o “-nneg 2805” là số lượng ảnh Negative.
  • 56. - 44 - Formatted: Font: 12 pt Formatted: Font: Check spelling and gramm Formatted: Font: 12 pt Formatted: Font: Times New Roman, 12 pt o “-nstages 25” là số giai đoạn phân tầng. o “-mem 1000” là dung lượng bộ nhớ mà chương trình có thể dùng trong quá trình huấn luyện tính bằng MB. o “-mode ALL” giá trị mặc định. o “-w 24 –h 24” là kích thước của mẫu, giá trị này trùng với giá trị được sử dụng khi tạo file “vector.vec”. o “-nonsym” khai báo mẫu không đối xứng. Quá trình huấn luyện này, với cấu hình máy tính được nhóm sử dụng là: o CPU Core 2 Duo E7400 2.8GHz. o Ram 2 GB. Thì thời gian huấn luyện là xấp xỉ 340 giờ liên tục. Sau khi giai đoạn này hoàn tất nhóm có được các phân lớp đặc trưng của đối tượng. Hình 3. 9. Kết quả phân tầng Để có thể xử dụng được trong chương trình, nhóm tiếp tục sử dụng trình “haarconv.exe” để tạo ra file xml chứa dữ liệu đã học được. Tương tự như các bước trước, để dễ dàng thực hiện lệnh nhóm sử dụng file “convert.bat” với những tham số thay đổi phù hợp.
  • 57. - 45 - Formatted: Font: 12 pt Formatted: Font: Check spelling and gramm Formatted: Font: 12 pt Formatted: Font: Times New Roman, 12 pt Hình 3. 10. Nội dung file “convert.bat” Ý nghĩa các tham số: o “data” là thư mục chứa các phân lớp vừa tạo được ở bước trên được đánh số từ 0 đến n. o “output.xml” là tên file xml được tạo ra. o “24 24” là kích thước của mẫu. Chạy trình “haarconv.exe” với các tham số như trên nhóm thu được file xml cần thiết. Hình 3. 11. Cấu trúc của một tập tin XML
  • 58. - 46 - Formatted: Font: 12 pt Formatted: Font: Check spelling and gramm Formatted: Font: 12 pt Formatted: Font: Times New Roman, 12 pt Hình 3. 12. Kết quả ảnh biển số 201a nhận được. Hình 3. 13 Hình 3. 14. Kết quả ảnh biển số 210 nhận được. Quá trình huấn luyện phát hiện biển báo được thể hiện trong sơ đồ 3.1 như sau: Formatted: Font: Not Bold Formatted: Font: Not Bold
  • 59. - 47 - Formatted: Font: 12 pt Formatted: Font: Check spelling and gramm Formatted: Font: 12 pt Formatted: Font: Times New Roman, 12 pt Sơ đồ 3. 1. Sơ đồ huấn luyện phát hiện biển báo trong ảnh. 3.2.3, Huấn luyện nhận dạng biển báo Quá trình huấn luyện nhận dạng biển báo sử dụng 2 thuật toán PCA và SVM. Bộ ảnh dùng cho huấn luyện nhận dạng được nhóm tận dụng lại một phần ảnh đã sử dụng cho bước huấn luyện phát hiện biển báo ở trên đồng thời bổ sung thêm một số ảnh cho đa dạng. Ảnh dùng trong quá trình này cần có độ đa dạng về điều kiện môi trường, góc chụp, ánh sáng khác nhau nhằm giúp cho việc nhận dạng sau này được tốt hơn. File “TrafficSignThaiTam.xml” File “vector.vec” Trình “CreateSample.exe” với tham số file “info.txt” File “info.txt” Ảnh Positive trong thư mục “haarkittemppositiverawdata” Trình “ObjectMaker” lấy mẫu đối tượng Ảnh Negative trong thư mục “haarkittempnegative” File “inforfile.txt” chứa tên tất cả các file ảnh Negative Trình “haartraining.exe” với tham số file “vector.vec” Các phân lớp đặc trưng Trình “haarconv.exe” Formatted: Normal, Centered, Space Before: pt, After: 0 pt, Add space between paragraph of the same style, Line spacing: single Formatted: Font: Bold Formatted: Centered Formatted: Centered Formatted: Centered Formatted: Centered Formatted: Centered Formatted: Centered Formatted: Centered Formatted: Centered Formatted: Centered Formatted: Centered Formatted: Centered
  • 60. - 48 - Formatted: Font: 12 pt Formatted: Font: Check spelling and gramm Formatted: Font: 12 pt Formatted: Font: Times New Roman, 12 pt Bộ ảnh huấn luyện nhận dạng gồm 500 ả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ự. Hình 3. 15. Một số mẫu huấn luyện nhận dạng. Bước đầu là chuẩn bị cho dữ liệu học, nhóm sử dụng hàm TaoCSDLHoc nhằm lấy được biển báo ra khỏi ảnh, loại bỏ những thông tin thừa, đưa ảnh về kích thước 50x50 pixels và chuyển sang ảnh xám. Tiếp theo sử dụng hàm HuanLuyenNhanDang để tạo ra các tập tin dữ liệu cần thiết cho việc nhận dạng.
  • 61. - 49 - Formatted: Font: 12 pt Formatted: Font: Check spelling and gramm Formatted: Font: 12 pt Formatted: Font: Times New Roman, 12 pt Bƣớc 1: Hàm tạo ra ma trận gamma gồm K dòng và M cột với K = 50x50 và M là tổng số lượng biển báo huấn luyện. Ma trận “gamma” chứa thông tin của tất cả các biển báo huấn luyện, mỗi biển báo là một cột. Bƣớc 2: Tính giá trị trung bình lưu vào ma trận “psi” gồm K dòng và 1 cột. Bƣớc 3: Lấy ảnh trong ma trận “gamma” trừ đi ảnh trung bình trong ma trận “psi”. Bƣớc 4: Nhân ma trận “gamma” với ma trận chuyển vị của nó tạo thành ma trận “L” gồm M dòng M cột. Bƣớc 5: Sử dụng hàm cvEigenVV(L,evects,evals) của bộ thư viện OpenCV để tính giá trị riêng lưu vào ma trận “evals” và vector riêng lưu vào ma trận “evects”. Bƣớc 6: Xây dựng ma trận covariance “eigenTT” gồm K dòng, M1 cột, với M1 = M/2. Bƣớc 7: Tạo ma trận “omega” gồm M dòng, M1 cột dùng làm dữ liệu cho huấn luyện SVM. Bƣớc 8: Sử dụng hàm KhoiTaoSVMOpenCV(CvSVM* svm, CvMat* trainData) để tạo file huấn luyện SVM. Bƣớc 9: Ghi dữ liệu đã học ra file để sử dụng lại trong chương trình. Sau khi hoàn thành giai đoạn huấn luyện nhận dạng, nhóm thu được các tập tin dữ liệu cần thiết để có thể lập trình chương trình nhận dạng biển báo. Các tập tin được tạo ra bao gồm “eigenTT.txt”, “psiTT.txt”, “svmtrained.xml”. Hình 3. 16. Một phần nội dung file “eigenTT.txt”.
  • 62. - 50 - Formatted: Font: 12 pt Formatted: Font: Check spelling and gramm Formatted: Font: 12 pt Formatted: Font: Times New Roman, 12 pt Hình 3. 17. Một phần nội dung file “psiTT.txt”. Hình 3. 18. Một phần nội dung file “svmtrained.xml”
  • 63. - 51 - Formatted: Font: 12 pt Formatted: Font: Check spelling and gramm Formatted: Font: 12 pt Formatted: Font: Times New Roman, 12 pt Quá trình huấn luyện nhận dạng biển báo được thể hiện trong sơ đồ 3.2 như sau: Lấy ảnh trong “gamma” trừ đi ảnh trung bình Xây dựng ma trận covariance “eigenTT” Tạo ma trận “omega” làm tham số cho SVM Hàm “KhoiTaoSVMOpenCV” Hàm “HuanLuyenNhanDang” Chuyển các ảnh xám thành ma trận vector “gamma” Tính ảnh trung bình “psi” Dữ liệu huấn luyện Hàm “TaoCSDL” Ảnh xám, 50x50, bỏ thông tin thừa File “eigenTT.txt” File “psiTT.txt” File “svmtrained.xml” Formatted: Vietnamese
  • 64. - 52 - Formatted: Font: 12 pt Formatted: Font: Check spelling and gramm Formatted: Font: 12 pt Formatted: Font: Times New Roman, 12 pt Sơ đồ 3. 2. Sơ đồ huấn luyện nhận dạng biển báo 3.2.4, Chƣơng trình nhận dạng. 3.2.4.1, Sơ đồ hoạt động của chƣơng trình Lấy ảnh trong “gamma” trừ đi ảnh trung bình Xây dựng ma trận covariance “eigenTT” Tạo ma trận “omega” làm tham số cho SVM Hàm “KhoiTaoSVMOpenCV” Hàm “HuanLuyenNhanDang” Chuyển các ảnh xám thành ma trận vector “gamma” Tính ảnh trung bình “psi” Dữ liệu huấn luyện Hàm “TaoCSDL” Ảnh xám, 50x50, bỏ thông tin thừa File “eigenTT.txt” File “psiTT.txt” File “svmtrained.xml”
  • 65. - 53 - Formatted: Font: 12 pt Formatted: Font: Check spelling and gramm Formatted: Font: 12 pt Formatted: Font: Times New Roman, 12 pt Sơ đồ 3. 3. Sơ đồ hoạt động chương trình. Bắt đầu Load các dữ liệu cần thiết Nhập ảnh đầu vào Có biển báo K N CY Tách biển báo và chuyển thành ảnh xám Xử lý nhận dạng Hiển thị kết quả Kết thúc Formatted: Centered Formatted: Centered Formatted: Centered Formatted: Centered Formatted: Centered Formatted: Centered Formatted: Centered Formatted: Centered
  • 66. - 54 - Formatted: Font: 12 pt Formatted: Font: Check spelling and gramm Formatted: Font: 12 pt Formatted: Font: Times New Roman, 12 pt 3.2.4.2, Giao diện và cách sử dụng  Giao diện chính của chương trình có 7 nút chức năng Hình 3. 19.Giao diện chính của chương trình  Nút Start : dùng khởi động chương trình và tải các dữ liệu cần thiết.  Nút Detect from IMAGE: sử dụng khi muốn nhận dạng trên ảnh tĩnh.  Nút Detect from AVI: sử dụng khi muốn nhận dạng trên video định dạng AVI.  Nút Detect from CAM: sử dụng khi lắp đặt chương trình với camera bên ngoài.  Nút Help: Giới thiệu và hướng dẫn sử dụng.  Nút Power: Đóng chương trình.  Nút Learn: Gồm 2 chức năng là tạo cơ sở dữ liệu cho việc học nhận dạng và huấn luyện nhận dạng bằng PCA và SVM.  Sử dụng chương trình:  Khởi động chương trình bằng cách chạy file “NCKHThaiTam.exe”.  Bấm nút Start để tải các dữ liệu cần thiết cho chương trình hoạt động.  Lựa chọn hình thức muốn dùng: o Detect from IMAGE: chọn một ảnh tĩnh có chứa biển báo cần nhận dạng.
  • 67. - 55 - Formatted: Font: 12 pt Formatted: Font: Check spelling and gramm Formatted: Font: 12 pt Formatted: Font: Times New Roman, 12 pt Hình 3.19. Giao diện chọn ảnh. o Detect from AVI: chọn một file video định dạng AVI. Hình 3.20. Giao diện chọn video clip.
  • 68. - 56 - Formatted: Font: 12 pt Formatted: Font: Check spelling and gramm Formatted: Font: 12 pt Formatted: Font: Times New Roman, 12 pt o Detect from CAM: chương trình sẽ tự động dò tìm và sử dụng camera tích hợp. 3.3. Tiểu kết Chương này nhóm trình bày chi tiết về quy trình xây dựng và cách sử dụng toolkit hỗ trợ cho chương trình phát hiện và nhận dạng biển báo giao thông của nhóm.
  • 69. - 57 - Formatted: Font: 12 pt Formatted: Font: Check spelling and gramm Formatted: Font: 12 pt Formatted: Font: Times New Roman, 12 pt CHƢƠNG 4: ĐÁNH GIÁ KẾT QUẢ CHƢƠNG TRÌNH 4.1Đánh giá kết quả. 4.2Ƣu và nhƣợc điểm của chƣơng trình. 4.3 Tiểu kết. Nội dung chính