3 Phương pháp nhận dạng biển báo thời gian thực
2.12 Tìm các điểm đặc trưng
mà do bị ảnh hưởng của độ sáng quá thấp hoặc cao, các điểm ở biên ảnh. Việc chọn lọc lấy ra các điểm đặc trưng tốt nhất có thể.
• Gán hướng cho các điểm đặc trưng:
Để giữ được đặc trưng hướng cục bộ của các điểm đặc trưng, SIFT thực hiện gán các hướng cho mỗi điểm đặc trưng cụ bộ bằng các tính các histogram gradien trong vùng cục bộ của điểm đặc trưng, mỗi điểm đặc trưng có thể có ít nhất một hướng hoặc nhiều hướng.
• Tạo bộ mô tả điểm đặc trưng:
Để lưu trữ phục vụ cho việc so sánh các điểm đặc trưng SIFT thực hiện mô tả các điểm đăc trưng bằng cách lấy 16x16 điểm liền kề rồi chia thành 16 vùng còn với kích thước là 4x4. Mỗi vùng con sẽ có 8 giá trị nhị phân để thể hiện hướng của vùng con. Như vậy sẽ có 128 giá trị tương ứng với 1 vector 128 chiều để mô tả một điểm đặc trưng (Hình 2.13).
tài nguyên bộ nhớ và tiêu tốn nhiều thời gian xử lý. Một thuật toán mới được đưa ra vẫn dựa trên ý tưởng xác định điểm đặc trưng như của SIFT nhưng đem lại hiệu suất cao hơn cả thời gian và độ chính xác, thuật toán Speeded Up Robust Features (SURF) [1].
SURF cũng tính các điểm đặc trưng dựa trên không gian tỷ lệ nhưng sử dụng ma trận Hessian và ảnh tích hợp[20] để xác định các điểm đặc trưng nhằm giảm thời gian tính toán. Trong pha mô tả các điểm đặc trưng SURF sử dụng đặc trưng Harr Wavelet[9] và một lần nữa ảnh tích hợp được sử dụng lại để tăng tốc độ tính toán. Mỗi điểm đặc trưng được chọn lọc mô tả dưới dạng vector gồm 64 chiều.
Ngày nay cả hai thuật toán SIFT và SURF được ứng dụng nhiều trong giảng dạy và thực hành trong đời sống. Cả hai thuật toán trên đều đã được đăng ký bản quyền sở hữu trí tuệ tại Mỹ12.
1https://www.google.com/patents/US6711293
Chương 3
Phương pháp nhận dạng biển báo thời gian thực
Phương pháp được chúng tôi đưa ra để giải quyết bài toán nhận dạng biển báo giao thông thời gian thực trên thiết bị di động gồm hai giai đoạn. Giai đoạn thứ nhất là phát hiện vùng có khả năng cao chứa biển báo (ROI - region of interest) trong khung nhìn qua các cấu trúc hình học đặc thù của biển báo sau đó đưa các ROI về một chuẩn chung để làm đầu vào cho giai đoạn tiếp theo. Giao đoạn thứ hai là nhận dạng các ROI đã chuẩn hoá xem đó có phải là biển báo giao thông đường bộ hay không, nếu đúng thì chỉ rõ đó là biển báo giao thông đường bộ nào. Với cách tiếp cận hai bước này sẽ tiết kiệm thời gian hơn nhiều so với cách tiếp cận nhận diện biển báo giao thông đường bộ trong toàn bộ khung nhìn qua các đặc trưng cục bộ. Phần chi tiết các bước thực hiện của các giai đoạn được mô tả chi tiết như sau.
3.1 Giới hạn bài toán
Với thời gian và tài nguyên có hạn chúng tôi sẽ tập trung vào nghiên cứu phương pháp phát hiện và nhận dạng hai nhóm biển báo quan trọng nhất mà người tham gia giao thông là nhóm biển báo cấm vào biển hiểu lệnh. Những nhóm biển báo này có đặc trưng hình học là có dạng hình tròn viền màu đỏ nền trắng hay nền xanh lam. Các tín hiệu được biển diễn trong biển báo thuộc hai nhóm này bắt buộc
Hình 3.1: Các biển báo cấm và hiệu lệnh thường gặp
3.2 Phát hiện biển báo giao thông đường bộ
Phát hiện biển báo là giai đoạn tìm kiếm các ROI trong ảnh thực tế. Các ROI trong bài toán là các hình có xác suất cao là biển báo giao thông theo đặc tính hình học của chúng.
3.2.1 Phát hiện hình tròn
Hướng tiếp cận ban đầu định nghĩa các ROI chính là những vùng có hình dạng tròn trong ảnh thu nhận từ thiết bị ghi hình. Với góc nhìn trực diện thì các biển báo sẽ là các hình tròn trong khung hình. Để tìm ra các ROI này cần tìm được các đường tròn có trong ảnh thu được đã tách cạnh.
Sau bước tiền xử lý ảnh trả về từ thiết bị ghi hình thành ảnh đã tách cạnh theo thuật toán Canny. Bằng cách duyệt qua các điểm của mỗi đường cong để kiểm tra các điểm đó có cùng thuộc một đường tròn hay không dựa trên sự sai khác của các đường tròn ngoại tiếp tam giác tạo bởi ba điểm bất kỳ của đường cong.
Sử dụng định lý tâm đường tròn ngoại tiếp tam giác là giao của ba đường trung trực (đường thẳng vuông góc và cắt mỗi cạnh của tam giác tại trung điểm) để xác định tâm của đường tròn đi qua ba điểm bất kỳ. Các bước xác định tâm đường tròn chi tiết như sau:
• Bước 1:Chọn ba điểm riêng biệt A(x1, y1), B(x2, y2), C(x3, y3) thuộc đường cong
• Bước 2:Kiểm tra xem 3 điểm có thoả mãn tạo thành một tam giác theo công thức tổng chiều dài hai cạnh luôn lớn hơn chiều dài cạnh còn lại hay:
AB+AC>BC (3.2.1)
AB+BC>AC (3.2.2)
AC+BC>AB (3.2.3)
• Bước 3:Xây dựng các phương trình đường thẳng trung trực của mỗi cạnh hay chính là đường thẳng có vector pháp tuyến tạo bởi hai đỉnh và đi qua trung điểm của cạnh đó. Lần lượt các phương trình đường thẳng trung trực của các cạnh như sau: AB:(x1−x2)(x−x1+x2 2 ) + (y1−y2)(y−y1+y2 2 ) =0; (3.2.4) AC:(x1−x3)(x−x1+x3 2 ) + (y1−y3)(y−y1+y3 2 ) =0; (3.2.5) BC:(x2−x3)(x−x2+x3 2 ) + (y2−y3)(y−y2+y3 2 ) =0; (3.2.6) • Bước 4: Tính giao điểm của 2 trong 3 phương trình đường thẳng trên để tìm ra tâm của đường tròn ngoại tiếp tam giác ABC hay chính là đường tròn đi qua ba điểm A, B, C.
Bằng việc liên tiếp ước lượng các đường tròn có thể của đường cong với một sai số phù hợp sẽ kết luận được đâu là các đường tròn có trong ảnh đã tách cạnh. Việc xác định sai số phù hợp được tính toán vào bán kính nhỏ nhất và lớn nhất có thể của đường tròn. Sau khi thử nghiệm với dữ liệu thực về biển báo, phương pháp
Hình 3.2: Ước lượng tâm đường tròn
3.2.2 Phát hiện hình ellipse
Trong trường hợp này các ROI được định nghĩa là những vùng có hình dạng ellipse trong ảnh thu nhận từ thiết bị ghi hình. Cách tiếp cận này được giải quyết bằng việc tìm đường ellipse trong ảnh đã tách cạnh. Chúng tôi sử dụng phương pháp phát hiện nhanh đường ellipse được đề cập bởi Michele Fornaciari và các cộng sự trong [7]. Tư tưởng chính của [7] là sử dụng định lý về các đường thẳng song song cắt qua ellipse: "Trung điểm của các đoạn thẳng tạo bởi các đường thẳng song song cắt qua ellipse sẽ tạo thành một đường thẳng đi qua tâm của ellipse đó". Tổng quan các bước thực hiện như sau:
• Bước 1: Tách cạnh và gán nhóm cạnh: Sau khi tách cạnh bằng phương pháp Canny thì thực hiện gán nhãn các cạnh bằng hai phương pháp đó là gán nhãn dựa theo hướng của cạnh và tính diện tích vùng.
Nếu duyệt từ trái qua phải hay là tăng dần độ lớn giá trị chiều ngang x mà giá trị chiều dọc y tăng thì sẽ là đường cong hướng dương, ngược lại thì sẽ là đường cong hướng âm.
Duyệt từ trái qua phải trong hình chữ nhật tạo bởi giá trị hai đầu một đoạn cong ở bước trên. Chia hình chữ nhật thành hai phần phân chia bởi đường cong, nếu diện tích phần dưới lớn hơn phần trên thì gọi đó là đường cong lồi ngược lại nếu diện tích phần trên lớn hơn thì gọi là đường cong lõm.
Bằng việc phân đoạn đường cong qua hai bước trên ta có 4 loại đường cong tại hình 3.3 là:
– Đường cong hướng dương lồi (I)
Hình 3.3: Các loại đường cong
– Đường cong hướng dương lõm(III)
– Đường cong hướng âm lõm(IV)
Sử dụng giải thuật Sobel để kiểm tra nhanh các đường cong là hướng dương hay hướng âm. Bằng cách nhân chập giá trị tại mỗi điểm đã xác định là cạnh qua phương pháp Canny lần lượt với hai nhân ma trậnGx vàGy
Gx= −1 0 +1 −2 0 +2 −1 0 +1 (3.2.7) Gy = −1 −2 −1 0 0 0 +1 +2 −1 (3.2.8)
• Bước 2: Tìm và mô tả các phần của đường ellipse: Ý tưởng thực hiện phần này là tìm các cặp 2 đường cong có thể cùng thuộc một hình ellipse lại với
Hình 3.4: Ghép hai đường cong thuộc nhóm II và III
hình ellipse tạo bởi 2 đường cong. Thực hiện kẻ đường thẳng song song từ đầu đường cong thứ nhất đến trung điểm của đường cong thứ hai và đường thẳng từ trung điểm của đường cong thứ nhất tới điểm cuối của đường cong thứ hai của một cặp. Lần lượt kẻ các đường thẳng song song với 2 đường trên để tìm được hai đường thẳng đi qua trung điểm của đoạn thẳng tạo bởi giao điểm của các đường song song với hai đường cong. Theo định lý kể trên hai đường thẳng nối các trung điểm này sẽ cắt nhau tại tâm của hình ellipse. • Bước 3: Gộp các phần của đường ellipse: Sau khi mô tả được các phần ellipse
tạo bởi cặp hai đường cong thực hiện việc ghép các cặp cạnh lần lượt bằng cách nối liên tiếp các cặp có chung một đường cong. Cặp (I, II) nối với cặp (II, III), cặp (II, III) nối với cặp (III, VI), cặp (III, VI) nối với cặp (VI, I) và cặp (VI, I) nối với cặp (I, II). Việc nối các cặp cần tính sai số có thể chấp nhận của khoảng cách hai tâm ellipse của mỗi cặp đường cong. Sai số này có thể được dùng là căn cứ để tính độ chính xác của hình ellipse đoán nhận được. • Bước 4: Chọn lọc các ellipse phù hợp bằng cách:
Đưa ra ngưỡng sai số có thể chấp nhận được. Đưa ra ngưỡng độ méo của ellipse.
3.3 Nhận dạng loại biển báo giao thông đường bộ
3.3.1 Nhận dạng qua điểm đặc trưng cục bộ
Sử dụng đặc trưng điểm cục bộ bất biến để so sánh ảnh mang lại kết quả rất tốt trong nhiều trường hợp. Khi áp dụng vào bài toán nhận dạng biển báo giao thông đường bộ theo thời gian thực trên thiết bị di động thì SURF là thuật toán trích chọn đặc trưng cục bộ phù hợp nhất về cả thời gian và tài nguyên sử dụng. Các điểm đặc bất biến được trích chọn từ SURF không bị ảnh hưởng bởi góc quay của thiết bị thu hình cũng như cường độ ánh sáng khác nhau của ảnh thu nhận.
Giai đoạn nhận dạng biển báo được chia làm hai phần, phần một là tìm và lưu trữ các điểm đặc trưng SURF của mỗi biển báo từ bộ dữ liệu các biển báo giao thông đường bộ Việt Nam trong quy chuẩn tạo thành một bộ dữ liệu mẫu hay còn gọi là bộ dữ liệu học. Bước thứ hai là tìm và so khớp các biển báo tiền đoán từ giai đoạn phát hiện biển báo với bộ dữ liệu học. Việc so khớp đặc trưng SURF sử dụng phương pháp FANN (Fast Approximate Nearest Neighbors) [15]. Với số lượng đặc trưng SURF thu được từ ảnh tiền đoán đủ nhiều và trùng khớp nhiều nhất với một biển báo trong bộ dữ liệu học thì kết luận ảnh tiền đoán nhận là biển báo có số hiệu trùng khớp đó. Mô hình hoá việc tìm và so sánh đặc trưng SURF bằng FANN được thể hiện trong hình 3.5.
Hình 3.5: Tìm và so sánh đặc trưng SURF với FANN
Sau khi triển khai pha nhận dạng bằng thuật toán SURF kết quả không đạt như mong đợi vì vùng chứa biển báo giao thông đường bộ trong ảnh thu nhận được thường nhỏ và có nhiều điểm tương đồng với các biển báo khác, gây nên sự nhập
ementary features)[2] và BRISK (Binary robust invariant scalable keypoints)[14] là những ví dụ điển hình. Qua nghiên cứu và tìm hiểu chúng tôi nhận thấy sử dụng đặc trưng nhị phân hoá sự phụ thuộc các điểm ảnh là một hướng đi khả quan cho bài toán nhận dạng biển báo giao thông. Chúng tôi đề xuất sử dụng tư tưởng của phương pháp lấy đặc trưng nhị phân trong giải thuật BRIEF kết hợp với việc lấy mẫu theo phân bố Gaussian của giải thuật BRISK để trích chọn đặc trưng các biển báo. Mỗi biển báo sau khi được phân tích trích chọn đặc trưng sẽ được đặc tả dưới dạng một chuỗi nhị phân mang tính chất riêng của mình. Việc thực hiện so khớp các biển báo cũng chính là việc tính sự tương đồng của hai chuỗi nhị phân đặc các biển báo đó.
Quá trình lấy mẫu và đặc tả nhị phân hoá sự phụ thuộc các điểm ảnh được chúng tôi thực hiện chi tiết như sau:
• Chọn lọc các điểm mẫu:Với đầu vào là các ảnh hình vuông có khả năng chứa biển báo - ảnh tiền đoán đã được chuẩn hoá ở giai đoạn phát hiện - chúng tôi xác định các điểm mẫu qua phân bố Gaussian để tính các khoảng cách từ tâm của ảnh đến các điểm mẫu. Tâm của ảnh cũng là một điểm mẫu.
Hình 3.6: Các điểm mẫu theo phân bố Gaussian
Các điểm mẫu sẽ nằm trong các đường tròn đồng tâm được trực quan hoá như ở hình 3.6.
• Trích chọn các đặc trưng: Cũng như tên gọi đặc trưng nhị phân hoá sự phụ thuộc các điểm ảnh sẽ là tập hợp các giá trị nhị phân đặc trưng cho sự phụ thuộc của mỗi cặp điểm ảnh. Sự phụ thuộc được quan tâm ở trong trường hợp này là cường độ sáng của hai điểm ảnh. Nếu cường độ sáng của điểm ảnh
A(x1, y1) lớn hơn hoặc bằng cường độ sáng của điểm B(x2, y2) thì giá trị nhị phân biểu diễn sự phụ thuộc của hai điểm ảnh là 1, ngược lại thì là 0. Bằng các cách chọn các điểm A(x1, y1), B(x2, y2) khác nhau thuộc tập các điểm mẫu để tính sự phụ thuộc lẫn nhau của chúng sẽ thu được một dãy các giá trị nhị phân đặc trưng cho ảnh đầu vào.
Sắp xếp dãy các điểm lấy mẫu theo thứ tự gần tâm của ảnh nhất từ phía trên theo hướng kim đồng hồ đứng trước thu được một dãy gọi là dãy các điểm mẫu. Bằng cách duyệt từ đầu đến cuối dãy các điểm mẫu chúng tôi sử dụng phương án lấy ra các cặp điểm A(x1, y1), B(x2, y2) để tính sự phụ thuộc như sau:
– Chọn A(x1, y1), B(x2, y2) là các điểm liên tiếp gần kề nhau trong dãy các điểm mẫu.
– Chọn A(x1, y1), B(x2, y2) là các điểm liên tiếp cách nhau 5 điểm trong dãy các điểm mẫu.
– Chọn A(x1, y1), B(x2, y2) là các điểm liên tiếp cách nhau 13 điểm trong dãy các điểm mẫu.
Ví dụ với D là dãy các điểm mẫu chứa 15 điểm mẫu:
D = {x0(50, 50), x1(51, 51), x2(50, 52), x3(49, 51), x4(48, 50), x5(48, 48), x6(50, 48), x7(51, 49), x8(53, 50), x9(53, 52), x10(52, 53), x11(50, 53), x12(48, 53), x13(47, 52), x14(46, 51)}
Và d là mảng chứa cường độ sáng của lần lượt các điểm x0, x1 ... x14:
d = [210, 207, 207, 213, 220, 211, 255, 199, 202, 204, 211, 198, 200, 210, 220]
Bằng phương pháp chọn lấy các cặp để tính đặc trưng như đã đề xuất thu được tập các cặp điểm mẫu như sau:
{(x0,x1),(x1,x2),(x2,x3),(x3,x4),(x4,x5),(x0,x5),(x5,x6),(x1,x6) (x6,x7),(x2,x7),(x7,x8),(x3,x8),(x8,x9),(x4,x9),(x9,x10),(x5,x10) (x10,x11),(x6,x11),(x11,x12),(x7,x12),(x12,x13),(x8,x13),(x0,x13) (x ,x ),(x ,x ),(x ,x )}
hai ảnh. Chúng tôi sử dụng độ đo Hamming cho dãy nhị phân để so sánh hai dãy nhị phân hay cũng là tính trọng số tương đồng hai ảnh mà hai dãy đặc tả.
Trong bài toán nhận dạng biển báo giao thông đường bộ Việt Nam chúng tôi sửa dụng các giá trị sau cho giai đoạn nhận dang biển báo với đặc trưng nhị phân hoá các điểm ảnh. Sigma của hàm Gaussian σ = 1.4, số điểm mẫu là 312 điểm trong ảnh có kích thước 100x100 px.
Chương 4
Thực nghiệm
4.1 Cài đặt thuật toán
Các bước cài đặt được thực hiện với ngôn ngữ C++ kết hợp với thư viện OpenCV.
Giai đoạn phát hiện biển báo giao thông đường bộ đã cài đặt đủ hai phương pháp là nhận diện hình tròn và nhận diện hình ellipse. Quá trình cài đặt phương pháp phát hiện biển báo bằng các hình tròn trong ảnh ban đầu sử dụng ngôn ngữ lập trình Java cho kết quả tốt về độ chính xác nhưng thời gian xử lý còn lớn. Sau khi tham khảo các ý kiến chuyên môn chúng tôi chuyển sang sử dụng ngôn ngữ C++ để cài đặt nhằm rút ngắn thời gian xử lý cũng như tối ưu tài nguyên khi kết hợp với thư viện OpenCV.
Giai đoạn nhận dạng biển báo giao thông đường bộ chúng tôi đã cài đặt hai