NHẬN DẠNG BIỂN BÁO GIAO THÔNG ĐƯỜNG BỘ Nghiên cứu tìm hiểu các phương pháp nhận dạng biển báo giao thông và cài đặt thử nghiệm chương trình phát hiện và nhận dạng biển báo giao thông đường bộ từ hình ảnh tĩnh và video thu về, sau đó hiển thị thông tin cảnh báo dưới dạng hình ảnh.
Trang 1HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN
THÔNG -
Trang 2Luận văn được hoàn thành tại:
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
Người hướng dẫn khoa học: TS NGUYỄN ĐỨC DŨNG
Phản biện 1:
Phản biện 2:
Luận văn sẽ được bảo vệ trước Hội đồng chấm luận văn thạc sĩ tại Học viện Công nghệ Bưu chính Viễn thông Vào lúc: giờ ngày tháng năm
Có thể tìm hiểu luận văn tại:
- Thư viện của Học viện Công nghệ Bưu chính Viễn thông
Trang 3MỞ ĐẦU
Lý do chọn đề tài
Ngày nay, khi tốc độ phát triển kinh tế, công nghiệp và dịch vụ ngày càng tăng, nhu cầu giao thông đi lại của con người càng trở thành vấn đề quan trọng Tuy nhiên, Việt Nam giao thông luôn là một vấn đề nóng của
xã hội Từ quy mô phát triển đến cơ sở hạ tầng Ý thức tự giác và cảnh giác của người tham gia giao thông tại Việt Nam lại chưa cao
Theo số liệu thống kê của Ủy ban An toàn giao thông Quốc gia, trong 9 tháng đầu năm 2013, cả nước đã xảy ra 23.619 vụ tai nạn, làm chết 6.908 người và 25.002 người bị thương Từ tình hình thực tế giao thông tại Việt Nam, có nhiều nguyên nhân gây ra các vụ tai nạn giao thông đường bộ, nhưng phần lớn là do tài xế không làm chủ tốc độ, không quan sát hoặc không kịp nhận ra các loại biển báo và tín hiệu giao thông Đây là những nguy hiểm đã được cảnh báo trước nhưng tai nạn vẫn thường xuyên xảy ra, gây không ít thiệt hại về tính mạng và tài sản của người tham gia giao thông
Trang 4Cho đến nay vấn đề này được nhiều nghiên cứu trên thế giới quan tâm Nhưng những biển báo giao thông được nghiên cứu không phải dùng cho giao thông đường
bộ tại Việt Nam Trong khi đó tình hình nghiên cứu biển báo giao thông tại Việt Nam vẫn còn nhiều hạn chế và chưa đầy đủ
Vì vậy, luận văn đã chọn đề tài “Nhận dạng biển báo giao thông đường bộ” để nghiên cứu với mục đích
hiểu được nền tảng công nghệ, các lý thuyết cơ bản trong bài toán xử lý ảnh và áp dụng trong việc nhận dạng biển báo giao thông một cách tự động
Mục đích nghiên cứu
- Nghiên cứu tìm hiểu các phương pháp nhận dạng biển báo giao thông và cài đặt thử nghiệm chương trình phát hiện và nhận dạng biển báo giao thông đường
bộ từ hình ảnh tĩnh và video thu về, sau đó hiển thị thông tin cảnh báo dưới dạng hình ảnh
Đối tượng và phạm vi nghiên cứu
Biển báo giao thông đường bộ ở Việt Nam
Phương pháp nghiên cứu
Trang 5- Tìm hiểu bộ ảnh biển báo giao thông đường bộ tại Việt Nam, thu thập hình ảnh, video biển báo giao thông từ các nguồn khác nhau (google image, tự chụp, …)
- Tìm hiểu phương pháp phát hiện biển báo giao thông dựa trên trích chọn đặc trưng Haar-like kết hợp với
bộ tăng tốc Adaboost
- Tìm hiểu phương pháp nhận dạng biển báo giao thông đường bộ: Luận văn có sử dụng phương pháp phân tích thành phần chính Principal Components Analysis (PCA) và máy vector hỗ trợ Support Vector Machine (SVM) để nhận dạng biển báo giao thông
- Cài đặt chương trình thử nghiệm và đánh giá kết quả nhận dạng
Bố cục luận văn
Luận văn chia thành ba phần chính: Phần mở đầu, phần nội dung và phần kết luận
Phần mở đầu: Nêu lên lý do chọn đề tài, đối tượng
và phạm vi nghiên cứu và phương pháp nghiên cứu của đề tài
Phần nội dung:
Trang 6Chương 1: Tổng quan về xử lý ảnh Chương này
trình bày những lý thuyết cơ bản về xử lý ảnh, tổng quát các phương pháp phổ biến trong quá trình phát hiện và nhận dạng đối tượng
Chương 2: Phát hiện và nhận dạng ảnh Phát
biểu bài toán nhận dạng biển báo giao thông và trình bày nền tảng công nghệ, chi tiết các thuật toán hỗ trợ trong việc phát hiện và nhận dạng biển báo bao gồm: Trích chọn đặc trưng Haar-like, bộ tăng tốc Adaboost, phân tích thành phần chính PCA và bộ phân lớp SVM
Chương 3: Cài đặt và thử nghiệm Tác giả sử
dụng ngôn ngữ VC++ MFC của bộ Visual Studio 2008, và
bộ thư viện xử lý ảnh mã nguồn mở OpenCV của Intel để xây dựng chương trình Sau đó phân tích và đánh giá kết quả nhận dạng
Cuối cùng là Phần kết luận và hướng phát triển
của đề tài
Trang 71.3.2.2 Kỹ thuật phát hiện biên Laplace
1.3.2.3 Kỹ thuật phát hiện biên theo phương pháp Canny
1.3.3 Phát hiện biên gián tiếp
Trang 8thuộc tính là khả năng bảo toàn tính đặc thù để phân biệt
có trong ảnh, đồng thời phải có tính cô đọng, hỗ trợ chặt chẽ cho quá trình đối sánh và ít bị tác động bởi nhiễu hoặc sai lệch trong ảnh Ngoài ra, còn yêu cầu phải dễ tính toán
1.4.1 Đặc trưng Haar-like
1.4.2 Đặc trưng Histogram of Oriented Gradients (HOG)
1.5 Các phương pháp nhận dạng đối tượng
1.5.1 Phương pháp Neural Networks (NN)
Mạng noron nhân tạo (Artifical Neural Networks)
mô phỏng lại mạng noron sinh học là một cấu trúc khối gồm các đơn vị tính toán đơn giản được liên kết chặt chẽ với nhau trong đó các liên kết giữa các noron quyết định chức năng của mạng Về cơ bản mạng Neural là một mạng
các phần tử (gọi là neural) kết nối với nhau thông qua các liên kết (các liên kết này được gọi là trọng số liên kết) để
thực hiện một công việc cụ thể nào đó Khả năng xử lý của mạng neural được hình thành thông qua quá trình hiệu chỉnh trọng số liên kết giữa các neural, nói cách khác là
học từ tập hợp các mẫu huấn luyện
Ưu điểm: - Dễ cài đặt cùng với khả năng học và tổng
quát hoá rất cao
Trang 9- Tốc độ xử lý nhanh
- Linh hoạt và dễ bảo trì:
Nhược điểm: - Tính chậm và xác suất không cao không
có quy tắc tổng quát để xác định cấu trúc mạng và các tham số học tối ưu cho một (lớp) bài toán nhất định
- Tiêu chuẩn thu thập cơ sở dữ liệu huấn luyện còn khắt khe
- Đòi hỏi thời gian xử lý cao với mạng một mạng Neural lớn
1.5.2 Phương pháp Support Vector Machine (SVM)
Cho trước một tập huấn luyện, các ảnh được biểu diễn dưới dạng vector Trong không gian vector, mỗi vertor được biểu diễn bởi một điểm Phương pháp SVM sẽ tìm một siêu phẳng quyết định để phân chia không gian vector thành hai lớp Chất lượng của siêu phẳng này phụ thuộc vào khoảng cách giữa các vector, tức là phụ thuộc vào các đặc trưng của ảnh
Ưu điểm: - Cho kết quả nhận dạng với độ chính xác cao
- Bài toán huấn luyện SVM thực chất là bài toán
QP trên một tập lồi, do đó SVM luôn có nghiệm toàn cục
và duy nhất, đây chính là điểm khác biệt rõ nhất giữa
Trang 10SVM so với phương pháp mạng Neural, vì mạng Neural vốn tồn tại nhiều điểm cực trị địa phương
Nhược điểm: - Hạn chế lớn nhất của SVM là tốc độ phân lớp rất chậm, tùy thuộc vào số lượng các véc tơ hỗ trợ
- Giai đoạn huấn luyện SVM đòi hỏi bộ nhớ rất lớn, do đó các bài toán huấn luyện với số lượng mẫu lớn sẽ gặp trở ngại trong vấn đề lưu trữ Hiệu quả phân lớp của SVM phụ thuộc vào hai yếu tố: giải bài toán QP và lựa chọn hàm nhân
1.5.3 Phương pháp Linear Discriminant Analysis
Mục đích của LDA - Linear Discriminant Analysis là tìm cách phân loại các đối tượng (người, sự vật,…) vào một trong hai hay nhiều lớp đã được xác định trước dựa vào các đặt trưng (feature) dùng để mô tả đối tượng (ví dụ như các đặc trưng dùng để mô tả đối tượng khách hàng là giới tính, tuổi, nghề nghiệp, thu nhập,…)
Ưu điểm: - Dễ dàng hơn để đào tạo, phương sai thấp,
hiệu quả hơn nếu mô hình là chính xác
- LDA làm việc tốt khi số mẫu là lớn
Trang 11Nhược điểm: - LDA gặp phải vấn đề khi tổng số mẫu
huấn luyện ít hơn so với kích thước của không gian đặc trưng
1.5.4 Phương pháp Naive Bayes (NB)
Ý tưởng cơ bản của cách tiếp cận NB là sử dụng xác suất có điều kiện
Ưu điểm: Cho độ chính xác cao khi kết hợp với các
phương pháp khác
Nhược điểm: - Chi phí thời gian để đếm mẫu
- Phải kết hợp với các phương pháp khác
1.5.5 Phương pháp Principal Component Analysis
PCA (Principal Component Analysis) là một thuật toán được sử dụng để tạo ra một ảnh mới từ ảnh ban đầu Ảnh mới này có kích thước nhỏ hơn nhiều so với ảnh ban đầu nhưng vẫn mang những đặc trưng cơ bản nhất của ảnh cần nhận dạng Nói một cách ngắn gọn, mục tiêu của PCA là tìm một không gian mới (với số chiều nhỏ hơn không gian cũ) Các trục tọa độ trong không gian mới được xây dựng sao cho trên mỗi trục, độ biến thiên của dữ liệu trên đó là lớn nhất có thể
Ưu điểm:
Trang 12- Tìm được các đặc tính tiêu biểu của đối tượng cần nhận dạng mà không cần phải xác định các thành phần và mối quan hệ giữa các thành phần đó
- Thuật toán có thể thức hiện tốt với các ảnh có độ phân giải cao, do PCA sẽ thu gọn ảnh thành một ảnh có kích thước nhỏ hơn
- PCA có thể kết hợp với các phương pháp khác để mang lại hiệu quả nhận dạng cao hơn
Nhược điểm: - PCA chỉ làm việc với dữ liệu numeric
- PCA rất nhạy với nhiễu
- Không phù hợp với các mô hình phi tuyến do PCA hoàn toàn dựa trên các biến đổi tuyến tính
- Cài đặt thuật toán phức tạp
Kết luận chương 1
Trang 13Chương 2: PHÁT HIỆN VÀ NHẬN DẠNG ẢNH 2.1 Bài toán nhận dạng đối tượng
2.2 Các nghiên cứu liên quan đến nhận dạng đối tượng 2.3 Bài toán nhận dạng biển báo giao thông
2.3.1 Phương pháp phát hiện dựa trên màu sắc
2.3.2 Phương pháp phát hiện dựa trên hình dạng
2.3.3 Phương pháp phát hiện dựa trên máy học
2.4 Trích chọn đặc trưng ảnh biển báo giao thông
Đặc trưng Haar-like được sử dụng trong việc nhận dạng đối tượng trong ảnh số được phát biểu bởi Viola và Jones[5] gồm 4 đặc trưng cơ bản để xác định một đối tượng trong ảnh Mỗi đặc trưng Haar-like là sự kết hợp gồm 2 hoặc 3 khối chữ nhật mang giá trị “đen” hoặc
“trắng” Những khối chữ nhật này thể hiện sự liên hệ tương quan giữa các bộ phận trong ảnh mà bản thân từng giá trị pixel không thể diễn đạt được
Hình 2.1 Đặc trưng Haar-like cơ bản
Đặc trưng haar-like được mở rộng ra và được chia thành 3 tập đặc trưng như sau:
Trang 14(1) Đặc trưng theo cạnh
(2) Đặc trưng theo đường
(3) Đặc trưng xung quanh tâm Hinh 2.2 Đặc trưng Haar-like mở rộng
Dựa theo các đặc trưng trên, giá trị của đặc trưng Haar-like: f(x) = Tổng vùng đen(các mức xám của pixel) - Tổng vùng trắng(các mức xám của pixel)
“Integral Image” (ảnh chia nhỏ)
Integral Image tại vị trí (x,y) bằng tổng các giá trị điểm ảnh phía trên và bên trái của (x,y) Tổng các điểm ảnh trong một hình chữ nhật (kể cả trường hợp xoay 45º)
bất kì đều có thể được tính nhanh dựa trên integral image
tại 4 đỉnh của nó :
Sum (D ) = 4 + 1 – (2 + 3)
Trang 15Hình 2.4 Ví dụ cách tính nhanh tổng các điểm ảnh của
vùng D trên ảnh 2.5 Phát hiện biển báo giao thông
2.5.1 Tiếp cận Boosting
Nguyên lý cơ bản của boosting là sự kết hợp các
phân lớp yếu (weak classification) thành một phân lớp mạnh (strong classification) Trong đó, phân lớp yếu là
các bộ phân loại đơn giản chỉ cần có độ chính xác trên 50% Bằng cách này, chúng ta nói bộ phân loại đã được
“boost”
2.5.2 Thuật toán Adaboost
Thuật toán AdaBoost tuân theo các bước sau: [4]
1 Cho một tập gồm n mẫu có đánh dấu (x1, y1), (x2, y2),… (xn, yn) với xk ∈ (xk1, xk2, … , xkm) là vector đặc trưng và
yk ∈ (-1, 1) là nhãn của mẫu (1 ứng với object, -1 ứng với background)
2 Khởi tạo trọng số ban đầu cho tất cả các mẫu:
Trang 16với m là số mẫu đúng (ứng với object và y = 1) và l là số mẫu sai (ứng với background và y = -1)
3 Xây dựng T phân loại yếu :
Lặp t = 1, …, T Với mỗi đặc trưng trong vector đặc trưng, xây dựng một phân loại yếu hj với ngưỡng θj và
n
k
k k
j k t
Chọn ra hj với εj nhỏ nhất, ta được ht:
},1
t
k k
t
t
k t k
t
y x
h e
y x
h e Z
w w
t t
) ( ,
) ( ,,
Zt : Hệ số dùng để đưa Wt+1 về đoạn [0,1] (normalization factor)
4 Phân loại mạnh được xây dựng : ( ) ( ( )
T t
t h x sign
x
Trang 172.6 Nhận dạng biển báo giao thông
2.6.1 Phương pháp phân tích thành phần chính PCA
2.6.1.1 Giới thiệu phương pháp PCA
2.6.1.2 Thuật toán PCA
Mục tiêu của phương pháp PCA là “giảm số chiều” của 1 tập vector sao cho vẫn đảm bảo được “tối đa thông tin quan trọng nhất”
Hình 2.9 Chuyển vector x ban đầu có N chiều thành
vector y còn K chiều
Tất nhiên, khi loại bỏ 1 số thành phần của x để thu được y thì sẽ gây ra sai số (lỗi) Phương pháp PCA sẽ cố gắng
tìm phép biến đổi tuyến tính T thỏa: y = T.x sao cho trung
bình bình phương lỗi (MSE) là bé nhất
Trang 18Gọi M là vector trung bình của tất cả các vector x trong tập mẫu Gọi ma trận hiệp phương sai của các phần tử x trong tập mẫu là C C được tính theo công thức sau:
Người ta chứng minh được rằng: “Nếu T là ma trận m hàng, mỗi hàng là 1 vector riêng của C, đồng thời m vector riêng này phải ứng với m trị riêng lớn nhất Khi
đó T chính là phép biến đổi thỏa MSE nhỏ nhất”
Nói tóm lại, phương pháp PCA quy về việc đi tìm trị riêng (eigenvalues) và vector riêng (eigenvectors) của ma trận hiệp phương sai C của tập mẫu X Sau đó, ta chỉ giữ lại K vector riêng ứng với K trị riêng lớn nhất để làm cơ sở cho không gian mới này
2.6.2 Nhận dạng biển báo giao thông bằng phương pháp máy vecto hỗ trợ (Support Vector Machine)
2.6.2.1 SVM trong trường hợp tập mẫu phân hoạch tuyến tính được
a Giai đoạn huấn luyện SVM Ta có tập huấn luyện gồm m điểm có dạng: (x1, y1), (x2, y2), , (xm, ym) Trong
Trang 19đó mỗi xi là một vecto thực p chiều, xi Rn, còn yi {1, -1} là phân lớp của xi
u
1[
i y x u w
1
và xác định được siêu phẳng phân hoạch
b Giai đoạn nhận dạng: Bây giờ giả sử có một mẫu dữ liệu cần nhận dạng x* nào đó, thì phân lớp y* của x* (-1 hay 1) được xác định thông qua công thức:
i y x x b u
sign b
wx sign x
f
Trang 202.6.2.2 SVM tuyến tính trong trường hợp tập mẫu không phân hoạch tuyến tính được
Phương pháp này sử dụng các biến bù i dùng để
đo độ sai lệch của mẫu x i
C w
Vậy bài toán có thể phát biểu như sau:
C w b
w f
Với y i (wx i + b ) – 1 + i ≥ 0 i = 1, 2, , m; i ≥ 0
Như vậy bài toán đối ngẫu được viết lại thành:
Giải bài toán đối ngẫu của bài toán này ta tìm được u và từ
đó tính được w Vậy đã tìm được siêu phẳng phân chia một tập dữ liệu không thể phân hoạch tuyến tính Siêu phẳng như vậy được gọi là siêu phẳng lề mềm
2.6.2.3 SVM phi tuyến
Kết luận chương 2
Trang 21Chương 3 CÀI ĐẶT VÀ THỬ NGHIỆM 3.1 Thu thập dữ liệu
Biển báo giao thông ở Việt Nam được chia thành 5 nhóm: Nhóm biển chỉ dẫn, nhóm biển hiệu lệnh, nhóm
biển báo cấm, nhóm biển báo nguy hiểm, nhóm biển phụ
Trong ứng dụng demo, tác giả chỉ nhận dạng 13 loại biển báo
Số hiệu
Biển báo
Số hiệu
Biển báo
Số hiệu
Trang 22Bộ ảnh huấn luyện nhận dạng gồm 1100 ảnh, với mỗi loại biển báo cần nhận dạng có số lượng tối thiểu
là 50 ảnh được lưu vào từng thư mục riêng và được đặt tên theo thứ tự Bộ ảnh mẫu là ảnh biển biển báo giao thông chuẩn của Bộ Giao thông vận tải được lưu với định dạng bmp và kích thước 80x80 trong thư mục Data\Labels
3.3 Thực nghiệm
3.3.1 Môi trường thực nghiệm
3.3.2 Dữ liệu đầu vào
Dữ liệu đầu vào cho chương trình là tập dữ liệu chủ yếu là ảnh tự chụp, được lưu trong thư mục IMGTEST bao gồm 762 ảnh tĩnh và 56 video có chứa biển báo giao thông Các ảnh được chụp trong các điều kiện thời tiết, chiếu sáng khác nhau Mỗi ảnh được chụp ở nhiều góc độ khác nhau như xa, gần, nghiêng,
3.3.3 Xử lý dữ liệu
3.3.3.1 Huấn luyện phát hiện biển báo trong ảnh
a) Chuẩn bị dữ liệu ảnh huấn luyện
Tập ảnh Positive: “haarkit\temp\positive\rawdata”
Tập ảnh Negative: “haarkit\temp\negative”