Formatted: Font: 12 pt Formatted: Font: Times New Roman, 12 pttrì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
Trang 1TRƯỜ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
Trang 2TRƯỜ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
Trang 3LỜ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
Trang 4NHẬ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
Trang 5MỤ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
Trang 62.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
Trang 74.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
Trang 8IPP Intergrated Performance Primitives
Trang 9DANH 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
Trang 10Hì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
Trang 11Hì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,
Trang 12Bảng 4 1 Kết quả nhận dạng biển báo giao thông 64 Formatted: Default Paragraph Font, Font: Not
Bold, Check spelling and grammar
Formatted: Normal, Justified, Tab stops: Not at
15.98 cm
Trang 13Formatted: 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á
Trang 14Formatted: 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…
Trang 15Formatted: 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
Trang 16Formatted: 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]
Trang 17Formatted: 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
Trang 18Formatted: 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
Trang 19Formatted: 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
Trang 20Formatted: 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
Trang 21Formatted: 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
Formatted: Centered
Trang 22Formatted: 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
Trang 23Formatted: 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
Trang 24Formatted: 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
Trang 25Formatted: 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
Trang 26Formatted: 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
Trang 27Formatted: 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
Trang 28Formatted: 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
Trang 29Formatted: 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:
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
Trang 30Formatted: 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
Trang 31Formatted: 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
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 pt,
After: 0 pt, Line spacing: single
Trang 32Formatted: 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
Trang 33Formatted: 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
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;
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
Trang 34Formatted: 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
Trang 35Formatted: 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
Trang 36Formatted: 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 , y i ), x i là các vector
đặc trưng Haar, y i 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)
Trang 37Formatted: 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
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.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
Trang 38Formatted: 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
Trang 39Formatted: 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:
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
Trang 40Formatted: 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
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
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 A T
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 A T
A Kết quả như sau:
(2.14)
Nhân mỗi vế của (2.14) cho A sẽ được:
Đ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